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

ITransformProvider

COM
IID6829ddc4-4f91-4ffa-b86f-bd3e2987cb4c継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

2次元空間内で移動、サイズ変更、回転が可能なコントロールへのアクセスを提供します。

解説(Remarks)

Transform コントロールパターンをサポートする必要がある Microsoft UI Automation プロバイダーに実装されます。

このコントロールパターンのサポートは、デスクトップ上のオブジェクトに限定されません。 コンテナーオブジェクトの子要素であっても、コンテナーの境界内で自由に移動、サイズ変更、または回転できる場合は、このコントロールパターンを実装する必要があります。

メソッド 6

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

vtbl 3 HRESULT Move(DOUBLE x, DOUBLE y)

コントロールを移動します。

xDOUBLEinコントロールの左端の絶対スクリーン座標。
yDOUBLEinコントロールの上端の絶対スクリーン座標。

戻り値

型: HRESULT

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

解説(Remarks)

オブジェクトは、その結果として得られるスクリーン上の位置がコンテナーの座標範囲から完全に外れ、キーボードやマウスでアクセスできなくなるような移動、サイズ変更、または回転はできません。たとえば、トップレベルウィンドウが画面外へ完全に移動される場合や、子オブジェクトがコンテナーのビューポートの境界外へ移動される場合です。このような場合、オブジェクトは要求されたスクリーン座標にできるだけ近い位置に配置され、上端または左端の座標はコンテナーの境界内に収まるように上書きされます。

vtbl 4 HRESULT Resize(DOUBLE width, DOUBLE height)

コントロールのサイズを変更します。

widthDOUBLEinウィンドウの新しい幅(ピクセル単位)。
heightDOUBLEinウィンドウの新しい高さ(ピクセル単位)。

戻り値

型: HRESULT

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

解説(Remarks)

分割ペインをサポートするコントロールに対して呼び出された場合、このメソッドは隣接する他のペインのサイズを変更する副作用を持つことがあります。

オブジェクトは、その結果として得られるスクリーン上の位置がコンテナーの座標範囲から完全に外れ、キーボードやマウスでアクセスできなくなるような移動、サイズ変更、または回転はできません。たとえば、トップレベルウィンドウが画面外へ完全に移動される場合や、子オブジェクトがコンテナーのビューポートの境界外へ移動される場合です。このような場合、オブジェクトは要求されたスクリーン座標にできるだけ近い位置に配置され、上端または左端の座標はコンテナーの境界内に収まるように上書きされます。

vtbl 5 HRESULT Rotate(DOUBLE degrees)

コントロールを回転します。

degreesDOUBLEinコントロールを回転させる角度(度単位)。 正の数は時計回りに、負の数は反時計回りに回転させます。

戻り値

型: HRESULT

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

解説(Remarks)

オブジェクトは、その結果として得られるスクリーン上の位置がコンテナーの座標範囲から完全に外れ、キーボードやマウスでアクセスできなくなるような移動、サイズ変更、または回転はできません。たとえば、トップレベルウィンドウが画面外へ完全に移動される場合や、子オブジェクトがコンテナーのビューポートの境界外へ移動される場合です。このような場合、オブジェクトは要求されたスクリーン座標にできるだけ近い位置に配置され、上端または左端の座標はコンテナーの境界内に収まるように上書きされます。

vtbl 6 HRESULT get_CanMove(BOOL* pRetVal)

コントロールを移動できるかどうかを示します。

pRetValBOOL*out要素を移動できるかどうかを受け取る BOOL へのポインタである。
vtbl 7 HRESULT get_CanResize(BOOL* pRetVal)

コントロールのサイズを変更できるかどうかを示します。

pRetValBOOL*out要素のサイズを変更できるかどうかを受け取る BOOL へのポインタである。
vtbl 8 HRESULT get_CanRotate(BOOL* pRetVal)

コントロールを回転できるかどうかを示します。

pRetValBOOL*out要素を回転できるかどうかを受け取る BOOL へのポインタである。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITransformProvider "{6829DDC4-4F91-4FFA-B86F-BD3E2987CB4C}"
#usecom global ITransformProvider IID_ITransformProvider "{}"
#comfunc global ITransformProvider_Move           3 double,double
#comfunc global ITransformProvider_Resize         4 double,double
#comfunc global ITransformProvider_Rotate         5 double
#comfunc global ITransformProvider_get_CanMove    6 var
#comfunc global ITransformProvider_get_CanResize  7 var
#comfunc global ITransformProvider_get_CanRotate  8 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。