Win32 API 日本語リファレンス
ホームUI.Accessibility › ITextRangeProvider

ITextRangeProvider

COM
IID5347ad7b-c355-46f8-aff5-909033582f63継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

ITextProvider または ITextProvider2 を実装するテキストコンテナ内の、連続したテキスト範囲へのアクセスを提供します。

解説(Remarks)

範囲は、挿入ポイント、テキストの一部、またはコンテナ内のすべてのテキストを表すことができます。

メソッド 18

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Clone(ITextRangeProvider** pRetVal)

元の ITextRangeProvider と同一で、元のすべてのプロパティを継承する新しい ITextRangeProvider を返します。

pRetValITextRangeProvider**outテキスト範囲のコピーへのポインターを受け取ります。 null 参照が返されることはありません。 このパラメーターは初期化されていない状態で渡されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

新しい範囲は、元の範囲とは独立して操作できます。

vtbl 4 HRESULT Compare(ITextRangeProvider* range, BOOL* pRetVal)

このテキスト範囲が別のテキスト範囲と同じ端点を持つかどうかを示す値を取得します。(ITextRangeProvider.Compare)

rangeITextRangeProvider*inこのテキスト範囲と比較するテキスト範囲。
pRetValBOOL*outテキスト範囲が同じ端点を持つ場合は TRUE を、そうでない場合は FALSE を受け取ります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、範囲内のテキストではなく、2 つのテキスト範囲の端点を比較します。範囲は、同じ端点を共有している場合に同一と見なされます。2 つのテキスト範囲の端点が異なる場合、両方の範囲内のテキストがまったく同じであっても、それらは同一ではありません。

vtbl 5 HRESULT CompareEndpoints(TextPatternRangeEndpoint endpoint, ITextRangeProvider* targetRange, TextPatternRangeEndpoint targetEndpoint, INT* pRetVal)

2 つのテキスト範囲が同一の端点を持つかどうかを示す値を返します。

endpointTextPatternRangeEndpointin呼び出し元のテキスト範囲の端点(開始または終了)。
targetRangeITextRangeProvider*in比較対象のテキスト範囲。
targetEndpointTextPatternRangeEndpointin対象のテキスト範囲の端点(開始または終了)。
pRetValINT*out2 つのテキスト範囲が同一の端点を持つかどうかを示す値を受け取ります。 このパラメーターは初期化されていない状態で渡されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

呼び出し元の端点が対象の端点よりもテキスト内で前に位置する場合は、負の値を返します。

呼び出し元の端点が対象の端点と同じ位置にある場合は、ゼロを返します。

呼び出し元の端点が対象の端点よりもテキスト内で後に位置する場合は、正の値を返します。

vtbl 6 HRESULT ExpandToEnclosingUnit(TextUnit unit)

指定されたテキスト単位でテキスト範囲を正規化します。範囲が指定された単位より小さい場合は拡張され、指定された単位より長い場合は短縮されます。(ITextRangeProvider.ExpandToEnclosingUnit)

unitTextUnitin文字、単語、段落などのテキスト単位の種類。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

スクリーンリーダーなどのクライアントアプリケーションは、このメソッドを使用して、挿入ポイントまたはキャレット位置に存在する完全な単語、文、または段落を取得します。

名前に反して、ITextRangeProvider::ExpandToEnclosingUnit メソッドは必ずしもテキスト範囲を拡張するわけではありません。代わりに、範囲が指定されたテキスト単位を包含するように端点を移動して、テキスト範囲を「正規化」します。範囲が指定された単位より小さい場合は拡張され、指定された単位より長い場合は短縮されます。範囲がすでに指定された単位のちょうど整数個分である場合は、変更されません。ExpandToEnclosingUnit メソッドが常に一貫した方法でテキスト範囲を正規化することが重要です。そうでないと、テキスト単位によるテキスト範囲操作の他の側面が予測不能になります。次の図は、ExpandToEnclosingUnit が範囲の端点を移動してテキスト範囲を正規化する方法を示しています。

Diagram showing endpoint positions before and after a call to ExpandToEnclosingUnit ExpandToEnclosingUnit は、指定されたテキスト単位がコントロールでサポートされていない場合、サポートされている次に大きいテキスト単位を既定で使用します。
    最小の単位から最大の単位への順序は、次のとおりです。
    
ExpandToEnclosingUnit は、表示テキストと非表示テキストの両方を対象とします。

unitTextUnit::Format の場合の範囲の動作

TextUnit::Formatunit の値として使用すると、範囲内のテキストの共通のテキスト属性(書式)に基づいて範囲を拡張または移動するように、テキスト範囲の境界が配置されます。ただし、書式テキスト単位を使用しても、画像やハイパーリンクなどの埋め込みオブジェクトの境界を越えてテキスト範囲を移動または拡張しないでください。詳細については、UI Automation Text Units または Text and TextRange Control Patterns を参照してください。
vtbl 7 HRESULT FindAttribute(UIA_TEXTATTRIBUTE_ID attributeId, VARIANT val, BOOL backward, ITextRangeProvider** pRetVal)

指定されたテキスト属性値を持つテキスト範囲の部分集合を返します。

attributeIdUIA_TEXTATTRIBUTE_IDinテキスト属性の識別子。テキスト属性 ID の一覧については、Text Attribute Identifiers を参照してください。
valVARIANTin検索する属性値。この値は、属性に指定された型と一致している必要があります。
backwardBOOLin最初に出現するテキスト範囲ではなく、最後に出現するテキスト範囲を返す場合は TRUE、そうでない場合は FALSE
pRetValITextRangeProvider**out一致する属性および属性値を持つテキスト範囲へのポインターを受け取ります。一致しない場合は NULL

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

FindAttribute メソッドは、テキストが非表示か表示かにかかわらず、一致するテキストを取得します。クライアントは UIA_IsHiddenAttributeId を使用してテキストの表示状態を確認できます。

vtbl 8 HRESULT FindText(LPWSTR text, BOOL backward, BOOL ignoreCase, ITextRangeProvider** pRetVal)

指定されたテキストを含むテキスト範囲の部分集合を返します。

textLPWSTRin検索するテキスト文字列。
backwardBOOLin最初に出現するテキスト範囲ではなく、最後に出現するテキスト範囲を返す場合は TRUE、そうでない場合は FALSE
ignoreCaseBOOLin大文字と小文字を区別しない場合は TRUE、そうでない場合は FALSE
pRetValITextRangeProvider**out指定されたテキストに一致するテキスト範囲へのポインターを受け取ります。一致しない場合は NULL。 このパラメーターは初期化されていない状態で渡されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

非表示テキストと表示テキストの区別はありません。

vtbl 9 HRESULT GetAttributeValue(UIA_TEXTATTRIBUTE_ID attributeId, VARIANT* pRetVal)

テキスト範囲全体にわたる、指定されたテキスト属性の値を取得します。

attributeIdUIA_TEXTATTRIBUTE_IDinテキスト属性の識別子。テキスト属性 ID の一覧については、Text Attribute Identifiers を参照してください。
pRetValVARIANT*out

次のいずれかを受け取ります。

  • 指定された属性の値を表すオブジェクトのアドレス。値のデータ型は、指定された属性によって異なります。たとえば、attributeIdUIA_FontNameAttributeId の場合、GetAttributeValue はテキスト範囲のフォント名を表す文字列を返しますが、attributeIdUIA_IsItalicAttributeId の場合、GetAttributeValue はブール値を返します。
  • 指定された属性の値がテキスト範囲全体にわたって異なる場合は、UiaGetReservedMixedAttributeValue 関数によって取得される値のアドレス。
  • 指定された属性がプロバイダーまたはコントロールでサポートされていない場合は、UiaGetReservedNotSupportedValue 関数によって取得される値のアドレス。
このパラメーターは初期化されていない状態で渡されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

GetAttributeValue メソッドは、テキストが非表示か表示かにかかわらず、属性値を取得します。

vtbl 10 HRESULT GetBoundingRectangles(SAFEARRAY** pRetVal)

テキスト範囲内の、完全にまたは部分的に表示されている各行のテキストに対する外接矩形のコレクションを取得します。(ITextRangeProvider.GetBoundingRectangles)

pRetValSAFEARRAY**out

次のいずれかへのポインターを受け取ります。

  • テキスト範囲内の完全なまたは部分的な各行のテキストに対する外接矩形の配列。
  • 縮退した範囲の場合は空の配列。
  • 画面座標により完全に画面外に位置している、スクロールにより表示範囲外にある、または重なり合うウィンドウによって隠されているテキスト範囲の場合は空の配列。
このパラメーターは初期化されていない状態で渡されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT GetEnclosingElement(IRawElementProviderSimple** pRetVal)

テキスト範囲を囲む最も内側の要素を返します。

pRetValIRawElementProviderSimple**out

指定された ITextRangeProvider を囲む最も内側の要素の UI Automation プロバイダー。

メモ

囲む要素は、指定された ITextRangeProvider よりも広い範囲にまたがることがあります。

囲む要素が見つからない場合は、ITextRangeProvider の親である ITextProvider が返されます。

このパラメーターは初期化されていない状態で渡されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

  1. この例は、画像リンクを含むテキストストリームを示しています。リンクは画像の子ですが、どちらも同じテキスト範囲にまたがっており、テキストストリーム内で埋め込みオブジェクトとして公開されます。

    Hello <Image Link> World

  2. この例は、テキストに囲まれた 2 セルのテーブルを含むテキストストリームを示しています。

    Start text

    Table Cell 1Table Cell 2

    End Text

vtbl 12 HRESULT GetText(INT maxLength, LPWSTR* pRetVal)

範囲のプレーンテキストを取得します。

maxLengthINTin返す文字列の最大長。制限が不要な場合は -1 を使用します。
pRetValLPWSTR*outテキスト範囲のプレーンテキストを受け取ります。 指定された最大長で切り詰められる場合があります。このパラメーターは初期化されていない状態で渡されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

ITextRangeProvider::GetText は、非表示テキストと表示テキストの両方を取得します。

maxLength が呼び出し元のテキスト範囲の長さよりも大きい場合、返される文字列はテキスト範囲のプレーンテキストになります。

ITextRangeProvider::GetText は、テキストフロー内の端点の順序の影響を受けません。常に、論理的なテキストフローの順序で、テキスト範囲の開始端点と終了端点の間のテキストを返します。

vtbl 13 HRESULT Move(TextUnit unit, INT count, INT* pRetVal)

指定された数のテキスト単位分、テキスト範囲を前方または後方に移動します。

unitTextUnitin文字、単語、段落などのテキスト単位の種類。
countINTin

移動するテキスト単位の数。正の値はテキスト範囲を前方に移動します。

負の値はテキスト範囲を後方に移動します。ゼロは影響しません。

pRetValINT*out実際に移動したテキスト単位の数。新しいテキスト範囲の端点のいずれかが、ITextProvider::DocumentRange メソッドで取得される端点を超える、または下回る場合、要求された数より少なくなることがあります。ナビゲーションが後方向に行われる場合、この値は負になることがあります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

ITextRangeProvider::Move は、テキストの別の部分にまたがるようにテキスト範囲を移動するだけであり、テキストを一切変更してはなりません。

縮退していない(空でない)テキスト範囲の場合、ITextRangeProvider::Move は次の手順を実行して、テキスト範囲を正規化して移動する必要があります。

  1. 開始端点でテキスト範囲を縮退した(空の)範囲に折りたたみます。
  2. 必要に応じて、結果として得られるテキスト範囲を、要求された単位境界の先頭までドキュメント内で後方に移動します。
  3. 要求された数のテキスト単位境界分、テキスト範囲をドキュメント内で前方または後方に移動します。
  4. 終了端点を要求されたテキスト単位境界 1 つ分だけ前方に移動して、縮退した状態からテキスト範囲を拡張します。
上記のいずれかの手順が失敗した場合、テキスト範囲は変更されないままにする必要があります。 テキスト範囲を要求された数のテキスト単位分だけ移動できないが、より少ない数のテキスト単位分だけ移動できる場合は、その少ない数のテキスト単位分だけテキスト範囲を移動し、pRetVal に正常に移動したテキスト単位の数を設定する必要があります。

縮退したテキスト範囲の場合、ITextRangeProvider::Move は、指定された数のテキスト単位分だけテキスト挿入ポイントを移動するだけです。

テキスト範囲を移動する際、プロバイダーはテキスト内の埋め込みオブジェクトの境界を無視する必要があります。

ITextRangeProvider::Move は、非表示テキストと表示テキストの両方を対象とする必要があります。

テキストベースのコントロールが unit パラメーターで指定されたテキスト単位をサポートしていない場合、プロバイダーはサポートされている次に大きいテキスト単位で代替する必要があります。

テキスト単位のサイズは、最小の単位から最大の単位まで、次のとおりです。

unitTextUnit::Format の場合の範囲の動作

TextUnit::Formatunit の値として使用すると、範囲内のテキストの共通のテキスト属性(書式)に基づいて範囲を拡張または移動するように、テキスト範囲の境界が配置されます。ただし、書式テキスト単位を使用しても、画像やハイパーリンクなどの埋め込みオブジェクトの境界を越えてテキスト範囲を移動または拡張しないでください。詳細については、UI Automation Text Units または Text and TextRange Control Patterns を参照してください。
vtbl 14 HRESULT MoveEndpointByUnit(TextPatternRangeEndpoint endpoint, TextUnit unit, INT count, INT* pRetVal)

テキスト範囲の一方の端点を、ドキュメント範囲内で指定された数の TextUnit 単位分だけ移動します。

endpointTextPatternRangeEndpointin移動する端点。
unitTextUnitin文字、単語、段落などのテキスト単位の種類。
countINTin移動する単位の数。正の値は端点を前方に移動します。 負の値は後方に移動します。値 0 は影響しません。
pRetValINT*out実際に移動した単位の数を受け取ります。端点の移動がドキュメントの先頭または末尾に達した場合、要求された数より少なくなることがあります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

端点は、指定されたとおりに前方または後方に、次に利用可能な単位境界まで移動します。元の 端点が指定されたテキスト単位の境界にあった場合、端点は次に利用可能なテキスト単位境界まで移動します。これは次の図に示すとおりです。

Illustration showing endpoints of a text range moving 移動する端点が同じテキスト範囲のもう一方の端点を越える場合、もう一方の端点も移動し、その結果、縮退した範囲となり、端点の正しい順序(つまり、開始が常に終了以下であること)が保証されます。

ITextRangeProvider::MoveEndpointByUnit は、指定されたテキスト単位がコントロールでサポートされていない場合、サポートされている次のテキスト単位まで格下げします。

最小の単位から最大の単位への順序は、ここに示すとおりです。

unitTextUnit::Format の場合の範囲の動作

TextUnit::Formatunit の値として使用すると、範囲内のテキストの共通のテキスト属性(書式)に基づいて範囲を拡張または移動するように、テキスト範囲の境界が配置されます。ただし、書式テキスト単位を使用しても、画像やハイパーリンクなどの埋め込みオブジェクトの境界を越えてテキスト範囲を移動または拡張しないでください。詳細については、UI Automation Text Units または Text and TextRange Control Patterns を参照してください。
vtbl 15 HRESULT MoveEndpointByRange(TextPatternRangeEndpoint endpoint, ITextRangeProvider* targetRange, TextPatternRangeEndpoint targetEndpoint)

現在のテキスト範囲の一方の端点を、2 番目のテキスト範囲の指定された端点に移動します。(ITextRangeProvider.MoveEndpointByRange)

endpointTextPatternRangeEndpointin現在のテキスト範囲の端点(開始または終了)。これが移動する端点です。
targetRangeITextRangeProvider*in現在のテキスト範囲と同じテキストプロバイダーからの 2 番目のテキスト範囲。
targetEndpointTextPatternRangeEndpointin2 番目のテキスト範囲の端点(開始または終了)。現在のテキスト範囲の endpoint がこの端点に移動されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

移動する端点が同じテキスト範囲のもう一方の端点を越える場合、そのもう一方の端点も移動し、その結果、縮退した(空の)範囲となり、端点の正しい順序(つまり、開始が常に終了以下であること)が保証されます。

vtbl 16 HRESULT Select()

このテキスト範囲に対応するテキストの範囲を選択し、以前の選択をすべて解除します。(ITextRangeProvider.Select)

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

縮退したテキスト範囲を指定すると、テキスト挿入ポイントが移動します。

vtbl 17 HRESULT AddToSelection()

複数の分離した選択テキスト範囲をサポートするコントロールにおいて、テキスト範囲を選択済みテキスト範囲のコレクションに追加します。(ITextRangeProvider.AddToSelection)

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

テキスト挿入ポイントが新しい選択の領域に移動します。

このメソッドが縮退したテキスト範囲に対して呼び出された場合、テキスト挿入ポイントはテキスト範囲の位置に移動しますが、テキストは選択されません。

vtbl 18 HRESULT RemoveFromSelection()

複数の分離した選択テキスト範囲をサポートするコントロールにおいて、テキスト範囲を選択済みテキスト範囲のコレクションから削除します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

テキスト挿入ポイントが削除された選択の領域に移動します。

このメソッドが縮退したテキスト範囲に対して呼び出された場合、テキスト挿入ポイントはテキスト範囲の位置に移動しますが、テキストは選択されません。

vtbl 19 HRESULT ScrollIntoView(BOOL alignToTop)

テキスト範囲がビューポート内に表示されるまで、テキストコントロールを垂直方向にスクロールさせます。

alignToTopBOOLinテキスト範囲がビューポートの上端に接するようにテキストコントロールをスクロールする場合は TRUE、 ビューポートの下端に接するようにする場合は FALSE。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

ITextRangeProvider::ScrollIntoView は、非表示テキストと表示テキストの両方を対象とします。

テキスト範囲が非表示の場合、非表示テキストがビューポート内にアンカーを持つ場合にのみ、テキストコントロールはスクロールします。

vtbl 20 HRESULT GetChildren(SAFEARRAY** pRetVal)

テキスト範囲内に含まれるすべての埋め込みオブジェクトのコレクションを取得します。(ITextRangeProvider.GetChildren)

pRetValSAFEARRAY**out

テキスト範囲に囲まれるすべての子要素の IRawElementProviderSimple インターフェイスへのポインターの配列(各範囲の Start 端点でソート)。

テキスト範囲に子要素が含まれていない場合は、空のコレクションが返されます。

このパラメーターは初期化されていない状態で渡されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

ITextRangeProvider::GetChildren で取得される各要素は、RangeFromChild を通じて取得できる有効なテキスト範囲を持ちます。これには、ITextProvider と子要素の間にある UI Automation ツリー内のすべての要素が含まれます。

  1. この例は、画像リンクを含むテキストストリームを示しています。リンクは画像の子ですが、どちらも同じテキスト範囲にまたがっており、テキストストリーム内で埋め込みオブジェクトとして公開されます。

    Hello <Image Link> World

  2. この例は、テキストに囲まれた 2 セルのテーブルを含むテキストストリームを示しています。

    Start text

    Table Cell 1Table Cell 2

    End Text

は両方のテーブルセルを返します。 - ケース 3: Table Cell 1 Table Cell 2 の視覚的内容にまたがるテキスト範囲: - ITextRangeProvider::GetEnclosingElement はテーブル要素を返します。 - ITextRangeProvider::GetChildren は両方のテーブルセルを返します。 - ケース 4: Table Cell 1 の単語 Cell にまたがるテキスト範囲: - ITextRangeProvider::GetEnclosingElement は最初のセル要素を返します。 - ITextRangeProvider::GetChildren は要素を返しません。 - ケース 5: 両方の開始位置(テーブルと最初のセル)を表す縮退した(空の)テキスト範囲: - ITextRangeProvider::GetEnclosingElement は最初のセル要素(縮退した範囲を含む範囲を持つ最も内側の要素)を返します。 - ITextRangeProvider::GetChildren は要素を返しません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ITextRangeProvider "{5347AD7B-C355-46F8-AFF5-909033582F63}"
#usecom global ITextRangeProvider IID_ITextRangeProvider "{}"
#comfunc global ITextRangeProvider_Clone                  3 sptr
#comfunc global ITextRangeProvider_Compare                4 sptr,var
#comfunc global ITextRangeProvider_CompareEndpoints       5 int,sptr,int,var
#comfunc global ITextRangeProvider_ExpandToEnclosingUnit  6 int
#comfunc global ITextRangeProvider_FindAttribute          7 int,int,int,sptr
#comfunc global ITextRangeProvider_FindText               8 wstr,int,int,sptr
#comfunc global ITextRangeProvider_GetAttributeValue      9 int,var
#comfunc global ITextRangeProvider_GetBoundingRectangles  10 var
#comfunc global ITextRangeProvider_GetEnclosingElement    11 sptr
#comfunc global ITextRangeProvider_GetText                12 int,var
#comfunc global ITextRangeProvider_Move                   13 int,int,var
#comfunc global ITextRangeProvider_MoveEndpointByUnit     14 int,int,int,var
#comfunc global ITextRangeProvider_MoveEndpointByRange    15 int,sptr,int
#comfunc global ITextRangeProvider_Select                 16
#comfunc global ITextRangeProvider_AddToSelection         17
#comfunc global ITextRangeProvider_RemoveFromSelection    18
#comfunc global ITextRangeProvider_ScrollIntoView         19 int
#comfunc global ITextRangeProvider_GetChildren            20 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。