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

IUIAutomationProxyFactoryEntry

COM
IIDd50e472e-b64b-490c-bca1-d30696f9f289継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Microsoft UI Automation が管理するテーブル内のプロキシファクトリを表し、クライアントアプリケーションが IUIAutomationProxyFactory オブジェクトを操作するために使用できるプロパティとメソッドを公開します。

メソッド 13

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

vtbl 3 HRESULT get_ProxyFactory(IUIAutomationProxyFactory** factory)

このエントリに関連付けられたプロキシファクトリを取得します。

factoryIUIAutomationProxyFactory**outこのエントリに関連付けられたプロキシファクトリを受け取るポインタである。
vtbl 4 HRESULT get_ClassName(LPWSTR* className)

プロキシファクトリが対象とするウィンドウクラスの名前を設定または取得します。(Get)

classNameLPWSTR*outこのエントリが対象とするウィンドウクラス名を受け取るポインタである。
vtbl 5 HRESULT get_ImageName(LPWSTR* imageName)

プロキシファクトリのイメージの名前を設定または取得します。(Get)

imageNameLPWSTR*outこのエントリが対象とする実行可能イメージ名を受け取るポインタである。
vtbl 6 HRESULT get_AllowSubstringMatch(BOOL* allowSubstringMatch)

プロキシが部分文字列一致を許可するかどうかを指定する値を設定または取得します。(Get)

allowSubstringMatchBOOL*outクラス名やイメージ名の部分一致を許可するかどうかを受け取るポインタである。
vtbl 7 HRESULT get_CanCheckBaseClass(BOOL* canCheckBaseClass)

プロキシファクトリを検索する際に基底クラスを確認できるかどうかを指定する値を設定または取得します。(Get)

canCheckBaseClassBOOL*out基底クラスとの照合を行うかどうかを受け取るポインタである。
vtbl 8 HRESULT get_NeedsAdviseEvents(BOOL* adviseEvents)

アプリケーションがイベントの登録を行ったときにプロキシへ通知する必要があるかどうかを指定する値を設定または取得します。(Get)

adviseEventsBOOL*outプロバイダーがイベント通知の開始・終了通知を必要とするかどうかを受け取るポインタである。
vtbl 9 HRESULT put_ClassName(LPWSTR className)

プロキシファクトリが対象とするウィンドウクラスの名前を設定または取得します。(Put)

classNameLPWSTRinこのエントリが対象とするウィンドウクラス名を指定する。
vtbl 10 HRESULT put_ImageName(LPWSTR imageName)

プロキシファクトリのイメージの名前を設定または取得します。(Put)

imageNameLPWSTRinこのエントリが対象とする実行可能イメージ名を指定する。
vtbl 11 HRESULT put_AllowSubstringMatch(BOOL allowSubstringMatch)

プロキシが部分文字列一致を許可するかどうかを指定する値を設定または取得します。(Put)

allowSubstringMatchBOOLinクラス名やイメージ名の部分一致を許可するかどうかを指定する。
vtbl 12 HRESULT put_CanCheckBaseClass(BOOL canCheckBaseClass)

プロキシファクトリを検索する際に基底クラスを確認できるかどうかを指定する値を設定または取得します。(Put)

canCheckBaseClassBOOLin基底クラスとの照合を行うかどうかを指定する。
vtbl 13 HRESULT put_NeedsAdviseEvents(BOOL adviseEvents)

アプリケーションがイベントの登録を行ったときにプロキシへ通知する必要があるかどうかを指定する値を設定または取得します。(Put)

adviseEventsBOOLinプロバイダーがイベント通知の開始・終了通知を必要とするかどうかを指定する。
vtbl 14 HRESULT SetWinEventsForAutomationEvent(UIA_EVENT_ID eventId, UIA_PROPERTY_ID propertyId, SAFEARRAY* winEvents)

Microsoft UI Automation のイベントを WinEvent にマッピングします。

eventIdUIA_EVENT_IDinイベント識別子です。イベント識別子の一覧については、Event Identifiers を参照してください。
propertyIdUIA_PROPERTY_IDinプロパティ識別子です。プロパティ ID の一覧については、Property Identifiers を参照してください。
winEventsSAFEARRAY*inこのイベントにマッピングされる WinEvent の一覧です。

戻り値

型: HRESULT

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

解説(Remarks)

クライアントアプリケーションが UI Automation イベントをサブスクライブすると、UI Automation コアはそのイベントにマッピングされた WinEvent もリッスンします。たとえば、UIA_Invoke_InvokedEventIdEVENT_OBJECT_INVOKED にマッピングされているとします。EVENT_OBJECT_INVOKED が発生すると、クライアントはプロキシをインスタンス化し、そのプロキシに対して RespondToWinEvent を呼び出します。RespondToWinEvent の実装内で、プロキシは AddAutomationEvent を呼び出します。その後、コアが対応する UI Automation イベントを発生させます。

vtbl 15 HRESULT GetWinEventsForAutomationEvent(UIA_EVENT_ID eventId, UIA_PROPERTY_ID propertyId, SAFEARRAY** winEvents)

特定の Microsoft UI Automation イベントにマッピングされている WinEvent の一覧を取得します。このプロキシが表す要素が一覧内の WinEvent のいずれかを発生させると、プロキシがそれを処理します。

eventIdUIA_EVENT_IDinイベント識別子です。イベント識別子の一覧については、Event Identifiers を参照してください。
propertyIdUIA_PROPERTY_IDinプロパティ識別子です。プロパティ ID の一覧については、Property Identifiers を参照してください。
winEventsSAFEARRAY**outこのイベントにマッピングされる WinEvent の一覧へのポインターを受け取ります。

戻り値

型: HRESULT

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IUIAutomationProxyFactoryEntry "{D50E472E-B64B-490C-BCA1-D30696F9F289}"
#usecom global IUIAutomationProxyFactoryEntry IID_IUIAutomationProxyFactoryEntry "{}"
#comfunc global IUIAutomationProxyFactoryEntry_get_ProxyFactory                3 sptr
#comfunc global IUIAutomationProxyFactoryEntry_get_ClassName                   4 var
#comfunc global IUIAutomationProxyFactoryEntry_get_ImageName                   5 var
#comfunc global IUIAutomationProxyFactoryEntry_get_AllowSubstringMatch         6 var
#comfunc global IUIAutomationProxyFactoryEntry_get_CanCheckBaseClass           7 var
#comfunc global IUIAutomationProxyFactoryEntry_get_NeedsAdviseEvents           8 var
#comfunc global IUIAutomationProxyFactoryEntry_put_ClassName                   9 wstr
#comfunc global IUIAutomationProxyFactoryEntry_put_ImageName                   10 wstr
#comfunc global IUIAutomationProxyFactoryEntry_put_AllowSubstringMatch         11 int
#comfunc global IUIAutomationProxyFactoryEntry_put_CanCheckBaseClass           12 int
#comfunc global IUIAutomationProxyFactoryEntry_put_NeedsAdviseEvents           13 int
#comfunc global IUIAutomationProxyFactoryEntry_SetWinEventsForAutomationEvent  14 int,int,var
#comfunc global IUIAutomationProxyFactoryEntry_GetWinEventsForAutomationEvent  15 int,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。