ShellProc 함수

Description

SetWindowsHookExA SetWindowsHookExW함수와 함께 사용되는 애플리케이션 정의 또는 라이브러리 정의 콜백 함수입니다./ 함수는 시스템에서 Shell 이벤트에 대한 알림을 받습니다.

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

LRESULT CALLBACK ShellProc(
  _In_ int    nCode,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

매개 변수

nCode [in]

형식: int

후크 코드입니다.

nCode가 0보다 작은 경우 후크 프로시저는 추가 처리 없이 CallNextHookEx 함수에 메시지를 전달해야 하며 CallNextHookEx에서 반환된 값을 반환해야 합니다.

이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
HSHELL_ACCESSIBILITYSTATE 11 접근성 상태가 변경되었습니다.
HSHELL_ACTIVATESHELLWINDOW 3 셸은 기본 창을 활성화해야 합니다.
HSHELL_APPCOMMAND 12 사용자가 입력 이벤트(예: 마우스의 애플리케이션 명령 단추 또는 키보드의 애플리케이션 명령 키를 누름)를 완료했으며 애플리케이션은 해당 입력에서 생성된 WM_APPCOMMAND 메시지를 처리하지 않았습니다. Shell 프로시저가 WM_COMMAND 메시지를 처리하는 경우 CallNextHookEx를 호출하면 안 됩니다. 자세한 내용은 반환 값 섹션을 참조하세요.
HSHELL_GETMINRECT 5 창이 최소화되거나 최대화되고 있습니다. 시스템에는 창에 대해 최소화된 사각형의 좌표가 필요합니다.
HSHELL_LANGUAGE 8 키보드 언어가 변경되었거나 새 키보드 레이아웃이 로드되었습니다.
HSHELL_REDRAW 6 작업 표시줄의 창 제목이 다시 그려졌습니다.
HSHELL_TASKMAN 7 사용자가 작업 목록을 선택했습니다. 작업 목록을 제공하는 셸 애플리케이션은 Windows가 작업 목록을 시작하지 못하도록 TRUE 를 반환해야 합니다.
HSHELL_WINDOWACTIVATED 4 활성화가 소유되지 않은 다른 최상위 창으로 변경되었습니다.
HSHELL_WINDOWCREATED 1 소유하지 않은 최상위 창이 만들어졌습니다. 시스템이 이 후크를 호출할 때 창이 존재합니다.
HSHELL_WINDOWDESTROYED 2 최상위 수준, 소유하지 않은 창이 제거될 예정입니다. 시스템에서 이 후크를 호출할 때 창이 여전히 존재합니다.
HSHELL_WINDOWREPLACED 13 최상위 창이 대체되고 있습니다. 시스템이 이 후크를 호출할 때 창이 존재합니다.

wParam [in]

형식: WPARAM

이 매개 변수는 다음 표와 같이 nCode 매개 변수의 값에 따라 달라집니다.

nCode wParam
HSHELL_ACCESSIBILITYSTATE 상태가 변경된 접근성 기능을 나타냅니다. 이 값은 ACCESS_FILTERKEYS, ACCESS_MOUSEKEYS 또는 ACCESS_STICKYKEYS 중 하나입니다.
HSHELL_APPCOMMAND WM_APPCOMMAND 메시지가 원래 전송된 위치를 나타냅니다. 예를 들어 창에 대한 핸들입니다. 자세한 내용은 WM_APPCOMMAND cmd 매개 변수를 참조하세요.
HSHELL_GETMINRECT 최소화되거나 최대화된 창에 대한 핸들입니다.
HSHELL_LANGUAGE 창에 대한 핸들입니다.
HSHELL_REDRAW 다시 그려진 창에 대한 핸들입니다.
HSHELL_WINDOWACTIVATED 활성화된 창에 대한 핸들입니다.
HSHELL_WINDOWCREATED 만든 창에 대한 핸들입니다.
HSHELL_WINDOWDESTROYED 소멸된 창에 대한 핸들입니다.
HSHELL_WINDOWREPLACED 바꿀 창에 대한 핸들입니다. Windows 2000: 지원되지 않습니다.

lParam [in]

형식: LPARAM

이 매개 변수는 다음 표와 같이 nCode 매개 변수의 값에 따라 달라집니다.

nCode lParam
HSHELL_APPCOMMAND GET_APPCOMMAND_LPARAM(lParam) 는 입력 이벤트에 해당하는 애플리케이션 명령입니다. GET_DEVICE_LPARAM(lParam) 입력 이벤트를 생성한 내용을 나타냅니다. 예를 들어 마우스 또는 키보드입니다. 자세한 내용은 WM_APPCOMMAND아래의 uDevice 매개 변수 설명을 참조하세요. GET_FLAGS_LPARAM(lParam)WM_APPCOMMANDcmd 값에 따라 달라집니다. 예를 들어 WM_APPCOMMAND 메시지가 원래 전송되었을 때 보류된 가상 키를 나타낼 수 있습니다. 자세한 내용은 WM_APPCOMMANDdwCmdFlags 설명 매개 변수를 참조하세요.
HSHELL_GETMINRECT RECT 구조체에 대한 포인터입니다.
HSHELL_LANGUAGE 키보드 레이아웃에 대한 핸들입니다.
HSHELL_MONITORCHANGED 다른 모니터로 이동한 창에 대한 핸들입니다.
HSHELL_REDRAW 창이 깜박이면 값이 TRUE 이고, 그렇지 않으면 FALSE 입니다.
HSHELL_WINDOWACTIVATED 창이 전체 화면 모드인 경우 값이 TRUE이고, 그렇지 않으면 FALSE 입니다.
HSHELL_WINDOWREPLACED 새 창에 대한 핸들입니다. Windows 2000: 지원되지 않습니다.

반환

형식: LRESULT

nCode 값이 HSHELL_APPCOMMAND 셸 프로시저가 WM_COMMAND메시지를 처리하지 않는 한 반환 값은 0이어야 합니다. 이 경우 반환은 0이 아니어야 합니다.

설명

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

추가 정보

CallNextHookEx

SendMessage

SetWindowsHookEx

WM_APPCOMMAND

WM_COMMAND

후크