Win32 API. Hooks (хуки) - Функция DebugProc
ОГЛАВЛЕНИЕ
Функция DebugProc
(ПроцедураОтладки)
Подключаемая процедура DebugProc - определяемая программой или определенная библиотекой функция повторного вызова, к которой Windows обращается перед вызовом фильтр - процедур, связанных с любым другим типом hook-точки. Система передает информацию о hook-точке, которая будет вызвана, подключаемой процедуре DebugProc, которая исследует эту информацию и решает, позволить ли hook-точке быть вызванной.
Синтаксис
LRESULT CALLBACK DebugProc
(
int nCode, // код hook-точки
WPARAM wParam, // тип hook-точки,собирающейся быть вызванной
LPARAM lParam // адрес структуры с информацией об отладке
);
Параметры
nCode
Определяет, должна ли подключаемая процедура обрабатывать сообщение. Если nCode - HC_ACTION, фильтр - процедура должна обработать сообщение. Если nCode - меньше чем нуль, подключаемая процедура должна передать сообщение в функцию CallNextHookEx без дальнейшей обработки и должна возвратить значение, возвращенное CallNextHookEx.
wParam
Определяет тип hook-точки, собирающейся быть вызванной. Этот параметр может быть одним из следующих значений:
- WH_CALLWNDPROC - Устанавливает подключаемую процедуру, которая отслеживает сообщения, отправленные оконной процедуре. Для получения дополнительной информации, см. описание фильтр - процедуры CallWndProc.
- WH_CALLWNDPROCRET - Устанавливает подключаемую процедуру, которая отслеживает сообщения, которые только что были обработаны оконной процедурой. Для получения дополнительной информации, см. описание фильтр - процедуры CallWndRetProc.
- WH_CBT - Устанавливает подключаемую процедуру, которая принимает уведомления, полезные для машинной подготовки (CBT) прикладной программы. Для получения дополнительной информации, см. описание подключаемой процедуры CBTProc.
- WH_DEBUG - Устанавливает фильтр - процедуру, полезную для отладки других подключаемых процедур. Для получения дополнительной информации, см. описание подключаемой процедуры DebugProc.
- WH_GETMESSAGE - Устанавливает подключаемую процедуру, которая отслеживает сообщения, задержанные в очереди сообщений. Для получения дополнительной информации, см. описание фильтр - процедуры GetMsgProc.
- WH_JOURNALPLAYBACK - Устанавливает подключаемую процедуру, которая регистрирует сообщения, предварительно записанные фильтр - процедурой WH_JOURNALRECORD. Для получения дополнительной информации, см. описание подключаемой процедуры JournalPlaybackProc.
- WH_JOURNALRECORD - Устанавливает подключаемую процедуру, которая заносит в список входящие сообщения, зарегистрированные в системной очереди сообщений. Эта hook-точка полезна для записи макрокоманд. Для получения дополнительной информации, см. описание подключаемой процедуры JournalRecordProc.
- WH_KEYBOARD - Устанавливает подключаемую процедуру, которая отслеживает сообщения о нажатиях клавиш. Для получения дополнительной информации, см. описание фильтр - процедуры KeyboardProc.
- WH_MOUSE - Устанавливает подключаемую процедуру, которая отслеживает сообщения мыши. Для получения дополнительной информации, см. описание фильтр - процедуры MouseProc.
- WH_MSGFILTER - Устанавливает подключаемую процедуру, которая отслеживает сообщения, сгенерированные в результате события ввода данных в диалоговом окне, окне сообщений, меню или в линейке прокрутки. Фильтр - процедура отслеживает эти сообщения только для прикладной программы, которая установила подключаемую процедуру. Для получения дополнительной информации, см. описание фильтр - процедуры MessageProc.
- WH_SHELL - Устанавливает подключаемую процедуру, которая принимает уведомление полезное для оболочки прикладной программы. Для получения дополнительной информации, см. описание фильтр - процедуры ShellProc.
- WH_SYSMSGFILTER - Устанавливает подключаемую процедуру, которая отслеживает сообщения, сгенерированные в результате события ввода данных в блоке диалога, окне сообщений, меню, или линейке прокрутки. Подключаемая процедура контролирует эти сообщения для всех прикладных программ в системе. Для получения дополнительной информации, см. описание подключаемой процедуры SysMsgProc.
lParam
Указывает на структуру DEBUGHOOKINFO, которая содержит параметры для передачи в подключаемую процедуру назначения.
Возвращаемые значения
Чтобы предохранить систему от вызова hook-точки, величина возвращаемого значения должна быть значением отличным от нуля. Иначе, подключаемая процедура должна передать информацию hook-точки в функцию CallNextHookEx.
Замечания
Прикладная программа устанавливает эту подключаемую процедуру, при помощи определения типа hook-точки как WH_DEBUG и указателя на фильтр - процедуру при вызове функции SetWindowsHookEx.
CallWndProc и CallWndRetProc - метки - заместители для определяемых программой или определенных библиотекой имен функции.
Смотри также
CallNextHookEx, CallWndProc, CallWndRetProc, CBTProc, DEBUGHOOKINFO, GetMsgProc, JournalPlaybackProc, JournalRecordProc, KeyboardProc, MessageProc, MouseProc, SetWindowsHookEx, ShellProc, SysMsgProc
Размещение и совместимость DebugProc
Windows NT Да
Win95 Нет
Win32s Нет
Импортируемая библиотека Определенная пользователем
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе HOOKPROC