Функция 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.