Pyrogenesis
13997
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
source
lib
external_libraries
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
77
enum
BasicType
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
99
enum
DataKind
100
{
101
DataIsUnknown
,
102
DataIsLocal
,
103
DataIsStaticLocal
,
104
DataIsParam
,
105
DataIsObjectPtr
,
106
DataIsFileStatic
,
107
DataIsGlobal
,
108
DataIsMember
,
109
DataIsStaticMember
,
110
DataIsConstant
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;
144
#include "
lib/external_libraries/dbghelp_funcs.h
"
145
#undef FUNC
146
147
extern
void
dbghelp_ImportFunctions
();
148
149
#endif // #ifndef INCLUDED_DBGHELP
btVoid
Definition:
dbghelp.h:80
dbghelp_funcs.h
btBSTR
Definition:
dbghelp.h:95
DataIsGlobal
Definition:
dbghelp.h:107
btHresult
Definition:
dbghelp.h:96
btLong
Definition:
dbghelp.h:88
btBool
Definition:
dbghelp.h:87
DataIsStaticMember
Definition:
dbghelp.h:109
btDate
Definition:
dbghelp.h:91
dbghelp_ImportFunctions
void dbghelp_ImportFunctions()
BasicType
BasicType
Definition:
dbghelp.h:77
btULong
Definition:
dbghelp.h:89
DataIsObjectPtr
Definition:
dbghelp.h:105
DataIsMember
Definition:
dbghelp.h:108
btInt
Definition:
dbghelp.h:83
btChar
Definition:
dbghelp.h:81
btBit
Definition:
dbghelp.h:94
btCurrency
Definition:
dbghelp.h:90
btNoType
Definition:
dbghelp.h:79
btUInt
Definition:
dbghelp.h:84
DataIsUnknown
Definition:
dbghelp.h:101
btFloat
Definition:
dbghelp.h:85
dbghelp.h
DataIsLocal
Definition:
dbghelp.h:102
btVariant
Definition:
dbghelp.h:92
DataKind
DataKind
Definition:
dbghelp.h:99
btBCD
Definition:
dbghelp.h:86
DataIsConstant
Definition:
dbghelp.h:110
win.h
btComplex
Definition:
dbghelp.h:93
btWChar
Definition:
dbghelp.h:82
DataIsFileStatic
Definition:
dbghelp.h:106
DataIsStaticLocal
Definition:
dbghelp.h:103
DataIsParam
Definition:
dbghelp.h:104
Generated on Mon Oct 14 2013 00:58:07 for Pyrogenesis by
1.8.5