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

IUIAutomation

COM
IID30cbe57d-d9d0-452a-ab13-7ac5ac4825ee継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Microsoft UI Automation クライアントアプリケーションが UI Automation 要素を検出、アクセス、フィルタリングできるようにするメソッドを公開します。

解説(Remarks)

すべての UI Automation クライアントアプリケーションは、UI Automation の機能にアクセスするために、CUIAutomation オブジェクトに対するこのインターフェイスを取得する必要があります。

次のサンプル関数は、CUIAutomation オブジェクトを作成し、IUIAutomation インターフェイスを取得します。

IUIAutomation *g_pAutomation;

BOOL InitializeUIAutomation()
{
    CoInitialize(NULL);
    HRESULT hr = CoCreateInstance(__uuidof(CUIAutomation), NULL, CLSCTX_INPROC_SERVER, 
        __uuidof(IUIAutomation), (void**)&g_pAutomation);
    return (SUCCEEDED(hr));
}

メソッド 55

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

vtbl 3 HRESULT CompareElements(IUIAutomationElement* el1, IUIAutomationElement* el2, BOOL* areSame)

2 つの UI Automation 要素を比較し、それらが同じ基になる UI 要素を表しているかどうかを判定します。

el1IUIAutomationElement*in比較する 1 つ目の要素へのポインター。
el2IUIAutomationElement*in比較する 2 つ目の要素へのポインター。
areSameBOOL*out要素の実行時識別子が同じ場合は TRUE、それ以外の場合は FALSE を受け取ります。

戻り値

型: HRESULT

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

vtbl 4 HRESULT CompareRuntimeIds(SAFEARRAY* runtimeId1, SAFEARRAY* runtimeId2, BOOL* areSame)

実行時識別子 (ID) を格納した 2 つの整数配列を比較し、その内容が同じで同一の UI 要素に属しているかどうかを判定します。

runtimeId1SAFEARRAY*in比較する 1 つ目の ID。
runtimeId2SAFEARRAY*in比較する 2 つ目の ID。
areSameBOOL*outID が同じ場合は TRUE、それ以外の場合は FALSE を受け取ります。

戻り値

型: HRESULT

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

vtbl 5 HRESULT GetRootElement(IUIAutomationElement** root)

デスクトップを表す UI Automation 要素を取得します。

rootIUIAutomationElement**outUI Automation 要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

ルート要素は、FindAll メソッドや FindFirst メソッドを使用して他の要素を検索するための起点として利用できます。

ルート要素から検索する場合は、検索のスコープに TreeScope_Descendants ではなく TreeScope_Children を必ず指定してください。デスクトップのサブツリー全体を検索すると、数千個の項目を反復処理することになり、スタックオーバーフローを引き起こす可能性があります。

vtbl 6 HRESULT ElementFromHandle(HWND hwnd, IUIAutomationElement** element)

指定したウィンドウに対応する UI Automation 要素を取得します。

hwndHWNDinウィンドウハンドル。
elementIUIAutomationElement**out要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

vtbl 7 HRESULT ElementFromPoint(POINT pt, IUIAutomationElement** element)

デスクトップ上の指定した位置にある UI Automation 要素を取得します。

ptPOINTinUI Automation 要素のデスクトップ座標。
elementIUIAutomationElement**outUI Automation 要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

IUIAutomation::ElementFromPoint メソッドは、メソッドが戻る時点でその位置にある要素が既に削除されている場合、UIA_E_ELEMENTNOTAVAILABLE エラーコードを返します。クライアントは、このメソッドから返されるエラーを適切に処理する必要があります。たとえば、呼び出しを再試行するなどの方法があります。

vtbl 8 HRESULT GetFocusedElement(IUIAutomationElement** element)

入力フォーカスを持つ UI Automation 要素を取得します。

elementIUIAutomationElement**outUI Automation 要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

IUIAutomation::GetFocusedElement メソッドは、メソッドが戻る時点でフォーカスを持つ要素が既に削除されている場合、UIA_E_ELEMENTNOTAVAILABLE エラーコードを返します。クライアントは、このメソッドから返されるエラーを適切に処理する必要があります。たとえば、呼び出しを再試行するなどの方法があります。

vtbl 9 HRESULT GetRootElementBuildCache(IUIAutomationCacheRequest* cacheRequest, IUIAutomationElement** root)

デスクトップを表す UI Automation 要素を取得し、要求されたプロパティとコントロールパターンをプリフェッチして、プリフェッチした項目をキャッシュに格納します。

cacheRequestIUIAutomationCacheRequest*inキャッシュに格納するプロパティとコントロールパターンを指定するキャッシュ要求へのポインター。
rootIUIAutomationElement**outUI Automation 要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

ルート要素は、FindAll メソッドや FindFirst メソッドを使用して他の要素を検索するための起点として利用できます。

ルート要素から検索する場合は、検索のスコープに TreeScope_Descendants ではなく TreeScope_Children を必ず指定してください。デスクトップのサブツリー全体を検索すると、数千個の項目を反復処理することになり、スタックオーバーフローを引き起こす可能性があります。

vtbl 10 HRESULT ElementFromHandleBuildCache(HWND hwnd, IUIAutomationCacheRequest* cacheRequest, IUIAutomationElement** element)

指定したウィンドウに対応する UI Automation 要素を取得し、要求されたプロパティとコントロールパターンをプリフェッチして、プリフェッチした項目をキャッシュに格納します。

hwndHWNDinウィンドウハンドル。
cacheRequestIUIAutomationCacheRequest*inキャッシュに格納するプロパティとコントロールパターンを指定するキャッシュ要求へのポインター。
elementIUIAutomationElement**out要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

vtbl 11 HRESULT ElementFromPointBuildCache(POINT pt, IUIAutomationCacheRequest* cacheRequest, IUIAutomationElement** element)

デスクトップ上の指定した位置にある UI Automation 要素を取得し、要求されたプロパティとコントロールパターンをプリフェッチして、プリフェッチした項目をキャッシュに格納します。

ptPOINTinUI Automation 要素のデスクトップ座標。
cacheRequestIUIAutomationCacheRequest*inキャッシュに格納するプロパティとコントロールパターンを指定するキャッシュ要求へのポインター。
elementIUIAutomationElement**outUI Automation 要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

vtbl 12 HRESULT GetFocusedElementBuildCache(IUIAutomationCacheRequest* cacheRequest, IUIAutomationElement** element)

入力フォーカスを持つ UI Automation 要素を取得し、要求されたプロパティとコントロールパターンをプリフェッチして、プリフェッチした項目をキャッシュに格納します。

cacheRequestIUIAutomationCacheRequest*inキャッシュに格納するプロパティとコントロールパターンを指定するキャッシュ要求へのポインター。
elementIUIAutomationElement**outUI Automation 要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

vtbl 13 HRESULT CreateTreeWalker(IUIAutomationCondition* pCondition, IUIAutomationTreeWalker** walker)

Microsoft UI Automation ツリーの走査に使用できるツリーウォーカーオブジェクトを取得します。

pConditionIUIAutomationCondition*in対象とする要素を指定する条件へのポインター。
walkerIUIAutomationTreeWalker**outツリーウォーカーオブジェクトへのポインターを受け取ります。

戻り値

型: HRESULT

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

vtbl 14 HRESULT get_ControlViewWalker(IUIAutomationTreeWalker** walker)

コントロール要素を検出するために使用する IUIAutomationTreeWalker インターフェイスを取得します。

walkerIUIAutomationTreeWalker**outコントロールビュー用に事前定義されたツリーウォーカーを受け取るポインタである。
vtbl 15 HRESULT get_ContentViewWalker(IUIAutomationTreeWalker** walker)

コンテンツ要素を検出するために使用する IUIAutomationTreeWalker インターフェイスを取得します。

walkerIUIAutomationTreeWalker**outコンテンツビュー用に事前定義されたツリーウォーカーを受け取るポインタである。
vtbl 16 HRESULT get_RawViewWalker(IUIAutomationTreeWalker** walker)

Microsoft UI Automation ツリーのフィルター処理されていないビューを走査するために使用するツリーウォーカーオブジェクトを取得します。

walkerIUIAutomationTreeWalker**outRaw ビュー用に事前定義されたツリーウォーカーを受け取るポインタである。
vtbl 17 HRESULT get_RawViewCondition(IUIAutomationCondition** condition)

フィルター処理されていないビュー内のすべての UI 要素を選択する、定義済みの IUIAutomationCondition インターフェイスを取得します。

conditionIUIAutomationCondition**outRaw ビューを表す事前定義済み条件を受け取るポインタである。

解説(Remarks)

この条件を単独で使用した場合、その機能は IUIAutomation::CreateTrueCondition で取得される条件とまったく同じです。

vtbl 18 HRESULT get_ControlViewCondition(IUIAutomationCondition** condition)

コントロール要素を選択する、定義済みの IUIAutomationCondition インターフェイスを取得します。

conditionIUIAutomationCondition**outコントロールビューを表す事前定義済み条件を受け取るポインタである。
vtbl 19 HRESULT get_ContentViewCondition(IUIAutomationCondition** condition)

コンテンツ要素を選択する、定義済みの IUIAutomationCondition インターフェイスを取得します。

conditionIUIAutomationCondition**outコンテンツビューを表す事前定義済み条件を受け取るポインタである。
vtbl 20 HRESULT CreateCacheRequest(IUIAutomationCacheRequest** cacheRequest)

キャッシュ要求を作成します。

cacheRequestIUIAutomationCacheRequest**outIUIAutomationCacheRequest インターフェイスへのポインターを受け取る変数のアドレス。

戻り値

型: HRESULT

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

解説(Remarks)

IUIAutomationCacheRequest インターフェイスを取得した後、そのメソッドを使用して、UI Automation 要素を取得する際にキャッシュするプロパティとコントロールパターンを指定します。

vtbl 21 HRESULT CreateTrueCondition(IUIAutomationCondition** newCondition)

すべての要素を選択する、定義済みの条件を取得します。

newConditionIUIAutomationCondition**out真 (true) 条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

vtbl 22 HRESULT CreateFalseCondition(IUIAutomationCondition** newCondition)

常に偽 (false) となる条件を作成します。

newConditionIUIAutomationCondition**out偽 (false) 条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、IUIAutomation::CreateTrueCondition との対称性のためだけに存在します。偽 (false) 条件は UI Automation 要素との一致を有効にすることは決してなく、他のどの条件と組み合わせても有用にはなりません。

vtbl 23 HRESULT CreatePropertyCondition(UIA_PROPERTY_ID propertyId, VARIANT value, IUIAutomationCondition** newCondition)

指定した値を持つプロパティを備えた要素を選択する条件を作成します。

propertyIdUIA_PROPERTY_IDinプロパティ識別子。プロパティ ID の一覧については、「Property Identifiers」を参照してください。
valueVARIANTinプロパティ値。
newConditionIUIAutomationCondition**out新しい条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

vtbl 24 HRESULT CreatePropertyConditionEx(UIA_PROPERTY_ID propertyId, VARIANT value, PropertyConditionFlags flags, IUIAutomationCondition** newCondition)

オプションのフラグを使用して、指定した値を持つプロパティを備えた要素を選択する条件を作成します。

propertyIdUIA_PROPERTY_IDinプロパティ識別子。プロパティ ID の一覧については、「Property Identifiers」を参照してください。
valueVARIANTinプロパティ値。
flagsPropertyConditionFlagsin条件の属性。大文字と小文字を区別しないプロパティ条件を作成するには、PropertyConditionFlags_IgnoreCase を使用します。
newConditionIUIAutomationCondition**out新しい条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

vtbl 25 HRESULT CreateAndCondition(IUIAutomationCondition* condition1, IUIAutomationCondition* condition2, IUIAutomationCondition** newCondition)

2 つの条件の両方に一致する要素を選択する条件を作成します。

condition1IUIAutomationCondition*in一致させる 1 つ目の条件へのポインター。
condition2IUIAutomationCondition*in一致させる 2 つ目の条件へのポインター。
newConditionIUIAutomationCondition**out結合された条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

3 つ以上の単純な条件を結合する条件は、IUIAutomation::CreateAndConditionFromArray または IUIAutomation::CreateAndConditionFromNativeArray を使用して作成できます。

CreateAndCondition メソッドは、condition1 ポインターと condition2 ポインターに対して AddRef を呼び出します。つまり、CreateAndCondition の呼び出しが戻った後にこれら 2 つのポインターに対して Release を呼び出しても、CreateAndCondition から返されたポインターは無効になりません。CreateAndCondition から返されたポインターに対して Release を呼び出すと、UI Automation は condition1 ポインターと condition2 ポインターに対して Release を呼び出します。

vtbl 26 HRESULT CreateAndConditionFromArray(SAFEARRAY* conditions, IUIAutomationCondition** newCondition)

複数の条件に基づいて要素を選択する条件を作成します。これらの条件はすべて真である必要があります。

conditionsSAFEARRAY*in結合する条件へのポインター。
newConditionIUIAutomationCondition**out結合された条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、conditions 配列内の各ポインターに対して AddRef を呼び出します。つまり、CreateAndConditionFromArray の呼び出しが戻った後にこれらのポインターに対して Release を呼び出しても、CreateAndConditionFromArray から返されたポインターは無効になりません。CreateAndConditionFromArray から返されたポインターに対して Release を呼び出すと、UI Automation は conditions 配列内の各ポインターに対して Release を呼び出します。

vtbl 27 HRESULT CreateAndConditionFromNativeArray(IUIAutomationCondition** conditions, INT conditionCount, IUIAutomationCondition** newCondition)

ネイティブ配列から、すべて真である必要がある複数の条件に基づいて要素を選択する条件を作成します。

conditionsIUIAutomationCondition**in結合する条件の配列へのポインター。
conditionCountINTinconditions 配列内の要素数。
newConditionIUIAutomationCondition**out結合された条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、conditions 配列内の各ポインターに対して AddRef を呼び出します。つまり、CreateAndConditionFromNativeArray の呼び出しが戻った後にこれらのポインターに対して Release を呼び出しても、CreateAndConditionFromNativeArray から返されたポインターは無効になりません。CreateAndConditionFromNativeArray から返されたポインターに対して Release を呼び出すと、UI Automation は conditions 配列内の各ポインターに対して Release を呼び出します。

vtbl 28 HRESULT CreateOrCondition(IUIAutomationCondition* condition1, IUIAutomationCondition* condition2, IUIAutomationCondition** newCondition)

2 つの条件を組み合わせ、いずれかの条件が真の場合に一致とする条件を作成します。

condition1IUIAutomationCondition*in1 つ目の条件へのポインター。
condition2IUIAutomationCondition*in2 つ目の条件へのポインター。
newConditionIUIAutomationCondition**out結合された条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

CreateOrCondition メソッドは、condition1 ポインターと condition2 ポインターに対して AddRef を呼び出します。つまり、CreateOrCondition の呼び出しが戻った後にこれら 2 つのポインターに対して Release を呼び出しても、CreateOrCondition から返されたポインターは無効になりません。CreateOrCondition から返されたポインターに対して Release を呼び出すと、UI Automation は condition1 ポインターと condition2 ポインターに対して Release を呼び出します。

vtbl 29 HRESULT CreateOrConditionFromArray(SAFEARRAY* conditions, IUIAutomationCondition** newCondition)

2 つ以上の条件を組み合わせ、いずれかの条件が真の場合に一致とする条件を作成します。

conditionsSAFEARRAY*in条件へのポインター。
newConditionIUIAutomationCondition**out結合された条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、conditions 配列内の各ポインターに対して AddRef を呼び出します。つまり、CreateOrConditionFromArray の呼び出しが戻った後にこれらのポインターに対して Release を呼び出しても、CreateOrConditionFromArray から返されたポインターは無効になりません。CreateOrConditionFromArray から返されたポインターに対して Release を呼び出すと、UI Automation は conditions 配列内の各ポインターに対して Release を呼び出します。

vtbl 30 HRESULT CreateOrConditionFromNativeArray(IUIAutomationCondition** conditions, INT conditionCount, IUIAutomationCondition** newCondition)

2 つ以上の条件を組み合わせ、いずれか 1 つの条件が真の場合に一致とする条件を作成します。

conditionsIUIAutomationCondition**in結合する条件の配列へのポインター。
conditionCountINTinconditions 内の要素数。
newConditionIUIAutomationCondition**out結合された条件へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、conditions 配列内の各ポインターに対して AddRef を呼び出します。つまり、CreateOrConditionFromNativeArray の呼び出しが戻った後にこれらのポインターに対して Release を呼び出しても、CreateOrConditionFromNativeArray から返されたポインターは無効になりません。CreateOrConditionFromNativeArray から返されたポインターに対して Release を呼び出すと、UI Automation は conditions 配列内の各ポインターに対して Release を呼び出します。

vtbl 31 HRESULT CreateNotCondition(IUIAutomationCondition* condition, IUIAutomationCondition** newCondition)

指定した条件の否定となる条件を作成します。

conditionIUIAutomationCondition*in元の条件へのポインター。
newConditionIUIAutomationCondition**outcondition パラメーターで指定された元の条件の否定へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

CreateNotCondition メソッドは、condition ポインターに対して AddRef を呼び出します。つまり、CreateNotCondition の呼び出しが戻った後にそのポインターに対して Release を呼び出しても、CreateNotCondition から返されたポインターは無効になりません。CreateNotCondition から返されたポインターに対して Release を呼び出すと、UI Automation は condition ポインターに対して Release を呼び出します。

vtbl 32 HRESULT AddAutomationEventHandler(UIA_EVENT_ID eventId, IUIAutomationElement* element, TreeScope scope, IUIAutomationCacheRequest* cacheRequest, IUIAutomationEventHandler* handler)

Microsoft UI Automation イベントを処理するメソッドを登録します。メモ イベントハンドラーを実装する前に、「Understanding Threading Issues」で説明されているスレッド処理の問題を理解しておく必要があります。

eventIdUIA_EVENT_IDinメソッドが処理するイベントの識別子。イベント ID の一覧については、「Event Identifiers」を参照してください。
elementIUIAutomationElement*inイベントハンドラーに関連付ける UI Automation 要素へのポインター。
scopeTreeScopein処理するイベントのスコープ。つまり、イベントが要素自体で発生するか、その先祖や子孫で発生するかを指定します。
cacheRequestIUIAutomationCacheRequest*inキャッシュ要求へのポインター。キャッシュが不要な場合は NULL
handlerIUIAutomationEventHandler*inイベントを処理するオブジェクトへのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

vtbl 33 HRESULT RemoveAutomationEventHandler(UIA_EVENT_ID eventId, IUIAutomationElement* element, IUIAutomationEventHandler* handler)

指定した UI Automation イベントハンドラーを削除します。

eventIdUIA_EVENT_IDin処理対象のイベントの識別子。イベント ID の一覧については、「Event Identifiers」を参照してください。
elementIUIAutomationElement*inイベントを処理している UI Automation 要素へのポインター。
handlerIUIAutomationEventHandler*in指定したイベント識別子と UI Automation 要素に対して IUIAutomation::AddAutomationEventHandler に渡されたハンドラーメソッドへのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

ハンドラーの登録解除と同時にイベントが受信された場合、登録解除後にそのハンドラーへイベントが配信されることがあります。ベストプラクティスは、Component Object Model (COM) の標準に従い、イベントハンドラーオブジェクトの参照カウントが 0 に達するまでそのオブジェクトを破棄しないことです。イベントの登録解除直後にイベントハンドラーを破棄すると、遅れて配信されたイベントによってアクセス違反が発生する可能性があります。

vtbl 34 HRESULT AddPropertyChangedEventHandlerNativeArray(IUIAutomationElement* element, TreeScope scope, IUIAutomationCacheRequest* cacheRequest, IUIAutomationPropertyChangedEventHandler* handler, UIA_PROPERTY_ID* propertyArray, INT propertyCount)

プロパティ変更イベントのネイティブ配列を処理するメソッドを登録します。

elementIUIAutomationElement*inイベントハンドラーに関連付けられた UI Automation 要素へのポインター。
scopeTreeScopein処理するイベントのスコープ。つまり、イベントが要素自体で発生するか、その先祖や子で発生するかを指定します。
cacheRequestIUIAutomationCacheRequest*inキャッシュ要求へのポインター。キャッシュが不要な場合は NULL
handlerIUIAutomationPropertyChangedEventHandler*inイベントを処理するオブジェクトへのポインター。
propertyArrayUIA_PROPERTY_ID*in対象とする UI Automation プロパティの識別子へのポインター。プロパティ ID の一覧については、「Property Identifiers」を参照してください。
propertyCountINTinpropertyArray 内のプロパティ識別子の数。

戻り値

型: HRESULT

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

クライアントが Microsoft UI Automation イベント (AddPropertyChangedEventHandlerNativeArray を含む) を受信して処理できるようにするインターフェイスの実装方法を示すコード例については、「How to Implement Event Handlers」を参照してください。

解説(Remarks)

element で指定された UI 項目は、propertyArray パラメーターで指定されたプロパティをサポートしていない場合があります。

このメソッドは IUIAutomation::AddPropertyChangedEventHandler と同じ目的を持ちますが、SAFEARRAY ではなく通常のプロパティ識別子の配列を受け取ります。

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

vtbl 35 HRESULT AddPropertyChangedEventHandler(IUIAutomationElement* element, TreeScope scope, IUIAutomationCacheRequest* cacheRequest, IUIAutomationPropertyChangedEventHandler* handler, SAFEARRAY* propertyArray)

プロパティ変更イベントの配列を処理するメソッドを登録します。

elementIUIAutomationElement*inイベントハンドラーに関連付けられた UI Automation 要素へのポインター。
scopeTreeScopein処理するイベントのスコープ。つまり、イベントが要素自体で発生するか、その先祖や子で発生するかを指定します。
cacheRequestIUIAutomationCacheRequest*inキャッシュ要求へのポインター。キャッシュが不要な場合は NULL
handlerIUIAutomationPropertyChangedEventHandler*inイベントを処理するオブジェクトへのポインター。
propertyArraySAFEARRAY*in対象とする UI Automation プロパティへのポインター。プロパティ ID の一覧については、「Property Identifiers」を参照してください。

戻り値

型: HRESULT

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

解説(Remarks)

element で指定された UI 項目は、propertyArray パラメーターで指定されたプロパティをサポートしていない場合があります。

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

vtbl 36 HRESULT RemovePropertyChangedEventHandler(IUIAutomationElement* element, IUIAutomationPropertyChangedEventHandler* handler)

プロパティ変更イベントハンドラーを削除します。

elementIUIAutomationElement*inハンドラーを削除する対象の UI Automation 要素へのポインター。
handlerIUIAutomationPropertyChangedEventHandler*inIUIAutomation::AddPropertyChangedEventHandler に渡されたインターフェイスへのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

ハンドラーの登録解除と同時にイベントが受信された場合、登録解除後にそのハンドラーへイベントが配信されることがあります。ベストプラクティスは、Component Object Model (COM) の標準に従い、イベントハンドラーオブジェクトの参照カウントが 0 に達するまでそのオブジェクトを破棄しないことです。イベントの登録解除直後にイベントハンドラーを破棄すると、遅れて配信されたイベントによってアクセス違反が発生する可能性があります。

vtbl 37 HRESULT AddStructureChangedEventHandler(IUIAutomationElement* element, TreeScope scope, IUIAutomationCacheRequest* cacheRequest, IUIAutomationStructureChangedEventHandler* handler)

構造変更イベントを処理するメソッドを登録します。メモ イベントハンドラーを実装する前に、「Understanding Threading Issues」で説明されているスレッド処理の問題を理解しておく必要があります。

elementIUIAutomationElement*inイベントハンドラーに関連付けられた UI Automation 要素へのポインター。
scopeTreeScopein処理するイベントのスコープ。つまり、イベントが要素自体で発生するか、その先祖や子孫で発生するかを指定します。
cacheRequestIUIAutomationCacheRequest*inキャッシュ要求へのポインター。キャッシュが不要な場合は NULL
handlerIUIAutomationStructureChangedEventHandler*in構造変更イベントを処理するオブジェクトへのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

vtbl 38 HRESULT RemoveStructureChangedEventHandler(IUIAutomationElement* element, IUIAutomationStructureChangedEventHandler* handler)

構造変更イベントハンドラーを削除します。

elementIUIAutomationElement*inハンドラーを削除する対象の UI Automation 要素へのポインター。
handlerIUIAutomationStructureChangedEventHandler*inIUIAutomation::AddStructureChangedEventHandler に渡されたインターフェイスへのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

ハンドラーの登録解除と同時にイベントが受信された場合、登録解除後にそのハンドラーへイベントが配信されることがあります。ベストプラクティスは、Component Object Model (COM) の標準に従い、イベントハンドラーオブジェクトの参照カウントが 0 に達するまでそのオブジェクトを破棄しないことです。イベントの登録解除直後にイベントハンドラーを破棄すると、遅れて配信されたイベントによってアクセス違反が発生する可能性があります。

vtbl 39 HRESULT AddFocusChangedEventHandler(IUIAutomationCacheRequest* cacheRequest, IUIAutomationFocusChangedEventHandler* handler)

フォーカス変更イベントを処理するメソッドを登録します。メモ イベントハンドラーを実装する前に、「Understanding Threading Issues」で説明されているスレッド処理の問題を理解しておく必要があります。

cacheRequestIUIAutomationCacheRequest*inキャッシュ要求へのポインター。キャッシュが不要な場合は NULL
handlerIUIAutomationFocusChangedEventHandler*inイベントを処理するオブジェクトへのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

フォーカス変更イベントはシステム全体に及ぶため、より狭いスコープを設定することはできません。

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

次のサンプル関数は、IUIAutomationFocusChangedEventHandler を実装するオブジェクトを作成し、ハンドラーを追加してイベントをサブスクライブします。

HRESULT AddFocusHandler(IUIAutomation* pAutomation)
{ 
    // CFocusHandler is a class that implements IUIAutomationFocusChangedEventHandler. 
    CFocusHandler* pFocusHandler = new CFocusHandler();
    if (!pFocusHandler)
    {
        return E_OUTOFMEMORY;
    }
    IUIAutomationFocusChangedEventHandler* pHandler;
    pFocusHandler->QueryInterface(IID_IUIAutomationFocusChangedEventHandler, (void**)&pHandler);
    HRESULT hr = pAutomation->AddFocusChangedEventHandler(NULL, pHandler);
    pFocusHandler->Release();
    return hr;
}
vtbl 40 HRESULT RemoveFocusChangedEventHandler(IUIAutomationFocusChangedEventHandler* handler)

フォーカス変更イベントハンドラーを削除します。

handlerIUIAutomationFocusChangedEventHandler*inIUIAutomation::AddFocusChangedEventHandler に渡されたイベントハンドラーへのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

ハンドラーの登録解除と同時にイベントが受信された場合、登録解除後にそのハンドラーへイベントが配信されることがあります。ベストプラクティスは、Component Object Model (COM) の標準に従い、イベントハンドラーオブジェクトの参照カウントが 0 に達するまでそのオブジェクトを破棄しないことです。イベントの登録解除直後にイベントハンドラーを破棄すると、遅れて配信されたイベントによってアクセス違反が発生する可能性があります。

vtbl 41 HRESULT RemoveAllEventHandlers()

登録されているすべての Microsoft UI Automation イベントハンドラーを削除します。

戻り値

型: HRESULT

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

解説(Remarks)

UI Automation クライアントは、イベントハンドラーの追加や削除に複数のスレッドを使用しないでください。同一クライアントプロセス内で、あるイベントハンドラーの追加や削除が行われている最中に別のイベントハンドラーの追加や削除が行われると、予期しない動作が生じる可能性があります。

ハンドラーの登録解除と同時にイベントが受信された場合、登録解除後にそのハンドラーへイベントが配信されることがあります。ベストプラクティスは、Component Object Model (COM) の標準に従い、イベントハンドラーオブジェクトの参照カウントが 0 に達するまでそのオブジェクトを破棄しないことです。イベントの登録解除直後にイベントハンドラーを破棄すると、遅れて配信されたイベントによってアクセス違反が発生する可能性があります。

vtbl 42 HRESULT IntNativeArrayToSafeArray(INT* array, INT arrayCount, SAFEARRAY** safeArray)

整数の配列を SAFEARRAY に変換します。

arrayINT*in整数の配列へのポインター。
arrayCountINTinarray 内の要素数。
safeArraySAFEARRAY**out割り当てられた SAFEARRAY へのポインターを受け取ります。

戻り値

型: HRESULT

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

vtbl 43 HRESULT IntSafeArrayToNativeArray(SAFEARRAY* intArray, INT** array, INT* arrayCount)

整数の SAFEARRAY を配列に変換します。

intArraySAFEARRAY*in変換する SAFEARRAY へのポインター。
arrayINT**out割り当てられた配列へのポインターを受け取ります。
arrayCountINT*outarray 内の要素数を受け取ります。

戻り値

型: HRESULT

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

vtbl 44 HRESULT RectToVariant(RECT rc, VARIANT* var)

四角形の座標を格納した VARIANT を作成します。

rcRECTin四角形の座標を格納した構造体へのポインター。
varVARIANT*out四角形の座標を受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

返される VARIANT のデータ型は VT_ARRAY | VT_R8 です。

vtbl 45 HRESULT VariantToRect(VARIANT var, RECT* rc)

四角形の座標を格納した VARIANT を RECT に変換します。

varVARIANTin四角形の座標。
rcRECT*out変換された四角形の座標を受け取ります。

戻り値

型: HRESULT

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

vtbl 46 HRESULT SafeArrayToRectNativeArray(SAFEARRAY* rects, RECT** rectArray, INT* rectArrayCount)

四角形の座標を格納した SAFEARRAY を RECT 型の配列に変換します。

rectsSAFEARRAY*in四角形の座標を格納した配列へのポインター。
rectArrayRECT**out四角形の座標を格納した構造体の配列へのポインターを受け取ります。
rectArrayCountINT*outrectArray 内の要素数を受け取ります。

戻り値

型: HRESULT

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

vtbl 47 HRESULT CreateProxyFactoryEntry(IUIAutomationProxyFactory* factory, IUIAutomationProxyFactoryEntry** factoryEntry)

プロキシファクトリオブジェクトの新しいインスタンスを作成します。

factoryIUIAutomationProxyFactory*inプロキシファクトリオブジェクトへのポインター。
factoryEntryIUIAutomationProxyFactoryEntry**out新しく作成されたプロキシファクトリオブジェクトのインスタンスへのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

IUIAutomationProxyFactoryMapping インターフェイスを使用して、利用可能なプロキシのテーブルにプロキシファクトリを登録します。

vtbl 48 HRESULT get_ProxyFactoryMapping(IUIAutomationProxyFactoryMapping** factoryMapping)

ウィンドウクラス名および関連データと個々のプロキシファクトリとのマッピングを表すオブジェクトを取得します。

factoryMappingIUIAutomationProxyFactoryMapping**outプロキシファクトリのマッピングオブジェクトを受け取るポインタである。
vtbl 49 HRESULT GetPropertyProgrammaticName(UIA_PROPERTY_ID property, LPWSTR* name)

プロパティの登録済みプログラム名を取得します。

propertyUIA_PROPERTY_IDinプロパティ識別子。プロパティ ID の一覧については、「Property Identifiers」を参照してください。
nameLPWSTR*out登録済みのプログラム名を受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

プログラム名はデバッグおよび診断の目的のみを想定しています。この文字列はローカライズされません。

このプロパティを文字列の比較に使用しないでください。2 つのプロパティが同じかどうかを判定するには、プロパティ識別子を直接比較してください。

vtbl 50 HRESULT GetPatternProgrammaticName(UIA_PATTERN_ID pattern, LPWSTR* name)

コントロールパターンの登録済みプログラム名を取得します。

patternUIA_PATTERN_IDinコントロールパターンの識別子。コントロールパターン ID の一覧については、「Control Pattern Identifiers」を参照してください。
nameLPWSTR*out登録済みのプログラム名を受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

プログラム名はデバッグおよび診断の目的のみを想定しています。この文字列はローカライズされません。

このプロパティを文字列の比較に使用しないでください。2 つのコントロールパターンが同じかどうかを判定するには、コントロールパターン識別子を直接比較してください。

vtbl 51 HRESULT PollForPotentialSupportedPatterns(IUIAutomationElement* pElement, SAFEARRAY** patternIds, SAFEARRAY** patternNames)

UI Automation 要素でサポートされている可能性のあるコントロールパターンを取得します。

pElementIUIAutomationElement*inポーリングする要素のアドレス。
patternIdsSAFEARRAY**outコントロールパターン識別子の配列へのポインターを受け取ります。
patternNamesSAFEARRAY**outコントロールパターン名の配列へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、プロパティをスキャンする必要がある Microsoft UI Automation ツールでの使用のみを想定しています。UI Automation クライアントでの使用は想定されていません。

後でその要素に問い合わせたときに、特定のコントロールパターンをサポートしている保証はありません。

vtbl 52 HRESULT PollForPotentialSupportedProperties(IUIAutomationElement* pElement, SAFEARRAY** propertyIds, SAFEARRAY** propertyNames)

UI Automation 要素でサポートされている可能性のあるプロパティを取得します。

pElementIUIAutomationElement*inポーリングする UI Automation 要素のアドレス。
propertyIdsSAFEARRAY**outプロパティ識別子の配列へのポインターを受け取ります。プロパティ ID の一覧については、「Property Identifiers」を参照してください。
propertyNamesSAFEARRAY**outプロパティ名の配列へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、プロパティとコントロールパターンをスキャンする必要がある Microsoft UI Automation ツールでの使用のみを想定しています。UI Automation クライアントでの使用は想定されていません。

後でその要素に問い合わせたときに、特定のプロパティをサポートしている保証はありません。

vtbl 53 HRESULT CheckNotSupported(VARIANT value, BOOL* isNotSupported)

指定された VARIANT に Not Supported 識別子が含まれているかどうかを確認します。

valueVARIANTin確認する値。
isNotSupportedBOOL*out指定された VARIANT に Not Supported 識別子が含まれている場合は TRUE、それ以外の場合は FALSE を受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

UI Automation 要素のプロパティを取得した後、このメソッドを呼び出して、その要素が取得したプロパティをサポートしているかどうかを判定します。CheckNotSupported は、通常、GetCurrentPropertyValue などのプロパティ取得メソッドを呼び出した後に呼び出します。

vtbl 54 HRESULT get_ReservedNotSupportedValue(IUnknown** notSupportedValue)

サポートされていないプロパティまたはテキスト属性を表す静的なトークンオブジェクトを取得します。

notSupportedValueIUnknown**out「サポートされていない」を表す予約値オブジェクトを受け取るポインタである。

解説(Remarks)

このオブジェクトは、IUIAutomationElement::GetCurrentPropertyValue または IUIAutomationTextRange::GetAttributeValue の結果との比較に使用できます。

vtbl 55 HRESULT get_ReservedMixedAttributeValue(IUnknown** mixedAttributeValue)

混在属性であるテキスト属性を表す静的なトークンオブジェクトを取得します。

mixedAttributeValueIUnknown**out「複数の異なる値が混在」を表す予約値オブジェクトを受け取るポインタである。

解説(Remarks)

IUIAutomation::ReservedMixedAttributeValue で取得されるオブジェクトは、IUIAutomationTextRange::GetAttributeValue の結果との比較に使用でき、テキスト範囲が特定のテキスト属性に対して複数の値を含んでいるかどうかを判定できます。

vtbl 56 HRESULT ElementFromIAccessible(IAccessible* accessible, INT childId, IUIAutomationElement** element)

Microsoft Active Accessibility サーバーから、指定したアクセス可能オブジェクトに対応する UI Automation 要素を取得します。

accessibleIAccessible*inアクセス可能オブジェクトの IAccessible インターフェイスへのポインター。
childIdINTinアクセス可能オブジェクトの子 ID。
elementIUIAutomationElement**outUI Automation 要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドを使用すると、UI Automation クライアントは、Microsoft Active Accessibility サーバーによって実装されたアクセス可能オブジェクトの IUIAutomationElement インターフェイスを取得できます。

サーバーが Microsoft Active Accessibility のサポートと併せて UI Automation プロバイダーインターフェイスを実装している場合、このメソッドは失敗することがあります。

Microsoft UI Automation 要素の基になる実装がネイティブの Microsoft Active Accessibility サーバーでない場合、このメソッドは E_INVALIDARG を返します。つまり、Oleacc.dll のプロキシオブジェクトや UIA-to-MSAA ブリッジによって元々サポートされている要素に対して、クライアントが IAccessible インターフェイスを取得しようとした場合です。

vtbl 57 HRESULT ElementFromIAccessibleBuildCache(IAccessible* accessible, INT childId, IUIAutomationCacheRequest* cacheRequest, IUIAutomationElement** element)

Microsoft Active Accessibility サーバーから、指定したアクセス可能オブジェクトに対応する UI Automation 要素を取得し、要求されたプロパティとコントロールパターンをプリフェッチして、プリフェッチした項目をキャッシュに格納します。

accessibleIAccessible*inアクセス可能オブジェクトの IAccessible インターフェイスへのポインター。
childIdINTinアクセス可能オブジェクトの子 ID。
cacheRequestIUIAutomationCacheRequest*inキャッシュに格納するプロパティとコントロールパターンを指定するキャッシュ要求のアドレス。
elementIUIAutomationElement**outUI Automation 要素へのポインターを受け取ります。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドを使用すると、Microsoft UI Automation クライアントは、Microsoft Active Accessibility サーバーによって実装されたアクセス可能オブジェクトの IUIAutomationElement インターフェイスを取得できます。

サーバーが Microsoft Active Accessibility のサポートと併せて UI Automation プロバイダーインターフェイスを実装している場合、このメソッドは失敗することがあります。

UI Automation 要素の基になる実装がネイティブの Microsoft Active Accessibility サーバーでない場合、このメソッドは E_INVALIDARG を返します。つまり、Oleacc.dll のプロキシオブジェクトや UIA-to-MSAA ブリッジによって元々サポートされている要素に対して、クライアントが IAccessible インターフェイスを取得しようとした場合です。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IUIAutomation "{30CBE57D-D9D0-452A-AB13-7AC5AC4825EE}"
#usecom global IUIAutomation IID_IUIAutomation "{}"
#comfunc global IUIAutomation_CompareElements                            3 sptr,sptr,var
#comfunc global IUIAutomation_CompareRuntimeIds                          4 var,var,var
#comfunc global IUIAutomation_GetRootElement                             5 sptr
#comfunc global IUIAutomation_ElementFromHandle                          6 sptr,sptr
#comfunc global IUIAutomation_ElementFromPoint                           7 int,sptr
#comfunc global IUIAutomation_GetFocusedElement                          8 sptr
#comfunc global IUIAutomation_GetRootElementBuildCache                   9 sptr,sptr
#comfunc global IUIAutomation_ElementFromHandleBuildCache                10 sptr,sptr,sptr
#comfunc global IUIAutomation_ElementFromPointBuildCache                 11 int,sptr,sptr
#comfunc global IUIAutomation_GetFocusedElementBuildCache                12 sptr,sptr
#comfunc global IUIAutomation_CreateTreeWalker                           13 sptr,sptr
#comfunc global IUIAutomation_get_ControlViewWalker                      14 sptr
#comfunc global IUIAutomation_get_ContentViewWalker                      15 sptr
#comfunc global IUIAutomation_get_RawViewWalker                          16 sptr
#comfunc global IUIAutomation_get_RawViewCondition                       17 sptr
#comfunc global IUIAutomation_get_ControlViewCondition                   18 sptr
#comfunc global IUIAutomation_get_ContentViewCondition                   19 sptr
#comfunc global IUIAutomation_CreateCacheRequest                         20 sptr
#comfunc global IUIAutomation_CreateTrueCondition                        21 sptr
#comfunc global IUIAutomation_CreateFalseCondition                       22 sptr
#comfunc global IUIAutomation_CreatePropertyCondition                    23 int,int,sptr
#comfunc global IUIAutomation_CreatePropertyConditionEx                  24 int,int,int,sptr
#comfunc global IUIAutomation_CreateAndCondition                         25 sptr,sptr,sptr
#comfunc global IUIAutomation_CreateAndConditionFromArray                26 var,sptr
#comfunc global IUIAutomation_CreateAndConditionFromNativeArray          27 sptr,int,sptr
#comfunc global IUIAutomation_CreateOrCondition                          28 sptr,sptr,sptr
#comfunc global IUIAutomation_CreateOrConditionFromArray                 29 var,sptr
#comfunc global IUIAutomation_CreateOrConditionFromNativeArray           30 sptr,int,sptr
#comfunc global IUIAutomation_CreateNotCondition                         31 sptr,sptr
#comfunc global IUIAutomation_AddAutomationEventHandler                  32 int,sptr,int,sptr,sptr
#comfunc global IUIAutomation_RemoveAutomationEventHandler               33 int,sptr,sptr
#comfunc global IUIAutomation_AddPropertyChangedEventHandlerNativeArray  34 sptr,int,sptr,sptr,var,int
#comfunc global IUIAutomation_AddPropertyChangedEventHandler             35 sptr,int,sptr,sptr,var
#comfunc global IUIAutomation_RemovePropertyChangedEventHandler          36 sptr,sptr
#comfunc global IUIAutomation_AddStructureChangedEventHandler            37 sptr,int,sptr,sptr
#comfunc global IUIAutomation_RemoveStructureChangedEventHandler         38 sptr,sptr
#comfunc global IUIAutomation_AddFocusChangedEventHandler                39 sptr,sptr
#comfunc global IUIAutomation_RemoveFocusChangedEventHandler             40 sptr
#comfunc global IUIAutomation_RemoveAllEventHandlers                     41
#comfunc global IUIAutomation_IntNativeArrayToSafeArray                  42 var,int,var
#comfunc global IUIAutomation_IntSafeArrayToNativeArray                  43 var,var,var
#comfunc global IUIAutomation_RectToVariant                              44 int,var
#comfunc global IUIAutomation_VariantToRect                              45 int,var
#comfunc global IUIAutomation_SafeArrayToRectNativeArray                 46 var,var,var
#comfunc global IUIAutomation_CreateProxyFactoryEntry                    47 sptr,sptr
#comfunc global IUIAutomation_get_ProxyFactoryMapping                    48 sptr
#comfunc global IUIAutomation_GetPropertyProgrammaticName                49 int,var
#comfunc global IUIAutomation_GetPatternProgrammaticName                 50 int,var
#comfunc global IUIAutomation_PollForPotentialSupportedPatterns          51 sptr,var,var
#comfunc global IUIAutomation_PollForPotentialSupportedProperties        52 sptr,var,var
#comfunc global IUIAutomation_CheckNotSupported                          53 int,var
#comfunc global IUIAutomation_get_ReservedNotSupportedValue              54 sptr
#comfunc global IUIAutomation_get_ReservedMixedAttributeValue            55 sptr
#comfunc global IUIAutomation_ElementFromIAccessible                     56 sptr,int,sptr
#comfunc global IUIAutomation_ElementFromIAccessibleBuildCache           57 sptr,int,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。