1 /***********************************************************************\ 2 * dxerr.d * 3 * * 4 * Windows API header module * 5 * * 6 * Placed into public domain * 7 \***********************************************************************/ 8 module win32.directx.dxerr; 9 version(Windows): 10 11 import win32.windows; 12 13 pragma(lib, "dxerr.lib"); 14 15 extern (Windows) { 16 CHAR* DXGetErrorStringA(HRESULT hr); 17 WCHAR* DXGetErrorStringW(HRESULT hr); 18 CHAR* DXGetErrorDescriptionA(HRESULT hr); 19 WCHAR* DXGetErrorDescriptionW(HRESULT hr); 20 HRESULT DXTraceA(CHAR* strFile, DWORD dwLine, HRESULT hr, CHAR* strMsg, 21 BOOL bPopMsgBox); 22 HRESULT DXTraceW(CHAR* strFile, DWORD dwLine, HRESULT hr, WCHAR* strMsg, 23 BOOL bPopMsgBox); 24 } 25 26 version (Unicode) { 27 alias DXGetErrorStringW DXGetErrorString; 28 alias DXGetErrorDescriptionW DXGetErrorDescription; 29 alias DXTraceW DXTrace; 30 } else { 31 alias DXGetErrorStringA DXGetErrorString; 32 alias DXGetErrorDescriptionA DXGetErrorDescription; 33 alias DXTraceA DXTrace; 34 } 35 36 debug (dxerr) { 37 HRESULT DXTRACE_MSG(TCHAR* str) { 38 return DXTrace(__FILE__, __LINE__, 0, str, false); 39 } 40 HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { 41 return DXTrace(__FILE__, __LINE__, hr, str, false); 42 } 43 HRESULT DXTRACE_ERR_MSGBOX(TCHAR* str, HRESULT hr) { 44 return DXTrace(__FILE__, __LINE__, hr, str, true); 45 } 46 } else { 47 HRESULT DXTRACE_MSG(TCHAR* str) { 48 return 0; 49 } 50 HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { 51 return hr; 52 } 53 HRESULT DXTRACE_ERR_MSGBOX(TCHAR* str, HRESULT hr) { 54 return hr; 55 } 56 }