Partager via


Communication client/serveur

Le mécanisme WinEvents permet aux serveurs de communiquer facilement avec les clients Microsoft Active Accessibility. Les clients collectent souvent des informations en réagissant à WinEvents (par exemple, en suivant le focus), mais ils sont libres de demander des informations à un serveur à tout moment.

Pour demander des informations pour un objet accessible qui génère un WinEvent, un client doit traiter l’événement et établir une connexion avec l’objet accessible approprié. Pour ce faire, le client effectue les six étapes suivantes :

  • Un serveur appelle NotifyWinEvent pour générer une notification WinEvent pour chaque modification apportée à ses éléments d’interface utilisateur.
  • Le code de gestion WinEvent dans USER détermine si les applications clientes ont inscrit une fonction de hook WinEvent à l’aide de SetWinEventHook et appelle la fonction de rappel inscrite.
  • Dans sa fonction de rappel, le client demande l’accès à l’objet qui a généré l’événement en appelant AccessibleObjectFromEvent ou d’autres fonctions de récupération d’objets accessibles. Pour plus d’informations, consultez Récupération d’un objet IAccessible.
  • Cette API Microsoft Active Accessibility envoie à l’application serveur un message WM_GETOBJECT pour récupérer l’objet accessible.
  • En réponse à WM_GETOBJECT, l’application serveur retourne zéro ou retourne une valeur qui agit comme une référence ponctuelle à l’objet qui a généré l’événement.
  • Si le serveur retourne zéro, Microsoft Active Accessibility crée un objet proxy et donne son adresse au client. Sinon, Microsoft Active Accessibility utilise cette référence pour récupérer l’adresse d’une interface objet telle que IAccessible ou IDispatch, et donne cette adresse au client.

Une fois que le client dispose d’une adresse d’interface, il peut appeler les propriétés et méthodes IAccessible de l’objet accessible pour récupérer des informations.

Contenu de cette section