Операционная система Microsoft Windows 3.1 для программиста -том 3


Установка фильтра - часть 3


В приведенном ниже фрагменте кода, взятом из приложения WINHOOK, устанавливается фильтр для сообщений, поступающих во все приложения от клавиатуры:

hhook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KbHookProc, hInst, NULL);

Исходный текст функции фильтра приведен (с сильными сокращениями) ниже:

extern "C" LRESULT CALLBACK KbHookProc(int code, WPARAM wParam, LPARAM lParam) { ... ... ... // Вызываем следующий в цепочке перехватчик return CallNextHookEx(hhook, code, wParam, lParam); }

После выполнения всех необходимых действий функция фильтра передает управление по цепочке другим фильтрам (что необязательно). Для этого вызывается функция CallNextHookEx :

LRESULT WINAPI CallNextHookEx( HHOOK hHook, int code, WPARAM wParam, LPARAM lParam);

Параметр hHook содержит идентификатор текущей функции фильтра.

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

Параметры wParam и lParam содержат, соответственно, 16- и 32-битовый дополнительные параметры.

Параметры code, wParam и lParam функции CallNextHookEx полностью соответствуют параметрам функции фильтра, которая будет рассмотрена нами позже.




Начало  Назад  Вперед



Книжный магазин