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

IUIAutomationDragPattern

COM
IID1dc7b570-1f54-4bad-bcda-d36a722fb7bd継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

ドラッグアンドドロップ操作の一部としてドラッグできる要素について、UI Automation プロバイダーが公開する情報へのアクセスを提供します。

解説(Remarks)

Microsoft UI Automation クライアントは、ユーザーがドロップターゲット上にドラッグアンドドロップできるコントロールまたは UI 要素のドラッグ関連プロパティおよび機能にアクセスするために、このインターフェイスを使用します。

メソッド 8

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

vtbl 3 HRESULT get_CurrentIsGrabbed(BOOL* retVal)

ユーザーがドラッグアンドドロップ操作の一部としてこの要素をつかんでいるかどうかを示します。

retValBOOL*out要素がドラッグ操作のためにつかまれている状態かどうかを受け取るポインタである。
vtbl 4 HRESULT get_CachedIsGrabbed(BOOL* retVal)

この要素がドラッグアンドドロップ操作の一部としてつかまれているかどうかを示す、キャッシュされた値を取得します。

retValBOOL*outキャッシュされた、要素がつかまれている状態かどうかを受け取るポインタである。
vtbl 5 HRESULT get_CurrentDropEffect(LPWSTR* retVal)

ユーザーがドラッグアンドドロップ操作の一部としてこの要素をドロップしたときに何が起こるかを示す、ローカライズされた文字列を取得します。

retValLPWSTR*outドラッグ中の要素をドロップしたときに生じる効果を表すローカライズ済み文字列を受け取るポインタである。

解説(Remarks)

Microsoft UI Automation のドラッグアンドドロップにおけるソースのみのスタイルでは、DropTarget パターンを実装する要素はありません。ドラッグされた要素をドロップしたときにどのような効果が生じるかを調べるには、クライアントはドラッグされた要素の DropEffect プロパティをクエリできます。このプロパティは "move" のような短い文字列の場合もあれば、"insert into Main group" のような長い文字列の場合もあります。この文字列は常にローカライズされています。

vtbl 6 HRESULT get_CachedDropEffect(LPWSTR* retVal)

ユーザーがドラッグアンドドロップ操作の一部としてこの要素をドロップしたときに何が起こるかを示す、キャッシュされたローカライズ済みの文字列を取得します。

retValLPWSTR*outキャッシュされた、ドロップ効果を表す文字列を受け取るポインタである。

解説(Remarks)

Microsoft UI Automation のドラッグアンドドロップにおけるソースのみのスタイルでは、DropTarget パターンを実装する要素はありません。ドラッグされた要素をドロップしたときにどのような効果が生じるかを調べるには、クライアントはドラッグされた要素の DropEffect プロパティをクエリできます。このプロパティは "move" のような短い文字列の場合もあれば、"insert into Main group" のような長い文字列の場合もあります。この文字列は常にローカライズされています。

vtbl 7 HRESULT get_CurrentDropEffects(SAFEARRAY** retVal)

この要素がドラッグアンドドロップ操作の一部として動作する際に発生し得るすべての効果を列挙した、ローカライズされた文字列の配列を取得します。

retValSAFEARRAY**out発生し得るすべてのドロップ効果を表す文字列を格納した SAFEARRAY を受け取るポインタである。

解説(Remarks)

一部のドラッグ操作は、複数の異なるドロップ効果のセットをサポートします。たとえば、右クリックで開始されたドラッグ操作では、要素がドロップされたときに実行されるアクションの選択肢を示すメニューが表示される場合があります。Microsoft UI Automation のドラッグアンドドロップにおけるソースのみのスタイルでは、DropTarget パターンを実装する要素はありません。つかまれた要素をドロップしたときに発生し得る効果のセットを調べるには、クライアントはドラッグされた要素の DropEffects プロパティをクエリできます。このプロパティには "move" のような短い文字列や、"insert into Main group" のような長い文字列が含まれる場合があります。これらの文字列は常にローカライズされています。

vtbl 8 HRESULT get_CachedDropEffects(SAFEARRAY** retVal)

ユーザーがドラッグアンドドロップ操作の一部としてこの要素をドロップしたときに発生し得るすべての効果を列挙した、キャッシュされたローカライズ済み文字列の配列を取得します。

retValSAFEARRAY**outキャッシュされた、発生し得るドロップ効果の文字列を格納した SAFEARRAY を受け取るポインタである。

解説(Remarks)

一部のドラッグ操作は、複数の異なるドロップ効果のセットをサポートします。たとえば、右クリックで開始されたドラッグ操作では、要素がドロップされたときに実行されるアクションの選択肢を示すメニューが表示される場合があります。Microsoft UI Automation のドラッグアンドドロップにおけるソースのみのスタイルでは、DropTarget パターンを実装する要素はありません。つかまれた要素をドロップしたときに発生し得る効果のセットを調べるには、クライアントはドラッグされた要素の DropEffects プロパティをクエリできます。このプロパティには "move" のような短い文字列や、"insert into Main group" のような長い文字列が含まれる場合があります。これらの文字列は常にローカライズされています。

vtbl 9 HRESULT GetCurrentGrabbedItems(IUIAutomationElementArray** retVal)

ユーザーがドラッグ操作の一部としてドラッグしているすべての項目を表す要素のコレクションを取得します。

retValIUIAutomationElementArray**outユーザーがドラッグしている要素のコレクション。単一の項目のみがドラッグされている場合、このプロパティは NULL または空の配列になります。既定値は空の配列です。

戻り値

型: HRESULT

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

解説(Remarks)

ユーザーが複数の項目をドラッグしている場合、それらの項目は、関連付けられた一連のつかまれた要素を持つ単一のマスター要素によって表されます。大量の重複イベントが発生するのを避けるため、マスター項目が適切なイベントを発生させます。クライアントは GrabbedItems プロパティをクエリすることで、つかまれた項目の完全な一覧を取得できます。

vtbl 10 HRESULT GetCachedGrabbedItems(IUIAutomationElementArray** retVal)

ユーザーがドラッグ操作の一部としてドラッグしているすべての項目を表す、キャッシュされた要素のコレクションを取得します。

retValIUIAutomationElementArray**outユーザーがドラッグしている要素のキャッシュされたコレクション。単一の項目のみがドラッグされている場合、このプロパティは NULL または空の配列になります。既定値は空の配列です。

戻り値

型: HRESULT

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

解説(Remarks)

ユーザーが複数の項目をドラッグしている場合、それらの項目は、関連付けられた一連のつかまれた要素を持つ単一のマスター要素によって表されます。大量の重複イベントが発生するのを避けるため、マスター項目が適切なイベントを発生させます。クライアントは GrabbedItems プロパティをクエリすることで、つかまれた項目の完全な一覧を取得できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IUIAutomationDragPattern "{1DC7B570-1F54-4BAD-BCDA-D36A722FB7BD}"
#usecom global IUIAutomationDragPattern IID_IUIAutomationDragPattern "{}"
#comfunc global IUIAutomationDragPattern_get_CurrentIsGrabbed    3 var
#comfunc global IUIAutomationDragPattern_get_CachedIsGrabbed     4 var
#comfunc global IUIAutomationDragPattern_get_CurrentDropEffect   5 var
#comfunc global IUIAutomationDragPattern_get_CachedDropEffect    6 var
#comfunc global IUIAutomationDragPattern_get_CurrentDropEffects  7 var
#comfunc global IUIAutomationDragPattern_get_CachedDropEffects   8 var
#comfunc global IUIAutomationDragPattern_GetCurrentGrabbedItems  9 sptr
#comfunc global IUIAutomationDragPattern_GetCachedGrabbedItems   10 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。