Freigeben über


GetMsgProc-Funktion

Description

Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookExA/SetWindowsHookExW-Funktion verwendet wird. Das System ruft diese Funktion immer dann 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 anwendungsdefiniert oder bibliotheksdefinierte Funktionsnamen.

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

Parameter

Code [in]

Typ: int

Gibt an, ob die Hook-Prozedur die Nachricht verarbeiten muss. Wenn CodeHC_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 einer der folgenden Werte sein:

Wert Bedeutung
PM_NOREMOVE 0x0000 Die Nachricht wurde nicht aus der Warteschlange entfernt. (Eine Anwendung namens "PeekMessage ", 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ückkehr

Wenn Code kleiner als 0 ist, muss die Hook-Prozedur den von CallNextHookEx zurü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 Hook-Benachrichtigungen und verhalten sich daher möglicherweise falsch. Wenn die Hook-Prozedur callNextHookEx nicht aufruft, sollte der Rückgabewert null sein.

Bemerkungen

Die GetMsgProc-Hookprozedur kann die Nachricht untersuchen oder ändern.

Nachdem die Hook-Prozedur das Steuerelement 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 Hook-Typ und einen Zeiger auf die Hook-Prozedur in einem Aufruf der SetWindowsHookExA/SetWindowsHookExW-Funktion angibt.

Siehe auch

CallNextHookEx

GetMessage

MSG

PeekMessage

SetWindowsHookEx

Hooks