IUIAutomation6::AddActiveTextPositionChangedEventHandler-Methode (uiautomationclient.h)

Registriert eine Methode, die behandelt, wenn sich die aktive Textposition ändert.

Wichtig

Microsoft Benutzeroberflächenautomatisierung-Clients sollten die IUIAutomationEventHandlerGroup-Schnittstellenmethoden verwenden, um Ereignislistener anstelle einzelner Ereignisregistrierungsmethoden zu registrieren, die hier und in den verschiedenen IUIAutomation-Schnittstellennamespaces definiert sind.

Syntax

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

Parameter

[in] element

Ein Zeiger auf das Benutzeroberflächenautomatisierung-Element, das dem Ereignishandler zugeordnet ist.

scope

[in] cacheRequest

Ein Zeiger auf eine Cacheanforderung oder NULL, wenn keine Zwischenspeicherung gewünscht ist.

[in] handler

Ein Zeiger auf das -Objekt, das das aktive Textpositionsänderungsereignis behandelt.

Rückgabewert

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Bemerkungen

Bevor Sie einen Ereignishandler implementieren, sollten Sie mit den Threadingproblemen vertraut sein, die unter Grundlegendes zu Threadingproblemen beschrieben werden.

Die position des aktiven Texts wird durch ein Navigationsereignis innerhalb oder zwischen schreibgeschützten Textelementen (z. B. Webbrowsern, PDF-Dokumenten oder EPUB-Dokumenten ) mithilfe von Lesezeichen (oder Fragmentbezeichnern, die auf einen Speicherort innerhalb einer Ressource verweisen) angegeben. Beispiele:

  • Navigieren zu einem Lesezeichen auf derselben Webseite
  • Navigieren zu einem Lesezeichen auf einer anderen Webseite
  • Aktivieren eines Links zu einem anderen Speicherort innerhalb derselben PDF-Datei
  • Aktivieren eines Links zu einem anderen Standort innerhalb derselben EPUB

Verwenden Sie diesen Ereignishandler, um die visuelle Position des Lesezeichens/Ziels mit der Fokusposition in einem schreibgeschützten Textelement zu synchronisieren, was bei Verwendung von Lesezeichen oder Fragmentbezeichnern abweichen kann.

Wenn beispielsweise ein derselben Seitenanker (<a href="#C4">Jump to Chapter 4</a> ...<h1><a name="C4">Chapter 4</a></h1>) aufgerufen wird, wird der visuelle Speicherort aktualisiert, der Benutzeroberflächenautomatisierung Client bleibt jedoch am ursprünglichen Speicherort. Dies führt zu Aktionen wie Textlesen oder Verschieben von Befehlen zum nächsten Element vom ursprünglichen Speicherort, nicht vom neuen Speicherort.

Ebenso wird beim Aktivieren eines neuen Seiten-URI (mit fragmentbezeichner: (<a href="www.blah.com#C4">Jump to Chapter 4</a>) die neue Seite geladen und zur angegebenen Lesezeichen springt, aber der Benutzeroberflächenautomatisierung Clients bleibt oben auf der Seite.

Für bearbeitbare Textelemente, z. B. Edit- und Rich Edit-Steuerelemente, können Sie auf ein SelectionChanged-Ereignis lauschen.

Es ist möglich, dass ein Ereignis an einen Ereignishandler übermittelt wird, nachdem der Handler abgekündigt wurde, wenn das Ereignis gleichzeitig mit der Anforderung zum Abbestellen des Ereignisses empfangen wird. Die bewährte Methode besteht darin, den COM-Standard (Component Object Model) zu befolgen und zu vermeiden, dass das Ereignishandlerobjekt zerstört wird, bis seine Verweisanzahl 0 erreicht hat. Das Löschen eines Ereignishandlers unmittelbar nach der Abmeldung von Ereignissen kann zu einer Zugriffsverletzung führen, wenn ein Ereignis verspätet übermittelt wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1809 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server, Version 1709 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile uiautomationclient.h (include UIAutomation.h)

Weitere Informationen

IUIAutomation6::RemoveActiveTextPositionChangedEventHandler, IUIAutomation6-Schnittstelle