ITextProvider::RangeFromChild 方法 (uiautomationcore.h)
擷取文字範圍,以括住指定的子專案 (,例如影像、超連結或其他內嵌物件) 。
語法
HRESULT RangeFromChild(
[in] IRawElementProviderSimple *childElement,
[out, retval] ITextRangeProvider **pRetVal
);
參數
[in] childElement
類型: IRawElementProviderSimple*
指定子專案的 使用者介面自動化 提供者。
[out, retval] pRetVal
類型: ITextRangeProvider**
括住子專案的文字範圍。
此範圍會完全括住子項目的內容,如此一來:
- ITextRangeProvider::GetEnclosingElement 會傳回子專案本身,或與子項目共用相同文字範圍的子元素最內部子代
- ITextRangeProvider::GetChildren 會從 (1) 傳回元素的子系,這些子系完全包含在範圍內
- 範圍的兩個端點都位於子元素的界限
這個參數會以未初始化的狀態傳遞。
傳回值
類型: HRESULT
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
注意
如果 childElement 不是 ITextProvider 的子系,或不是以有效文字範圍括住,則會傳回E_INVALIDARG。
備註
使用 ITextRangeProvider::GetChildren 擷取的每個元素也有可透過 RangeFromChild 擷取的有效文字範圍。 這包括 ITextProvider 與子元素之間 使用者介面自動化 樹狀結構中的任何元素。
範例
此範例顯示包含影像連結的文字數據流。 連結是影像的子系,但同時跨越相同的文字範圍,並且會公開為文字數據流中的內嵌物件。
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 會傳回 table 元素。
- ITextRangeProvider::GetChildren 會傳回這兩個表格單元格。
- 案例 3:跨越 表格單元格 1 表格單元格 2 之視覺內容的文字範圍:
- ITextRangeProvider::GetEnclosingElement 會傳回 table 元素。
- 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、使用者介面自動化 提供者概觀