Share via


Méthode IUIAutomation6 ::AddActiveTextPositionChangedEventHandler (uiautomationclient.h)

Inscrit une méthode qui gère le changement de position du texte actif.

Important

Les clients Microsoft UI Automation doivent utiliser les méthodes d’interface IUIAutomationEventHandlerGroup pour inscrire des écouteurs d’événements au lieu des méthodes d’inscription d’événements individuelles définies ici et dans les différents espaces de noms d’interface IUIAutomation.

Syntaxe

HRESULT AddActiveTextPositionChangedEventHandler(
  [in] IUIAutomationElement                               *element,
       TreeScope                                          scope,
  [in] IUIAutomationCacheRequest                          *cacheRequest,
  [in] IUIAutomationActiveTextPositionChangedEventHandler *handler
);

Paramètres

[in] element

Pointeur vers l’élément UI Automation associé au gestionnaire d’événements.

scope

[in] cacheRequest

Pointeur vers une demande de cache ou NULL si aucune mise en cache n’est souhaitée.

[in] handler

Pointeur vers l’objet qui gère l’événement de modification de la position du texte actif.

Valeur retournée

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Notes

Avant d’implémenter un gestionnaire d’événements, vous devez être familiarisé avec les problèmes de threads décrits dans Présentation des problèmes liés aux threads.

La position du texte actif est indiquée par un événement de navigation à l’intérieur ou entre des éléments de texte en lecture seule (tels que les navigateurs web, les documents PDF (Portable Document Format) ou les documents EPUB ) à l’aide de signets (ou d’identificateurs de fragment pour faire référence à un emplacement au sein d’une ressource). Voici quelques exemples :

  • Navigation vers un signet dans la même page web
  • Navigation vers un signet sur une autre page web
  • Activation d’un lien vers un autre emplacement dans le même FICHIER PDF
  • Activation d’un lien vers un autre emplacement dans le même EPUB

Utilisez ce gestionnaire d’événements pour synchroniser l’emplacement visuel du signet/de la cible avec l’emplacement du focus dans un élément de texte en lecture seule, ce qui peut diverger lors de l’utilisation de signets ou d’identificateurs de fragments.

Par exemple, lorsqu’une même ancre de page (<a href="#C4">Jump to Chapter 4</a> ...<h1><a name="C4">Chapter 4</a></h1>) est appelée, l’emplacement visuel est mis à jour, mais le client UI Automation reste à l’emplacement d’origine. Cela entraîne des actions telles que la lecture de texte ou le déplacement des commandes d’élément suivant à partir de l’emplacement d’origine, et non du nouvel emplacement.

De même, l’activation d’un nouvel URI de page (avec un identificateur de fragment : (<a href="www.blah.com#C4">Jump to Chapter 4</a>) charge la nouvelle page et accède au signet spécifié, mais laisse le UI Automation clients en haut de la page.

Pour les éléments de texte modifiables, tels que les contrôles Modifier et Modifier enrichi, vous pouvez écouter un événement SelectionChanged.

Il est possible qu’un événement soit remis à un gestionnaire d’événements une fois que le gestionnaire a été désinscrit, si l’événement est reçu simultanément avec la demande de désinscription de l’événement. La meilleure pratique consiste à suivre la norme COM (Component Object Model) et à éviter de détruire l’objet gestionnaire d’événements tant que son nombre de références n’a pas atteint zéro. La destruction d’un gestionnaire d’événements immédiatement après la désinscripation des événements peut entraîner une violation d’accès si un événement est remis en retard.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1809 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server, version 1709 [applications de bureau uniquement]
Plateforme cible Windows
En-tête uiautomationclient.h (incluez UIAutomation.h)

Voir aussi

IUIAutomation6 ::RemoveActiveTextPositionChangedEventHandler, interface IUIAutomation6