Win32 API. Hooks (хуки) - Функция CallWndProc

ОГЛАВЛЕНИЕ

Функция CallWndProc

(ВызовОконнойПроцедуры)

Подключаемая процедура CallWndProc -это определяемая программой или определенная библиотекой функция повторного вызова, которую система вызывает всякий раз, когда вызывается функция SendMessage. Перед передачей сообщения в целевую оконную процедуру, система передает сообщение в фильтр - процедуру. Подключаемая процедура может исследовать сообщение; она не может изменить его.

CallWndProc - метка - заместитель для определяемого программой или определенного библиотекой имени функции.

Синтаксис

LRESULT CALLBACK CallWndProc
(
int nCode, // код hook-точки
WPARAM wParam, // флажок текущей обработки
LPARAM lParam // адрес структуры с данными сообщения
);

Параметры
nCode
Определяет должна ли подключаемая процедура обрабатывать сообщение. Если nCode - HC_ACTION, фильтр - процедура должна обработать сообщение. Если nCode - меньше чем нуль, подключаемая процедура должна передать сообщение в функцию CallNextHookEx без дальнейшей обработки и должна возвратить значение, возвращенное CallNextHookEx.
wParam
Определяет, не отправлено ли сообщение текущим процессом. Если сообщение посылается текущим процессом, оно отлично от нуля; иначе, оно значение ПУСТО (NULL).
lParam
Указатель на структуру CWPSTRUCT, которая содержит подробности о сообщении.

Возвращаемые значения
Величина возвращаемого значения должна быть нуль.

Замечания
Подключаемая процедура CallWndProc может исследовать сообщение, но она не может изменить его. После того как фильтр - процедура возвратит управление системе, сообщение передается в оконную процедуру.
Прикладная программа устанавливает подключаемую процедуру, определяя тип hook-точки WH_CALLWNDPROC и адрес фильтр - процедуры при вызове функции SetWindowsHookEx.
Hook-точка WM_CALLWNDPROC вызывается в контексте потока, который вызывает SendMessage, а не потока, который принимает сообщение.

Смотри также
CallNextHookEx, CWPSTRUCT, SendMessage, SetWindowsHookEx

Размещение и совместимость CallWndProc

Windows NT				Да 
Win95 Да
Win32s Да
Импортируемая библиотека Определенная пользователем
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе HOOKPROC