1 2#ifndef _directx_h 3#define _directx_h 4 5/* Include all of the DirectX 5.0 headers and adds any necessary tweaks */ 6 7#define WIN32_LEAN_AND_MEAN 8#include <windows.h> 9#include <mmsystem.h> 10#ifndef WIN32 11#define WIN32 12#endif 13#undef WINNT 14 15/* Far pointers don't exist in 32-bit code */ 16#ifndef FAR 17#define FAR 18#endif 19 20/* Error codes not yet included in Win32 API header files */ 21#ifndef MAKE_HRESULT 22#define MAKE_HRESULT(sev,fac,code) \ 23 ((HRESULT)(((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code)))) 24#endif 25 26#ifndef S_OK 27#define S_OK (HRESULT)0x00000000L 28#endif 29 30#ifndef SUCCEEDED 31#define SUCCEEDED(x) ((HRESULT)(x) >= 0) 32#endif 33#ifndef FAILED 34#define FAILED(x) ((HRESULT)(x)<0) 35#endif 36 37#ifndef E_FAIL 38#define E_FAIL (HRESULT)0x80000008L 39#endif 40#ifndef E_NOINTERFACE 41#define E_NOINTERFACE (HRESULT)0x80004002L 42#endif 43#ifndef E_OUTOFMEMORY 44#define E_OUTOFMEMORY (HRESULT)0x8007000EL 45#endif 46#ifndef E_INVALIDARG 47#define E_INVALIDARG (HRESULT)0x80070057L 48#endif 49#ifndef E_NOTIMPL 50#define E_NOTIMPL (HRESULT)0x80004001L 51#endif 52#ifndef REGDB_E_CLASSNOTREG 53#define REGDB_E_CLASSNOTREG (HRESULT)0x80040154L 54#endif 55 56/* Severity codes */ 57#ifndef SEVERITY_ERROR 58#define SEVERITY_ERROR 1 59#endif 60 61/* Error facility codes */ 62#ifndef FACILITY_WIN32 63#define FACILITY_WIN32 7 64#endif 65 66#ifndef FIELD_OFFSET 67#define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field)) 68#endif 69 70/* DirectX headers (if it isn't included, I haven't tested it yet) 71 */ 72/* We need these defines to mark what version of DirectX API we use */ 73#define DIRECTDRAW_VERSION 0x0700 74#define DIRECTSOUND_VERSION 0x0500 75#define DIRECTINPUT_VERSION 0x0500 76 77#include <ddraw.h> 78#include <dsound.h> 79#include <dinput.h> 80 81#endif /* _directx_h */ 82