Freigeben über


GetMsgProc-Funktion

-Beschreibung

Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookExA/SetWindowsHookExW-Funktion verwendet wird. Das System ruft diese Funktion auf, wenn die GetMessage oder PeekMessageA/PeekMessageW-Funktion eine Nachricht aus einer Anwendungsnachrichtenwarteschlange abgerufen hat. Vor dem Zurückgeben der abgerufenen Nachricht an den Aufrufer übergibt das System die Nachricht an die Hook-Prozedur.

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

LRESULT CALLBACK GetMsgProc(
  _In_ int    code,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

-parameters

code [in]

Typ: int

Gibt an, ob die Hook-Prozedur die Nachricht verarbeiten muss. Wenn Code HC_ACTION ist, muss die Hook-Prozedur die Nachricht verarbeiten. Wenn Code kleiner als 0 ist, muss die Hook-Prozedur die Nachricht ohne weitere Verarbeitung an die CallNextHookEx-Funktion übergeben und den von CallNextHookEx zurückgegebenen Wert zurückgeben.

wParam [in]

Typ: WPARAM

Gibt an, ob die Nachricht aus der Warteschlange entfernt wurde. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
PM_NOREMOVE 0x0000 Die Nachricht wurde nicht aus der Warteschlange entfernt. (Eine Anwendung namens PeekMessage-Funktion, die das PM_NOREMOVE-Flag angibt.)
PM_REMOVE 0x0001 Die Nachricht wurde aus der Warteschlange entfernt. (Eine Anwendung namens GetMessage oder die PeekMessage-Funktion, die das PM_REMOVE-Flag angibt.)

lParam [in]

Typ: LPARAM

Ein Zeiger auf eine MSG-Struktur, die Details zur Nachricht enthält.

-Rückgaben

Wenn Code kleiner als 0 ist, muss die Hook-Prozedur den von CallNextHookExzurückgegebenen Wert zurückgeben.

Wenn Code größer oder gleich Null ist, wird dringend empfohlen, CallNextHookEx aufzurufen und den zurückgegebenen Wert zurückzugeben. Andernfalls erhalten andere Anwendungen, die WH_GETMESSAGE-Hooks installiert haben, keine Hookbenachrichtigungen und verhalten sich möglicherweise falsch als Ergebnis. Wenn die Hook-Prozedur callNextHookEx nicht aufruft, sollte der Rückgabewert null sein.

-Anmerkungen

Die GetMsgProc-Hook-Prozedur kann die Nachricht untersuchen oder ändern.

Nachdem die Hook-Prozedur die Steuerung an das System zurückgibt, gibt die GetMessage oder PeekMessageA/PeekMessageW-Funktion die Nachricht zusammen mit allen Änderungen an der Anwendung zurück, die sie ursprünglich aufgerufen hat.

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

Siehe auch

CallNextHookEx

GetMessage

MSG

PeekMessage

SetWindowsHookEx

Hooks