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

IDirectDrawSurface

COM
IID6c14db81-a733-11ce-a521-0020af0be560継承元IUnknown自前メソッド開始 vtbl3

メソッド 33

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

vtbl 3 HRESULT AddAttachedSurface(IDirectDrawSurface* param0)
param0IDirectDrawSurface*inこのサーフェスに付加(アタッチ)する別サーフェスへのポインタである。
vtbl 4 HRESULT AddOverlayDirtyRect(RECT* param0)
param0RECT*inoutオーバーレイの更新対象として追加するダーティ矩形へのポインタである。
vtbl 5 HRESULT Blt(RECT* param0, IDirectDrawSurface* param1, RECT* param2, DWORD param3, DDBLTFX* param4)
param0RECT*inout転送先となる本サーフェス上の宛先矩形。NULLでサーフェス全体を指す。
param1IDirectDrawSurface*in転送元となるソースサーフェスへのポインタである。NULL可(塗りつぶし等)。
param2RECT*inoutソースサーフェス上の転送元矩形。NULLでソース全体を指す。
param3DWORDin転送方法を制御するフラグ(DDBLT_系)である。
param4DDBLTFX*inoutカラーキーやROP等の追加効果を指定するDDBLTFXへのポインタである。NULL可。
vtbl 6 HRESULT BltBatch(DDBLTBATCH* param0, DWORD param1, DWORD param2)
param0DDBLTBATCH*inout一括実行するBlt操作の配列(DDBLTBATCH)へのポインタである。
param1DWORDinparam0配列に含まれるBlt操作の個数を指定する。
param2DWORDin動作フラグ。現状は予約で0を指定する。
vtbl 7 HRESULT BltFast(DWORD param0, DWORD param1, IDirectDrawSurface* param2, RECT* param3, DWORD param4)
param0DWORDin転送先のX座標(ピクセル)である。
param1DWORDin転送先のY座標(ピクセル)である。
param2IDirectDrawSurface*in転送元となるソースサーフェスへのポインタである。
param3RECT*inoutソースサーフェス上の転送元矩形。NULLでソース全体を指す。
param4DWORDin高速転送の方法を制御するフラグ(DDBLTFAST_系)である。
vtbl 8 HRESULT DeleteAttachedSurface(DWORD param0, IDirectDrawSurface* param1)
param0DWORDin削除動作のフラグ。現状は予約で0を指定する。
param1IDirectDrawSurface*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可。
param2LPDDENUMSURFACESCALLBACKin各オーバーレイごとに呼ばれる列挙コールバック関数である。
vtbl 11 HRESULT Flip(IDirectDrawSurface* param0, DWORD param1)
param0IDirectDrawSurface*in切り替え先とする特定のバックバッファ。NULLで次バッファを自動選択する。
param1DWORDinフリップ動作を制御するフラグ(DDFLIP_系)である。
vtbl 12 HRESULT GetAttachedSurface(DDSCAPS* param0, IDirectDrawSurface** param1)
param0DDSCAPS*inout取得したい付加サーフェスの能力条件を示すDDSCAPSへのポインタである。
param1IDirectDrawSurface**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デバイスコンテキスト(HDC)を受け取る出力ポインタである。
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このサーフェスを関連付けるIDirectDrawオブジェクトへのポインタである。
param1DDSURFACEDESC*inoutサーフェス構成を記述するDDSURFACEDESCへのポインタである。
vtbl 24 HRESULT IsLost()
vtbl 25 HRESULT Lock(RECT* param0, DDSURFACEDESC* param1, DWORD param2, HANDLE param3)
param0RECT*inoutロックするサーフェス上の領域矩形。NULLで全体をロックする。
param1DDSURFACEDESC*inoutロック結果(メモリポインタやピッチ等)を受け取るDDSURFACEDESCへのポインタである。
param2DWORDinロック動作を制御するフラグ(DDLOCK_系)である。
param3HANDLEinブロッキング制御に用いるイベントハンドルである。現状未使用でNULL可。
vtbl 26 HRESULT ReleaseDC(HDC param0)
param0HDCinGetDCで取得したデバイスコンテキスト(HDC)を解放対象として指定する。
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*inoutLockで返されたロック領域のメモリポインタ。NULL可で全体解除となる。
vtbl 33 HRESULT UpdateOverlay(RECT* param0, IDirectDrawSurface* param1, RECT* param2, DWORD param3, DDOVERLAYFX* param4)
param0RECT*inoutソース側のオーバーレイ矩形。NULLでソース全体を指す。
param1IDirectDrawSurface*inオーバーレイ表示先のサーフェスへのポインタである。NULLで非表示にする。
param2RECT*inout表示先の宛先矩形。NULLで表示先全体を指す。
param3DWORDinオーバーレイ表示を制御するフラグ(DDOVER_系)である。
param4DDOVERLAYFX*inoutカラーキー等の追加効果を指定するDDOVERLAYFXへのポインタである。NULL可。
vtbl 34 HRESULT UpdateOverlayDisplay(DWORD param0)
param0DWORDinオーバーレイ表示の再描画方法を制御するフラグ(DDOVER_REFRESH系)である。
vtbl 35 HRESULT UpdateOverlayZOrder(DWORD param0, IDirectDrawSurface* param1)
param0DWORDinZ順序の挿入位置を指定するフラグ(DDOVERZ_系)である。
param1IDirectDrawSurface*in挿入位置の基準とする参照サーフェスへのポインタである。NULL可。

HSP用 COM定義

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

出力引数:
#define global IID_IDirectDrawSurface "{6C14DB81-A733-11CE-A521-0020AF0BE560}"
#usecom global IDirectDrawSurface IID_IDirectDrawSurface "{}"
#comfunc global IDirectDrawSurface_AddAttachedSurface     3 sptr
#comfunc global IDirectDrawSurface_AddOverlayDirtyRect    4 var
#comfunc global IDirectDrawSurface_Blt                    5 var,sptr,var,int,var
#comfunc global IDirectDrawSurface_BltBatch               6 var,int,int
#comfunc global IDirectDrawSurface_BltFast                7 int,int,sptr,var,int
#comfunc global IDirectDrawSurface_DeleteAttachedSurface  8 int,sptr
#comfunc global IDirectDrawSurface_EnumAttachedSurfaces   9 sptr,sptr
#comfunc global IDirectDrawSurface_EnumOverlayZOrders     10 int,sptr,sptr
#comfunc global IDirectDrawSurface_Flip                   11 sptr,int
#comfunc global IDirectDrawSurface_GetAttachedSurface     12 var,sptr
#comfunc global IDirectDrawSurface_GetBltStatus           13 int
#comfunc global IDirectDrawSurface_GetCaps                14 var
#comfunc global IDirectDrawSurface_GetClipper             15 sptr
#comfunc global IDirectDrawSurface_GetColorKey            16 int,var
#comfunc global IDirectDrawSurface_GetDC                  17 sptr
#comfunc global IDirectDrawSurface_GetFlipStatus          18 int
#comfunc global IDirectDrawSurface_GetOverlayPosition     19 var,var
#comfunc global IDirectDrawSurface_GetPalette             20 sptr
#comfunc global IDirectDrawSurface_GetPixelFormat         21 var
#comfunc global IDirectDrawSurface_GetSurfaceDesc         22 var
#comfunc global IDirectDrawSurface_Initialize             23 sptr,var
#comfunc global IDirectDrawSurface_IsLost                 24
#comfunc global IDirectDrawSurface_Lock                   25 var,var,int,sptr
#comfunc global IDirectDrawSurface_ReleaseDC              26 sptr
#comfunc global IDirectDrawSurface_Restore                27
#comfunc global IDirectDrawSurface_SetClipper             28 sptr
#comfunc global IDirectDrawSurface_SetColorKey            29 int,var
#comfunc global IDirectDrawSurface_SetOverlayPosition     30 int,int
#comfunc global IDirectDrawSurface_SetPalette             31 sptr
#comfunc global IDirectDrawSurface_Unlock                 32 sptr
#comfunc global IDirectDrawSurface_UpdateOverlay          33 var,sptr,var,int,var
#comfunc global IDirectDrawSurface_UpdateOverlayDisplay   34 int
#comfunc global IDirectDrawSurface_UpdateOverlayZOrder    35 int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。