Inscription d’une fonction Hook

Les applications clientes reçoivent WinEvents dans une fonction de rappel WinEventProc . Les actions effectuées par la fonction de rappel sont définies par l’application, mais la syntaxe doit être spécifiée dans le prototype.

Avant de recevoir des événements, la fonction doit être inscrite en appelant SetWinEventHook. Le client peut appeler SetWinEventHook plusieurs fois pour inscrire différentes fonctions de hook ou pour définir des événements supplémentaires pour une fonction de hook précédemment inscrite.

Lors de l’appel de SetWinEventHook , le client spécifie quels événements recevoir et comment les recevoir. Le client peut choisir de :

  • Recevez tous les événements ou un ensemble spécifique d’événements.
  • Recevez des événements de tous les threads ou d’un thread spécifique.
  • Recevez des événements de tous les processus ou d’un processus spécifique.
  • Gérer les événements en cours ou hors processus.

Lorsqu’un événement qui correspond aux critères spécifiés est généré, le système appelle la fonction de rappel WinEventProc du client (ou « procédure de hook »). Les paramètres que la fonction de hook reçoit indiquent au client la fenêtre, l’objet et l’élément enfant possible qui a généré l’événement. Un client utilise ces paramètres dans un appel de récupération d’objet, tel que AccessibleObjectFromEvent.