timeSetEvent
timeSetEvent
Функция timeSetEvent запускает указанное событие мультимедиа таймера. Мультимедиа таймер выполняется в своем собственном потоке. После активации события, оно вызывает указанную функцию обратного вызова или устанавливает, или вызывает срабатывание указанного события.
MMRESULT timeSetEvent (
UINT uDelay,
UINT uResolution,
LPTIMECALLBACK lpTimeProc,
DWORD_PTR dwUser,
UINT fuEvent
);
Параметры
uDelay - задержка события в миллисекундах. Если это значение лежит вне диапазона допустимых значений задержки, поддерживаемых таймером, функция возвращает ошибку.
uResolution - разрешение событий таймера в миллисекундах. Разрешение увеличивается при уменьшении значений; разрешение, установленное в нуль, показывает, что периодические события будут происходить с наибольшей возможной точностью. Для уменьшения системных издержек, тем не менее, вы должны использовать максимальное значение, соответствующее вашему приложению.
lpTimeProc - указатель на функцию обратного вызова, которая вызывается по истечению одиночного события или периодически по истечению периодических событий. Если fuEvent определяет флаг TIME_CALLBACK_EVENT_SET или TIME_CALLBACK_EVENT_PULSE, то значение параметра lpTimeProc интерпретируется как дескриптор события. Для любых других значений fuEvent , значение lpTimeProc интерпретируется как указатель на функцию со следующей сигнатурой:
void ( CALLBACK )( UINT uTimerID , UINT uMsg , DWORD_PTR dwUser , DWORD_PTR dw1 , DWORD_PTR dw2 ).
dwUser - определяемые пользователем данные.
fuEvent - тип события таймера. Может принимать одно из следующих значений:
Значение
Пояснение
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.
Возвращаемые значения
Возвращается идентификатор события таймера в случае успеха, или ошибка в противном случае. Функция возвращает NULL, если ее вызов завершился неудачей, и событие таймера не было создано. (Идентификатор события также передается в функцию обратного вызова).
Комментарии
Каждый вызов timeSetEvent для периодических событий таймера требует соответствующего вызова функции timeKillEvent . Создание события с флагами TIME_KILL_SYNCHRONOUS и TIME_CALLBACK_FUNCTION предотвращает происхождение события после вызова функции timeKillEvent .
Требования
Windows NT/2000/XP: Включена в Windows NT 3.1 и выше.
Windows 95/98/Me: Включена в Windows 95 и выше.
Заголовок: Объявлена в Mmsystem.h; подключать Windows.h.
Библиотека: Используйте Winmm.lib.
См. также
PulseEvent, SetEvent, timeKillEvent.