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

IDirectDraw4

COM
IID9c59509a-39bd-11d1-8c4a-00c04fd930c5継承元IUnknown自前メソッド開始 vtbl3

メソッド 25

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(DDSURFACEDESC2* param0, IDirectDrawSurface4** param1, IUnknown* param2)
param0DDSURFACEDESC2*inout作成するサーフェスの構成を記述するDDSURFACEDESC2構造体へのポインタである。
param1IDirectDrawSurface4**out作成されたサーフェス(IDirectDrawSurface4)を受け取る出力ポインタである。
param2IUnknown*inCOM集約用の外部IUnknown。通常はNULLを指定する。
vtbl 7 HRESULT DuplicateSurface(IDirectDrawSurface4* param0, IDirectDrawSurface4** param1)
param0IDirectDrawSurface4*in複製元となる既存サーフェス(IDirectDrawSurface4)へのポインタである。
param1IDirectDrawSurface4**out複製されたサーフェスを受け取る出力ポインタである。
vtbl 8 HRESULT EnumDisplayModes(DWORD param0, DDSURFACEDESC2* param1, void* param2, LPDDENUMMODESCALLBACK2 param3)
param0DWORDin列挙動作を制御するフラグ(DDEDM_系)である。
param1DDSURFACEDESC2*inout列挙を絞り込む条件を示すDDSURFACEDESC2へのポインタ。NULLで全件となる。
param2void*inoutコールバックに渡されるアプリ定義のコンテキストである。NULL可。
param3LPDDENUMMODESCALLBACK2in各表示モードごとに呼ばれる列挙コールバック関数(2版)である。
vtbl 9 HRESULT EnumSurfaces(DWORD param0, DDSURFACEDESC2* param1, void* param2, LPDDENUMSURFACESCALLBACK2 param3)
param0DWORDin列挙対象や動作を制御するフラグ(DDENUMSURFACES_系)である。
param1DDSURFACEDESC2*inout列挙条件を示すDDSURFACEDESC2へのポインタである。NULL可。
param2void*inoutコールバックに渡されるアプリ定義のコンテキストである。NULL可。
param3LPDDENUMSURFACESCALLBACK2in各サーフェスごとに呼ばれる列挙コールバック関数(2版)である。
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(DDSURFACEDESC2* param0)
param0DDSURFACEDESC2*inout現在の表示モード情報を受け取るDDSURFACEDESC2へのポインタである。
vtbl 13 HRESULT GetFourCCCodes(DWORD* param0, DWORD* param1)
param0DWORD*inoutサポートするFourCCコード数を入出力するポインタである。
param1DWORD*inoutFourCCコードを格納する配列へのポインタである。NULLで個数のみ取得する。
vtbl 14 HRESULT GetGDISurface(IDirectDrawSurface4** param0)
param0IDirectDrawSurface4**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(DDSCAPS2* param0, DWORD* param1, DWORD* param2)
param0DDSCAPS2*inout対象とするメモリ種別を示すDDSCAPS2構造体へのポインタである。
param1DWORD*inout利用可能なビデオメモリの総容量(バイト)を受け取る出力ポインタである。NULL可。
param2DWORD*inout現在空いているビデオメモリ容量(バイト)を受け取る出力ポインタである。NULL可。
vtbl 24 HRESULT GetSurfaceFromDC(HDC param0, IDirectDrawSurface4** param1)
param0HDCin対応するサーフェスを検索する元となるデバイスコンテキスト(HDC)である。
param1IDirectDrawSurface4**outHDCに対応するサーフェスを受け取る出力ポインタである。
vtbl 25 HRESULT RestoreAllSurfaces()
vtbl 26 HRESULT TestCooperativeLevel()
vtbl 27 HRESULT GetDeviceIdentifier(DDDEVICEIDENTIFIER* param0, DWORD param1)
param0DDDEVICEIDENTIFIER*inoutドライバ/ハードウェアの識別情報を受け取るDDDEVICEIDENTIFIER構造体へのポインタである。
param1DWORDin識別情報取得の動作を制御するフラグ(DDGDI_系)である。

HSP用 COM定義

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

出力引数:
#define global IID_IDirectDraw4 "{9C59509A-39BD-11D1-8C4A-00C04FD930C5}"
#usecom global IDirectDraw4 IID_IDirectDraw4 "{D7B70EE0-4340-11CF-B063-0020AFC2CD35}"
#comfunc global IDirectDraw4_Compact                 3
#comfunc global IDirectDraw4_CreateClipper           4 int,sptr,sptr
#comfunc global IDirectDraw4_CreatePalette           5 int,var,sptr,sptr
#comfunc global IDirectDraw4_CreateSurface           6 var,sptr,sptr
#comfunc global IDirectDraw4_DuplicateSurface        7 sptr,sptr
#comfunc global IDirectDraw4_EnumDisplayModes        8 int,var,sptr,sptr
#comfunc global IDirectDraw4_EnumSurfaces            9 int,var,sptr,sptr
#comfunc global IDirectDraw4_FlipToGDISurface        10
#comfunc global IDirectDraw4_GetCaps                 11 var,var
#comfunc global IDirectDraw4_GetDisplayMode          12 var
#comfunc global IDirectDraw4_GetFourCCCodes          13 var,var
#comfunc global IDirectDraw4_GetGDISurface           14 sptr
#comfunc global IDirectDraw4_GetMonitorFrequency     15 var
#comfunc global IDirectDraw4_GetScanLine             16 var
#comfunc global IDirectDraw4_GetVerticalBlankStatus  17 var
#comfunc global IDirectDraw4_Initialize              18 var
#comfunc global IDirectDraw4_RestoreDisplayMode      19
#comfunc global IDirectDraw4_SetCooperativeLevel     20 sptr,int
#comfunc global IDirectDraw4_SetDisplayMode          21 int,int,int,int,int
#comfunc global IDirectDraw4_WaitForVerticalBlank    22 int,sptr
#comfunc global IDirectDraw4_GetAvailableVidMem      23 var,var,var
#comfunc global IDirectDraw4_GetSurfaceFromDC        24 sptr,sptr
#comfunc global IDirectDraw4_RestoreAllSurfaces      25
#comfunc global IDirectDraw4_TestCooperativeLevel    26
#comfunc global IDirectDraw4_GetDeviceIdentifier     27 var,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。