Фильтр WH_JOURNALRECORD
Фильтр WH_JOURNALRECORD вызывается, когда Windows удаляет сообщения из системной очереди. Функция фильтра должна находиться в DLL-библиотеке.
Приведем прототип функции фильтра типа WH_JOURNALRECORD:
LRESULT CALLBACK JournalRecordProc( int code, // код действия WPARAM wParam, // содержит NULL LPARAM lParam); // адрес структуры EVENTMSG
Данный фильтр предназначен для записи перехваченных сообщений в память или файл. Он не может изменять или удалять сообщения из системной очереди.
Параметр code может принимать одно из трех значений:
Значение параметра code | Описание |
HC_ACTION | Windows извлекает сообщение из системной очереди |
HC_SYSMODALON | Windows выводит на экран системную модальную диалоговую панель. Начиная с этого момента приложение должно остановить запись сообщений |
HC_SYSMODALOFF | Windows удаляет системную модальную диалоговую панель, так что теперь можно продолжить запись сообщений |
Структура EVENTMSG описана в файле windows.h:
typedef struct tagEVENTMSG { UINT message; UINT paramL; UINT paramH; DWORD time; } EVENTMSG;