Обработчики

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

В этом разделе

Имя Описание
Общие сведения о перехватчике Описывает, как следует использовать перехватчики.
Использование перехватчиков Демонстрирует выполнение задач, связанных с перехватчиками.
Справочник по перехватчику Содержит ссылку на API.

Функции-перехватчики

Имя Описание
CallMsgFilter Передает указанное сообщение и код перехватчика в процедуры перехватчика, связанные с WH_SYSMSGFILTER и WH_MSGFILTER процедурами перехватчика.
CallNextHookEx Передает сведения о перехватчике в следующую процедуру перехватчика в текущей цепочке перехватчиков. Процедура перехватчика может вызывать эту функцию до или после обработки сведений о перехватчике.
CallWndProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию перед вызовом процедуры окна для обработки сообщения, отправленного в поток.
CallWndRetProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию после вызова функции SendMessage . Процедура перехватчика может проверить сообщение; он не может изменить его.
CBTProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию перед активацией, созданием, уничтожением, минимизацией, максимизированием, перемещением или изменением размера окна; перед выполнением системной команды; перед удалением события мыши или клавиатуры из очереди системных сообщений; перед установкой фокуса клавиатуры; или перед синхронизацией с очередью системных сообщений. Приложение для компьютерного обучения (CBT) использует эту процедуру перехватчика для получения полезных уведомлений от системы.
DebugProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию перед вызовом процедур перехватчика, связанных с любым типом перехватчика. Система передает сведения о перехватчике для вызова в процедуру перехватчика DebugProc , которая проверяет эти сведения и определяет, следует ли вызывать перехватчик.
ForegroundIdleProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию всякий раз, когда поток переднего плана находится в состоянии простоя.
GetMsgProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию всякий раз, когда функция GetMessage или PeekMessage извлекает сообщение из очереди сообщений приложения. Перед возвратом полученного сообщения вызывающей стороны система передает сообщение в процедуру перехватчика.
JournalPlaybackProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Как правило, приложение использует эту функцию для воспроизведения ряда сообщений мыши и клавиатуры, записанных ранее процедурой перехватчика JournalRecordProc . Если установлен обработчик JournalPlaybackProc , обычный ввод с помощью мыши и клавиатуры отключен.
JournalRecordProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Функция записывает сообщения, которые система удаляет из очереди системных сообщений. Позже приложение может использовать процедуру перехватчика JournalPlaybackProc для воспроизведения сообщений.
KeyboardProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию всякий раз, когда приложение вызывает функцию GetMessage или PeekMessage и появляется сообщение клавиатуры (WM_KEYUP или WM_KEYDOWN) для обработки.
LowLevelKeyboardProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию каждый раз, когда новое событие ввода с клавиатуры должно быть помещено в очередь ввода потока.
LowLevelMouseProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию каждый раз, когда новое событие ввода мыши должно быть помещено в очередь входных данных потока.
MessageProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию после события ввода в диалоговом окне, окне сообщения, меню или полосе прокрутки, но до обработки сообщения, созданного событием ввода. Процедура перехватчика позволяет отслеживать сообщения для диалогового окна, окна сообщения, меню или полосы прокрутки, созданных определенным приложением или всеми приложениями.
MouseProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию всякий раз, когда приложение вызывает функцию GetMessage или PeekMessage и появляется сообщение мыши, которое необходимо обработать.
SetWindowsHookEx Устанавливает определяемую приложением процедуру перехватчика в цепочку перехватчиков. Необходимо установить процедуру перехватчика для мониторинга системы на предмет определенных типов событий. Эти события связаны либо с определенным потоком, либо со всеми потоками на том же рабочем столе, что и вызывающий поток.
ShellProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Функция получает уведомления о событиях оболочки из системы.
SysMsgProc Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookEx . Система вызывает эту функцию после события ввода в диалоговом окне, окне сообщения, меню или полосе прокрутки, но до обработки сообщения, созданного событием ввода. Функция может отслеживать сообщения для любого диалогового окна, окна сообщения, меню или полосы прокрутки в системе.
UnhookWindowsHookEx Удаляет процедуру перехватчика, установленную в цепочке перехватчиков функцией SetWindowsHookEx .

Уведомления перехватчика

Имя Описание
WM_CANCELJOURNAL Публикуется в приложении, когда пользователь отменяет действия приложения в журнале. Сообщение публикуется с дескриптором окна NULL .
WM_QUEUESYNC Отправляется приложением CBT, чтобы отделить вводимые пользователем сообщения от других сообщений, отправленных с помощью процедуры WH_JOURNALPLAYBACK .

Структуры перехватчиков

Имя Описание
CBT_CREATEWND Содержит сведения, передаваемые WH_CBT процедуре перехватчика CBTProc перед созданием окна.
CBTACTIVATESTRUCT Содержит сведения, передаваемые WH_CBT процедуре перехватчика CBTProc перед активацией окна.
CWPRETSTRUCT Определяет параметры сообщения, передаваемые WH_CALLWNDPROCRET процедуре перехватчика CallWndRetProc.
CWPSTRUCT Определяет параметры сообщения, передаваемые WH_CALLWNDPROC процедуре перехватчика CallWndProc.
DEBUGHOOKINFO Содержит сведения об отладке, передаваемые WH_DEBUG процедуре перехватчика DebugProc.
EVENTMSG Содержит сведения об аппаратном сообщении, отправляемом в очередь системных сообщений. Эта структура используется для хранения сведений о сообщениях функции обратного вызова JournalPlaybackProc .
KBDLLHOOKSTRUCT Содержит сведения о низкоуровневом событии ввода с помощью клавиатуры.
MOUSEHOOKSTRUCT Содержит сведения о событии мыши, переданном в процедуру перехватчика WH_MOUSEMouseProc.
MOUSEHOOKSTRUCTEX Содержит сведения о событии мыши, переданном в процедуру перехватчика WH_MOUSEMouseProc.
MSLLHOOKSTRUCT Содержит сведения о низкоуровневом событии ввода мыши.

SetWinEventHook