ShellProc-Funktion
Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookExA-Funktion/SetWindowsHookExW verwendet wird. Die Funktion empfängt Benachrichtigungen über Shellereignisse vom System.
Der HOOKPROC-Typ definiert einen Zeiger auf diese Rückruffunktion. ShellProc ist ein Platzhalter für den anwendungsdefinierte oder bibliotheksdefinierte Funktionsnamen.
LRESULT CALLBACK ShellProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Typ: int
Der Hookcode.
Wenn nCode kleiner als null ist, muss die Hookprozedur die Nachricht ohne weitere Verarbeitung an die CallNextHookEx-Funktion übergeben und den von CallNextHookEx zurückgegebenen Wert zurückgeben.
Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
HSHELL_ACCESSIBILITYSTATE 11 | Der Zustand der Barrierefreiheit hat sich geändert. |
HSHELL_ACTIVATESHELLWINDOW 3 | Die Shell sollte ihr Standard Fenster aktivieren. |
HSHELL_APPCOMMAND 12 | Der Benutzer hat ein Eingabeereignis abgeschlossen (z. B. eine Anwendungsbefehlsschaltfläche auf der Maus oder eine Anwendungsbefehlstaste auf der Tastatur gedrückt), und die Anwendung hat die von dieser Eingabe generierte WM_APPCOMMAND Meldung nicht verarbeitet. Wenn die Shell-Prozedur die WM_COMMAND-Nachricht verarbeitet, sollte callNextHookEx nicht aufgerufen werden. Weitere Informationen finden Sie im Abschnitt Rückgabewert. |
HSHELL_GETMINRECT 5 | Ein Fenster wird minimiert oder maximiert. Das System benötigt die Koordinaten des minimierten Rechtecks für das Fenster. |
HSHELL_LANGUAGE 8 | Die Tastatursprache wurde geändert, oder ein neues Tastaturlayout wurde geladen. |
HSHELL_REDRAW 6 | Der Titel eines Fensters in der Taskleiste wurde neu gezeichnet. |
HSHELL_TASKMAN 7 | Der Benutzer hat die Aufgabenliste ausgewählt. Eine Shellanwendung, die eine Aufgabenliste bereitstellt, sollte TRUE zurückgeben, um zu verhindern, dass Windows seine Aufgabenliste startet. |
HSHELL_WINDOWACTIVATED 4 | Die Aktivierung wurde in ein anderes Fenster der obersten Ebene ohne Besitzer geändert. |
HSHELL_WINDOWCREATED 1 | Ein Fenster auf oberster Ebene wurde erstellt. Das Fenster ist vorhanden, wenn das System diesen Hook aufruft. |
HSHELL_WINDOWDESTROYED 2 | Ein Fenster auf oberster Ebene wird gerade zerstört. Das Fenster ist weiterhin vorhanden, wenn das System diesen Hook aufruft. |
HSHELL_WINDOWREPLACED 13 | Ein Fenster der obersten Ebene wird ersetzt. Das Fenster ist vorhanden, wenn das System diesen Hook aufruft. |
Typ: WPARAM
Dieser Parameter hängt vom Wert des nCode-Parameters ab, wie in der folgenden Tabelle gezeigt.
nCode | wParam |
---|---|
HSHELL_ACCESSIBILITYSTATE | Gibt an, welche Barrierefreiheitsfunktion den Status geändert hat. Dieser Wert ist einer der folgenden: ACCESS_FILTERKEYS, ACCESS_MOUSEKEYS oder ACCESS_STICKYKEYS. |
HSHELL_APPCOMMAND | Gibt an, wohin die WM_APPCOMMAND Nachricht ursprünglich gesendet wurde; z. B. das Handle für ein Fenster. Weitere Informationen finden Sie unter cmd-Parameter in WM_APPCOMMAND. |
HSHELL_GETMINRECT | Ein Handle für das minimierte oder maximierte Fenster. |
HSHELL_LANGUAGE | Ein Handle für das Fenster. |
HSHELL_REDRAW | Ein Handle für das neu gezeichnete Fenster. |
HSHELL_WINDOWACTIVATED | Ein Handle für das aktivierte Fenster. |
HSHELL_WINDOWCREATED | Ein Handle für das erstellte Fenster. |
HSHELL_WINDOWDESTROYED | Ein Handle für das zerstörte Fenster. |
HSHELL_WINDOWREPLACED | Ein Handle für das zu ersetzende Fenster. Windows 2000: Nicht unterstützt. |
Typ: LPARAM
Dieser Parameter hängt vom Wert des nCode-Parameters ab, wie in der folgenden Tabelle gezeigt.
nCode | lParam |
---|---|
HSHELL_APPCOMMAND |
GET_APPCOMMAND_LPARAM(lParam) ist der Anwendungsbefehl, der dem Eingabeereignis entspricht.
GET_DEVICE_LPARAM(lParam) gibt an, was das Eingabeereignis generiert hat; z. B. die Maus oder Tastatur. Weitere Informationen finden Sie unter beschreibung des uDevice-Parameters unter WM_APPCOMMAND.
GET_FLAGS_LPARAM(lParam) hängt vom Wert von cmd in WM_APPCOMMAND ab. Es kann z. B. angeben, welche virtuellen Schlüssel beim ursprünglichen Senden der WM_APPCOMMAND Nachricht gedrückt wurden. Weitere Informationen finden Sie unter dem dwCmdFlags description-Parameter unter WM_APPCOMMAND. |
HSHELL_GETMINRECT | Ein Zeiger auf eine RECT-Struktur . |
HSHELL_LANGUAGE | Ein Handle für ein Tastaturlayout. |
HSHELL_MONITORCHANGED | Ein Handle für das Fenster, das zu einem anderen Monitor verschoben wurde. |
HSHELL_REDRAW | Der Wert ist TRUE , wenn das Fenster blinkt, oder andernfalls FALSE . |
HSHELL_WINDOWACTIVATED | Der Wert ist TRUE, wenn sich das Fenster im Vollbildmodus befindet, oder andernfalls FALSE . |
HSHELL_WINDOWREPLACED | Ein Handle für das neue Fenster. Windows 2000: Nicht unterstützt. |
Typ: LRESULT
Der Rückgabewert sollte null sein, es sei denn, der Wert von nCode ist HSHELL_APPCOMMAND und die Shellprozedur verarbeitet die WM_COMMAND Nachricht. In diesem Fall sollte die Rückgabe ungleich null sein.
Installieren Sie diese Hookprozedur, indem Sie den WH_SHELL Hooktyp und einen Zeiger auf die Hookprozedur in einem Aufruf der SetWindowsHookEx-Funktion angeben.