ホーム › Graphics.DirectDraw › IDirectDraw7
IDirectDraw7
COMメソッド 27
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Compact()
vtbl 4 HRESULT CreateClipper(DWORD param0, IDirectDrawClipper** param1, IUnknown* param2)
| param0 | DWORD | in | クリッパー生成オプションを示すフラグ。通常は0を指定する。 |
| param1 | IDirectDrawClipper** | out | 作成されたクリッパーオブジェクトを受け取る出力ポインタである。 |
| param2 | IUnknown* | in | COM集約用の外部IUnknown。通常はNULLを指定する。 |
vtbl 5 HRESULT CreatePalette(DWORD param0, PALETTEENTRY* param1, IDirectDrawPalette** param2, IUnknown* param3)
| param0 | DWORD | in | パレットの能力やビット数を示すDDPCAPS_系フラグである。 |
| param1 | PALETTEENTRY* | inout | パレット初期エントリ配列(PALETTEENTRY)へのポインタである。 |
| param2 | IDirectDrawPalette** | out | 作成されたパレットオブジェクトを受け取る出力ポインタである。 |
| param3 | IUnknown* | in | COM集約用の外部IUnknown。通常はNULLを指定する。 |
vtbl 6 HRESULT CreateSurface(DDSURFACEDESC2* param0, IDirectDrawSurface7** param1, IUnknown* param2)
| param0 | DDSURFACEDESC2* | inout | 作成するサーフェスの構成を記述するDDSURFACEDESC2構造体へのポインタである。 |
| param1 | IDirectDrawSurface7** | out | 作成されたサーフェス(IDirectDrawSurface7)を受け取る出力ポインタである。 |
| param2 | IUnknown* | in | COM集約用の外部IUnknown。通常はNULLを指定する。 |
vtbl 7 HRESULT DuplicateSurface(IDirectDrawSurface7* param0, IDirectDrawSurface7** param1)
| param0 | IDirectDrawSurface7* | in | 複製元となる既存サーフェス(IDirectDrawSurface7)へのポインタである。 |
| param1 | IDirectDrawSurface7** | out | 複製されたサーフェスを受け取る出力ポインタである。 |
vtbl 8 HRESULT EnumDisplayModes(DWORD param0, DDSURFACEDESC2* param1, void* param2, LPDDENUMMODESCALLBACK2 param3)
| param0 | DWORD | in | 列挙動作を制御するフラグ(DDEDM_系)である。 |
| param1 | DDSURFACEDESC2* | inout | 列挙を絞り込む条件を示すDDSURFACEDESC2へのポインタ。NULLで全件となる。 |
| param2 | void* | inout | コールバックに渡されるアプリ定義のコンテキストである。NULL可。 |
| param3 | LPDDENUMMODESCALLBACK2 | in | 各表示モードごとに呼ばれる列挙コールバック関数(2版)である。 |
vtbl 9 HRESULT EnumSurfaces(DWORD param0, DDSURFACEDESC2* param1, void* param2, LPDDENUMSURFACESCALLBACK7 param3)
| param0 | DWORD | in | 列挙対象や動作を制御するフラグ(DDENUMSURFACES_系)である。 |
| param1 | DDSURFACEDESC2* | inout | 列挙条件を示すDDSURFACEDESC2へのポインタである。NULL可。 |
| param2 | void* | inout | コールバックに渡されるアプリ定義のコンテキストである。NULL可。 |
| param3 | LPDDENUMSURFACESCALLBACK7 | in | 各サーフェスごとに呼ばれる列挙コールバック関数(7版)である。 |
vtbl 10 HRESULT FlipToGDISurface()
vtbl 11 HRESULT GetCaps(DDCAPS_DX7* param0, DDCAPS_DX7* param1)
| param0 | DDCAPS_DX7* | inout | ハードウェアの能力を受け取るDDCAPS構造体へのポインタである。NULL可。 |
| param1 | DDCAPS_DX7* | inout | エミュレーション(HEL)の能力を受け取る構造体へのポインタである。NULL可。 |
vtbl 12 HRESULT GetDisplayMode(DDSURFACEDESC2* param0)
| param0 | DDSURFACEDESC2* | inout | 現在の表示モード情報を受け取るDDSURFACEDESC2へのポインタである。 |
| param0 | DWORD* | inout | サポートするFourCCコード数を入出力するポインタである。 |
| param1 | DWORD* | inout | FourCCコードを格納する配列へのポインタである。NULLで個数のみ取得する。 |
vtbl 14 HRESULT GetGDISurface(IDirectDrawSurface7** param0)
| param0 | IDirectDrawSurface7** | out | 現在GDIが描画対象とするプライマリサーフェスを受け取る出力ポインタである。 |
| param0 | DWORD* | inout | 現在のモニタのリフレッシュ周波数(Hz)を受け取る出力ポインタである。 |
| param0 | DWORD* | inout | 現在描画中のスキャンライン番号を受け取る出力ポインタである。 |
| param0 | BOOL* | inout | 垂直帰線期間中かどうか(TRUE/FALSE)を受け取る出力ポインタである。 |
vtbl 18 HRESULT Initialize(GUID* param0)
| param0 | GUID* | inout | 初期化対象ドライバのGUIDへのポインタである。NULLで既定ドライバを使う。 |
vtbl 19 HRESULT RestoreDisplayMode()
| param0 | HWND | in | 協調レベルを関連付ける対象ウィンドウのハンドルである。 |
| param1 | DWORD | in | 全画面排他や通常などの協調レベルを示すDDSCL_系フラグである。 |
vtbl 21 HRESULT SetDisplayMode(DWORD param0, DWORD param1, DWORD param2, DWORD param3, DWORD param4)
| param0 | DWORD | in | 設定する表示モードの幅(ピクセル)である。 |
| param1 | DWORD | in | 設定する表示モードの高さ(ピクセル)である。 |
| param2 | DWORD | in | 設定する表示モードの色深度(ビット/ピクセル)である。 |
| param3 | DWORD | in | リフレッシュレート(Hz)である。0でドライバ既定値を使う。 |
| param4 | DWORD | in | モード設定の追加オプションを示すフラグ(DDSDM_系)である。 |
| param0 | DWORD | in | 待機方法を指定するフラグ(DDWAITVB_系)である。 |
| param1 | HANDLE | in | イベント通知方式で用いるイベントハンドルである。NULL可。 |
| param0 | DDSCAPS2* | inout | 対象とするメモリ種別を示すDDSCAPS2構造体へのポインタである。 |
| param1 | DWORD* | inout | 利用可能なビデオメモリの総容量(バイト)を受け取る出力ポインタである。NULL可。 |
| param2 | DWORD* | inout | 現在空いているビデオメモリ容量(バイト)を受け取る出力ポインタである。NULL可。 |
vtbl 24 HRESULT GetSurfaceFromDC(HDC param0, IDirectDrawSurface7** param1)
| param0 | HDC | in | 対応するサーフェスを検索する元となるデバイスコンテキスト(HDC)である。 |
| param1 | IDirectDrawSurface7** | out | HDCに対応するサーフェスを受け取る出力ポインタである。 |
vtbl 25 HRESULT RestoreAllSurfaces()
vtbl 26 HRESULT TestCooperativeLevel()
vtbl 27 HRESULT GetDeviceIdentifier(DDDEVICEIDENTIFIER2* param0, DWORD param1)
| param0 | DDDEVICEIDENTIFIER2* | inout | ドライバ/ハードウェアの識別情報を受け取るDDDEVICEIDENTIFIER2構造体へのポインタである。 |
| param1 | DWORD | in | 識別情報取得の動作を制御するフラグ(DDGDI_系)である。 |
| param0 | SIZE* | inout | テストする解像度を列挙したSIZE配列へのポインタである。 |
| param1 | DWORD | in | param0配列に含まれる解像度の個数を指定する。 |
| param2 | DWORD | in | モードテストの動作を制御するフラグ(DDSMT_系)である。 |
| param0 | DWORD | in | テスト結果を伝える評価フラグ(DDEM_系)である。 |
| param1 | DWORD* | inout | 次のテストまでの残り秒数等のタイムアウト値を受け取る出力ポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDirectDraw7 "{15E65EC0-3B9C-11D2-B92F-00609797EA5B}" #usecom global IDirectDraw7 IID_IDirectDraw7 "{3C305196-50DB-11D3-9CFE-00C04FD930C5}" #comfunc global IDirectDraw7_Compact 3 #comfunc global IDirectDraw7_CreateClipper 4 int,sptr,sptr #comfunc global IDirectDraw7_CreatePalette 5 int,var,sptr,sptr #comfunc global IDirectDraw7_CreateSurface 6 var,sptr,sptr #comfunc global IDirectDraw7_DuplicateSurface 7 sptr,sptr #comfunc global IDirectDraw7_EnumDisplayModes 8 int,var,sptr,sptr #comfunc global IDirectDraw7_EnumSurfaces 9 int,var,sptr,sptr #comfunc global IDirectDraw7_FlipToGDISurface 10 #comfunc global IDirectDraw7_GetCaps 11 var,var #comfunc global IDirectDraw7_GetDisplayMode 12 var #comfunc global IDirectDraw7_GetFourCCCodes 13 var,var #comfunc global IDirectDraw7_GetGDISurface 14 sptr #comfunc global IDirectDraw7_GetMonitorFrequency 15 var #comfunc global IDirectDraw7_GetScanLine 16 var #comfunc global IDirectDraw7_GetVerticalBlankStatus 17 var #comfunc global IDirectDraw7_Initialize 18 var #comfunc global IDirectDraw7_RestoreDisplayMode 19 #comfunc global IDirectDraw7_SetCooperativeLevel 20 sptr,int #comfunc global IDirectDraw7_SetDisplayMode 21 int,int,int,int,int #comfunc global IDirectDraw7_WaitForVerticalBlank 22 int,sptr #comfunc global IDirectDraw7_GetAvailableVidMem 23 var,var,var #comfunc global IDirectDraw7_GetSurfaceFromDC 24 sptr,sptr #comfunc global IDirectDraw7_RestoreAllSurfaces 25 #comfunc global IDirectDraw7_TestCooperativeLevel 26 #comfunc global IDirectDraw7_GetDeviceIdentifier 27 var,int #comfunc global IDirectDraw7_StartModeTest 28 var,int,int #comfunc global IDirectDraw7_EvaluateMode 29 int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDirectDraw7 "{15E65EC0-3B9C-11D2-B92F-00609797EA5B}" #usecom global IDirectDraw7 IID_IDirectDraw7 "{3C305196-50DB-11D3-9CFE-00C04FD930C5}" #comfunc global IDirectDraw7_Compact 3 #comfunc global IDirectDraw7_CreateClipper 4 int,sptr,sptr #comfunc global IDirectDraw7_CreatePalette 5 int,sptr,sptr,sptr #comfunc global IDirectDraw7_CreateSurface 6 sptr,sptr,sptr #comfunc global IDirectDraw7_DuplicateSurface 7 sptr,sptr #comfunc global IDirectDraw7_EnumDisplayModes 8 int,sptr,sptr,sptr #comfunc global IDirectDraw7_EnumSurfaces 9 int,sptr,sptr,sptr #comfunc global IDirectDraw7_FlipToGDISurface 10 #comfunc global IDirectDraw7_GetCaps 11 sptr,sptr #comfunc global IDirectDraw7_GetDisplayMode 12 sptr #comfunc global IDirectDraw7_GetFourCCCodes 13 sptr,sptr #comfunc global IDirectDraw7_GetGDISurface 14 sptr #comfunc global IDirectDraw7_GetMonitorFrequency 15 sptr #comfunc global IDirectDraw7_GetScanLine 16 sptr #comfunc global IDirectDraw7_GetVerticalBlankStatus 17 sptr #comfunc global IDirectDraw7_Initialize 18 sptr #comfunc global IDirectDraw7_RestoreDisplayMode 19 #comfunc global IDirectDraw7_SetCooperativeLevel 20 sptr,int #comfunc global IDirectDraw7_SetDisplayMode 21 int,int,int,int,int #comfunc global IDirectDraw7_WaitForVerticalBlank 22 int,sptr #comfunc global IDirectDraw7_GetAvailableVidMem 23 sptr,sptr,sptr #comfunc global IDirectDraw7_GetSurfaceFromDC 24 sptr,sptr #comfunc global IDirectDraw7_RestoreAllSurfaces 25 #comfunc global IDirectDraw7_TestCooperativeLevel 26 #comfunc global IDirectDraw7_GetDeviceIdentifier 27 sptr,int #comfunc global IDirectDraw7_StartModeTest 28 sptr,int,int #comfunc global IDirectDraw7_EvaluateMode 29 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。