19682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 29682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef _directx_h 39682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define _directx_h 49682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 59682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/* Include all of the DirectX 5.0 headers and adds any necessary tweaks */ 69682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 79682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define WIN32_LEAN_AND_MEAN 89682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#include <windows.h> 99682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#include <mmsystem.h> 109682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef WIN32 119682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define WIN32 129682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 139682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#undef WINNT 149682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 159682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/* Far pointers don't exist in 32-bit code */ 169682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef FAR 179682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define FAR 189682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 199682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 209682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/* Error codes not yet included in Win32 API header files */ 219682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef MAKE_HRESULT 229682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define MAKE_HRESULT(sev,fac,code) \ 239682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ((HRESULT)(((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code)))) 249682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 259682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 269682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef S_OK 279682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define S_OK (HRESULT)0x00000000L 289682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 299682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 309682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef SUCCEEDED 319682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define SUCCEEDED(x) ((HRESULT)(x) >= 0) 329682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 339682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef FAILED 349682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define FAILED(x) ((HRESULT)(x)<0) 359682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 369682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 379682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef E_FAIL 389682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define E_FAIL (HRESULT)0x80000008L 399682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 409682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef E_NOINTERFACE 419682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define E_NOINTERFACE (HRESULT)0x80004002L 429682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 439682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef E_OUTOFMEMORY 449682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define E_OUTOFMEMORY (HRESULT)0x8007000EL 459682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 469682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef E_INVALIDARG 479682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define E_INVALIDARG (HRESULT)0x80070057L 489682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 499682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef E_NOTIMPL 509682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define E_NOTIMPL (HRESULT)0x80004001L 519682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 529682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef REGDB_E_CLASSNOTREG 539682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define REGDB_E_CLASSNOTREG (HRESULT)0x80040154L 549682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 559682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 569682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/* Severity codes */ 579682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef SEVERITY_ERROR 589682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define SEVERITY_ERROR 1 599682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 609682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 619682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/* Error facility codes */ 629682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef FACILITY_WIN32 639682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define FACILITY_WIN32 7 649682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 659682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 669682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifndef FIELD_OFFSET 679682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field)) 689682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 699682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 709682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/* DirectX headers (if it isn't included, I haven't tested it yet) 719682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall */ 729682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/* We need these defines to mark what version of DirectX API we use */ 739682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define DIRECTDRAW_VERSION 0x0700 749682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define DIRECTSOUND_VERSION 0x0500 759682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#define DIRECTINPUT_VERSION 0x0500 769682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 779682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#include <ddraw.h> 789682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#include <dsound.h> 799682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#include <dinput.h> 809682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 819682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif /* _directx_h */ 82