Функция MessageProc

Описание

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

Тип HOOKPROC определяет указатель на эту функцию обратного вызова. MessageProc — это заполнитель для имени определяемой приложением или библиотекой функции.

LRESULT CALLBACK MessageProc(
  _In_ int    code,
       WPARAM wParam,
  _In_ LPARAM lParam
);

Параметры

code [in]

Тип: int

Тип входного события, создающего сообщение.

Если код меньше нуля, процедура перехватчика должна передать сообщение функции CallNextHookEx без дальнейшей обработки и вернуть значение, возвращаемое CallNextHookEx.

Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
0x8001 MSGF_DDEMGR Входное событие произошло в то время, когда библиотека управления динамическими данными (DDEML) ждала завершения синхронной транзакции. Дополнительные сведения о DDEML см. в статье Библиотека управления Динамическим обменом данными.
MSGF_DIALOGBOX 0 Входное событие произошло в окне сообщения или диалоговом окне.
MSGF_MENU 2 Входное событие произошло в меню.
MSGF_SCROLLBAR 5 Входное событие произошло в полосе прокрутки.

wParam

Тип: WPARAM

Этот параметр не используется.

lParam [in]

Тип: LPARAM

Указатель на структуру MSG .

Возвращаемое значение

Тип: LRESULT

Если код меньше нуля, процедура перехватчика должна возвращать значение, возвращенное CallNextHookEx.

Если код больше или равен нулю, а процедура перехватчика не обработала сообщение, настоятельно рекомендуется вызвать CallNextHookEx и вернуть возвращаемое значение. В противном случае другие приложения, которые установили WH_MSGFILTER перехватчиков, не будут получать уведомления о перехватчиках и могут работать неправильно. Если процедура перехватчика обработала сообщение, она может вернуть ненулевое значение, чтобы система не передала сообщение в остальную часть цепочки перехватчиков или в процедуру целевого окна.

Комментарии

Приложение устанавливает процедуру перехватчика, указывая тип перехватчика WH_MSGFILTER и указатель на процедуру перехватчика в вызове функции SetWindowsHookExA/SetWindowsHookExW .

Если приложение, использующее DDEML и выполняющее синхронные транзакции, должно обрабатывать сообщения перед их отправкой, оно должно использовать перехватчик WH_MSGFILTER .

См. также раздел

CallNextHookEx

SetWindowsHookEx

MSG

Обработчики