ホーム › Graphics.DirectDraw › IDirectDrawSurface3
IDirectDrawSurface3
COMメソッド 37
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT AddAttachedSurface(IDirectDrawSurface3* param0)
| param0 | IDirectDrawSurface3* | in | このサーフェスにアタッチする対象サーフェスのインターフェイスポインタを指定する。 |
| param0 | RECT* | inout | 次のオーバーレイ更新で再描画すべき汚れ矩形領域を指すRECTポインタを指定する。 |
vtbl 5 HRESULT Blt(RECT* param0, IDirectDrawSurface3* param1, RECT* param2, DWORD param3, DDBLTFX* param4)
| param0 | RECT* | inout | 転送先サーフェス上の矩形を指すRECTポインタ。NULLでサーフェス全体を対象とする。 |
| param1 | IDirectDrawSurface3* | in | 転送元サーフェスのインターフェイスポインタ。塗りつぶし等では NULL 可。 |
| param2 | RECT* | inout | 転送元サーフェス上の矩形を指すRECTポインタ。NULLで元全体を対象とする。 |
| param3 | DWORD | in | ブリット動作を制御する DDBLT_ 系フラグの組み合わせを指定する。 |
| param4 | DDBLTFX* | inout | カラーキーやエフェクト等の詳細を格納する DDBLTFX 構造体ポインタ。不要時は NULL 可。 |
vtbl 6 HRESULT BltBatch(DDBLTBATCH* param0, DWORD param1, DWORD param2)
| param0 | DDBLTBATCH* | inout | 一括実行する複数ブリット操作を記述した DDBLTBATCH 構造体配列の先頭ポインタ。 |
| param1 | DWORD | in | 配列に含まれるブリット操作の件数を指定する。 |
| param2 | DWORD | in | 予約済みで現状は0を指定するフラグ値。 |
vtbl 7 HRESULT BltFast(DWORD param0, DWORD param1, IDirectDrawSurface3* param2, RECT* param3, DWORD param4)
| param0 | DWORD | in | 転送先サーフェス上の左上X座標(ピクセル単位)を指定する。 |
| param1 | DWORD | in | 転送先サーフェス上の左上Y座標(ピクセル単位)を指定する。 |
| param2 | IDirectDrawSurface3* | in | 転送元サーフェスのインターフェイスポインタを指定する。 |
| param3 | RECT* | inout | 転送元サーフェス上の矩形を指すRECTポインタ。NULLで元全体を対象とする。 |
| param4 | DWORD | in | DDBLTFAST_ 系の転送フラグ(カラーキー有無や待機指定等)を指定する。 |
vtbl 8 HRESULT DeleteAttachedSurface(DWORD param0, IDirectDrawSurface3* param1)
| param0 | DWORD | in | 予約済みで0を指定するフラグ値。 |
| param1 | IDirectDrawSurface3* | in | このサーフェスからデタッチする対象サーフェスのインターフェイスポインタ。 |
vtbl 9 HRESULT EnumAttachedSurfaces(void* param0, LPDDENUMSURFACESCALLBACK param1)
| param0 | void* | inout | コールバックへそのまま渡されるアプリ定義のコンテキストポインタ。NULL 可。 |
| param1 | LPDDENUMSURFACESCALLBACK | in | アタッチされた各サーフェスごとに呼ばれる列挙コールバック関数ポインタ。 |
vtbl 10 HRESULT EnumOverlayZOrders(DWORD param0, void* param1, LPDDENUMSURFACESCALLBACK param2)
| param0 | DWORD | in | 列挙方向を指定する DDENUMOVERLAYZ_ 系フラグ(前面から/背面から)。 |
| param1 | void* | inout | コールバックへそのまま渡されるアプリ定義のコンテキストポインタ。NULL 可。 |
| param2 | LPDDENUMSURFACESCALLBACK | in | Zオーダー順に各オーバーレイで呼ばれる列挙コールバック関数ポインタ。 |
vtbl 11 HRESULT Flip(IDirectDrawSurface3* param0, DWORD param1)
| param0 | IDirectDrawSurface3* | in | フリップ先として明示するサーフェスのポインタ。通常はNULLで自動選択する。 |
| param1 | DWORD | in | DDFLIP_ 系フラグ(垂直帰線待ち等)を指定する。 |
vtbl 12 HRESULT GetAttachedSurface(DDSCAPS* param0, IDirectDrawSurface3** param1)
| param0 | DDSCAPS* | inout | 取得対象を絞り込むサーフェス能力を指定する DDSCAPS 構造体ポインタ。 |
| param1 | IDirectDrawSurface3** | out | 条件に一致したアタッチサーフェスを受け取る出力ポインタの格納先。 |
| param0 | DWORD | in | 問い合わせ種別を指定する DDGBS_ 系フラグ(完了確認/可否確認)。 |
| param0 | DDSCAPS* | inout | サーフェスの能力情報を受け取る DDSCAPS 構造体ポインタ。 |
vtbl 15 HRESULT GetClipper(IDirectDrawClipper** param0)
| param0 | IDirectDrawClipper** | out | サーフェスに関連付けられたクリッパーを受け取る出力ポインタの格納先。 |
vtbl 16 HRESULT GetColorKey(DWORD param0, DDCOLORKEY* param1)
| param0 | DWORD | in | 取得するカラーキー種別を指定する DDCKEY_ 系フラグ。 |
| param1 | DDCOLORKEY* | inout | カラーキー値を受け取る DDCOLORKEY 構造体ポインタ。 |
| param0 | HDC* | inout | サーフェスに対応するGDIデバイスコンテキストハンドルを受け取る出力ポインタ。 |
| param0 | DWORD | in | 問い合わせ種別を指定する DDGFS_ 系フラグ(完了確認/可否確認)。 |
| param0 | INT* | inout | オーバーレイの現在の左上X座標を受け取る出力ポインタ。 |
| param1 | INT* | inout | オーバーレイの現在の左上Y座標を受け取る出力ポインタ。 |
vtbl 20 HRESULT GetPalette(IDirectDrawPalette** param0)
| param0 | IDirectDrawPalette** | out | サーフェスに関連付けられたパレットを受け取る出力ポインタの格納先。 |
vtbl 21 HRESULT GetPixelFormat(DDPIXELFORMAT* param0)
| param0 | DDPIXELFORMAT* | inout | サーフェスのピクセルフォーマット情報を受け取る DDPIXELFORMAT 構造体ポインタ。 |
vtbl 22 HRESULT GetSurfaceDesc(DDSURFACEDESC* param0)
| param0 | DDSURFACEDESC* | inout | サーフェスの寸法やピクセル形式等の記述を受け取る DDSURFACEDESC 構造体ポインタ。 |
vtbl 23 HRESULT Initialize(IDirectDraw* param0, DDSURFACEDESC* param1)
| param0 | IDirectDraw* | in | このサーフェスを生成した DirectDraw オブジェクトのインターフェイスポインタ。 |
| param1 | DDSURFACEDESC* | inout | 初期化に用いるサーフェス記述を格納した DDSURFACEDESC 構造体ポインタ。 |
vtbl 24 HRESULT IsLost()
vtbl 25 HRESULT Lock(RECT* param0, DDSURFACEDESC* param1, DWORD param2, HANDLE param3)
| param0 | RECT* | inout | ロックするサーフェス上の矩形を指すRECTポインタ。NULLで全体をロックする。 |
| param1 | DDSURFACEDESC* | inout | ロック結果(先頭アドレスやピッチ等)を受け取る DDSURFACEDESC 構造体ポインタ。 |
| param2 | DWORD | in | DDLOCK_ 系フラグ(待機方法や読み書き意図)を指定する。 |
| param3 | HANDLE | in | イベント駆動用のハンドル。現状は未使用でNULLを指定する。 |
| param0 | HDC | in | GetDCで取得したデバイスコンテキストハンドルを指定して解放する。 |
vtbl 27 HRESULT Restore()
vtbl 28 HRESULT SetClipper(IDirectDrawClipper* param0)
| param0 | IDirectDrawClipper* | in | サーフェスに関連付けるクリッパーのポインタ。NULLで関連付けを解除する。 |
vtbl 29 HRESULT SetColorKey(DWORD param0, DDCOLORKEY* param1)
| param0 | DWORD | in | 設定するカラーキー種別を指定する DDCKEY_ 系フラグ。 |
| param1 | DDCOLORKEY* | inout | 設定するカラーキー値を格納した DDCOLORKEY 構造体ポインタ。NULLで無効化する。 |
| param0 | INT | in | オーバーレイを表示する左上X座標(ピクセル単位)を指定する。 |
| param1 | INT | in | オーバーレイを表示する左上Y座標(ピクセル単位)を指定する。 |
vtbl 31 HRESULT SetPalette(IDirectDrawPalette* param0)
| param0 | IDirectDrawPalette* | in | サーフェスに関連付けるパレットのポインタ。NULLで関連付けを解除する。 |
vtbl 32 HRESULT Unlock(void* param0)
| param0 | void* | inout | ロック時に得たサーフェス先頭アドレス。NULL指定も可。 |
vtbl 33 HRESULT UpdateOverlay(RECT* param0, IDirectDrawSurface3* param1, RECT* param2, DWORD param3, DDOVERLAYFX* param4)
| param0 | RECT* | inout | 転送元サーフェス上のオーバーレイ矩形を指すRECTポインタ。NULL可。 |
| param1 | IDirectDrawSurface3* | in | オーバーレイの転送先サーフェスのポインタ。NULLで非表示にする。 |
| param2 | RECT* | inout | 転送先サーフェス上の表示矩形を指すRECTポインタ。NULL可。 |
| param3 | DWORD | in | DDOVER_ 系フラグ(表示/非表示やカラーキー指定)を指定する。 |
| param4 | DDOVERLAYFX* | inout | オーバーレイ効果の詳細を格納する DDOVERLAYFX 構造体ポインタ。不要時はNULL可。 |
| param0 | DWORD | in | オーバーレイ表示を再描画する範囲を指定する DDOVER_REFRESH 系フラグ。 |
vtbl 35 HRESULT UpdateOverlayZOrder(DWORD param0, IDirectDrawSurface3* param1)
| param0 | DWORD | in | Zオーダー上の挿入位置を指定する DDOVERZ_ 系フラグ。 |
| param1 | IDirectDrawSurface3* | in | Zオーダーの基準となる参照サーフェスのポインタ。先頭/末尾指定時はNULL可。 |
vtbl 36 HRESULT GetDDInterface(void** param0)
| param0 | void** | inout | このサーフェスを生成した DirectDraw オブジェクトを受け取る出力ポインタの格納先。 |
| param0 | DWORD | in | 予約済みで0を指定するフラグ値。サーフェスメモリのページングを禁止する。 |
| param0 | DWORD | in | 予約済みで0を指定するフラグ値。PageLockによるページング禁止を解除する。 |
vtbl 39 HRESULT SetSurfaceDesc(DDSURFACEDESC* param0, DWORD param1)
| param0 | DDSURFACEDESC* | inout | 差し替えるサーフェス記述(主にメモリポインタ)を格納した DDSURFACEDESC 構造体ポインタ。 |
| param1 | DWORD | in | 予約済みで0を指定するフラグ値。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDirectDrawSurface3 "{DA044E00-69B2-11D0-A1D5-00AA00B8DFBB}" #usecom global IDirectDrawSurface3 IID_IDirectDrawSurface3 "{}" #comfunc global IDirectDrawSurface3_AddAttachedSurface 3 sptr #comfunc global IDirectDrawSurface3_AddOverlayDirtyRect 4 var #comfunc global IDirectDrawSurface3_Blt 5 var,sptr,var,int,var #comfunc global IDirectDrawSurface3_BltBatch 6 var,int,int #comfunc global IDirectDrawSurface3_BltFast 7 int,int,sptr,var,int #comfunc global IDirectDrawSurface3_DeleteAttachedSurface 8 int,sptr #comfunc global IDirectDrawSurface3_EnumAttachedSurfaces 9 sptr,sptr #comfunc global IDirectDrawSurface3_EnumOverlayZOrders 10 int,sptr,sptr #comfunc global IDirectDrawSurface3_Flip 11 sptr,int #comfunc global IDirectDrawSurface3_GetAttachedSurface 12 var,sptr #comfunc global IDirectDrawSurface3_GetBltStatus 13 int #comfunc global IDirectDrawSurface3_GetCaps 14 var #comfunc global IDirectDrawSurface3_GetClipper 15 sptr #comfunc global IDirectDrawSurface3_GetColorKey 16 int,var #comfunc global IDirectDrawSurface3_GetDC 17 sptr #comfunc global IDirectDrawSurface3_GetFlipStatus 18 int #comfunc global IDirectDrawSurface3_GetOverlayPosition 19 var,var #comfunc global IDirectDrawSurface3_GetPalette 20 sptr #comfunc global IDirectDrawSurface3_GetPixelFormat 21 var #comfunc global IDirectDrawSurface3_GetSurfaceDesc 22 var #comfunc global IDirectDrawSurface3_Initialize 23 sptr,var #comfunc global IDirectDrawSurface3_IsLost 24 #comfunc global IDirectDrawSurface3_Lock 25 var,var,int,sptr #comfunc global IDirectDrawSurface3_ReleaseDC 26 sptr #comfunc global IDirectDrawSurface3_Restore 27 #comfunc global IDirectDrawSurface3_SetClipper 28 sptr #comfunc global IDirectDrawSurface3_SetColorKey 29 int,var #comfunc global IDirectDrawSurface3_SetOverlayPosition 30 int,int #comfunc global IDirectDrawSurface3_SetPalette 31 sptr #comfunc global IDirectDrawSurface3_Unlock 32 sptr #comfunc global IDirectDrawSurface3_UpdateOverlay 33 var,sptr,var,int,var #comfunc global IDirectDrawSurface3_UpdateOverlayDisplay 34 int #comfunc global IDirectDrawSurface3_UpdateOverlayZOrder 35 int,sptr #comfunc global IDirectDrawSurface3_GetDDInterface 36 sptr #comfunc global IDirectDrawSurface3_PageLock 37 int #comfunc global IDirectDrawSurface3_PageUnlock 38 int #comfunc global IDirectDrawSurface3_SetSurfaceDesc 39 var,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDirectDrawSurface3 "{DA044E00-69B2-11D0-A1D5-00AA00B8DFBB}" #usecom global IDirectDrawSurface3 IID_IDirectDrawSurface3 "{}" #comfunc global IDirectDrawSurface3_AddAttachedSurface 3 sptr #comfunc global IDirectDrawSurface3_AddOverlayDirtyRect 4 sptr #comfunc global IDirectDrawSurface3_Blt 5 sptr,sptr,sptr,int,sptr #comfunc global IDirectDrawSurface3_BltBatch 6 sptr,int,int #comfunc global IDirectDrawSurface3_BltFast 7 int,int,sptr,sptr,int #comfunc global IDirectDrawSurface3_DeleteAttachedSurface 8 int,sptr #comfunc global IDirectDrawSurface3_EnumAttachedSurfaces 9 sptr,sptr #comfunc global IDirectDrawSurface3_EnumOverlayZOrders 10 int,sptr,sptr #comfunc global IDirectDrawSurface3_Flip 11 sptr,int #comfunc global IDirectDrawSurface3_GetAttachedSurface 12 sptr,sptr #comfunc global IDirectDrawSurface3_GetBltStatus 13 int #comfunc global IDirectDrawSurface3_GetCaps 14 sptr #comfunc global IDirectDrawSurface3_GetClipper 15 sptr #comfunc global IDirectDrawSurface3_GetColorKey 16 int,sptr #comfunc global IDirectDrawSurface3_GetDC 17 sptr #comfunc global IDirectDrawSurface3_GetFlipStatus 18 int #comfunc global IDirectDrawSurface3_GetOverlayPosition 19 sptr,sptr #comfunc global IDirectDrawSurface3_GetPalette 20 sptr #comfunc global IDirectDrawSurface3_GetPixelFormat 21 sptr #comfunc global IDirectDrawSurface3_GetSurfaceDesc 22 sptr #comfunc global IDirectDrawSurface3_Initialize 23 sptr,sptr #comfunc global IDirectDrawSurface3_IsLost 24 #comfunc global IDirectDrawSurface3_Lock 25 sptr,sptr,int,sptr #comfunc global IDirectDrawSurface3_ReleaseDC 26 sptr #comfunc global IDirectDrawSurface3_Restore 27 #comfunc global IDirectDrawSurface3_SetClipper 28 sptr #comfunc global IDirectDrawSurface3_SetColorKey 29 int,sptr #comfunc global IDirectDrawSurface3_SetOverlayPosition 30 int,int #comfunc global IDirectDrawSurface3_SetPalette 31 sptr #comfunc global IDirectDrawSurface3_Unlock 32 sptr #comfunc global IDirectDrawSurface3_UpdateOverlay 33 sptr,sptr,sptr,int,sptr #comfunc global IDirectDrawSurface3_UpdateOverlayDisplay 34 int #comfunc global IDirectDrawSurface3_UpdateOverlayZOrder 35 int,sptr #comfunc global IDirectDrawSurface3_GetDDInterface 36 sptr #comfunc global IDirectDrawSurface3_PageLock 37 int #comfunc global IDirectDrawSurface3_PageUnlock 38 int #comfunc global IDirectDrawSurface3_SetSurfaceDesc 39 sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。