Функция SysMsgProc
Описание
Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookExA/SetWindowsHookExW . Система вызывает эту функцию после события ввода в диалоговом окне, окне сообщения, меню или полосе прокрутки, но до обработки сообщения, созданного событием ввода. Функция может отслеживать сообщения для любого диалогового окна, окна сообщения, меню или полосы прокрутки в системе.
Тип HOOKPROC определяет указатель на эту функцию обратного вызова. SysMsgProc — это заполнитель для имени функции, определяемой приложением или библиотекой.
LRESULT CALLBACK SysMsgProc(
_In_ int nCode,
WPARAM wParam,
_In_ LPARAM lParam
);
Параметры
nCode [in]
Тип: int
Тип входного события, создающего сообщение.
Если значение nCode меньше нуля, процедура перехватчика должна передать сообщение функции CallNextHookEx без дальнейшей обработки и возвращать значение, возвращаемое CallNextHookEx.
Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
MSGF_DIALOGBOX 0 | Входное событие произошло в окне сообщения или диалоговом окне. |
MSGF_MENU 2 | Входное событие произошло в меню. |
MSGF_SCROLLBAR 5 | Входное событие произошло на полосе прокрутки. |
wParam
Тип: WPARAM
Этот параметр не используется.
lParam [in]
Тип: LPARAM
Указатель на структуру сообщений MSG .
Возвращаемое значение
Тип: LRESULT
Если значение nCode меньше нуля, процедура перехватчика должна возвращать значение, возвращаемое CallNextHookEx.
Если nCode больше или равен нулю, а процедура перехватчика не обработала сообщение, настоятельно рекомендуется вызвать CallNextHookEx и вернуть возвращаемое значение; В противном случае другие приложения, которые установили WH_SYSMSGFILTER перехватчики, не будут получать уведомления о перехватчиках и в результате могут работать неправильно.
Если процедура перехватчика обработала сообщение, она может вернуть ненулевое значение, чтобы система не передала сообщение в процедуру целевого окна.
Комментарии
Приложение устанавливает процедуру перехватчика, указывая тип перехватчика WH_SYSMSGFILTER и указатель на процедуру перехватчика в вызове функции SetWindowsHookExASetWindowsHookExA /SetWindowsHookExW.