MouseProc-Funktion

BESCHREIBUNG

Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der SetWindowsHookExA-Funktion/SetWindowsHookExW verwendet wird. Das System ruft diese Funktion auf, wenn eine Anwendung die GetMessage - oder PeekMessageA/PeekMessageW-Funktion aufruft und eine Mausnachricht verarbeitet werden soll.

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

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

Parameter

nCode [in]

Typ: int

Ein Code, mit dem die Hookprozedur bestimmt, wie die Nachricht verarbeitet wird.

Wenn nCode kleiner als null 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
HC_ACTION 0 Die Parameter wParam und lParam enthalten Informationen zu einer Mausnachricht.
HC_NOREMOVE 3 Die Parameter wParam und lParam enthalten Informationen zu einer Mausnachricht, und die Mausnachricht wurde nicht aus der Nachrichtenwarteschlange entfernt. (Eine Anwendung namens PeekMessage-Funktion , die das flag PM_NOREMOVE angibt.)

wParam [in]

Typ: WPARAM

Der Bezeichner der Mausnachricht.

lParam [in]

Typ: LPARAM

Ein Zeiger auf eine MOUSEHOOKSTRUCT-Struktur .

Gibt zurück

Typ: LRESULT

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

Wenn nCode größer als oder gleich 0 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_MOUSE Hooks installiert haben, keine Hookbenachrichtigungen und verhalten sich daher möglicherweise falsch.

Wenn die Hookprozedur die Nachricht verarbeitet hat, wird möglicherweise ein Wert ungleich null zurückgegeben, um zu verhindern, dass das System die Nachricht an die Zielfensterprozedur übergibt.

Bemerkungen

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

Die Hookprozedur darf keine WH_JOURNALPLAYBACK Rückruffunktion installieren.

Dieser Hook kann im Kontext des Threads aufgerufen werden, der ihn installiert hat. Der Aufruf erfolgt durch Senden einer Nachricht an den Thread, der den Hook installiert hat. Daher muss der Thread, der den Hook installiert hat, über eine Meldungsschleife verfügen.

Siehe auch

CallNextHookEx

GetMessage

MOUSEHOOKSTRUCT

PeekMessage

SetWindowsHookEx

Hooks

Informationen zu Hooks