Méthode ITextProvider ::RangeFromChild (uiautomationcore.h)
Récupère une plage de texte qui entoure l’élément enfant spécifié (par exemple, une image, un lien hypertexte ou un autre objet incorporé).
Syntaxe
HRESULT RangeFromChild(
[in] IRawElementProviderSimple *childElement,
[out, retval] ITextRangeProvider **pRetVal
);
Paramètres
[in] childElement
Type : IRawElementProviderSimple*
Fournisseur UI Automation de l’élément enfant spécifié.
[out, retval] pRetVal
Type : ITextRangeProvider**
Plage de texte qui entoure l’élément enfant.
Cette plage englobe complètement le contenu de l’élément enfant de telle sorte que :
- ITextRangeProvider ::GetEnclosingElement retourne l’élément enfant lui-même, ou le descendant le plus interne de l’élément enfant qui partage la même plage de texte que l’élément enfant
- ITextRangeProvider ::GetChildren retourne les enfants de l’élément de (1) qui sont complètement inclus dans la plage
- Les deux points de terminaison de la plage se trouvent aux limites de l’élément enfant
Ce paramètre est passé sans être initialisé.
Valeur retournée
Type : HRESULT
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Notes
E_INVALIDARG est retourné si childElement n’est pas un descendant d’un ITextProvider ou n’est pas entouré d’une plage de texte valide.
Remarques
Chaque élément récupéré avec ITextRangeProvider ::GetChildren a également une plage de texte valide qui peut être récupérée via RangeFromChild. Cela inclut tous les éléments de l’arborescence UI Automation entre l’élément ITextProvider et l’élément enfant.
Exemples
Cet exemple montre un flux de texte qui contient un lien d’image. Le lien est un enfant de l’image, mais les deux couvrent la même plage de texte et sont exposés en tant qu’objets incorporés dans le flux de texte.
Hello <Image Link> World
- Image et link sont également des descendants du ITextProvider du flux, et peuvent être spécifiés en tant que childElement dans un appel à ITextProvider ::RangeFromChild.
- L’appel de ITextRangeProvider ::RangeFromChild, à l’aide de l’image ou du lien, renvoie la même plage de texte (Range1).
- ITextRangeProvider ::GetChildren ne retourne pas le lien.
- ITextRangeProvider ::GetEnclosingElement ne retourne pas l’image pour une plage de texte.
- ITextRangeProvider ::GetEnclosingElement sur Range1 retourne le lien.
- ITextRangeProvider ::GetChildren sur Range1 ne retourne aucun enfant.
- ITextRangeProvider ::GetEnclosingElement sur la plage de texte du ITextProvider du flux retourne le fournisseur.
- ITextRangeProvider ::GetChildren sur la plage de texte du ITextProvider du flux retourne uniquement l’image.
Cet exemple montre un flux de texte qui contient un tableau à deux cellules entouré de texte.
Texte de début
Cellule de tableau 1 Cellule de tableau 2 Texte de fin
- Cas 1 : ITextProvider du flux et plage de texte entière
- ITextRangeProvider ::GetEnclosingElement sur l’ensemble de la plage de texte retourne le ITextProvider du flux.
- GetChildren retourne tous les éléments enfants du ITextProvider du flux, uniquement l’élément table dans ce cas.
- Cas 2 : Plage de texte obtenue en appelant ITextProvider ::RangeFromChild sur l’élément de table :
- ITextRangeProvider ::GetEnclosingElement retourne l’élément table.
- ITextRangeProvider ::GetChildren retourne les deux cellules du tableau.
- Cas 3 : Plage de texte qui s’étend sur le contenu visuel de la cellule de tableau 1 Cellule de tableau 2 :
- ITextRangeProvider ::GetEnclosingElement retourne l’élément table.
- ITextRangeProvider ::GetChildren retourne les deux cellules du tableau.
- Cas 4 : Plage de texte qui s’étend sur le mot Cellule du tableau cellule 1 :
- ITextRangeProvider ::GetEnclosingElement retourne le premier élément de cellule.
- ITextRangeProvider ::GetChildren ne retourne aucun élément.
- Cas 5 : Plage de texte dégénérée (vide) qui représente les deux démarrages (tableau et première cellule) :
- ITextRangeProvider ::GetEnclosingElement retourne le premier élément de cellule (l’élément le plus interne avec une plage qui inclut la plage dégénérée).
- ITextRangeProvider ::GetChildren ne retourne aucun élément.
- Cas 1 : ITextProvider du flux et plage de texte entière
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | uiautomationcore.h (incluez UIAutomation.h) |
Voir aussi
ITextProvider, ITextRangeProvider, ITextRangeProvider ::GetEnclosingElement, ITextRangeProvider ::GetChildren, UI Automation Providers Overview