IUIAutomationDragPattern
COM公式ドキュメント
ドラッグアンドドロップ操作の一部としてドラッグできる要素について、UI Automation プロバイダーが公開する情報へのアクセスを提供します。
解説(Remarks)
Microsoft UI Automation クライアントは、ユーザーがドロップターゲット上にドラッグアンドドロップできるコントロールまたは UI 要素のドラッグ関連プロパティおよび機能にアクセスするために、このインターフェイスを使用します。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ユーザーがドラッグアンドドロップ操作の一部としてこの要素をつかんでいるかどうかを示します。
| retVal | BOOL* | out | 要素がドラッグ操作のためにつかまれている状態かどうかを受け取るポインタである。 |
この要素がドラッグアンドドロップ操作の一部としてつかまれているかどうかを示す、キャッシュされた値を取得します。
| retVal | BOOL* | out | キャッシュされた、要素がつかまれている状態かどうかを受け取るポインタである。 |
ユーザーがドラッグアンドドロップ操作の一部としてこの要素をドロップしたときに何が起こるかを示す、ローカライズされた文字列を取得します。
| retVal | LPWSTR* | out | ドラッグ中の要素をドロップしたときに生じる効果を表すローカライズ済み文字列を受け取るポインタである。 |
解説(Remarks)
Microsoft UI Automation のドラッグアンドドロップにおけるソースのみのスタイルでは、DropTarget パターンを実装する要素はありません。ドラッグされた要素をドロップしたときにどのような効果が生じるかを調べるには、クライアントはドラッグされた要素の DropEffect プロパティをクエリできます。このプロパティは "move" のような短い文字列の場合もあれば、"insert into Main group" のような長い文字列の場合もあります。この文字列は常にローカライズされています。
ユーザーがドラッグアンドドロップ操作の一部としてこの要素をドロップしたときに何が起こるかを示す、キャッシュされたローカライズ済みの文字列を取得します。
| retVal | LPWSTR* | out | キャッシュされた、ドロップ効果を表す文字列を受け取るポインタである。 |
解説(Remarks)
Microsoft UI Automation のドラッグアンドドロップにおけるソースのみのスタイルでは、DropTarget パターンを実装する要素はありません。ドラッグされた要素をドロップしたときにどのような効果が生じるかを調べるには、クライアントはドラッグされた要素の DropEffect プロパティをクエリできます。このプロパティは "move" のような短い文字列の場合もあれば、"insert into Main group" のような長い文字列の場合もあります。この文字列は常にローカライズされています。
この要素がドラッグアンドドロップ操作の一部として動作する際に発生し得るすべての効果を列挙した、ローカライズされた文字列の配列を取得します。
| retVal | SAFEARRAY** | out | 発生し得るすべてのドロップ効果を表す文字列を格納した SAFEARRAY を受け取るポインタである。 |
解説(Remarks)
一部のドラッグ操作は、複数の異なるドロップ効果のセットをサポートします。たとえば、右クリックで開始されたドラッグ操作では、要素がドロップされたときに実行されるアクションの選択肢を示すメニューが表示される場合があります。Microsoft UI Automation のドラッグアンドドロップにおけるソースのみのスタイルでは、DropTarget パターンを実装する要素はありません。つかまれた要素をドロップしたときに発生し得る効果のセットを調べるには、クライアントはドラッグされた要素の DropEffects プロパティをクエリできます。このプロパティには "move" のような短い文字列や、"insert into Main group" のような長い文字列が含まれる場合があります。これらの文字列は常にローカライズされています。
ユーザーがドラッグアンドドロップ操作の一部としてこの要素をドロップしたときに発生し得るすべての効果を列挙した、キャッシュされたローカライズ済み文字列の配列を取得します。
| retVal | SAFEARRAY** | out | キャッシュされた、発生し得るドロップ効果の文字列を格納した SAFEARRAY を受け取るポインタである。 |
解説(Remarks)
一部のドラッグ操作は、複数の異なるドロップ効果のセットをサポートします。たとえば、右クリックで開始されたドラッグ操作では、要素がドロップされたときに実行されるアクションの選択肢を示すメニューが表示される場合があります。Microsoft UI Automation のドラッグアンドドロップにおけるソースのみのスタイルでは、DropTarget パターンを実装する要素はありません。つかまれた要素をドロップしたときに発生し得る効果のセットを調べるには、クライアントはドラッグされた要素の DropEffects プロパティをクエリできます。このプロパティには "move" のような短い文字列や、"insert into Main group" のような長い文字列が含まれる場合があります。これらの文字列は常にローカライズされています。
ユーザーがドラッグ操作の一部としてドラッグしているすべての項目を表す要素のコレクションを取得します。
| retVal | IUIAutomationElementArray** | out | ユーザーがドラッグしている要素のコレクション。単一の項目のみがドラッグされている場合、このプロパティは NULL または空の配列になります。既定値は空の配列です。 |
戻り値
解説(Remarks)
ユーザーが複数の項目をドラッグしている場合、それらの項目は、関連付けられた一連のつかまれた要素を持つ単一のマスター要素によって表されます。大量の重複イベントが発生するのを避けるため、マスター項目が適切なイベントを発生させます。クライアントは GrabbedItems プロパティをクエリすることで、つかまれた項目の完全な一覧を取得できます。
ユーザーがドラッグ操作の一部としてドラッグしているすべての項目を表す、キャッシュされた要素のコレクションを取得します。
| retVal | IUIAutomationElementArray** | out | ユーザーがドラッグしている要素のキャッシュされたコレクション。単一の項目のみがドラッグされている場合、このプロパティは NULL または空の配列になります。既定値は空の配列です。 |
戻り値
解説(Remarks)
ユーザーが複数の項目をドラッグしている場合、それらの項目は、関連付けられた一連のつかまれた要素を持つ単一のマスター要素によって表されます。大量の重複イベントが発生するのを避けるため、マスター項目が適切なイベントを発生させます。クライアントは GrabbedItems プロパティをクエリすることで、つかまれた項目の完全な一覧を取得できます。
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 指定が可能。#define global IID_IUIAutomationDragPattern "{1DC7B570-1F54-4BAD-BCDA-D36A722FB7BD}" #usecom global IUIAutomationDragPattern IID_IUIAutomationDragPattern "{}" #comfunc global IUIAutomationDragPattern_get_CurrentIsGrabbed 3 sptr #comfunc global IUIAutomationDragPattern_get_CachedIsGrabbed 4 sptr #comfunc global IUIAutomationDragPattern_get_CurrentDropEffect 5 sptr #comfunc global IUIAutomationDragPattern_get_CachedDropEffect 6 sptr #comfunc global IUIAutomationDragPattern_get_CurrentDropEffects 7 sptr #comfunc global IUIAutomationDragPattern_get_CachedDropEffects 8 sptr #comfunc global IUIAutomationDragPattern_GetCurrentGrabbedItems 9 sptr #comfunc global IUIAutomationDragPattern_GetCachedGrabbedItems 10 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。