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

ICompositionDrawingSurfaceInterop

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

公式ドキュメント

RECT で描画対象の領域を指定して、サーフェスオブジェクトへの描画を可能にするネイティブ相互運用インターフェイスです。このインターフェイスは C++ でのみ利用できます。

メソッド 6

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

vtbl 3 HRESULT BeginDraw(RECT* updateRect, GUID* iid, void** updateObject, POINT* updateOffset)

サーフェスへの描画を開始します。

updateRectRECT*inoptional更新するサーフェスの領域です。更新矩形はサーフェスの範囲内になければなりません。nullptr を指定すると、サーフェス全体を更新することを示します。
iidGUID*in取得するインターフェイスの識別子です。
updateObjectvoid**outiid パラメーターで指定した型のインターフェイスポインターを受け取ります。このパラメーターを NULL にすることはできません。
updateOffsetPOINT*outアプリケーションが更新後のコンテンツを描画すべきサーフェス内のオフセットです。このオフセットは更新矩形の左上隅を指します。

戻り値

型: HRESULT

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

vtbl 4 HRESULT EndDraw()

サーフェスオブジェクトへの描画の終了を示します。

戻り値

型: HRESULT

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

vtbl 5 HRESULT Resize(SIZE sizePixels)

サーフェスのサイズを変更します。

sizePixelsSIZEinサーフェスの幅と高さ(ピクセル単位)です。

戻り値

型: HRESULT

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

vtbl 6 HRESULT Scroll(RECT* scrollRect, RECT* clipRect, INT offsetX, INT offsetY)

論理サーフェスの矩形領域をスクロールします。

scrollRectRECT*inoptionalスクロールするサーフェスの矩形領域で、サーフェスの左上隅を基準とします。このパラメーターが NULL の場合は、サーフェス全体がスクロールされます。
clipRectRECT*inoptionalclipRect はスクロールの移動先(オフセット適用後の scrollRect)をクリップします。スクロール完了後にクリップ矩形の内側に残るビットマップコンテンツのみがスクロールされます。
offsetXINTin水平方向のスクロール量(ピクセル単位)です。正の値で右へ、負の値で左へスクロールします。
offsetYINTin垂直方向のスクロール量(ピクセル単位)です。正の値で下へ、負の値で上へスクロールします。

戻り値

型: HRESULT

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

vtbl 7 HRESULT ResumeDraw()

サーフェスオブジェクトへの描画を再開します。

戻り値

型: HRESULT

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

vtbl 8 HRESULT SuspendDraw()

サーフェスオブジェクトへの描画を一時停止します。

戻り値

型: HRESULT

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 指定が可能。