1 #include <windows.h> 2 #include <stdio.h> 3 #include <ddraw.h> 4 #include <ddrawi.h> 5 #include <d3dhal.h> 6 #include <ddrawgdi.h> 7 8 #if defined(_WIN32) && !defined(_NO_COM ) 9 #define COM_NO_WINDOWS_H 10 #include <objbase.h> 11 #else 12 #define IUnknown void 13 #if !defined(NT_BUILD_ENVIRONMENT) && !defined(WINNT) 14 #define CO_E_NOTINITIALIZED 0x800401F0 15 #endif 16 #endif 17 18 HRESULT WINAPI Main_D3D_QueryInterface(LPDIRECT3D2 iface, REFIID riid, LPVOID * ppvObj); 19 ULONG WINAPI Main_D3D_AddRef(LPDIRECT3D2 iface); 20 ULONG WINAPI Main_D3D_Release(LPDIRECT3D2 iface); 21 HRESULT WINAPI Main_D3D_EnumDevices(LPDIRECT3D2 iface, LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback, LPVOID lpUserArg); 22 HRESULT WINAPI Main_D3D_CreateLight(LPDIRECT3D2 iface, LPDIRECT3DLIGHT *lplpDirect3DLight, IUnknown *pUnkOuter); 23 HRESULT WINAPI Main_D3D_CreateMaterial(LPDIRECT3D2 iface, LPDIRECT3DMATERIAL2 *lplpDirect3DMaterial2, IUnknown *pUnkOuter); 24 HRESULT WINAPI Main_D3D_CreateViewport(LPDIRECT3D2 iface, LPDIRECT3DVIEWPORT2 *lplpD3DViewport2, IUnknown *pUnkOuter); 25 HRESULT WINAPI Main_D3D_FindDevice(LPDIRECT3D2 iface, LPD3DFINDDEVICESEARCH lpD3DDFS, LPD3DFINDDEVICERESULT lpD3DFDR); 26 HRESULT WINAPI Main_D3D_CreateDevice2(LPDIRECT3D2 iface, REFCLSID rclsid, LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DDEVICE2 *lplpD3DDevice2); 27 28 IDirect3D2Vtbl IDirect3D2_Vtbl = 29 { 30 Main_D3D_QueryInterface, 31 Main_D3D_AddRef, 32 Main_D3D_Release, 33 Main_D3D_EnumDevices, 34 Main_D3D_CreateLight, 35 Main_D3D_CreateMaterial, 36 Main_D3D_CreateViewport, 37 Main_D3D_FindDevice, 38 Main_D3D_CreateDevice2, 39 }; 40 41 42