ITextRangeProvider::GetChildren メソッド (uiautomationcore.h)
指定したテキスト範囲内に含まれていて、指定したテキスト範囲の外側の要素の子要素であるすべての要素のコレクション を 取得します。
構文
HRESULT GetChildren(
[out, retval] SAFEARRAY **pRetVal
);
パラメーター
[out, retval] pRetVal
種類: SAFEARRAY**
テキスト範囲で囲まれているすべての子要素の IRawElementProviderSimple インターフェイスへのポインターの配列 (範囲の Start エンドポイントで並べ替えられます)。
テキスト範囲に子要素が含まれていない場合は、空のコレクションが返されます。
このパラメーターは初期化せずに渡されます。
戻り値
種類: HRESULT
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
注釈
ITextRangeProvider::GetChildren で取得された各要素には、RangeFromChild を使用して取得できる有効なテキスト範囲があります。 これには、ITextProvider と子要素の間のUI オートメーション ツリー内のすべての要素が含まれます。
例
この例では、イメージ リンクを含むテキスト ストリームを示します。 リンクはイメージの子ですが、どちらも同じテキスト範囲にまたがり、テキスト ストリーム内の埋め込みオブジェクトとして公開されます。
Hello <Image Link> World
- イメージとリンクはどちらもストリームの ITextProvider の子孫であり、ITextProvider::RangeFromChild の呼び出しで childElement として指定することもできます。
- イメージまたはリンクを使用して ITextRangeProvider::RangeFromChild を呼び出すと、同じテキスト範囲 (Range1) が返されます。
- GetChildren はリンクを返しません。
- GetEnclosingElement は、テキスト範囲の画像を返しません。
- Range1の GetEnclosingElement はリンクを返します。
- Range1 の GetChildren は子を返しません。
- ストリームの ITextProvider のテキスト範囲の GetEnclosingElement は、プロバイダーを返します。
- ストリームの ITextProvider のテキスト範囲の GetChildren は、イメージのみを返します。
この例では、テキストで囲まれた 2 セルのテーブルを含むテキスト ストリームを示します。
テキストの開始
表のセル 1 [表] セル 2 テキストの終了
- ケース 1: ストリームの ITextProvider とテキスト範囲全体
- テキスト範囲全体の ITextRangeProvider::GetEnclosingElement は、ストリームの ITextProvider を返します。
- GetChildren は、ストリームの ITextProvider のすべての子要素を返します。この場合は table 要素のみを返します。
- ケース 2: table 要素で ITextProvider::RangeFromChild を呼び出して取得したテキスト範囲:
- ITextRangeProvider::GetEnclosingElement は table 要素を返します。
- ITextRangeProvider::GetChildren は両方のテーブル セルを返します。
- ケース 3: Table Cell 1 Table Cell 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、GetEnclosingElement、ITextProvider::RangeFromChild、UI オートメーション プロバイダーの概要、安全な配列を使用するためのベスト プラクティス