iTextProvider::RangeFromChild 方法 (uiautomationcore.h)
检索将指定子元素括起来的文本范围 (例如图像、超链接或其他嵌入对象) 。
语法
HRESULT RangeFromChild(
[in] IRawElementProviderSimple *childElement,
[out, retval] ITextRangeProvider **pRetVal
);
参数
[in] childElement
类型: IRawElementProviderSimple*
指定子元素的UI 自动化提供程序。
[out, retval] pRetVal
类型: ITextRangeProvider**
包含子元素的文本范围。
此范围完全包含子元素的内容,以便:
- ITextRangeProvider::GetEnclosingElement 返回子元素本身,或子元素的最内部后代,该子元素与子元素共享相同的文本范围
- ITextRangeProvider::GetChildren 从 (1) 返回元素的子元素,这些子元素完全包含在范围内
- 范围的两个终结点都位于子元素的边界处
此参数未经初始化即被传递。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注意
如果 childElement 不是 ITextProvider 的后代或未包含在有效文本范围中,则返回E_INVALIDARG。
注解
使用 ITextRangeProvider::GetChildren 检索的每个元素也有一个可通过 RangeFromChild 检索的有效文本范围。 这包括 ITextProvider 和子元素之间的UI 自动化树中的任何元素。
示例
此示例显示包含图像链接的文本流。 链接是图像的子级,但两者都跨越相同的文本范围,并且作为嵌入对象在文本流中公开。
Hello <Image Link> World
- 图像和链接也是流的 ITextProvider 的后代,可以在调用 ITextProvider::RangeFromChild 时指定为 childElement。
- 使用图像或链接调用 ITextRangeProvider::RangeFromChild 将返回与 Range1) (相同的文本范围。
- ITextRangeProvider::GetChildren 不返回链接。
- ITextRangeProvider::GetEnclosingElement 不返回任何文本范围的图像。
- Range1 上的 ITextRangeProvider::GetEnclosingElement 返回链接。
- Range1 上的 ITextRangeProvider::GetChildren 不返回任何子级。
- 流 ITextProvider 的文本范围上的 ITextRangeProvider::GetEnclosingElement 返回提供程序。
- 流 ITextProvider 的文本范围上的 ITextRangeProvider::GetChildren 仅返回图像。
此示例显示了一个文本流,其中包含一个由两个单元格的表格包围的文本。
起始文本
表格单元格 1 表格单元格 2 结束文本
- 案例 1:流的 ITextProvider 和整个文本范围
- 整个文本区域中的 ITextRangeProvider::GetEnclosingElement 返回流的 ITextProvider。
- GetChildren 返回流的 ITextProvider 的所有子元素,在本例中仅返回 table 元素。
- 案例 2:通过调用表元素上的 ITextProvider::RangeFromChild 获取的文本范围:
- ITextRangeProvider::GetEnclosingElement 返回表元素。
- ITextRangeProvider::GetChildren 返回这两个表单元格。
- 案例 3:跨越 表单元格 1 表单元格 2 的可视内容的文本范围:
- ITextRangeProvider::GetEnclosingElement 返回表元素。
- ITextRangeProvider::GetChildren 返回这两个表单元格。
- 案例 4:跨越表格 单元格1 一词单元格的文本范围:
- ITextRangeProvider::GetEnclosingElement 返回第一个单元格元素。
- ITextRangeProvider::GetChildren 不返回任何元素。
- 案例 5:一个退化 (空) 文本区域,表示 (表开头和第一个单元格) :
- ITextRangeProvider::GetEnclosingElement 返回 (最内层元素的第一个单元格元素,其中包含) 的退化范围。
- ITextRangeProvider::GetChildren 不返回任何元素。
- 案例 1:流的 ITextProvider 和整个文本范围
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | uiautomationcore.h (包括 UIAutomation.h) |
另请参阅
ITextProvider、ITextRangeProvider、ITextRangeProvider::GetEnclosingElement、ITextRangeProvider::GetChildren、UI 自动化提供程序概述