ITextRangeProvider::GetChildren method (uiautomationcore.h)
Retrieves a collection of all elements that are both contained (either partially or completely) within the specified text range, and are child elements of the enclosing element for the specified text range.
Syntax
HRESULT GetChildren(
[out, retval] SAFEARRAY **pRetVal
);
Parameters
[out, retval] pRetVal
Type: SAFEARRAY**
An array of pointers to the IRawElementProviderSimple interfaces for all child elements that are enclosed by the text range (sorted by the Start endpoint of their ranges).
If the text range does not include any child elements, an empty collection is returned.
This parameter is passed uninitialized.
Return value
Type: HRESULT
If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
Remarks
Each element retrieved with ITextRangeProvider::GetChildren has a valid text range that can be retrieved through RangeFromChild. This includes any elements in the UI Automation tree between the ITextProvider and the child element.
Examples
This example shows a text stream that contains an image link. The link is a child of the image, but both span the same text range and are exposed as embedded objects within the text stream.
Hello <Image Link> World
- Both image and link are also descendents of the stream's ITextProvider, and either can be specified as the childElement in a call to ITextProvider::RangeFromChild.
- Calling ITextRangeProvider::RangeFromChild, using either the image or the link, returns the same text range (Range1).
- GetChildren does not return the link.
- GetEnclosingElement does not return the image for any text range.
- GetEnclosingElement on Range1 returns the link.
- GetChildren on Range1 does not return any children.
- GetEnclosingElement on the text range for the stream's ITextProvider returns the provider.
- GetChildren on the text range for the stream's ITextProvider returns only the image.
This example shows a text stream that contains a two-cell table surrounded by text.
Start text
Table Cell 1 Table Cell 2 End Text
- Case 1: The stream's ITextProvider and entire text range
- ITextRangeProvider::GetEnclosingElement on the entire text range returns the stream's ITextProvider.
- GetChildren returns all child elements of the stream's ITextProvider, only the table element in this case.
- Case 2: Text range obtained by calling ITextProvider::RangeFromChild on the table element:
- ITextRangeProvider::GetEnclosingElement returns the table element.
- ITextRangeProvider::GetChildren returns both table cells.
- Case 3: Text range that spans the visual content of Table Cell 1 Table Cell 2:
- ITextRangeProvider::GetEnclosingElement returns the table element.
- ITextRangeProvider::GetChildren returns both table cells.
- Case 4: Text range that spans the word Cell of Table Cell 1:
- ITextRangeProvider::GetEnclosingElement returns the first cell element.
- ITextRangeProvider::GetChildren returns no elements.
- Case 5: A degenerate (empty) text range that represents both starts (table and first cell):
- ITextRangeProvider::GetEnclosingElement returns the first cell element (the innermost element with a range that includes the degenerate range).
- ITextRangeProvider::GetChildren returns no elements.
- Case 1: The stream's ITextProvider and entire text range
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows XP [desktop apps | UWP apps] |
Minimum supported server | Windows Server 2003 [desktop apps | UWP apps] |
Target Platform | Windows |
Header | uiautomationcore.h (include UIAutomation.h) |
See also
ITextProvider, ITextRangeProvider, GetEnclosingElement, ITextProvider::RangeFromChild, UI Automation Providers Overview, Best Practices for Using Safe Arrays