Pyrogenesis  trunk
dbghelp.h
Go to the documentation of this file.
1 /* Copyright (c) 2010 Wildfire Games
2  *
3  * Permission is hereby granted, free of charge, to any person obtaining
4  * a copy of this software and associated documentation files (the
5  * "Software"), to deal in the Software without restriction, including
6  * without limitation the rights to use, copy, modify, merge, publish,
7  * distribute, sublicense, and/or sell copies of the Software, and to
8  * permit persons to whom the Software is furnished to do so, subject to
9  * the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included
12  * in all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  */
22 
23 /*
24  * bring in dbghelp library.
25  */
26 
27 #ifndef INCLUDED_DBGHELP
28 #define INCLUDED_DBGHELP
29 
30 #include "lib/sysdep/os/win/win.h"
31 
32 #include <OAIdl.h> // VARIANT
33 
34 #if MSC_VERSION
35 # pragma comment(lib, "oleaut32.lib") // VariantChangeType
36 #endif
37 
38 
39 //-----------------------------------------------------------------------------
40 // fix omissions in the VC PSDK's dbghelp.h
41 
42 // the macros defined "for those without specstrings.h" are incorrect -
43 // parameter definition is missing.
44 #ifndef __specstrings
45 # define __specstrings // prevent dbghelp from changing these
46 
47 # define __in
48 # define __out
49 # define __inout
50 # define __in_opt
51 # define __out_opt
52 # define __inout_opt
53 # define __in_ecount(s)
54 # define __out_ecount(s)
55 # define __inout_ecount(s)
56 # define __in_bcount(s)
57 # define __out_bcount(s)
58 # define __inout_bcount(s)
59 # define __deref_opt_out
60 # define __deref_out
61 
62 #endif
63 
64 // (VC2005 defines __specstrings, but doesn't define (or use) __out_xcount,
65 // so this is not inside the above #ifndef section)
66 //
67 // missing from dbghelp's list
68 #ifndef __out_xcount
69 # define __out_xcount(s)
70 #endif
71 
72 
73 //
74 // not defined by dbghelp; these values are taken from DIA cvconst.h
75 //
76 
78 {
79  btNoType = 0,
80  btVoid = 1,
81  btChar = 2,
82  btWChar = 3,
83  btInt = 6,
84  btUInt = 7,
85  btFloat = 8,
86  btBCD = 9,
87  btBool = 10,
88  btLong = 13,
89  btULong = 14,
90  btCurrency = 25,
91  btDate = 26,
92  btVariant = 27,
93  btComplex = 28,
94  btBit = 29,
95  btBSTR = 30,
96  btHresult = 31
97 };
98 
100 {
111 };
112 
113 
114 //-----------------------------------------------------------------------------
115 
116 #if ICC_VERSION
117 # pragma warning(push)
118 # pragma warning(disable:94) // the size of an array must be greater than zero
119 # pragma warning(disable:271) // trailing comma is nonstandard
120 # pragma warning(disable:418) // declaration requires a typedef name
121 # pragma warning(disable:791) // calling convention specified more than once
122 #endif
123 
124 #pragma pack(push, 8) // seems to be required
125 
126 #define _NO_CVCONST_H // request SymTagEnum be defined
127 #include <dbghelp.h> // must come after win.h and the above definitions
128 
129 #pragma pack(pop)
130 
131 #if ICC_VERSION
132 # pragma warning(pop)
133 #endif
134 
135 
136 //-----------------------------------------------------------------------------
137 
138 // rationale: Debugging Tools For Windows includes newer header/lib files,
139 // but they're not redistributable. since we don't want everyone to
140 // have to install that, it's preferable to link dynamically.
141 
142 // declare function pointers
143 #define FUNC(ret, name, params) EXTERN_C ret (__stdcall *p##name) params;
145 #undef FUNC
146 
147 extern void dbghelp_ImportFunctions();
148 
149 #endif // #ifndef INCLUDED_DBGHELP
Definition: dbghelp.h:80
Definition: dbghelp.h:95
Definition: dbghelp.h:107
Definition: dbghelp.h:96
Definition: dbghelp.h:88
Definition: dbghelp.h:87
Definition: dbghelp.h:109
Definition: dbghelp.h:91
void dbghelp_ImportFunctions()
BasicType
Definition: dbghelp.h:77
Definition: dbghelp.h:89
Definition: dbghelp.h:105
Definition: dbghelp.h:108
Definition: dbghelp.h:83
Definition: dbghelp.h:81
Definition: dbghelp.h:94
Definition: dbghelp.h:90
Definition: dbghelp.h:79
Definition: dbghelp.h:84
Definition: dbghelp.h:101
Definition: dbghelp.h:85
Definition: dbghelp.h:102
Definition: dbghelp.h:92
DataKind
Definition: dbghelp.h:99
Definition: dbghelp.h:86
Definition: dbghelp.h:110
Definition: dbghelp.h:93
Definition: dbghelp.h:82
Definition: dbghelp.h:106
Definition: dbghelp.h:103
Definition: dbghelp.h:104