Win32 API 日本語リファレンス
ホームSystem.WinRT.Composition › ICompositionDrawingSurfaceInterop

ICompositionDrawingSurfaceInterop

COM
IIDfd04e6e3-fe0c-4c3c-ab19-a07601a576ee継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT BeginDraw(RECT* updateRect, GUID* iid, void** updateObject, POINT* updateOffset)
updateRectRECT*inoptional描画を更新する領域を指定する RECT へのポインタである。NULL を指定するとサーフェス全体が更新対象となる。
iidGUID*in返す描画オブジェクトのインターフェイスを識別する GUID(IID)へのポインタである。
updateObjectvoid**out描画に使用する更新オブジェクトを受け取る出力ポインタのアドレスである。
updateOffsetPOINT*out返されたオブジェクト内で描画を開始すべきオフセット座標を受け取る POINT へのポインタである。
vtbl 4 HRESULT EndDraw()
vtbl 5 HRESULT Resize(SIZE sizePixels)
sizePixelsSIZEinサーフェスのサイズをピクセル単位で指定する SIZE 構造体である。
vtbl 6 HRESULT Scroll(RECT* scrollRect, RECT* clipRect, INT offsetX, INT offsetY)
scrollRectRECT*inoptionalスクロール対象とする領域を指定する RECT へのポインタである。NULL を指定するとサーフェス全体が対象となる。
clipRectRECT*inoptionalスクロール結果を制限するクリップ領域を指定する RECT へのポインタである。
offsetXINTin水平方向のスクロール量をピクセル単位で指定する。
offsetYINTin垂直方向のスクロール量をピクセル単位で指定する。
vtbl 7 HRESULT ResumeDraw()
vtbl 8 HRESULT SuspendDraw()

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ICompositionDrawingSurfaceInterop "{FD04E6E3-FE0C-4C3C-AB19-A07601A576EE}"
#usecom global ICompositionDrawingSurfaceInterop IID_ICompositionDrawingSurfaceInterop "{}"
#comfunc global ICompositionDrawingSurfaceInterop_BeginDraw    3 var,var,sptr,var
#comfunc global ICompositionDrawingSurfaceInterop_EndDraw      4
#comfunc global ICompositionDrawingSurfaceInterop_Resize       5 int
#comfunc global ICompositionDrawingSurfaceInterop_Scroll       6 var,var,int,int
#comfunc global ICompositionDrawingSurfaceInterop_ResumeDraw   7
#comfunc global ICompositionDrawingSurfaceInterop_SuspendDraw  8
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。