该
的timeSetEvent
功能启动指定的定时器事件。
多媒体计时器在其自己的线程中运行。
事件激活后,它会调用指定的回调函数,或设置或脉冲指定的事件对象。
句法
MMRESULT timeSetEvent( UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD_PTR dwUser, UINT fuEvent );
参数
-
事件延迟,以毫秒为单位。
如果该值不在定时器支持的最小和最大事件延迟的范围内,则该函数返回错误。
-
定时器事件的解析度,以毫秒为单位。
分辨率随着较小的值而增加;
分辨率为0表示定期事件应该尽可能准确地发生。
但是,为了减少系统开销,您应该使用适合您的应用程序的最大值。
-
指向一个回调函数的指针,该函数在单个事件到期时调用一次,或者在周期性事件到期时定期调用。
如果
fuEvent
指定了
TIME_CALLBACK_EVENT_SET
或
TIME_CALLBACK_EVENT_PULSE
标志,则
lpTimeProc
参数将被解释为事件对象的句柄。
该事件将在单个事件完成后定期或脉冲,或定期事件完成后定期进行。
对于
fuEvent的
任何其他值
,
lpTimeProc
参数是指向
LPTIMECALLBACK
类型的回调函数的
指针
。
-
用户提供的回调数据。
-
定时器事件类型。
该参数可能包含以下值之一。
值
含义
TIME_ONESHOT
在
uDelay
毫秒
后发生一次事件
。
TIME_PERIODIC
事件每
uDelay
毫秒
发生一次
。
所述
fuEvent
参数还可以包括以下值中的一个。
值
含义
TIME_CALLBACK_FUNCTION
当计时器到期时,Windows调用
lpTimeProc
参数
指向的函数
。
这是默认设置。
TIME_CALLBACK_EVENT_SET
当计时器到期时,Windows调用
SetEvent
函数来设置由
lpTimeProc
参数
指向的事件
。
该
dwUser
参数被忽略。
TIME_CALLBACK_EVENT_PULSE
当计时器到期时,Windows调用
PulseEvent
函数来脉冲由
lpTimeProc
参数
指向的事件
。
该
dwUser
参数被忽略。
TIME_KILL_SYNCHRONOUS
传递该标志可防止在
调用
timeKillEvent
函数
后发生事件
。
udelay的
uResolution
lpTimeProc
dwUser
fuEvent
返回值
如果成功则返回定时器事件的标识符,否则返回错误。
如果失败并且未创建定时器事件,则
此函数返回
NULL
。
(这个标识符也被传递给回调函数。)
备注
每次调用
timeSetEvent
以获得周期性定时器事件都需要对
timeKillEvent
函数
进行相应的调用
。
使用
TIME_KILL_SYNCHRONOUS
和
TIME_CALLBACK_FUNCTION
标志
创建事件
可防止在
调用
timeKillEvent
函数
后发生该事件
。
要求
|
|
---|---|
|
|
|
TimeAPI.h(包括Windows.h); Windows Server 2008 R2,Windows 7,Windows 7,Windows Server 2008和Windows Vista上的Mmsystem.h(包括Windows.h) |
|
WINMM.LIB |
|
WINMM.DLL |