Процедура фильтра (hook) DebugProc - это определяемая программой или определяемая библиотекой функция повторного вызова, используемая функцией SetWindowsHookEx. Система вызывает эту функцию перед вызовом процедуры, связанной с каким-либо типом фильтра (hook). Система передает информацию о фильтре (hook) в вызываемую процедуру DebugProc, которая проверяет информацию и выясняет, давать ли возможность фильтру (hook) быть вызванным.
Тип HOOKPROC определяет указатель на эту функция повторного вызова. DebugProc - это имя - заместитель для определяемого программой или определяемого библиотекой имени функции.
Синтаксис
LRESULT CALLBACK DebugProc( int nCode, WPARAM wParam, LPARAM lParam ); |
Параметры
nCode
[in] Устанавливает, должна ли процедура фильтра (hook) обрабатывать сообщение. Если nCode - HC_ACTION, процедура фильтра (hook) должна обработать сообщение. Если nCode - меньше чем нуль, процедура фильтра (hook) должна передать сообщение в функцию CallNextHookEx без дальнейшей обработки и должна возвратить значение, возвращенное CallNextHookEx.wParam
[in] Устанавливает тип фильтра (hook), который собираются вызвать. Этим параметром может быть одно из ниже перечисленных значений.
Значение | Предназначение |
WH_CALLWNDPROC | Устанавливает процедуру фильтра (hook), которая осуществляет текущий контроль за сообщениями, отправленными оконной процедуре. Дополнительную информацию, см. в описании процедуры фильтра (hook) CallWndProc. |
WH_CALLWNDPROCRET | Устанавливает процедуру фильтра (hook), которая осуществляет текущий контроль за сообщениями, которые были только что обработаны оконной процедурой. Дополнительную информацию, см. в описании процедуры фильтра (hook) CallWndRetProc. |
WH_CBT | Устанавливает процедуру фильтра (hook), которая получает уведомления, полезные для приложений компьютерной тренировки (CBT). Дополнительную информацию, см. в описании процедуры фильтра (hook) CBTProc. |
WH_DEBUG | Устанавливает процедуру фильтра (hook), полезную для того, чтобы делать отладку других процедур фильтра (hook). Дополнительную информацию, см. в описании процедуры фильтра (hook) DebugProc. |
WH_GETMESSAGE | Устанавливает процедуру фильтра (hook), которая осуществляет текущий контроль за сообщениями, отправленными в очередь сообщений. Дополнительную информацию, см. в описании процедуры фильтра (hook) GetMsgProc. |
WH_JOURNALPLAYBACK | Устанавливает процедуру фильтра (hook), которая посылает сообщения, предварительно зарегистрированные процедурой фильтра (hook) WH_JOURNALRECORD. Дополнительную информацию, см. в описании процедуры фильтра (hook) JournalPlaybackProc. |
WH_JOURNALRECORD | Устанавливает процедуру фильтра (hook), которая фиксирует сообщения о вводе данных, помещенных в системную очередь сообщений. Этот фильтр (hook) полезен для того, чтобы сделать запись макроопределения. Дополнительную информацию, см. в описании процедуры фильтра (hook) JournalRecordProc. |
WH_KEYBOARD | Устанавливает процедуру фильтра (hook), которая осуществляет текущий контроль за сообщениями нажатия клавиши. Дополнительную информацию, см. в описании процедуры фильтра (hook) KeyboardProc. |
WH_MOUSE | Устанавливает процедуру фильтра (hook), которая осуществляет текущий контроль за сообщениями мыши. Дополнительную информацию, см. в описании процедуры фильтра (hook) MouseProc. |
WH_MSGFILTER | Устанавливает процедуру фильтра (hook), которая осуществляет текущий контроль за сообщениями, произведенными в результате события ввода данных в диалоговом окне, окне сообщения, меню или линейке прокрутки. Процедура фильтра (hook) осуществляет текущий контроль за этими сообщениями только для прикладной программы, которая устанавливала процедуру фильтра (hook). Дополнительную информацию, см. в описании процедуры фильтра (hook) MessageProc. |
WH_SHELL | Устанавливает процедуру фильтра (hook), которая получает уведомления, полезные в приложении Shell. Дополнительную информацию, см. в описании процедуры фильтра (hook) ShellProc и статье о фильтре (hook) WH_SHELL. |
WH_SYSMSGFILTER | Устанавливает процедуру фильтра (hook), которая осуществляет текущий контроль за сообщениями, произведенными в результате события ввода данных в диалоговом окне, окне сообщения, меню или линейке прокрутки. Процедура фильтра (hook) осуществляет текущий контроль за этими сообщениями для всех приложений в системе. Дополнительную информацию, см. в описании процедуры фильтра (hook) SysMsgProc. |
lParam
[in] Указатель на структуру DEBUGHOOKINFO, которая содержит параметры, передаваемые целевой процедуре фильтра (hook).Возвращаемое значение
Чтобы не дать системе вызывать фильтр (hook), процедура фильтра (hook) должна возвратить ненулевое значение. В противном случае, процедура фильтра (hook) должна вызвать CallNextHookEx.
Замечания
Приложение устанавливает эту процедуру фильтра (hook), определяя тип фильтра (hook) WH_DEBUG и указатель на процедуру фильтра (hook) при вызове функции SetWindowsHookEx.
Смотри также
Обзор Фильтр-процедуры (hooks) событий, Функции, используемые фильтрами (hook), CallNextHookEx, CallWndProc, CallWndRetProc, CBTProc, DEBUGHOOKINFO, GetMsgProc, JournalPlaybackProc, JournalRecordProc, KeyboardProc, MessageProc, MouseProc, SetWindowsHookEx, ShellProc, SysMsgProc
Размещение и совместимость DebugProc |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Нет |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |