Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
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
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{
80 btVoid = 1,
81 btChar = 2,
83 btInt = 6,
84 btUInt = 7,
86 btBCD = 9,
87 btBool = 10,
88 btLong = 13,
89 btULong = 14,
91 btDate = 26,
94 btBit = 29,
95 btBSTR = 30,
96 btHresult = 31
97};
98
100{
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
148
149#endif // #ifndef INCLUDED_DBGHELP
void dbghelp_ImportFunctions()
DataKind
Definition: dbghelp.h:100
@ DataIsUnknown
Definition: dbghelp.h:101
@ DataIsLocal
Definition: dbghelp.h:102
@ DataIsStaticMember
Definition: dbghelp.h:109
@ DataIsGlobal
Definition: dbghelp.h:107
@ DataIsStaticLocal
Definition: dbghelp.h:103
@ DataIsMember
Definition: dbghelp.h:108
@ DataIsObjectPtr
Definition: dbghelp.h:105
@ DataIsConstant
Definition: dbghelp.h:110
@ DataIsFileStatic
Definition: dbghelp.h:106
@ DataIsParam
Definition: dbghelp.h:104
BasicType
Definition: dbghelp.h:78
@ btVoid
Definition: dbghelp.h:80
@ btVariant
Definition: dbghelp.h:92
@ btBCD
Definition: dbghelp.h:86
@ btBSTR
Definition: dbghelp.h:95
@ btUInt
Definition: dbghelp.h:84
@ btULong
Definition: dbghelp.h:89
@ btLong
Definition: dbghelp.h:88
@ btChar
Definition: dbghelp.h:81
@ btBit
Definition: dbghelp.h:94
@ btNoType
Definition: dbghelp.h:79
@ btDate
Definition: dbghelp.h:91
@ btComplex
Definition: dbghelp.h:93
@ btBool
Definition: dbghelp.h:87
@ btInt
Definition: dbghelp.h:83
@ btCurrency
Definition: dbghelp.h:90
@ btHresult
Definition: dbghelp.h:96
@ btWChar
Definition: dbghelp.h:82
@ btFloat
Definition: dbghelp.h:85