Фильтр WH_DEBUG
Приведем прототип функции фильтра типа WH_DEBUG :
LRESULT CALLBACK DebugProc( int code, // код действия WPARAM wParam, // идентификатор задачи LPARAM lParam); // адрес структуры DEBUGHOOKINFO
Фильтр WH_DEBUG предназначен для отладчиков и должен находиться в DLL-библиотеке. Он вызывается перед вызовом других фильтров, установленных функцией SetWindowsHookEx.
Параметр wParam содержит идентификатор задачи, которая установила фильтр.
Параметр lParam содержит дальний указатель на структуру DEBUGHOOKINFO :
typedef struct tagDEBUGHOOKINFO { HMODULE hModuleHook; LPARAM reserved; LPARAM lParam; WPARAM wParam; int code; } DEBUGHOOKINFO;
В этой структуре в поле hModuleHook находится идентификатор модуля, содержащего функцию фильтра, поля lParam, wParam, code содержат параметры, передаваемые функции фильтра. Поле reserved не используется.
Функция фильтра типа WH_DEBUG может предотвратить вызов другого фильтра, для чего она должна возвратить значение TRUE. Если она вернет FALSE, управление будет передано соответствующему фильтру.