다음을 통해 공유


JournalRecordProc 함수

설명

SetWindowsHookEx 함수와 함께 사용되는 애플리케이션 정의 또는 라이브러리 정의 콜백 함수입니다. 함수는 시스템이 시스템 메시지 큐에서 제거한 메시지를 기록합니다. 나중에 애플리케이션은 JournalPlaybackProc 후크 프로시저를 사용하여 메시지를 재생할 수 있습니다.

HOOKPROC 형식은 이 콜백 함수에 대한 포인터를 정의합니다. JournalRecordProc 는 애플리케이션 정의 또는 라이브러리 정의 함수 이름의 자리 표시자입니다.

LRESULT CALLBACK JournalRecordProc(
  _In_ int    code,
       WPARAM wParam,
  _In_ LPARAM lParam
);

매개 변수

코드 [in]

형식: int

메시지를 처리하는 방법을 지정합니다. 코드가 0보다 작은 경우 후크 프로시저는 추가 처리 없이 CallNextHookEx 함수에 메시지를 전달해야 하며 CallNextHookEx에서 반환된 값을 반환해야 합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
HC_ACTION 0 lParam 매개 변수는 시스템 큐에서 제거된 메시지에 대한 정보를 포함하는 EVENTMSG 구조체에 대한 포인터입니다. 후크 프로시저는 버퍼 또는 파일에 복사하여 구조체의 내용을 기록해야 합니다.
HC_SYSMODALOFF 5 시스템 모달 대화 상자가 제거되었습니다. 후크 프로시저는 기록을 다시 시작해야 합니다.
HC_SYSMODALON 4 시스템 모달 대화 상자가 표시됩니다. 대화 상자가 제거될 때까지 후크 프로시저는 기록을 중지해야 합니다.

wParam

형식: WPARAM

이 매개 변수는 사용되지 않습니다.

lParam [in]

형식: LPARAM

기록할 메시지를 포함하는 EVENTMSG 구조체에 대한 포인터입니다.

반환

형식: LRESULT

반환 값은 무시됩니다.

설명

JournalRecordProc 후크 프로시저는 메시지를 복사해야 하지만 수정하지 않아야 합니다. 후크 프로시저가 시스템에 컨트롤을 반환하면 메시지가 계속 처리됩니다.

SetWindowsHookEx 함수 호출에서 WH_JOURNALRECORD 형식 및 후크 프로시저에 대한 포인터를 지정하여 JournalRecordProc 후크 프로시저를 설치합니다.

JournalRecordProc 후크 프로시저는 동적 링크 라이브러리에 거주할 필요가 없습니다. JournalRecordProc 후크 프로시저는 애플리케이션 자체에 적용할 수 있습니다.

대부분의 다른 전역 후크 프로시저와 달리 JournalRecordProcJournalPlaybackProc 후크 프로시저는 항상 후크를 설정하는 스레드의 컨텍스트에서 호출됩니다.

JournalRecordProc 후크 프로시저를 설치한 애플리케이션은 VK_CANCEL 가상 키 코드(대부분의 키보드에서 Ctrl+BREAK 키 조합으로 구현됨)에 대해 watch 합니다. 이 가상 키 코드는 사용자가 저널 기록을 중지하려는 신호로 애플리케이션에서 해석해야 합니다. 애플리케이션은 기록 시퀀스를 종료하고 JournalRecordProc 후크 프로시저를 제거하여 응답해야 합니다. 제거가 중요합니다. 저널링 애플리케이션이 후크 프로시저 안에 매달려 시스템을 잠그는 것을 방지합니다.

journl 기록을 중지하는 신호로서의 이 역할은 Ctrl+BREAK 키 조합 자체를 기록할 수 없음을 의미합니다. Ctrl+C 키 조합에는 저널링 신호와 같은 역할이 없으므로 기록할 수 있습니다. 기록할 수 없는 다른 두 가지 키 조합은 Ctrl+ESC 및 Ctrl+Alt+DEL입니다. 이러한 두 가지 주요 조합으로 인해 시스템은 모든 저널링 활동(기록 또는 재생)을 중지하고, 모든 저널링 후크를 제거하고, 저널링 애플리케이션에 WM_CANCELJOURNAL 메시지를 게시합니다.

추가 정보

CallNextHookEx

EVENTMSG

JournalPlaybackProc

SetWindowsHookEx

WM_CANCELJOURNAL

후크