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