Выбрать главу

LONG lParam // не используется

);

Параметры

code - определяет, должна ли функция-ловушка обработать сообщение. Если значение этого параметра HC_ACTION, то функция-ловушка должна обработать сообщение. Если значение этого параметра отрицательное, функция-ловушка должна передать сообщение функции CallNextHookEx без дальнейшей обработки и должна вернуть значение, возвращенное функцией CallNextHookEx .

wParam - не используется.

lParam - не используется.

Комментарии

Приложение устанавливает функцию-ловушку, указывая в качестве типа хука WH_FOREGROUNDIDLE и передавая указатель на функцию-ловушку в функцию SetWindowsHookEx .

ForegroundIdleProc является "заполнителем" для имени определяемой приложением функции.

См. также

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 и выше.