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 후크 형식 및 후크 프로시저에 대한 포인터를 지정하여 이 후크 프로시저를 설치합니다.