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

IDirectDraw

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

メソッド 20

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)
param0DWORDin設定する表示モードの幅(ピクセル)である。
param1DWORDin設定する表示モードの高さ(ピクセル)である。
param2DWORDin設定する表示モードの色深度(ビット/ピクセル)である。
vtbl 22 HRESULT WaitForVerticalBlank(DWORD param0, HANDLE param1)
param0DWORDin待機方法を指定するフラグ(DDWAITVB_系)である。
param1HANDLEinイベント通知方式で用いるイベントハンドルである。NULL可。

HSP用 COM定義

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

出力引数:
#define global IID_IDirectDraw "{6C14DB80-A733-11CE-A521-0020AF0BE560}"
#usecom global IDirectDraw IID_IDirectDraw "{D7B70EE0-4340-11CF-B063-0020AFC2CD35}"
#comfunc global IDirectDraw_Compact                 3
#comfunc global IDirectDraw_CreateClipper           4 int,sptr,sptr
#comfunc global IDirectDraw_CreatePalette           5 int,var,sptr,sptr
#comfunc global IDirectDraw_CreateSurface           6 var,sptr,sptr
#comfunc global IDirectDraw_DuplicateSurface        7 sptr,sptr
#comfunc global IDirectDraw_EnumDisplayModes        8 int,var,sptr,sptr
#comfunc global IDirectDraw_EnumSurfaces            9 int,var,sptr,sptr
#comfunc global IDirectDraw_FlipToGDISurface        10
#comfunc global IDirectDraw_GetCaps                 11 var,var
#comfunc global IDirectDraw_GetDisplayMode          12 var
#comfunc global IDirectDraw_GetFourCCCodes          13 var,var
#comfunc global IDirectDraw_GetGDISurface           14 sptr
#comfunc global IDirectDraw_GetMonitorFrequency     15 var
#comfunc global IDirectDraw_GetScanLine             16 var
#comfunc global IDirectDraw_GetVerticalBlankStatus  17 var
#comfunc global IDirectDraw_Initialize              18 var
#comfunc global IDirectDraw_RestoreDisplayMode      19
#comfunc global IDirectDraw_SetCooperativeLevel     20 sptr,int
#comfunc global IDirectDraw_SetDisplayMode          21 int,int,int
#comfunc global IDirectDraw_WaitForVerticalBlank    22 int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。