RegisterShellHookWindow-Funktion (winuser.h)

[Diese Funktion ist nicht für die allgemeine Verwendung vorgesehen. Sie kann in nachfolgenden Versionen von Windows geändert oder nicht verfügbar sein.]

Registriert ein angegebenes Shellfenster, um bestimmte Nachrichten für Ereignisse oder Benachrichtigungen zu empfangen, die für Shellanwendungen nützlich sind.

Bei den empfangenen Ereignismeldungen handelt es sich nur um nachrichten, die an das Shellfenster gesendet werden, das dem Desktop des angegebenen Fensters zugeordnet ist. Viele der Nachrichten sind mit denen identisch, die empfangen werden können, nachdem die SetWindowsHookEx-Funktion aufgerufen und WH_SHELL für den Hooktyp angegeben wurde. Der Unterschied zu RegisterShellHookWindow besteht darin, dass die Nachrichten über das FensterProc des angegebenen Fensters und nicht über eine Rückrufprozedur empfangen werden.

Syntax

BOOL RegisterShellHookWindow(
  [in] HWND hwnd
);

Parameter

[in] hwnd

Typ: HWND

Ein Handle für das Fenster zum Registrieren von Shell-Hooknachrichten.

Rückgabewert

Typ: BOOL

TRUE , wenn die Funktion erfolgreich ist; andernfalls FALSE.

Hinweise

Wie bei normalen Fenstermeldungen identifiziert der zweite Parameter der Fensterprozedur die Nachricht als WM_SHELLHOOKMESSAGE. Für diese Shell-Hooknachrichten ist der Nachrichtenwert jedoch keine vordefinierte Konstante wie andere Nachrichten-IDs wie WM_COMMAND. Der Wert muss dynamisch mithilfe eines Aufrufs von RegisterWindowMessage abgerufen werden, wie hier gezeigt:

RegisterWindowMessage(TEXT("SHELLHOOK"));

Dies schließt die Verarbeitung dieser Nachrichten mit einer herkömmlichen Switch-Anweisung aus, die ID-Werte erfordert, die zur Kompilierzeit bekannt sind. Für die Behandlung von Shell-Hooknachrichten besteht die normale Praxis darin, eine If-Anweisung im Standardabschnitt Ihrer switch-Anweisung zu codieren und dann die Nachricht zu behandeln, wenn der Wert der Nachrichten-ID mit dem Wert übereinstimmt, der aus dem Aufruf RegisterWindowMessage abgerufen wurde.

In der folgenden Tabelle werden die wParam - und lParam-Parameterwerte beschrieben, die an die Fensterprozedur für die Shell-Hooknachrichten übergeben werden.

wParam lParam
HSHELL_GETMINRECT Ein Zeiger auf eine SHELLHOOKINFO-Struktur .
HSHELL_WINDOWACTIVATED Ein Handle für das aktivierte Fenster.
HSHELL_RUDEAPPACTIVATED Ein Handle für das aktivierte Fenster.
HSHELL_WINDOWREPLACING Ein Handle für das Fenster, das das Fenster der obersten Ebene ersetzt.
HSHELL_WINDOWREPLACED Ein Handle für das zu ersetzende Fenster.
HSHELL_WINDOWCREATED Ein Handle für das zu erstellende Fenster.
HSHELL_WINDOWDESTROYED Ein Handle für das Fenster auf oberster Ebene, das zerstört wird.
HSHELL_ACTIVATESHELLWINDOW Wird nicht verwendet.
HSHELL_TASKMAN Kann ignoriert werden.
HSHELL_REDRAW Ein Handle für das Fenster, das neu gezeichnet werden muss.
HSHELL_FLASH Ein Handle für das Fenster, das geblitzt werden muss.
HSHELL_ENDTASK Ein Handle für das Fenster, das zum Beenden gezwungen werden soll.
HSHELL_APPCOMMAND Der APPCOMMAND, der von der Anwendung oder anderen Hooks nicht behandelt wurde. Weitere Informationen finden Sie unter WM_APPCOMMAND und verwenden Sie das makro GET_APPCOMMAND_LPARAM , um diesen Parameter abzurufen.
HSHELL_MONITORCHANGED Ein Handle für das Fenster, das zu einem anderen Monitor verschoben wurde.
 

Diese Funktion war erst unter Windows XP mit Service Pack 1 (SP1) und Windows Server 2003 in den SDK-Headern und -Bibliotheken enthalten. Wenn Sie keine Headerdatei und keine Importbibliothek für diese Funktion haben, können Sie die Funktion mit LoadLibrary und GetProcAddress aufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)
Bibliothek User32.lib
DLL User32.dll

Siehe auch

Konzept

Aufheben der RegistrierungShellHookWindow

Andere Ressourcen

Referenz

SetWindowsHookEx

ShellProc

Verwenden von Nachrichten und Nachrichtenwarteschlangen

WinEvents

WindowProc

Windows