GetMsgProc 함수
SetWindowsHookExA/SetWindowsHookExW 함수와 함께 사용되는 애플리케이션 정의 또는 라이브러리 정의 콜백 함수입니다. GetMessage 또는 PeekMessageA/ PeekMessageW 함수가 애플리케이션 메시지 큐에서 메시지를 검색할 때마다 시스템에서 이 함수를 호출합니다. 검색된 메시지를 호출자에게 반환하기 전에 시스템은 메시지를 후크 프로시저에 전달합니다.
HOOKPROC 형식은 이 콜백 함수에 대한 포인터를 정의합니다. GetMsgProc 는 애플리케이션 정의 또는 라이브러리 정의 함수 이름의 자리 표시자입니다.
LRESULT CALLBACK GetMsgProc(
_In_ int code,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
형식: int
후크 프로시저에서 메시지를 처리해야 하는지 여부를 지정합니다. 코드가 HC_ACTION 후크 프로시저는 메시지를 처리해야 합니다. 코드가 0보다 작은 경우 후크 프로시저는 추가 처리 없이 CallNextHookEx 함수에 메시지를 전달해야 하며 CallNextHookEx에서 반환된 값을 반환해야 합니다.
형식: WPARAM
메시지가 큐에서 제거되었는지 여부를 지정합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
PM_NOREMOVE 0x0000 | 메시지가 큐에서 제거되지 않았습니다. (라는 애플리케이션PM_NOREMOVE 플래그를 지정하는 PeekMessage 함수입니다.) |
PM_REMOVE 0x0001 | 메시지가 큐에서 제거되었습니다. (호출 된 애플리케이션GetMessage 또는 PeekMessage 함수를 호출하여 PM_REMOVE 플래그를 지정합니다.) |
형식: LPARAM
메시지에 대한 세부 정보가 포함된 MSG 구조체에 대한 포인터입니다.
코드가 0보다 작은 경우 후크 프로시저는 CallNextHookEx에서 반환된 값을 반환해야 합니다.
코드가 0보다 크거나 같으면 CallNextHookEx를 호출하고 반환하는 값을 반환하는 것이 좋습니다. 그렇지 않으면 WH_GETMESSAGE 후크를 설치한 다른 애플리케이션은 후크 알림을 받지 않으며 결과적으로 잘못 동작할 수 있습니다. 후크 프로시저가 CallNextHookEx를 호출하지 않는 경우 반환 값은 0이어야 합니다.
GetMsgProc 후크 프로시저는 메시지를 검사하거나 수정할 수 있습니다.
후크 프로시저가 시스템에 컨트롤을 반환한 후 GetMessage 또는 PeekMessageA/PeekMessageW 함수는 수정 사항과 함께 메시지를 원래 호출한 애플리케이션에 반환합니다.
애플리케이션은 SetWindowsHookExA/SetWindowsHookExW 함수에 대한 호출에서 후크 프로시저에 대한 포인터와 WH_GETMESSAGE 후크 유형을 지정하여 이 후크 프로시저를 설치합니다.