Win32 API. Hooks (хуки)
Страница 15. Функция MessageProc


Функция MessageProc

(ПроцедураСообщения)

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

Синтаксис

LRESULT CALLBACK MessageProc
(
int code,// код hook-точки
WPARAM wParam,// не определен
LPARAM lParam// адрес структуры с данными сообщения
);

Параметры
code
Определяет тип события ввода, которое генерировало сообщение. Этот параметр может быть одним из следующих значений:

  • MSGF_DDEMGR - Произошло событие ввода, в то время как Библиотека Управления Динамического обмена данными (DDEML- Dynamic Data Exchange Management Library.) ожидала для окончания работы синхронизацию групповой операции (транзакции). Для получения дополнительной информации о DDEML, см. Библиотеку Управления Динамическим обменом данными.
  • MSGF_DIALOGBOX - Произошло событие ввода в окне сообщений или диалоговом окне.
  • MSGF_MENU - Произошло событие ввода в меню.
  • MSGF_NEXTWINDOW - Произошло событие ввода в результате нажима пользователем комбинации клавиш ALT+TAB, чтобы включить другое окно.
  • MSGF_SCROLLBAR - Произошло событие ввода в линейке прокрутки.

Если code является меньше чем нуль, подключаемая процедура должна передать сообщение в функцию CallNextHookEx без дальнейшей его обработки и должна возвратить значение, возвращенное CallNextHookEx.
wParam
Устанавливает значение ПУСТО (NULL).
lParam
Указывает на структуру MSG
.

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

Замечания
Прикладная программа устанавливает подключаемую процедуру, путем определения типа hook-точки как WH_MSGFILTER и ее адреса при вызове функции SetWindowsHookEx.
Если прикладная программа, которая использует DDEML и выполняет синхронные передачи данных, сообщения должны обрабатываться перед тем, как они распределены, она должна использовать hook-точку WH_MSGFILTER.
MessageProc - метка - заместитель для определяемого программой имени функции.

Смотри также
CallNextHookEx, SetWindowsHookEx, MSG

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

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотекаОпределется пользователем
Заголовочный файлwinuser.h
UnicodeНет
Замечания по платформеHOOKPROC

 
« Предыдущая статья   Следующая статья »