Апр 06

Функции timeSetEvent и timeKillEvent

Мультимедийный таймер выполняется в своем собственном потоке. Он отслеживает заданный временной интервал и активизирует по истечении этого интервала таймерное событие. После этого Windows либо вызывает заданную функцию обратного вызова, либо устанавливает заданное событие.
Сервис мультимедийного таймера вызывается с помощью функции timeSet Event:
MMRESULT timeSetEventCUINT uDelay, UINT uResolution.LPTIMECALLBACK lpTimeProc,
DWORD dwUser, UINT fuEvent);
В параметре u Delay указывается задержка активизации таймерного события. В качестве единиц измерения используются миллисекунды. Если значение параметра выходит за пределы задержек, поддерживаемых таймером, то функция вернет код ошибки.
Параметр uResolution содержит разрешение таймерного события в миллисекундах. Чем меньше значение этого параметра, тем выше разрешение. Нулевое значение параметра означает, что периодические события таймера должны появляться с максимально возможной точностью. Однако чем выше разрешение, тем больше будут накладные расходы операционной системы, поэтому желательно выбирать максимальное значение параметра uResolution, при котором удовлетворяются потребности приложения.
Параметр lpTimeProc содержит адрес функции обратного вызова, которая вызывается после установки таймерного события. Если параметр fuEvent содержит флаг TIME_CALLBACK_EVENT_SET или TIME_CALLBACK_EVENT_PULSE, то параметр lpTimeProc интерпретируется как дескриптор объекта «событие».
Параметр dwUser может содержать данные, передаваемые в функцию lpTimeProc, интерпретация которых определяется программистом. В частности, эти данные иногда используются для организации обратной связи с вызывающей функцией.