Функция GetMsgProc

-Описание

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

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

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

-Параметры

код [in]

Тип: int

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

wParam [in]

Тип: WPARAM

Указывает, удалено ли сообщение из очереди. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
PM_NOREMOVE 0x0000 Сообщение не было удалено из очереди. (Приложение называется Функция PeekMessage , указывающая флаг PM_NOREMOVE .)
PM_REMOVE 0x0001 Сообщение было удалено из очереди. (Вызываемое приложениеGetMessage или вызывает функцию PeekMessage, указав флаг PM_REMOVE.)

lParam [in]

Тип: LPARAM

Указатель на структуру MSG , содержащую сведения о сообщении.

-Возвращает

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

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

-Замечания

Процедура перехватчика GetMsgProc может проверять или изменять сообщение.

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

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

См. также

CallNextHookEx

GetMessage

MSG

PeekMessage

SetWindowsHookEx

Обработчики