1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00
cnc-ddraw/inc/IDirectDraw.h

73 lines
2.7 KiB
C
Raw Permalink Normal View History

2020-10-13 09:20:52 +02:00
#ifndef IDIRECTDRAW_H
#define IDIRECTDRAW_H
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "ddraw.h"
2020-10-13 09:20:52 +02:00
struct IDirectDrawImpl;
struct IDirectDrawImplVtbl;
typedef struct IDirectDrawImpl
{
struct IDirectDrawImplVtbl* lpVtbl;
ULONG ref;
2021-09-02 22:22:48 +02:00
GUID guid;
2020-10-13 09:20:52 +02:00
} IDirectDrawImpl;
typedef struct IDirectDrawImplVtbl IDirectDrawImplVtbl;
2021-06-11 20:30:43 +02:00
#undef INTERFACE
#define INTERFACE IDirectDrawImpl
2020-10-13 09:20:52 +02:00
struct IDirectDrawImplVtbl
{
2021-06-11 20:30:43 +02:00
/*** IUnknown methods ***/
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
/*** IDirectDraw methods ***/
STDMETHOD(Compact)(THIS) PURE;
STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR*) PURE;
STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR*) PURE;
STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE7 FAR*, IUnknown FAR*) PURE;
STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE7, LPDIRECTDRAWSURFACE7 FAR*) PURE;
STDMETHOD(EnumDisplayModes)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2) PURE;
STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMSURFACESCALLBACK7) PURE;
STDMETHOD(FlipToGDISurface)(THIS) PURE;
STDMETHOD(GetCaps)(THIS_ LPDDCAPS, LPDDCAPS) PURE;
STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC2) PURE;
STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD) PURE;
STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE7 FAR*) PURE;
STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL) PURE;
STDMETHOD(Initialize)(THIS_ GUID FAR*) PURE;
STDMETHOD(RestoreDisplayMode)(THIS) PURE;
STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
2020-10-13 09:20:52 +02:00
union
{
LPVOID d;
2021-06-11 20:30:43 +02:00
STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD, DWORD) PURE;
STDMETHOD(SetDisplayModeX)(THIS_ DWORD, DWORD, DWORD, DWORD, DWORD) PURE;
2020-10-13 09:20:52 +02:00
};
2021-06-11 20:30:43 +02:00
STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE) PURE;
/*** Added in the v2 interface ***/
STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE;
/*** Added in the V4 Interface ***/
STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE7*) PURE;
STDMETHOD(RestoreAllSurfaces)(THIS) PURE;
STDMETHOD(TestCooperativeLevel)(THIS) PURE;
STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER2, DWORD) PURE;
/*** Added in the V7 Interface ***/
STDMETHOD(StartModeTest)(THIS_ LPSIZE, DWORD, DWORD) PURE;
STDMETHOD(EvaluateMode)(THIS_ DWORD, DWORD*) PURE;
2020-10-13 09:20:52 +02:00
};
2021-06-11 20:30:43 +02:00
extern struct IDirectDrawImplVtbl g_dd_vtbl1;
extern struct IDirectDrawImplVtbl g_dd_vtblx;
2020-10-13 09:20:52 +02:00
#endif