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.