Здравствуйте, уважаемые подписчики. Перед вами очередной выпуск рассылки "WinAPI
на русском".
Сайт рассылки: http://www.bcbdev.ru. Материалы по Win32 API, C++Builder.
Раздел "WinAPI": http://www.bcbdev.ru/winapi.htm
Раздел "C++Builder": http://www.bcbdev.ru/cbuilder.htm
Раздел "Советы & примеры": http://www.bcbdev.ru/tipstricks/tipstricks.htm
Форум: http://www.bcbdev.ru/phpbb/
Обновления на сайте
Нет.
Перевод
Сегодня вашему вниманию представлен перевод функции 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.
хелп по WinAPI: http://www.bcbdev.ru/winapi/win32api.exe
С уважением,
ведущий рассылки
Тарас Сорока.
mailto:tnsoroka@online.ru