IUIAutomation2
COM公式ドキュメント
IUIAutomation インターフェイスを拡張し、Microsoft UI Automation の機能を制御するための追加メソッドを公開します。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
UI Automation のコントロールパターンメソッドの呼び出しが、対象要素に自動的にフォーカスを設定するかどうかを指定します。(Get)
| autoSetFocus | BOOL* | out | ナビゲーション時に自動でフォーカスを設定するかどうかを受け取るポインタである。 |
解説(Remarks)
既定では、要素に対して操作を行うほとんどの UI Automation メソッド(IUIAutomationInvokePattern::Invoke や IUIAutomationValuePattern::SetValue など)は、操作を実行する前に要素へフォーカスを設定します。ほとんどのアプリケーションでは、フォーカスを設定することでより一貫したユーザー体験が得られます。ドロップダウンメニューの自動化のように、フォーカスの設定が妨げになる状況では、AutoSetFocus を FALSE に設定して、UI Automation メソッドがフォーカスを設定しないようにできます。
UI Automation のコントロールパターンメソッドの呼び出しが、対象要素に自動的にフォーカスを設定するかどうかを指定します。(Put)
| autoSetFocus | BOOL | in | ナビゲーション時に自動でフォーカスを設定するかどうかを指定する。 |
解説(Remarks)
既定では、要素に対して操作を行うほとんどの UI Automation メソッド(IUIAutomationInvokePattern::Invoke や IUIAutomationValuePattern::SetValue など)は、操作を実行する前に要素へフォーカスを設定します。ほとんどのアプリケーションでは、フォーカスを設定することでより一貫したユーザー体験が得られます。ドロップダウンメニューの自動化のように、フォーカスの設定が妨げになる状況では、AutoSetFocus を FALSE に設定して、UI Automation メソッドがフォーカスを設定しないようにできます。
UI Automation が、automation element を求めるクライアント要求に対してプロバイダーが応答するのを待機する時間の長さを指定します。(Get)
| timeout | DWORD* | out | タイムアウト期間の長さ(ミリ秒単位)。 |
解説(Remarks)
既定の接続タイムアウト値は 2 秒です。応答性の高い UI Automation プロバイダーは、通常、短時間で automation element をクライアントに返すことができます。
UI Automation が、automation element を求めるクライアント要求に対してプロバイダーが応答するのを待機する時間の長さを指定します。(Put)
| timeout | DWORD | in | タイムアウト期間の長さ(ミリ秒単位)。 |
解説(Remarks)
既定の接続タイムアウト値は 2 秒です。応答性の高い UI Automation プロバイダーは、通常、短時間で automation element をクライアントに返すことができます。
UI Automation が、automation element に関する情報を求めるクライアント要求に対してプロバイダーが応答するのを待機する時間の長さを指定します。(Get)
| timeout | DWORD* | out | タイムアウト期間の長さ(ミリ秒単位)。 |
解説(Remarks)
既定のトランザクションタイムアウト値は 20 秒です。一部の操作では、プロバイダーが数百個の要素を処理する必要があるため、情報をクライアントに返すまでに相当の時間がかかる場合があります。
UI Automation が、automation element に関する情報を求めるクライアント要求に対してプロバイダーが応答するのを待機する時間の長さを指定します。(Put)
| timeout | DWORD | in | タイムアウト期間の長さ(ミリ秒単位)。 |
解説(Remarks)
既定のトランザクションタイムアウト値は 20 秒です。一部の操作では、プロバイダーが数百個の要素を処理する必要があるため、情報をクライアントに返すまでに相当の時間がかかる場合があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IUIAutomation2 "{34723AFF-0C9D-49D0-9896-7AB52DF8CD8A}" #usecom global IUIAutomation2 IID_IUIAutomation2 "{}" #comfunc global IUIAutomation2_get_AutoSetFocus 58 var #comfunc global IUIAutomation2_put_AutoSetFocus 59 int #comfunc global IUIAutomation2_get_ConnectionTimeout 60 var #comfunc global IUIAutomation2_put_ConnectionTimeout 61 int #comfunc global IUIAutomation2_get_TransactionTimeout 62 var #comfunc global IUIAutomation2_put_TransactionTimeout 63 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IUIAutomation2 "{34723AFF-0C9D-49D0-9896-7AB52DF8CD8A}" #usecom global IUIAutomation2 IID_IUIAutomation2 "{}" #comfunc global IUIAutomation2_get_AutoSetFocus 58 sptr #comfunc global IUIAutomation2_put_AutoSetFocus 59 int #comfunc global IUIAutomation2_get_ConnectionTimeout 60 sptr #comfunc global IUIAutomation2_put_ConnectionTimeout 61 int #comfunc global IUIAutomation2_get_TransactionTimeout 62 sptr #comfunc global IUIAutomation2_put_TransactionTimeout 63 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。