SetTimer, fonction (winuser.h)

Crée un minuteur avec la valeur de délai d’attente spécifiée.

Syntaxe

UINT_PTR SetTimer(
  [in, optional] HWND      hWnd,
  [in]           UINT_PTR  nIDEvent,
  [in]           UINT      uElapse,
  [in, optional] TIMERPROC lpTimerFunc
);

Paramètres

[in, optional] hWnd

Type : HWND

Handle de la fenêtre à associer au minuteur. Cette fenêtre doit appartenir au thread appelant. Si une valeur NULL pour hWnd est transmise avec un nIDEvent d’un minuteur existant, ce minuteur sera remplacé de la même manière qu’un minuteur hWnd non NULL existant.

[in] nIDEvent

Type : UINT_PTR

Identificateur du minuteur différent de zéro. Si le paramètre hWnd a la valeur NULL et que nIDEvent ne correspond pas à un minuteur existant, il est ignoré et un nouvel ID de minuteur est généré. Si le paramètre hWnd n’est pas NULL et que la fenêtre spécifiée par hWnd a déjà un minuteur avec la valeur nIDEvent, le minuteur existant est remplacé par le nouveau minuteur. Lorsque SetTimer remplace un minuteur, le minuteur est réinitialisé. Par conséquent, un message sera envoyé une fois la valeur de délai d’expiration actuelle écoulée, mais la valeur de délai d’attente définie précédemment est ignorée. Si l’appel n’est pas destiné à remplacer un minuteur existant, nIDEvent doit être 0 si le hWnd a la valeur NULL.

[in] uElapse

Type : UINT

Valeur du délai d'attente exprimée en millisecondes.

Si uElapse est inférieur à USER_TIMER_MINIMUM (0x0000000A), le délai d’attente est défini sur USER_TIMER_MINIMUM. Si uElapse est supérieur à USER_TIMER_MAXIMUM (0x7FFFFFFF), le délai d’attente est défini sur USER_TIMER_MAXIMUM.

[in, optional] lpTimerFunc

Type : TIMERPROC

Pointeur vers la fonction à notifier lorsque la valeur de délai d’expiration s’écoule. Pour plus d’informations sur la fonction, consultez TimerProc. Si lpTimerFunc a la valeur NULL, le système publie un message WM_TIMER dans la file d’attente de l’application. Le membre hwnd de la structure MSG du message contient la valeur du paramètre hWnd .

Valeur retournée

Type : UINT_PTR

Si la fonction réussit et que le paramètre hWnd a la valeur NULL, la valeur de retour est un entier identifiant le nouveau minuteur. Une application peut passer cette valeur à la fonction KillTimer pour détruire le minuteur.

Si la fonction réussit et que le paramètre hWnd n’a pas la valeur NULL, la valeur de retour est un entier différent de zéro. Une application peut passer la valeur du paramètre nIDEvent à la fonction KillTimer pour détruire le minuteur.

Si la fonction ne parvient pas à créer un minuteur, la valeur de retour est zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Une application peut traiter WM_TIMER messages en incluant une instruction case WM_TIMER dans la procédure de fenêtre ou en spécifiant une fonction de rappel TimerProc lors de la création du minuteur. Lorsque vous spécifiez une fonction de rappel TimerProc , DispatchMessage appelle la fonction de rappel au lieu d’appeler la procédure de fenêtre lorsqu’il traite WM_TIMER avec un lParam non NULL. Par conséquent, vous devez distribuer des messages dans le thread appelant, même lorsque vous utilisez TimerProc au lieu de traiter WM_TIMER.

Le paramètre wParam du message WM_TIMER contient la valeur du paramètre nIDEvent .

L’identificateur du minuteur, nIDEvent, est spécifique à la fenêtre associée. Une autre fenêtre peut avoir son propre minuteur qui a le même identificateur qu’un minuteur appartenant à une autre fenêtre. Les minuteurs sont distincts.

SetTimer peut réutiliser les ID du minuteur dans le cas où hWnd a la valeur NULL.

Avant d’utiliser SetTimer ou d’autres fonctions liées au minuteur, il est recommandé de définir l’indicateur de UOI_TIMERPROC_EXCEPTION_SUPPRESSION sur false via la fonction SetUserObjectInformationW . Sinon, l’application pourrait se comporter de manière imprévisible et risquer d’être vulnérable aux attaques de sécurité. Pour plus d’informations, consultez SetUserObjectInformationW.

Exemples

Pour obtenir un exemple, consultez Création d’un minuteur.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll
Ensemble d’API ext-ms-win-ntuser-window-l1-1-2 (introduit dans Windows 10, version 10.0.10240)

Voir aussi

Conceptuel

KillTimer

MSG

Référence

SetWaitableTimer

TimerProc

Minuteurs

WM_TIMER

SetCoalescableTimer