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

IUIAutomationElement3

COM
IID8471df34-aee0-4a01-a7de-7db9af12c296継承元IUIAutomationElement2自前メソッド開始 vtbl91

公式ドキュメント

IUIAutomationElement2 インターフェースを拡張します。

メソッド 3

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

vtbl 91 HRESULT ShowContextMenu()

対象要素上でコンテキストメニューをプログラムから呼び出します。(IUIAutomationElement3.ShowContextMenu)

戻り値

型: HRESULT

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

解説(Remarks)

コンテキストメニューを呼び出せなかった場合、このメソッドはエラーコードを返します。呼び出し対象の要素に直接利用できるコンテキストメニューが存在しない場合、このメソッドを呼び出すと、現在の項目の Microsoft UI Automation 上の親要素でコンテキストメニューが呼び出されることがあります。

コンテキストメニュー自体は、呼び出しおよび消去の際に menu opened / closed イベントを発生させます。

vtbl 92 HRESULT get_CurrentIsPeripheral(BOOL* retVal)

要素の現在の周辺 UI インジケーターを取得します。

retValBOOL*out要素が周辺的(主要なフォーカスを取らない補助的 UI)であるかどうかを受け取るポインタである。

解説(Remarks)

IsPeripheral プロパティが TRUE の場合、要素が現在キーボードで操作可能であっても、クライアントアプリケーションはその要素がフォーカスを取得したと想定することはできません。

このプロパティは次のコントロール型に関連します:

周辺 UI が出現すると、その周辺 UI が関連するパターンのいずれかをサポートしている場合、次のいずれかのイベントが発生することがよくあります: 支援技術であるクライアントアプリケーションがこれらのイベントのいずれかを処理する際には、クライアントは CurrentIsPeripheral の値を確認する必要があります。値が TRUE の場合、クライアントはフォーカスの変化を新しい UI や注目すべき UI の指標として利用できないため、ユーザーが単一の操作で到達できる周辺 UI の代替表現を提供する必要が生じることがあります。それ以外の場合、周辺 UI はコントロールビューやタブ順序などには存在しません。任意の時点でツリー全体に周辺 UI 項目は 1 つだけしか存在しないことがクライアントに保証されており、別の周辺 UI を開くと最初のものが自動的に閉じられます。
vtbl 93 HRESULT get_CachedIsPeripheral(BOOL* retVal)

要素のキャッシュされた周辺 UI インジケーターを取得します。

retValBOOL*outキャッシュされた、要素が周辺的かどうかを受け取るポインタである。

解説(Remarks)

IsPeripheral プロパティが TRUE の場合、要素が現在キーボードで操作可能であっても、クライアントアプリケーションはその要素がフォーカスを取得したと想定することはできません。

このプロパティは次のコントロール型に関連します:

周辺 UI が出現すると、その周辺 UI が関連するパターンのいずれかをサポートしている場合、次のいずれかのイベントが発生することがよくあります:
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IUIAutomationElement3 "{8471DF34-AEE0-4A01-A7DE-7DB9AF12C296}"
#usecom global IUIAutomationElement3 IID_IUIAutomationElement3 "{}"
#comfunc global IUIAutomationElement3_ShowContextMenu          91
#comfunc global IUIAutomationElement3_get_CurrentIsPeripheral  92 var
#comfunc global IUIAutomationElement3_get_CachedIsPeripheral   93 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。