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