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 は、イメージのみを返します。
この例では、テキストで囲まれた 2 セルのテーブルを含むテキスト ストリームを示します。
テキストの開始
表のセル 1 表のセル 2 テキストの終了
- ケース 1: ストリームの ITextProvider とテキスト範囲全体
- テキスト範囲全体の ITextRangeProvider::GetEnclosingElement は、ストリームの ITextProvider を返します。
- GetChildren は、ストリームの ITextProvider のすべての子要素 (この場合は table 要素のみ) を返します。
- ケース 2: table 要素で 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 オートメーション プロバイダーの概要