Freigeben über


SysMsgProc-Funktion

BESCHREIBUNG

Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookExA-Funktion/SetWindowsHookExW verwendet wird . Das System ruft diese Funktion auf, nachdem ein Eingabeereignis in einem Dialogfeld, einem Meldungsfeld, einem Menü oder einer Bildlaufleiste auftritt, aber bevor die vom Eingabeereignis generierte Nachricht verarbeitet wird. Die Funktion kann Nachrichten für alle Dialogfelder, Nachrichtenboxen, Menüs oder Bildlaufleisten im System überwachen.

Der HOOKPROC-Typ definiert einen Zeiger auf diese Rückruffunktion. SysMsgProc ist ein Platzhalter für den anwendungsdefinierten oder bibliotheksdefinierte Funktionsnamen.

LRESULT CALLBACK SysMsgProc(
  _In_ int    nCode,
       WPARAM wParam,
  _In_ LPARAM lParam
);

Parameter

nCode [in]

Typ: int

Der Typ des Eingabeereignisses, das die Nachricht generiert hat.

Wenn nCode kleiner als 0 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
MSGF_DIALOGBOX 0 Das Eingabeereignis ist in einem Meldungsfeld oder Dialogfeld aufgetreten.
MSGF_MENU 2 Das Eingabeereignis ist in einem Menü aufgetreten.
MSGF_SCROLLBAR 5 Das Eingabeereignis ist in einer Bildlaufleiste aufgetreten.

wParam

Typ: WPARAM

Dieser Parameter wird nicht verwendet.

lParam [in]

Typ: LPARAM

Ein Zeiger auf eine MSG-Nachrichtenstruktur .

Gibt zurück

Typ: LRESULT

Wenn nCode kleiner als 0 ist, muss die Hookprozedur den von CallNextHookEx zurückgegebenen Wert zurückgeben.

Wenn nCode größer oder gleich null ist und die Hookprozedur die Nachricht nicht verarbeitet hat, wird dringend empfohlen, CallNextHookEx aufzurufen und den zurückgegebenen Wert zurückzugeben. Andernfalls erhalten andere Anwendungen, die WH_SYSMSGFILTER Hooks installiert haben, keine Hookbenachrichtigungen und verhalten sich daher möglicherweise falsch.

Wenn die Hookprozedur die Nachricht verarbeitet hat, gibt sie möglicherweise einen nichtzero-Wert zurück, um zu verhindern, dass das System die Nachricht an die Zielfensterprozedur übergibt.

Bemerkungen

Eine Anwendung installiert die Hookprozedur, indem sie den WH_SYSMSGFILTER Hooktyp und einen Zeiger auf die Hookprozedur in einem Aufruf der SetWindowsHookExA/SetWindowsHookExW-Funktion angibt.

Siehe auch

CallNextHookEx

MSG

SetWindowsHookEx

Hooks