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

Размещение и совместимость GetMsgProc

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Нет

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz