IUIAutomationProxyFactoryEntry
COM公式ドキュメント
Microsoft UI Automation が管理するテーブル内のプロキシファクトリを表し、クライアントアプリケーションが IUIAutomationProxyFactory オブジェクトを操作するために使用できるプロパティとメソッドを公開します。
メソッド 13
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このエントリに関連付けられたプロキシファクトリを取得します。
| factory | IUIAutomationProxyFactory** | out | このエントリに関連付けられたプロキシファクトリを受け取るポインタである。 |
プロキシファクトリが対象とするウィンドウクラスの名前を設定または取得します。(Get)
| className | LPWSTR* | out | このエントリが対象とするウィンドウクラス名を受け取るポインタである。 |
プロキシファクトリのイメージの名前を設定または取得します。(Get)
| imageName | LPWSTR* | out | このエントリが対象とする実行可能イメージ名を受け取るポインタである。 |
プロキシが部分文字列一致を許可するかどうかを指定する値を設定または取得します。(Get)
| allowSubstringMatch | BOOL* | out | クラス名やイメージ名の部分一致を許可するかどうかを受け取るポインタである。 |
プロキシファクトリを検索する際に基底クラスを確認できるかどうかを指定する値を設定または取得します。(Get)
| canCheckBaseClass | BOOL* | out | 基底クラスとの照合を行うかどうかを受け取るポインタである。 |
アプリケーションがイベントの登録を行ったときにプロキシへ通知する必要があるかどうかを指定する値を設定または取得します。(Get)
| adviseEvents | BOOL* | out | プロバイダーがイベント通知の開始・終了通知を必要とするかどうかを受け取るポインタである。 |
プロキシファクトリが対象とするウィンドウクラスの名前を設定または取得します。(Put)
| className | LPWSTR | in | このエントリが対象とするウィンドウクラス名を指定する。 |
プロキシファクトリのイメージの名前を設定または取得します。(Put)
| imageName | LPWSTR | in | このエントリが対象とする実行可能イメージ名を指定する。 |
プロキシが部分文字列一致を許可するかどうかを指定する値を設定または取得します。(Put)
| allowSubstringMatch | BOOL | in | クラス名やイメージ名の部分一致を許可するかどうかを指定する。 |
プロキシファクトリを検索する際に基底クラスを確認できるかどうかを指定する値を設定または取得します。(Put)
| canCheckBaseClass | BOOL | in | 基底クラスとの照合を行うかどうかを指定する。 |
アプリケーションがイベントの登録を行ったときにプロキシへ通知する必要があるかどうかを指定する値を設定または取得します。(Put)
| adviseEvents | BOOL | in | プロバイダーがイベント通知の開始・終了通知を必要とするかどうかを指定する。 |
Microsoft UI Automation のイベントを WinEvent にマッピングします。
| eventId | UIA_EVENT_ID | in | イベント識別子です。イベント識別子の一覧については、Event Identifiers を参照してください。 |
| propertyId | UIA_PROPERTY_ID | in | プロパティ識別子です。プロパティ ID の一覧については、Property Identifiers を参照してください。 |
| winEvents | SAFEARRAY* | in | このイベントにマッピングされる WinEvent の一覧です。 |
戻り値
解説(Remarks)
クライアントアプリケーションが UI Automation イベントをサブスクライブすると、UI Automation コアはそのイベントにマッピングされた WinEvent もリッスンします。たとえば、UIA_Invoke_InvokedEventId が EVENT_OBJECT_INVOKED にマッピングされているとします。EVENT_OBJECT_INVOKED が発生すると、クライアントはプロキシをインスタンス化し、そのプロキシに対して RespondToWinEvent を呼び出します。RespondToWinEvent の実装内で、プロキシは AddAutomationEvent を呼び出します。その後、コアが対応する UI Automation イベントを発生させます。
特定の Microsoft UI Automation イベントにマッピングされている WinEvent の一覧を取得します。このプロキシが表す要素が一覧内の WinEvent のいずれかを発生させると、プロキシがそれを処理します。
| eventId | UIA_EVENT_ID | in | イベント識別子です。イベント識別子の一覧については、Event Identifiers を参照してください。 |
| propertyId | UIA_PROPERTY_ID | in | プロパティ識別子です。プロパティ ID の一覧については、Property Identifiers を参照してください。 |
| winEvents | SAFEARRAY** | out | このイベントにマッピングされる WinEvent の一覧へのポインターを受け取ります。 |
戻り値
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 指定が可能。#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 sptr #comfunc global IUIAutomationProxyFactoryEntry_get_ImageName 5 sptr #comfunc global IUIAutomationProxyFactoryEntry_get_AllowSubstringMatch 6 sptr #comfunc global IUIAutomationProxyFactoryEntry_get_CanCheckBaseClass 7 sptr #comfunc global IUIAutomationProxyFactoryEntry_get_NeedsAdviseEvents 8 sptr #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,sptr #comfunc global IUIAutomationProxyFactoryEntry_GetWinEventsForAutomationEvent 15 int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。