timeSetEvent function
Applies to: desktop apps only
The timeSetEvent function starts a specified timer event. The multimedia timer runs in its own thread. After the event is activated, it calls the specified callback function or sets or pulses the specified event object.
Note This function is obsolete. New applications should use CreateTimerQueueTimer to create a timer-queue timer.
Syntax
MMRESULT timeSetEvent( UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD_PTR dwUser, UINT fuEvent );
Parameters
- uDelay
-
Event delay, in milliseconds. If this value is not in the range of the minimum and maximum event delays supported by the timer, the function returns an error.
- uResolution
-
Resolution of the timer event, in milliseconds. The resolution increases with smaller values; a resolution of 0 indicates periodic events should occur with the greatest possible accuracy. To reduce system overhead, however, you should use the maximum value appropriate for your application.
- lpTimeProc
-
Pointer to a callback function that is called once upon expiration of a single event or periodically upon expiration of periodic events.
If fuEvent specifies the TIME_CALLBACK_EVENT_SET or TIME_CALLBACK_EVENT_PULSE flag, then the lpTimeProc parameter is interpreted as a handle to an event object. The event will be set or pulsed upon completion of a single event or periodically upon completion of periodic events.
For any other value of fuEvent, the lpTimeProc parameter is a pointer to a callback function of type LPTIMECALLBACK.
- dwUser
-
User-supplied callback data.
- fuEvent
-
Timer event type. This parameter may include one of the following values.
Value Meaning TIME_ONESHOT Event occurs once, after uDelay milliseconds. TIME_PERIODIC Event occurs every uDelay milliseconds. The fuEvent parameter may also include one of the following values.
Value Meaning TIME_CALLBACK_FUNCTION When the timer expires, Windows calls the function pointed to by the lpTimeProc parameter. This is the default. TIME_CALLBACK_EVENT_SET When the timer expires, Windows calls the SetEvent function to set the event pointed to by the lpTimeProc parameter. The dwUser parameter is ignored. TIME_CALLBACK_EVENT_PULSE When the timer expires, Windows calls the PulseEvent function to pulse the event pointed to by the lpTimeProc parameter. The dwUser parameter is ignored. TIME_KILL_SYNCHRONOUS Passing this flag prevents an event from occurring after the timeKillEvent function is called.
Return value
Returns an identifier for the timer event if successful or an error otherwise. This function returns NULL if it fails and the timer event was not created. (This identifier is also passed to the callback function.)
Remarks
Each call to timeSetEvent for periodic timer events requires a corresponding call to the timeKillEvent function.
Creating an event with the TIME_KILL_SYNCHRONOUS and the TIME_CALLBACK_FUNCTION flag prevents the event from occurring after the timeKillEvent function is called.
Requirements
|
Minimum supported client | Windows XP |
|---|---|
|
Minimum supported server | Windows Server 2003 |
|
Header |
|
|
Library |
|
|
DLL |
|
See also
Send comments about this topic to Microsoft
Build date: 2/3/2012
It is said that starting a timer with TIME_KILL_SYNCHRONOUS guarantees that the timer function is not being called after timeKillEvent has been called.
Does this also mean that timeKillTimer is guaranteed to block until the currently executing timer function finished?
From my tests on Windows XP and Windows 7, this holds true, but it would be good to have a documented guarantee.
- 4/27/2010
- Ken Smith