#ifndef IDIRECTD3D_H #define IDIRECTD3D_H #define WIN32_LEAN_AND_MEAN #include DEFINE_GUID(IID_IDirect3D, 0x3BBA0080, 0x2421, 0x11CF, 0xA3, 0x1A, 0x00, 0xAA, 0x00, 0xB9, 0x33, 0x56); DEFINE_GUID(IID_IDirect3D2, 0x6aae1ec1, 0x662a, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); DEFINE_GUID(IID_IDirect3D3, 0xbb223240, 0xe72b, 0x11d0, 0xa9, 0xb4, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e); DEFINE_GUID(IID_IDirect3D7, 0xf5049e77, 0x4861, 0x11d2, 0xa4, 0x7, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); extern struct IDirect3DImplVtbl g_d3d_vtbl1; struct IDirect3DImpl; struct IDirect3DImplVtbl; typedef struct IDirect3DImpl { struct IDirect3DImplVtbl* lpVtbl; ULONG ref; } IDirect3DImpl; typedef struct IDirect3DImplVtbl IDirect3DImplVtbl; struct IDirect3DImplVtbl { HRESULT(__stdcall* QueryInterface) (IDirect3DImpl*, const IID* const riid, LPVOID* ppvObj); ULONG(__stdcall* AddRef) (IDirect3DImpl*); ULONG(__stdcall* Release) (IDirect3DImpl*); HRESULT(__stdcall* Initialize)(IDirect3DImpl*, int); HRESULT(__stdcall* EnumDevices)(IDirect3DImpl*, int, int); HRESULT(__stdcall* CreateLight)(IDirect3DImpl*, int, int); HRESULT(__stdcall* CreateMaterial)(IDirect3DImpl*, int, int); HRESULT(__stdcall* CreateViewport)(IDirect3DImpl*, int, int); HRESULT(__stdcall* FindDevice)(IDirect3DImpl*, int, int); }; #endif