JournalRecordProc жби

WinApi Функция JournalRecordProc

Описание:
Function JournalRecordProc (nCode:integer; wParam, LPARAM:Longint):Longint;

Процедура ловушки JournalRecordProc жби - функция обратного вызова, которая записывает сообщения, а система удаляет их из очереди. Позже, приложение может использовать процедуру ловушки JournalPlaybackProc, чтобы воспроизвести записанные сообщения.

Параметры:
nCode: Определяет, как обработать сообщение. Этот параметр может иметь одно из следующих значений:

HC_ACTION - LParam указывает на структуру TEventMsg, содержащую информацию относительно сообщения, удаленного из системной очереди сообщений. Процедура ловушки должна записать содержанимое структуры, копируя их в свой буфер или файл.
HC_SYSMODALOFF - Системно-модальное диалоговое окно было разрушено. Процедура ловушки должна продолжить к запись.
HC_SYSMODALON - Системно-модальное диалоговое окно отображается. Пока диалоговое окно не разрушено, процедура ловушки должна прекратить делать запись.

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

WParam: Должно иметь значение NULL.

LParam: Указатель на структуру TEventMsg, которая содержит информацию о сообщении, которую нужно записать.

Возвращаемые значения
Возвращаемое значение игнорируется.

Замечания
Процедура ловушки JournalRecordProc должна копировать, но не изменять сообщения. После возврата управления системе, сообщение продолжает обрабатываться.

Приложение устанавливает процедуру ловушки JournalRecordProc, определяя тип ловушки WH_JOURNALRECORD и адрес процедуры ловушки обращаясь к функции SetWindowsHookEx.
Win32 ловушка JournalRecordProc не должна располагаться в DLL. Win32 JournalRecordProc можно располагать только непосредственно в приложении.
В отличие от большинства других глобальных процедур ловушк, JournalRecordProc и JournalPlaybackProc всегда вызываются контекстом нити, которая устанавливает ловушку.

Приложение, которое установило ловушку JournalRecordProc, должно наблюдать за VK_CANCEL виртуальный keycode (который определен как CTR +Break на большинстве клавиатур). Этот виртуальный keycode должен быть проинтерпретирован приложением как сигнал, что пользователь хочет останавливаться запись журнала. Приложение должно отреагировать на останов, заканчивая запись и удаление процедуры ловушки JournalRecordProc. Удаление важно. Это предотвращает приложение, записывающее журнал событий от зависания система, приводя к останову внутри процедуры ловушки.

Это как сигнал, чтобы остановить запись журнала, так что CTRL+Break не может быть записан обычным методом. Начиная с CTRL+C комбинация не имеет никакой роли как сигнал для контроля записи, следовательно, могут быть записаны. Имеются две других комбинации клавиш, которые не могут быть записаны: CTR +ESC и CTRL ALT+DEL. Те две комбинации клавиш заставляют систему останавливать все записывающие действия, удалять все ловушки (journaling), и посылать сообщение WM_CANCELJOURNAL к записывающему приложению.

Материал взят из:
Русская спpавка по Windows API



Последние из рубрики

ОтменитьДобавить комментарий