Win32 API 日本語リファレンス
ホームGraphics.DirectComposition › IDCompositionSurface

IDCompositionSurface

COM
IIDbb8a4953-2c99-4f5a-96f5-4819027fa3ac継承元IUnknown自前メソッド開始 vtbl3

メソッド 5

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

vtbl 3 HRESULT BeginDraw(RECT* updateRect, GUID* iid, void** updateObject, POINT* updateOffset)
updateRectRECT*inoptional今回更新する領域を示す矩形。NULL指定でサーフェス全体を更新対象とする。
iidGUID*in返却する描画オブジェクトのインターフェイス識別子(IID)へのポインタ。
updateObjectvoid**out取得した描画用デバイスコンテキスト等を受け取る出力ポインタである。
updateOffsetPOINT*out返却オブジェクト内で描画を開始すべき左上のオフセット座標を受け取る。
vtbl 4 HRESULT EndDraw()
vtbl 5 HRESULT SuspendDraw()
vtbl 6 HRESULT ResumeDraw()
vtbl 7 HRESULT Scroll(RECT* scrollRect, RECT* clipRect, INT offsetX, INT offsetY)
scrollRectRECT*inoptionalスクロール対象とする元の矩形領域。NULLでサーフェス全体を指す。
clipRectRECT*inoptionalスクロール結果を制限するクリップ矩形。NULL指定で制限なしとなる。
offsetXINTin水平方向のスクロール量(ピクセル)。正値で右、負値で左へ移動する。
offsetYINTin垂直方向のスクロール量(ピクセル)。正値で下、負値で上へ移動する。

HSP用 COM定義

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

出力引数:
#define global IID_IDCompositionSurface "{BB8A4953-2C99-4F5A-96F5-4819027FA3AC}"
#usecom global IDCompositionSurface IID_IDCompositionSurface "{}"
#comfunc global IDCompositionSurface_BeginDraw    3 var,var,sptr,var
#comfunc global IDCompositionSurface_EndDraw      4
#comfunc global IDCompositionSurface_SuspendDraw  5
#comfunc global IDCompositionSurface_ResumeDraw   6
#comfunc global IDCompositionSurface_Scroll       7 var,var,int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。