Функция GetMsgProc
Функция GetMsgProc - определяемая программой или определяемая библиотекой функция повторного вызова, используемая функцией SetWindowsHookEx. Система вызывает эту функцию всякий раз, когда функция GetMessage или PeekMessage извлекают сообщение из очереди сообщений прикладной программы. Перед возвращением извлеченного сообщения вызывающей программе, система передает сообщение в процедуру фильтра (hook).
Тип HOOKPROC определяет указатель на эту функцию повторного вызова. GetMsgProc - это имя - заместитель для определяемого программой или определяемого библиотекой имени функции.
Синтаксис
LRESULT CALLBACK GetMsgProc( int code, WPARAM wParam, LPARAM lParam ); |
Параметры
code
[in] Устанавливает, должна ли процедура фильтра (hook) обрабатывать сообщение. Если code - HC_ACTION, процедура фильтра (hook) должна обработать сообщение. Если code - меньше чем нуль, процедура фильтра (hook) должна передать сообщение в функцию CallNextHookEx без дальнейшей обработки и должна возвратить значение, возвращенное CallNextHookEx.wParam
[in] Устанавливает, было ли сообщение удалено из очереди. Этим параметром могут быть одно из ниже перечисленных значений.
Значение | Предназначение |
PM_NOREMOVE | Устанавливает, что сообщение не было удалено из очереди. (Приложение вызвало функцию PeekMessage, определяя флажок PM_NOREMOVE.) |
PM_REMOVE | Устанавливает, что сообщение было удалено из очереди. Прикладная программа вызвала GetMessage, или вызванная ею функция PeekMessage, определила флажок PM_REMOVE.) |
lParam
[in] Указатель на структуру MSG, которая содержит детали о сообщении.Возвращаемое значение
Если code - меньше чем нуль, процедура фильтра (hook) должна возвратить значение, возвращенное CallNextHookEx.
Если параметр code больше или равен нулю, очень рекомендуется, чтобы Вы вызвали CallNextHookEx и возвратили величину, которое она возвращает; в противном случае, другие прикладные программы, которые установили фильтр (hook) WH_GETMESSAGE, не будут получать уведомления фильтра и, в результате, могут повести себя неправильно. Если процедура фильтра (hook) не вызывает CallNextHookEx, возвращаемое значение должно быть нуль.
Замечания
Процедура фильтра (hook) GetMsgProc может проверить или изменить сообщение. После того, как процедура фильтра (hook) возвращает управление системе, функция GetMessage или PeekMessage возвращает сообщение, вместе с любыми изменениями, в приложение, которое первоначально вызвало процедуру.
Приложение устанавливает эту процедуру фильтра (hook), определяя тип фильтра как WH_GETMESSAGE и указатель на процедуру фильтра при вызове функции SetWindowsHookEx.
Смотри также
Обзор Фильтр-процедуры (hooks) событий, Функции, используемые фильтрами (hook), CallNextHookEx, GetMessage, MSG, PeekMessage, SetWindowsHookEx
Размещение и совместимость GetMsgProc |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Нет |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |