Registrieren einer Hookfunktion
Clientanwendungen erhalten WinEvents in einer WinEventProc-Rückruffunktion . Die Aktionen, die von der Rückruffunktion ausgeführt werden, werden von der Anwendung definiert, aber die Syntax muss wie im Prototyp angegeben sein.
Bevor sie Ereignisse empfangen kann, muss die Funktion durch Aufrufen von SetWinEventHook registriert werden. Der Client kann SetWinEventHook mehrmals aufrufen, um verschiedene Hookfunktionen zu registrieren oder um zusätzliche Ereignisse für eine zuvor registrierte Hookfunktion festzulegen.
Beim Aufrufen von SetWinEventHook gibt der Client an, welche Ereignisse empfangen werden sollen und wie sie empfangen werden sollen. Der Client kann folgendes auswählen:
- Empfangen sie alle Ereignisse oder einen bestimmten Satz von Ereignissen.
- Empfangen von Ereignissen von allen Threads oder aus einem bestimmten Thread.
- Empfangen von Ereignissen von allen Prozessen oder aus einem bestimmten Prozess.
- Behandeln von Ereignissen im Prozess oder außerhalb des Prozesses.
Wenn ein Ereignis generiert wird, das den angegebenen Kriterien entspricht, ruft das System die WinEventProc-Rückruffunktion des Clients auf (oder "Hookprozedur"). Die Parameter, die die Hookfunktion empfängt, informieren den Client über das Fenster, das Objekt und das mögliche untergeordnete Element, das das Ereignis generiert hat. Ein Client verwendet diese Parameter in einem Objektabrufaufruf, z. B . AccessibleObjectFromEvent.