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.