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

IDirectDrawSurface2

COM
IID57805885-6eec-11cf-9441-a82303c10e27継承元IUnknown自前メソッド開始 vtbl3

メソッド 36

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

vtbl 3 HRESULT AddAttachedSurface(IDirectDrawSurface2* param0)
param0IDirectDrawSurface2*inこのサーフェスにアタッチする対象サーフェスのインターフェイスポインタを指定する。
vtbl 4 HRESULT AddOverlayDirtyRect(RECT* param0)
param0RECT*inout次のオーバーレイ更新で再描画すべき汚れ矩形領域を指すRECTポインタを指定する。
vtbl 5 HRESULT Blt(RECT* param0, IDirectDrawSurface2* param1, RECT* param2, DWORD param3, DDBLTFX* param4)
param0RECT*inout転送先サーフェス上の矩形を指すRECTポインタ。NULLでサーフェス全体を対象とする。
param1IDirectDrawSurface2*in転送元サーフェスのインターフェイスポインタ。塗りつぶし等では NULL 可。
param2RECT*inout転送元サーフェス上の矩形を指すRECTポインタ。NULLで元全体を対象とする。
param3DWORDinブリット動作を制御する DDBLT_ 系フラグの組み合わせを指定する。
param4DDBLTFX*inoutカラーキーやエフェクト等の詳細を格納する DDBLTFX 構造体ポインタ。不要時は NULL 可。
vtbl 6 HRESULT BltBatch(DDBLTBATCH* param0, DWORD param1, DWORD param2)
param0DDBLTBATCH*inout一括実行する複数ブリット操作を記述した DDBLTBATCH 構造体配列の先頭ポインタ。
param1DWORDin配列に含まれるブリット操作の件数を指定する。
param2DWORDin予約済みで現状は0を指定するフラグ値。
vtbl 7 HRESULT BltFast(DWORD param0, DWORD param1, IDirectDrawSurface2* param2, RECT* param3, DWORD param4)
param0DWORDin転送先サーフェス上の左上X座標(ピクセル単位)を指定する。
param1DWORDin転送先サーフェス上の左上Y座標(ピクセル単位)を指定する。
param2IDirectDrawSurface2*in転送元サーフェスのインターフェイスポインタを指定する。
param3RECT*inout転送元サーフェス上の矩形を指すRECTポインタ。NULLで元全体を対象とする。
param4DWORDinDDBLTFAST_ 系の転送フラグ(カラーキー有無や待機指定等)を指定する。
vtbl 8 HRESULT DeleteAttachedSurface(DWORD param0, IDirectDrawSurface2* param1)
param0DWORDin予約済みで0を指定するフラグ値。
param1IDirectDrawSurface2*inこのサーフェスからデタッチする対象サーフェスのインターフェイスポインタ。
vtbl 9 HRESULT EnumAttachedSurfaces(void* param0, LPDDENUMSURFACESCALLBACK param1)
param0void*inoutコールバックへそのまま渡されるアプリ定義のコンテキストポインタ。NULL 可。
param1LPDDENUMSURFACESCALLBACKinアタッチされた各サーフェスごとに呼ばれる列挙コールバック関数ポインタ。
vtbl 10 HRESULT EnumOverlayZOrders(DWORD param0, void* param1, LPDDENUMSURFACESCALLBACK param2)
param0DWORDin列挙方向を指定する DDENUMOVERLAYZ_ 系フラグ(前面から/背面から)。
param1void*inoutコールバックへそのまま渡されるアプリ定義のコンテキストポインタ。NULL 可。
param2LPDDENUMSURFACESCALLBACKinZオーダー順に各オーバーレイで呼ばれる列挙コールバック関数ポインタ。
vtbl 11 HRESULT Flip(IDirectDrawSurface2* param0, DWORD param1)
param0IDirectDrawSurface2*inフリップ先として明示するサーフェスのポインタ。通常はNULLで自動選択する。
param1DWORDinDDFLIP_ 系フラグ(垂直帰線待ち等)を指定する。
vtbl 12 HRESULT GetAttachedSurface(DDSCAPS* param0, IDirectDrawSurface2** param1)
param0DDSCAPS*inout取得対象を絞り込むサーフェス能力を指定する DDSCAPS 構造体ポインタ。
param1IDirectDrawSurface2**out条件に一致したアタッチサーフェスを受け取る出力ポインタの格納先。
vtbl 13 HRESULT GetBltStatus(DWORD param0)
param0DWORDin問い合わせ種別を指定する DDGBS_ 系フラグ(完了確認/可否確認)。
vtbl 14 HRESULT GetCaps(DDSCAPS* param0)
param0DDSCAPS*inoutサーフェスの能力情報を受け取る DDSCAPS 構造体ポインタ。
vtbl 15 HRESULT GetClipper(IDirectDrawClipper** param0)
param0IDirectDrawClipper**outサーフェスに関連付けられたクリッパーを受け取る出力ポインタの格納先。
vtbl 16 HRESULT GetColorKey(DWORD param0, DDCOLORKEY* param1)
param0DWORDin取得するカラーキー種別を指定する DDCKEY_ 系フラグ。
param1DDCOLORKEY*inoutカラーキー値を受け取る DDCOLORKEY 構造体ポインタ。
vtbl 17 HRESULT GetDC(HDC* param0)
param0HDC*inoutサーフェスに対応するGDIデバイスコンテキストハンドルを受け取る出力ポインタ。
vtbl 18 HRESULT GetFlipStatus(DWORD param0)
param0DWORDin問い合わせ種別を指定する DDGFS_ 系フラグ(完了確認/可否確認)。
vtbl 19 HRESULT GetOverlayPosition(INT* param0, INT* param1)
param0INT*inoutオーバーレイの現在の左上X座標を受け取る出力ポインタ。
param1INT*inoutオーバーレイの現在の左上Y座標を受け取る出力ポインタ。
vtbl 20 HRESULT GetPalette(IDirectDrawPalette** param0)
param0IDirectDrawPalette**outサーフェスに関連付けられたパレットを受け取る出力ポインタの格納先。
vtbl 21 HRESULT GetPixelFormat(DDPIXELFORMAT* param0)
param0DDPIXELFORMAT*inoutサーフェスのピクセルフォーマット情報を受け取る DDPIXELFORMAT 構造体ポインタ。
vtbl 22 HRESULT GetSurfaceDesc(DDSURFACEDESC* param0)
param0DDSURFACEDESC*inoutサーフェスの寸法やピクセル形式等の記述を受け取る DDSURFACEDESC 構造体ポインタ。
vtbl 23 HRESULT Initialize(IDirectDraw* param0, DDSURFACEDESC* param1)
param0IDirectDraw*inこのサーフェスを生成した DirectDraw オブジェクトのインターフェイスポインタ。
param1DDSURFACEDESC*inout初期化に用いるサーフェス記述を格納した DDSURFACEDESC 構造体ポインタ。
vtbl 24 HRESULT IsLost()
vtbl 25 HRESULT Lock(RECT* param0, DDSURFACEDESC* param1, DWORD param2, HANDLE param3)
param0RECT*inoutロックするサーフェス上の矩形を指すRECTポインタ。NULLで全体をロックする。
param1DDSURFACEDESC*inoutロック結果(先頭アドレスやピッチ等)を受け取る DDSURFACEDESC 構造体ポインタ。
param2DWORDinDDLOCK_ 系フラグ(待機方法や読み書き意図)を指定する。
param3HANDLEinイベント駆動用のハンドル。現状は未使用でNULLを指定する。
vtbl 26 HRESULT ReleaseDC(HDC param0)
param0HDCinGetDCで取得したデバイスコンテキストハンドルを指定して解放する。
vtbl 27 HRESULT Restore()
vtbl 28 HRESULT SetClipper(IDirectDrawClipper* param0)
param0IDirectDrawClipper*inサーフェスに関連付けるクリッパーのポインタ。NULLで関連付けを解除する。
vtbl 29 HRESULT SetColorKey(DWORD param0, DDCOLORKEY* param1)
param0DWORDin設定するカラーキー種別を指定する DDCKEY_ 系フラグ。
param1DDCOLORKEY*inout設定するカラーキー値を格納した DDCOLORKEY 構造体ポインタ。NULLで無効化する。
vtbl 30 HRESULT SetOverlayPosition(INT param0, INT param1)
param0INTinオーバーレイを表示する左上X座標(ピクセル単位)を指定する。
param1INTinオーバーレイを表示する左上Y座標(ピクセル単位)を指定する。
vtbl 31 HRESULT SetPalette(IDirectDrawPalette* param0)
param0IDirectDrawPalette*inサーフェスに関連付けるパレットのポインタ。NULLで関連付けを解除する。
vtbl 32 HRESULT Unlock(void* param0)
param0void*inoutロック時に得たサーフェス先頭アドレス。NULL指定も可。
vtbl 33 HRESULT UpdateOverlay(RECT* param0, IDirectDrawSurface2* param1, RECT* param2, DWORD param3, DDOVERLAYFX* param4)
param0RECT*inout転送元サーフェス上のオーバーレイ矩形を指すRECTポインタ。NULL可。
param1IDirectDrawSurface2*inオーバーレイの転送先サーフェスのポインタ。NULLで非表示にする。
param2RECT*inout転送先サーフェス上の表示矩形を指すRECTポインタ。NULL可。
param3DWORDinDDOVER_ 系フラグ(表示/非表示やカラーキー指定)を指定する。
param4DDOVERLAYFX*inoutオーバーレイ効果の詳細を格納する DDOVERLAYFX 構造体ポインタ。不要時はNULL可。
vtbl 34 HRESULT UpdateOverlayDisplay(DWORD param0)
param0DWORDinオーバーレイ表示を再描画する範囲を指定する DDOVER_REFRESH 系フラグ。
vtbl 35 HRESULT UpdateOverlayZOrder(DWORD param0, IDirectDrawSurface2* param1)
param0DWORDinZオーダー上の挿入位置を指定する DDOVERZ_ 系フラグ。
param1IDirectDrawSurface2*inZオーダーの基準となる参照サーフェスのポインタ。先頭/末尾指定時はNULL可。
vtbl 36 HRESULT GetDDInterface(void** param0)
param0void**inoutこのサーフェスを生成した DirectDraw オブジェクトを受け取る出力ポインタの格納先。
vtbl 37 HRESULT PageLock(DWORD param0)
param0DWORDin予約済みで0を指定するフラグ値。サーフェスメモリのページングを禁止する。
vtbl 38 HRESULT PageUnlock(DWORD param0)
param0DWORDin予約済みで0を指定するフラグ値。PageLockによるページング禁止を解除する。

HSP用 COM定義

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

出力引数:
#define global IID_IDirectDrawSurface2 "{57805885-6EEC-11CF-9441-A82303C10E27}"
#usecom global IDirectDrawSurface2 IID_IDirectDrawSurface2 "{}"
#comfunc global IDirectDrawSurface2_AddAttachedSurface     3 sptr
#comfunc global IDirectDrawSurface2_AddOverlayDirtyRect    4 var
#comfunc global IDirectDrawSurface2_Blt                    5 var,sptr,var,int,var
#comfunc global IDirectDrawSurface2_BltBatch               6 var,int,int
#comfunc global IDirectDrawSurface2_BltFast                7 int,int,sptr,var,int
#comfunc global IDirectDrawSurface2_DeleteAttachedSurface  8 int,sptr
#comfunc global IDirectDrawSurface2_EnumAttachedSurfaces   9 sptr,sptr
#comfunc global IDirectDrawSurface2_EnumOverlayZOrders     10 int,sptr,sptr
#comfunc global IDirectDrawSurface2_Flip                   11 sptr,int
#comfunc global IDirectDrawSurface2_GetAttachedSurface     12 var,sptr
#comfunc global IDirectDrawSurface2_GetBltStatus           13 int
#comfunc global IDirectDrawSurface2_GetCaps                14 var
#comfunc global IDirectDrawSurface2_GetClipper             15 sptr
#comfunc global IDirectDrawSurface2_GetColorKey            16 int,var
#comfunc global IDirectDrawSurface2_GetDC                  17 sptr
#comfunc global IDirectDrawSurface2_GetFlipStatus          18 int
#comfunc global IDirectDrawSurface2_GetOverlayPosition     19 var,var
#comfunc global IDirectDrawSurface2_GetPalette             20 sptr
#comfunc global IDirectDrawSurface2_GetPixelFormat         21 var
#comfunc global IDirectDrawSurface2_GetSurfaceDesc         22 var
#comfunc global IDirectDrawSurface2_Initialize             23 sptr,var
#comfunc global IDirectDrawSurface2_IsLost                 24
#comfunc global IDirectDrawSurface2_Lock                   25 var,var,int,sptr
#comfunc global IDirectDrawSurface2_ReleaseDC              26 sptr
#comfunc global IDirectDrawSurface2_Restore                27
#comfunc global IDirectDrawSurface2_SetClipper             28 sptr
#comfunc global IDirectDrawSurface2_SetColorKey            29 int,var
#comfunc global IDirectDrawSurface2_SetOverlayPosition     30 int,int
#comfunc global IDirectDrawSurface2_SetPalette             31 sptr
#comfunc global IDirectDrawSurface2_Unlock                 32 sptr
#comfunc global IDirectDrawSurface2_UpdateOverlay          33 var,sptr,var,int,var
#comfunc global IDirectDrawSurface2_UpdateOverlayDisplay   34 int
#comfunc global IDirectDrawSurface2_UpdateOverlayZOrder    35 int,sptr
#comfunc global IDirectDrawSurface2_GetDDInterface         36 sptr
#comfunc global IDirectDrawSurface2_PageLock               37 int
#comfunc global IDirectDrawSurface2_PageUnlock             38 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。