Функция LowLevelMouseProc


Процедура фильтра (hook) LowLevelMouseProc - определяемая программой или определяемая библиотекой функция повторного вызова, используемая функцией SetWindowsHookEx. Система вызывает эту функцию каждый раз, когда собирается вставить новое событие ввода от мыши в очередь ввода данных потока. Ввод от мыши может исходить от локального драйвера мыши или от вызовов функции mouse_event. Если ввод данных исходит из вызова mouse_event, ввод данных  "вставляется". Однако, фильтр (hook) WH_MOUSE_LL не вставляется в другой процесс. Вместо этого, контекст переключается обратно в процесс, который устанавливал фильтр (hook), и  вызывается в его первоначальном контексте. Затем контекст переключается обратно в приложение, которое создало событие. 

Тип HOOKPROC определяет указатель на эту функцию повторного вызова. LowLevelMouseProc - это имя - заместитель для определяемого программой или определяемого библиотекой имени функции.

 Синтаксис

LRESULT CALLBACK LowLevelMouseProc(      
    int nCode,
    WPARAM wParam,
    LPARAM lParam
);

Параметры

nCode

[in] Устанавливает код использования процедуры фильтра (hook), чтобы решить, как обработать сообщение. Если nCode - меньше чем нуль, процедура фильтра (hook) должна переправить сообщение в функцию CallNextHookEx без дальнейшей обработки и должна возвратить значение, возвращенное CallNextHookEx. Этим параметром может быть одно из ниже перечисленных значений.
Значение Предназначение
HC_ACTION Параметры wParam и lParam  содержат информацию о сообщении мыши.
 

wParam

[in] Устанавливает идентификатор сообщения мыши. Этим параметром может быть одно из ниже перечисленных сообщений: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN или WM_RBUTTONUP.

lParam

[in] Указатель на структуру MSLLHOOKSTRUCT.

Возвращаемое значение

Если nCode - меньше чем нуль, процедура фильтра (hook) должна возвратить значение, возвращенное CallNextHookEx.

Если nCode больше или равен нулю, а процедура фильтра (hook) не обрабатывала сообщение, очень рекомендуется, чтобы Вы вызвали CallNextHookEx и возвратили значение, которое она возвращает; в противном случае, другие прикладные программы, которые установили фильтры (hook) WH_MOUSE_LL, не будут получать уведомления фильтра (hook) и, в результате, могут повести себя неправильно. Если процедура фильтра (hook) обрабатывала сообщение, она может возвратить ненулевое значение, чтобы воспрепятствовать системе передавать сообщение в остальную часть цепочки фильтра (hook) или в целевую оконную процедуру.

Замечания

Приложение устанавливает процедуру фильтра (hook), определяя тип фильтра как WH_MOUSE_LL и указатель на процедуру фильтра при вызове функция SetWindowsHookEx.

Этот фильтр (hook) вызывается в контексте потока, который устанавливал его. Вызов делается при помощи отправки сообщения в поток, который устанавливал фильтр (hook). Поэтому, поток, который устанавливал фильтр, должен иметь цикл обработки сообщений.

Процедура фильтра (hook) должна обработать сообщение скорее, чем ввод  данных, указанных в значении LowLevelHooksTimeout в следующем ниже ключе системного реестра:

HKEY_CURRENT_USER  \Control Panel  \Desktop

Значение исчисляется в миллисекундах. Если процедура фильтра (hook) не возвращает значение в течение этого интервала, система переправит сообщение в следующий фильтр (hook).

Обратите внимание! на то, что отладочные фильтры не могут отслеживать  этот тип фильтра (hook).

Смотри также

Обзор Фильтр-процедуры (hooks) событий, Функции, используемые фильтрами (hook),   CallNextHookEx mouse_event MSLLHOOKSTRUCTSetWindowsHookExWH_MOUSE_LL WM_LBUTTONDOWNWM_LBUTTONUP WM_MOUSEMOVE WM_MOUSEWHEELWM_RBUTTONDOWN WM_RBUTTONUP

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

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 4.0 SP3 и выше

Windows Me

Нет

Windows 98

Нет

Windows 95

Нет

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

Нет

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

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

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

Не имеется

 

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

Hosted by uCoz