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 #ifdef __GNUC__ 78 #define NONAMELESSUNION 79 #endif 80 #include <ddraw.h> 81 #include <dsound.h> 82 #include <dinput.h> 83 84 #endif /* _directx_h */ 85