ITextRangeProvider ::GetChildren, méthode (uiautomationcore.h)
Récupère une collection de tous les éléments qui sont tous deux contenus (partiellement ou entièrement) dans la plage de texte spécifiée et sont des éléments enfants de l’élément englobant pour la plage de texte spécifiée.
HRESULT GetChildren(
[out, retval] SAFEARRAY **pRetVal
);
[out, retval] pRetVal
Type : SAFEARRAY**
Tableau de pointeurs vers les interfaces IRawElementProviderSimple pour tous les éléments enfants qui sont placés par la plage de texte (triés par le point de terminaison Start de leurs plages).
Si la plage de texte n’inclut aucun élément enfant, une collection vide est retournée.
Ce paramètre est passé sans être initialisé.
Type : HRESULT
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Chaque élément récupéré avec ITextRangeProvider ::GetChildren a 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 ITextProvider et l’élément enfant.
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, retourne la même plage de texte (Range1).
- GetChildren ne retourne pas le lien.
- GetEnclosingElement ne retourne pas l’image pour une plage de texte.
- GetEnclosingElement sur Range1 retourne le lien.
- GetChildren on Range1 ne retourne aucun enfant.
- GetEnclosingElement sur la plage de texte du ITextProvider du flux retourne le fournisseur.
- GetChildren on the text range for the stream’s ITextProvider renvoie uniquement l’image.
Cet exemple montre un flux de texte qui contient une table à deux cellules entourée de texte.
Texte de début
Cellule de tableau 1 Cellule de tableau 2 Texte de fin
- Cas 1 : ITextProvider et la plage de texte entière du flux
- ITextRangeProvider ::GetEnclosingElement sur l’ensemble de la plage de texte retourne l’ITextProvider du flux.
- GetChildren retourne tous les éléments enfants de l’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 table :
- ITextRangeProvider ::GetEnclosingElement retourne l’élément table.
- ITextRangeProvider ::GetChildren retourne les deux cellules de table.
- Cas 3 : Plage de texte qui couvre 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 de table.
- Cas 4 : Plage de texte qui s’étend sur le mot Cellule de la cellule de tableau 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 à la fois les démarrages (table 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 et la plage de texte entière du flux
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) |
ITextProvider, ITextRangeProvider, GetEnclosingElement, ITextProvider ::RangeFromChild, UI Automation Providers Overview, Best Practices for Using Safe Arrays