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

IDirectDraw2

COM
IIDb3a6f3e0-2b43-11cf-a2de-00aa00b93356継承元IUnknown自前メソッド開始 vtbl3

メソッド 21

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

vtbl 3 HRESULT Compact()
vtbl 4 HRESULT CreateClipper(DWORD param0, IDirectDrawClipper** param1, IUnknown* param2)
param0DWORDinクリッパー生成オプションを示すフラグ。通常は0を指定する。
param1IDirectDrawClipper**out作成されたクリッパーオブジェクトを受け取る出力ポインタである。
param2IUnknown*inCOM集約用の外部IUnknown。通常はNULLを指定する。
vtbl 5 HRESULT CreatePalette(DWORD param0, PALETTEENTRY* param1, IDirectDrawPalette** param2, IUnknown* param3)
param0DWORDinパレットの能力やビット数を示すDDPCAPS_系フラグである。
param1PALETTEENTRY*inoutパレット初期エントリ配列(PALETTEENTRY)へのポインタである。
param2IDirectDrawPalette**out作成されたパレットオブジェクトを受け取る出力ポインタである。
param3IUnknown*inCOM集約用の外部IUnknown。通常はNULLを指定する。
vtbl 6 HRESULT CreateSurface(DDSURFACEDESC* param0, IDirectDrawSurface** param1, IUnknown* param2)
param0DDSURFACEDESC*inout作成するサーフェスの構成を記述するDDSURFACEDESC構造体へのポインタである。
param1IDirectDrawSurface**out作成されたサーフェスを受け取る出力ポインタである。
param2IUnknown*inCOM集約用の外部IUnknown。通常はNULLを指定する。
vtbl 7 HRESULT DuplicateSurface(IDirectDrawSurface* param0, IDirectDrawSurface** param1)
param0IDirectDrawSurface*in複製元となる既存サーフェスへのポインタである。
param1IDirectDrawSurface**out複製されたサーフェスを受け取る出力ポインタである。
vtbl 8 HRESULT EnumDisplayModes(DWORD param0, DDSURFACEDESC* param1, void* param2, LPDDENUMMODESCALLBACK param3)
param0DWORDin列挙動作を制御するフラグ(DDEDM_系)である。
param1DDSURFACEDESC*inout列挙を絞り込む条件を示すDDSURFACEDESCへのポインタ。NULLで全件となる。
param2void*inoutコールバックに渡されるアプリ定義のコンテキストである。NULL可。
param3LPDDENUMMODESCALLBACKin各表示モードごとに呼ばれる列挙コールバック関数である。
vtbl 9 HRESULT EnumSurfaces(DWORD param0, DDSURFACEDESC* param1, void* param2, LPDDENUMSURFACESCALLBACK param3)
param0DWORDin列挙対象や動作を制御するフラグ(DDENUMSURFACES_系)である。
param1DDSURFACEDESC*inout列挙条件を示すDDSURFACEDESCへのポインタである。NULL可。
param2void*inoutコールバックに渡されるアプリ定義のコンテキストである。NULL可。
param3LPDDENUMSURFACESCALLBACKin各サーフェスごとに呼ばれる列挙コールバック関数である。
vtbl 10 HRESULT FlipToGDISurface()
vtbl 11 HRESULT GetCaps(DDCAPS_DX7* param0, DDCAPS_DX7* param1)
param0DDCAPS_DX7*inoutハードウェアの能力を受け取るDDCAPS構造体へのポインタである。NULL可。
param1DDCAPS_DX7*inoutエミュレーション(HEL)の能力を受け取る構造体へのポインタである。NULL可。
vtbl 12 HRESULT GetDisplayMode(DDSURFACEDESC* param0)
param0DDSURFACEDESC*inout現在の表示モード情報を受け取るDDSURFACEDESCへのポインタである。
vtbl 13 HRESULT GetFourCCCodes(DWORD* param0, DWORD* param1)
param0DWORD*inoutサポートするFourCCコード数を入出力するポインタである。
param1DWORD*inoutFourCCコードを格納する配列へのポインタである。NULLで個数のみ取得する。
vtbl 14 HRESULT GetGDISurface(IDirectDrawSurface** param0)
param0IDirectDrawSurface**out現在GDIが描画対象とするプライマリサーフェスを受け取る出力ポインタである。
vtbl 15 HRESULT GetMonitorFrequency(DWORD* param0)
param0DWORD*inout現在のモニタのリフレッシュ周波数(Hz)を受け取る出力ポインタである。
vtbl 16 HRESULT GetScanLine(DWORD* param0)
param0DWORD*inout現在描画中のスキャンライン番号を受け取る出力ポインタである。
vtbl 17 HRESULT GetVerticalBlankStatus(BOOL* param0)
param0BOOL*inout垂直帰線期間中かどうか(TRUE/FALSE)を受け取る出力ポインタである。
vtbl 18 HRESULT Initialize(GUID* param0)
param0GUID*inout初期化対象ドライバのGUIDへのポインタである。NULLで既定ドライバを使う。
vtbl 19 HRESULT RestoreDisplayMode()
vtbl 20 HRESULT SetCooperativeLevel(HWND param0, DWORD param1)
param0HWNDin協調レベルを関連付ける対象ウィンドウのハンドルである。
param1DWORDin全画面排他や通常などの協調レベルを示すDDSCL_系フラグである。
vtbl 21 HRESULT SetDisplayMode(DWORD param0, DWORD param1, DWORD param2, DWORD param3, DWORD param4)
param0DWORDin設定する表示モードの幅(ピクセル)である。
param1DWORDin設定する表示モードの高さ(ピクセル)である。
param2DWORDin設定する表示モードの色深度(ビット/ピクセル)である。
param3DWORDinリフレッシュレート(Hz)である。0でドライバ既定値を使う。
param4DWORDinモード設定の追加オプションを示すフラグ(DDSDM_系)である。
vtbl 22 HRESULT WaitForVerticalBlank(DWORD param0, HANDLE param1)
param0DWORDin待機方法を指定するフラグ(DDWAITVB_系)である。
param1HANDLEinイベント通知方式で用いるイベントハンドルである。NULL可。
vtbl 23 HRESULT GetAvailableVidMem(DDSCAPS* param0, DWORD* param1, DWORD* param2)
param0DDSCAPS*inout対象とするメモリ種別を示すDDSCAPS構造体へのポインタである。
param1DWORD*inout利用可能なビデオメモリの総容量(バイト)を受け取る出力ポインタである。NULL可。
param2DWORD*inout現在空いているビデオメモリ容量(バイト)を受け取る出力ポインタである。NULL可。

HSP用 COM定義

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

出力引数:
#define global IID_IDirectDraw2 "{B3A6F3E0-2B43-11CF-A2DE-00AA00B93356}"
#usecom global IDirectDraw2 IID_IDirectDraw2 "{D7B70EE0-4340-11CF-B063-0020AFC2CD35}"
#comfunc global IDirectDraw2_Compact                 3
#comfunc global IDirectDraw2_CreateClipper           4 int,sptr,sptr
#comfunc global IDirectDraw2_CreatePalette           5 int,var,sptr,sptr
#comfunc global IDirectDraw2_CreateSurface           6 var,sptr,sptr
#comfunc global IDirectDraw2_DuplicateSurface        7 sptr,sptr
#comfunc global IDirectDraw2_EnumDisplayModes        8 int,var,sptr,sptr
#comfunc global IDirectDraw2_EnumSurfaces            9 int,var,sptr,sptr
#comfunc global IDirectDraw2_FlipToGDISurface        10
#comfunc global IDirectDraw2_GetCaps                 11 var,var
#comfunc global IDirectDraw2_GetDisplayMode          12 var
#comfunc global IDirectDraw2_GetFourCCCodes          13 var,var
#comfunc global IDirectDraw2_GetGDISurface           14 sptr
#comfunc global IDirectDraw2_GetMonitorFrequency     15 var
#comfunc global IDirectDraw2_GetScanLine             16 var
#comfunc global IDirectDraw2_GetVerticalBlankStatus  17 var
#comfunc global IDirectDraw2_Initialize              18 var
#comfunc global IDirectDraw2_RestoreDisplayMode      19
#comfunc global IDirectDraw2_SetCooperativeLevel     20 sptr,int
#comfunc global IDirectDraw2_SetDisplayMode          21 int,int,int,int,int
#comfunc global IDirectDraw2_WaitForVerticalBlank    22 int,sptr
#comfunc global IDirectDraw2_GetAvailableVidMem      23 var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。