Freigeben über


ShellProc-Funktion

BESCHREIBUNG

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
);

Parameter

nCode [in]

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.

wParam [in]

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.

lParam [in]

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.

Gibt zurück

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.

Hinweise

Installieren Sie diese Hookprozedur, indem Sie den WH_SHELL Hooktyp und einen Zeiger auf die Hookprozedur in einem Aufruf der SetWindowsHookEx-Funktion angeben.

Siehe auch

CallNextHookEx

SendMessage

SetWindowsHookEx

WM_APPCOMMAND

WM_COMMAND

Hooks