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