CallNextHookEx, SetWindowsHookEx
UnhookWindowsHookEx
Функция UnhookWindowsHookEx удаляет процедуру хука, установленную в цепочку хуков функцией SetWindowsHookEx .
BOOL UnhookWindowsHookEx (
HHOOK hhk // дескриптор удаляемой процедуры хука
);
Параметры
hhk ‑ идентифицирует хук, подлежащий удалению. Значение этого параметра является дескриптором хука, полученным предыдущим вызовом SetWindowsHookEx .
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль.
Комментарии
Процедура хука может быть в состоянии вызова другим потоком даже после завершения функции UnhookWindowsHookEx . Если процедура хука не вызывается одновременно другим потоком, то она удаляется непосредственно перед завершением функции UnhookWindowsHookEx .
См. также
SetWindowsHookEx, UnhookWindowsHook .
Память
HeapSize
Функция HeapSize возвращает размер блока памяти, выделенного из кучи функциями HeapAlloc или HeapReAlloc , в байтах.
DWORD HeapSize (
HANDLE hHeap , // дескориптор кучи
DWORD dwFlags , // контрольные флаги размера кучи
LPCVOID lpMem // указатель на память, чей размер возвращается
);
Параметры
hHeap ‑ определяет кучу, в которой находится блок памяти. Этот дескриптор возвращается функциями HeapCreate или GetProcessHeap .
dwFlags ‑ определяет некоторые контролируемые аспекты доступа к блоку памяти. В настоящее время определен только один флаг; тем не менее, все остальные значения флагов зарезервированы для будущего использования. Указание этого флага переопределит соответствующее значение флага, указанного в качестве значения параметра flOptions при создании кучи функцией HeapCreate .
|
|
Значение | Пояснение |
HEAP _ NO _ SERIALIZE | Определяет, что взаимное исключение не будет использоваться, когда функция получает доступ к куче. Для дополнительной информации смотрите раздел "Комментарии" в описании функции HeapCreate . |
lpMem ‑ указывает на блок памяти, чей размер функция получает. Указатель возвращается функциями HeapAlloc или HeapReAlloc .
Возвращаемые значения
В случае успеха возвращается размер выделенного блока памяти в байтах.
В случае неудачи возвращается 0 xFFFFFFFF . Функция не вызывает SetLastError . Приложение не может вызвать GetLastError для дополнительной информации об ошибке.
См. также
GetProcessHeap, HeapAlloc, HeapCreate, HeapDestroy, HeapFree, HeapReAlloc, SetLastError .
Подбор цветов
CreateColorSpace
Функция CreateColorSpace создает логическое цветовое пространство.
HCOLORSPACE CreateColorSpace (
LPLOGCOLORSPACE lpLogColorSpace
);
Параметры
|
|
lpLogColorSpace ‑ указывает на структуру типа LOGCOLORSPACE .
Возвращаемые значения
В случае успеха возвращается дескриптор, который идентифицирует логическое цветовое пространство.
В случае неудачи возвращается NULL
Комментарии
Когда у вас больше нет необходимости в цветовом пространстве, вызовите функцию DeleteObject для его удаления.
См. также
DeleteObject, LOGCOLORSPACE .
Мультимедиа таймеры
TimeProc
Функция TimeProc является функцией обратного вызова, которая вызывается один раз по завершению одиночного события таймера или периодически по завершению периодических событий.
void CALLBACK TimeProc (
UINT uID,
UINT uMsg,
DWORD dwUser,
DWORD dw1,
DWORD dw2
);
TimeProc является "заполнителем" для имени определяемой приложением функции.
Параметры
uID ‑ идентификатор события таймера. Этот идентификатор был возвращен функцией timeSetEvent при установке события.
uMsg ‑ зарезервирован. Не используется.
dwUser ‑ пользовательские данные, представленные значением параметра dwUser функции timeSetEvent .
dw1 ‑ зарезервирован. Не используется.
dw2 ‑ зарезервирован. Не используется.
Возвращаемые значения
|
|
Функция не возвращает значения.
Комментарии
Приложения не должны вызывать определяемые системой функции внутри функции обратного вызова, кроме PostMessage , timeGetSystemTime , timeGetTime , timeSetEvent , timeKillEvent , midiOutShortMsg , midiOutLongMsg и OutputDebugString .
Требования
Windows NT /2000/ XP : Включена в Windows NT 3.1 и выше.
Windows 95/98/ Me : Включена в Windows 95 и выше.
Заголовок: Объявлена в Mmsystem.h; подключать Windows.h.
См . также
timeSetEvent , PostMessage , timeGetSystemTime , timeGetTime , timeKillEvent , midiOutShortMsg , midiOutLongMsg , OutputDebugString .
TimeBeginPeriod
Функция timeBeginPeriod устанавливает минимальное разрешение мультимедиа таймера для приложения или драйвера устройства.
MMRESULT timeBeginPeriod (
UINT uPeriod
);
Параметры
uPeriod ‑ минимальное разрешение таймера в миллисекундах для приложения или драйвера устройства.
Возвращаемые значения
В случае успеха возвращается TIMERR_NOERROR или TIMERR_NOCANDO, если разрешение, заданное значением параметра uPeriod , находится вне допустимого диапазона.
Комментарии
Вызовите эту функцию непосредственно перед использованием сервисов мультимедиа таймера, и вызовите функцию timeEndPeriod после завершения использования сервисов мультимедиа таймера.
|
|
Вы должны каждому вызову timeBeginPeriod сопоставить вызов timeEndPeriod , определив одинаковое минимальное разрешение в обоих вызовах. Приложение может вызывать функцию timeBeginPeriod многократно, до тех пор, пока каждому ее вызову сопоставлен ответный вызов timeEndPeriod .
Требования
Windows NT /2000/ XP : Включена в Windows NT 3.1 и выше.
Windows 95/98/ Me : Включена в Windows 95 и выше.
Заголовок: Объявлена в Mmsystem.h ; подключать Windows.h.
Библиотека: Используйте Winmm.lib.
См. также
timeEndPeriod .
TimeEndPeriod
Функция timeEndPeriod сбрасывает ранее установленное минимальное разрешение мультимедиа таймера.
MMRESULT timeEndPeriod(
UINT uPeriod
);
Параметры
uPeriod ‑ минимальное разрешение таймера в миллисекундах, указанное в предыдущем вызове функции timeBeginPeriod .
Возвращаемые значения
В случае успеха возвращается TIMERR _ NOERROR или TIMERR _ NOCANDO, если разрешение, заданное значением параметра uPeriod , находится вне допустимого диапазона.
Комментарии
Вызовите эту функцию непосредственно после завершения использования сервисов мультимедиа таймера.
Вы должны каждому вызову timeBeginPeriod сопоставить вызов timeEndPeriod , определив одинаковое минимальное разрешение в обоих вызовах. Приложение может вызывать функцию timeBeginPeriod многократно, до тех пор, пока каждому ее вызову сопоставлен ответный вызов timeEndPeriod .
Требования
Windows NT /2000/ XP : Включена в Windows NT 3.1 и выше.
Windows 95/98/ Me : Включена в Windows 95 и выше.
Заголовок: Объявлена в Mmsystem . h ; подключать Windows . h .
Библиотека: Используйте Winmm . lib .
См . также
timeBeginPeriod .
TimeGetDevCaps
Функция timeGetDevCaps запрашивает мультимедиа таймер для определения его разрешения.
MMRESULT timeGetDevCaps (
LPTIMECAPS ptc ,
UINT cbtc
);
Параметры
ptc ‑ указатель на структуру типа TIMECAPS . Эта структура заполняется информацией о разрешении мультимедиа таймера.
cbtc ‑ размер структуры типа TIMECAPS в байтах.
Возвращаемые значения
Возвращается TIMERR_NOERROR в случае успеха или TIMERR_STRUCT, если функция не может вернуть возможности устройства.
Требования
Windows NT /2000/ XP : Включена в Windows NT 3.1 и выше.
Windows 95/98/ Me : Включена в Windows 95 и выше.
Заголовок: Объявлена в Mmsystem.h ; подключать Windows.h .
Библиотека: Используйте Winmm. lib.
См . также
TIMECAPS .
TimeGetSystemTime
Функция timeGetSystemTime извлекает системное время в миллисекундах. Системное время ‑ это время, истекшее с момента старта Windows . Эта функция работает схожим с функцией timeGetTime образом. Смотри описание timeGetTime для подробного описания работы с данными функциями.
MMRESULT timeGetSystemTime (
LPMMTIME pmmt ,
UINT cbmmt
);
Параметры
pmmt ‑ указатель на структуру типа MMTIME .
cbmmt ‑ размер структуры типа MMTIME в байтах.
Возвращаемые значения
Возвращает TIMERR _ NOERROR . Системное время возвращается в качестве значения члена ms структуры типа MMTIME .
Требования
Windows NT /2000/ XP : Включена в Windows NT 3.1 и выше.
Windows 95/98/ Me : Включена в Windows 95 и выше.
Заголовок: Объявлена в Mmsystem . h ; подключать Windows . h .
Библиотека: Используйте Winmm . lib .
См . также
timeGetTime, MMTIME .
TimeGetTime
Функция timeGetTime извлекает системное время в миллисекундах. Системное время ‑ это время, истекшее с момента старта Windows .
DWORD timeGetTime (VOID );
Параметры
Функция не имеет параметров.
Возвращаемые значения
Функция возвращает системное время в миллисекундах.
Комментарии
Единственной разницей между этой функцией и функцией timeGetSystemTime является использование timeGetSystemTime структуры типа MMTIME для возвращения системного времени. У функции timeGetTime меньшие по сравнению с timeGetSystemTime накладные расходы.
Обратите внимание, что значение, возвращаемое функцией timeGetTime , имеет тип DWORD . Возвращаемое значение сбрасывается в нуль каждые 2^32 миллисекунд, что составляет примерно 49.71 дней. Это может вызвать проблемы в коде, который напрямую использует возвращаемое функцией timeGetTime значение в вычислениях, особенно, когда значение используется для контроля выполнения кода. Вы должны всегда в вычислениях использовать разницу между двумя возвращаемыми функцией timeGetTime значениями.
Windows NT /2000: Точность по умолчанию для функции timeGetTime может быть пять или более миллисекунд, в зависимости от машины. Вы можете использовать функции timeBeginPeriod и timeEndPeriod для увеличения точности timeGetTime . Если вы это сделаете, минимальная разница между двумя успешно возвращенными функцией timeGetTime значениями может быть меньше минимального периода, установленного функциями timeBeginPeriod и timeEndPeriod . Для измерения коротких интервалов времени с высокой точностью используйте функции QueryPerformanceCounter и QueryPerformanceFrequency .
Windows 95: Точность по умолчанию для функции timeGetTime составляет одну миллисекунду. Другими словами, функция timeGetTime может возвращать значения, отличающиеся друг от друга только на одну миллисекунду. И не имеет значения, были ли вызваны функции timeBeginPeriod и timeEndPeriod .
Требования
Windows NT /2000/ XP : Включена в Windows NT 3.1 и выше.
Windows 95/98/ Me : Включена в Windows 95 и выше.
Заголовок: Объявлена в Mmsystem.h ; подключать Windows.h .
Библиотека: Используйте Winmm.lib .
См . также
timeGetSystemTime , MMTIME, timeBeginPeriod , timeEndPeriod , QueryPerformanceCounter , QueryPerformanceFrequency .
TimeKillEvent
Функция timeKillEvent отменяет указанное событие таймера
MMRESULT timeKillEvent (
UINT uTimerID
);
Параметры
uTimerID ‑ идентификатор отменяемого события таймера. Этот идентификатор был возвращен функцией timeSetEvent , когда устанавливалось событие таймера.
Возвращаемые значения
Возвращается TIMERR_NOERROR в случае успеха или MMSYSERR_INVALPARAM, если указанное событие таймера не существует.
Требования
Windows NT /2000/ XP : Включена в Windows NT 3.1 и выше.
Windows 95/98/ Me : Включена в Windows 95 и выше.
Заголовок: Объявлена в Mmsystem.h ; подключать Windows.h.
Библиотека: Используйте Winmm.lib.
См . также
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 .
Выключение системы
LockWorkStation
Функция LockWorkStation отправляет запрос на блокировку дисплея рабочей станции. Блокирование рабочей станции защищает ее от несанкционированного использования.
BOOL LockWorkStation ( VOID );
Параметры
Функция не имеет параметров.
Возвращаемые значения
В случае успеха возвращается ненулевое значение. Поскольку функция выполняется асинхронно, ненулевое возвращаемое значение указывает, что операция была инициирована. Оно не указывает, была ли рабочая станция успешно заблокирована.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .
Комментарии
Общими причинами, по которым рабочая станция не может быть заблокирована, даже если вызов функции завершился успешно, могут быть: отсутствие вошедшего в систему пользователя, существующая блокировка рабочей станции, запущенность процесса не на интерактивном рабочем столе, отклонение запроса библиотекой графической идентификации и аутентификации (GINA DLL).
Вызов функции приводит к такому же результату, что и нажатие клавиш Ctrl + Alt + Del и щелчок по кнопке " Lock Workstation " ("Блокировка"). Для разблокирования рабочей станции пользователь должен войти в систему.
Требования
Windows NT /2000/ XP : Включена в Windows 2000 и выше.
Windows 95/98/Me: Не поддерживается .
Заголовок: Объявлена в Winuser.h; подключать Windows.h.
Библиотека: Используйте User32.lib.
Дата добавления: 2021-01-21; просмотров: 66; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!