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 #include <windows.h> 8 #include <mmsystem.h> 9 #ifndef WIN32 10 #define WIN32 11 #endif 12 #undef WINNT 13 14 /* Far pointers don't exist in 32-bit code */ 15 #ifndef FAR 16 #define FAR 17 #endif 18 19 /* Error codes not yet included in Win32 API header files */ 20 #ifndef MAKE_HRESULT 21 #define MAKE_HRESULT(sev,fac,code) \ 22 ((HRESULT)(((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code)))) 23 #endif 24 25 #ifndef S_OK 26 #define S_OK (HRESULT)0x00000000L 27 #endif 28 29 #ifndef SUCCEEDED 30 #define SUCCEEDED(x) ((HRESULT)(x) >= 0) 31 #endif 32 #ifndef FAILED 33 #define FAILED(x) ((HRESULT)(x)<0) 34 #endif 35 36 #ifndef E_FAIL 37 #define E_FAIL (HRESULT)0x80000008L 38 #endif 39 #ifndef E_NOINTERFACE 40 #define E_NOINTERFACE (HRESULT)0x80004002L 41 #endif 42 #ifndef E_OUTOFMEMORY 43 #define E_OUTOFMEMORY (HRESULT)0x8007000EL 44 #endif 45 #ifndef E_INVALIDARG 46 #define E_INVALIDARG (HRESULT)0x80070057L 47 #endif 48 #ifndef E_NOTIMPL 49 #define E_NOTIMPL (HRESULT)0x80004001L 50 #endif 51 #ifndef REGDB_E_CLASSNOTREG 52 #define REGDB_E_CLASSNOTREG (HRESULT)0x80040154L 53 #endif 54 55 /* Severity codes */ 56 #ifndef SEVERITY_ERROR 57 #define SEVERITY_ERROR 1 58 #endif 59 60 /* Error facility codes */ 61 #ifndef FACILITY_WIN32 62 #define FACILITY_WIN32 7 63 #endif 64 65 #ifndef FIELD_OFFSET 66 #define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field)) 67 #endif 68 69 /* DirectX 6.0 header includes 70 (if it isn't included, I haven't tested it yet) 71 */ 72 #ifdef __GNUC__ 73 #define NONAMELESSUNION 74 #endif 75 #include <ddraw.h> 76 #include <dsound.h> 77 #include <dinput.h> 78 79 #endif /* _directx_h */ 80