Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Описание
Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookExA/SetWindowsHookExW . Функция получает уведомления о событиях оболочки из системы.
Тип HOOKPROC определяет указатель на эту функцию обратного вызова. ShellProc — это заполнитель для имени функции, определяемой приложением или библиотекой.
LRESULT CALLBACK ShellProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Параметры
nCode [in]
Тип: int
Код перехватчика.
Если значение nCode меньше нуля, процедура перехватчика должна передать сообщение функции CallNextHookEx без дальнейшей обработки и возвращать значение, возвращаемое CallNextHookEx.
Этот параметр может принимать одно из указанных ниже значений.
| Значение | Значение |
|---|---|
| HSHELL_ACCESSIBILITYSTATE 11 | Состояние доступности изменилось. |
| HSHELL_ACTIVATESHELLWINDOW 3 | Оболочка должна активировать окно main. |
| HSHELL_APPCOMMAND 12 | Пользователь завершил событие ввода (например, нажал кнопку приложения на мыши или клавишу приложения на клавиатуре), а приложение не обработало сообщение WM_APPCOMMAND , созданное этим вводом. Если процедура оболочки обрабатывает сообщение WM_COMMAND , она не должна вызывать CallNextHookEx. Дополнительные сведения см. в разделе Возвращаемое значение. |
| HSHELL_GETMINRECT 5 | Окно свернуто или развернуто. Системе требуются координаты свернутого прямоугольника для окна. |
| HSHELL_LANGUAGE 8 | Изменен язык клавиатуры или загружена новая раскладка клавиатуры. |
| HSHELL_REDRAW 6 | Заголовок окна на панели задач перерисован. |
| HSHELL_TASKMAN 7 | Пользователь выбрал список задач. Приложение оболочки, предоставляющее список задач, должно возвращать значение TRUE , чтобы предотвратить запуск списка задач Windows. |
| 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 ; например, дескриптор окна. Дополнительные сведения см. в разделе параметр cmd в WM_APPCOMMAND. |
| 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) указывает, что сгенерировало входное событие; например, мышь или клавиатура. Дополнительные сведения см. в описании параметра uDevice в разделе WM_APPCOMMAND.
GET_FLAGS_LPARAM(lParam) зависит от значения cmd в WM_APPCOMMAND. Например, он может указать, какие виртуальные ключи были удержаны при первоначальной отправке сообщения WM_APPCOMMAND . Дополнительные сведения см. в описании параметра dwCmdFlagsв разделе WM_APPCOMMAND. |
| 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 сообщение. В этом случае возвращается ненулевое значение.
Комментарии
Установите эту процедуру перехватчика, указав тип перехватчика WH_SHELL и указатель на процедуру перехватчика в вызове функции SetWindowsHookEx .