summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/mfc30/afxver_.h
blob: b8c9f855a5736996dea3add069cf20583d9710bd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324

// Microsoft Foundation Classes C++ library.
// Copyright (C) 1992 Microsoft Corporation,
// All rights reserved.

// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and Microsoft
// QuickHelp and/or WinHelp documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.

// afxver_.h - target version/configuration control

/////////////////////////////////////////////////////////////////////////////
// Master version numbers

#define _AFX     1      // Microsoft Application Framework Classes
#define _MFC_VER 0x0310 // Microsoft Foundation Classes 3.10

/////////////////////////////////////////////////////////////////////////////
// Default swap tuning for AFX library

#ifndef _68K_
        #define _TEXTSEG(name)  ".text$" #name
#else
        #define _TEXTSEG(name)  #name, "swappable"
#endif

// Most segments are tuned via function order list (DLL version)
#ifndef _AFX_FUNCTION_ORDER
#define AFX_CORE1_SEG   _TEXTSEG(AFX_CORE1) // core functionality
#define AFX_CORE2_SEG   _TEXTSEG(AFX_CORE2) // more core functionality
#define AFX_CORE3_SEG   _TEXTSEG(AFX_CORE3) // more core functionality
#define AFX_CORE4_SEG   _TEXTSEG(AFX_CORE4) // more core functionality
#define AFX_AUX_SEG     _TEXTSEG(AFX_AUX)   // auxilliary functionality
#define AFX_COLL_SEG    _TEXTSEG(AFX_COL1)  // collections
#define AFX_COLL2_SEG   _TEXTSEG(AFX_COL2)  // more collections
#define AFX_OLE_SEG     _TEXTSEG(AFX_OLE1)  // OLE support
#define AFX_OLE2_SEG    _TEXTSEG(AFX_OLE2)  // more OLE support
#define AFX_OLE3_SEG    _TEXTSEG(AFX_OLE3)  // and more OLE support
#define AFX_OLE4_SEG    _TEXTSEG(AFX_OLE4)  // and more OLE support
#define AFX_OLE5_SEG    _TEXTSEG(AFX_OLE5)  // and even more OLE support
#define AFX_PRINT_SEG   _TEXTSEG(AFX_PRNT)  // Printing functionality
#define AFX_DBG1_SEG    _TEXTSEG(AFX_DBG1)  // inlines go here in _DEBUG
#define AFX_DBG2_SEG    _TEXTSEG(AFX_DBG2)  // inlines go here in _DEBUG
#define AFX_VDEL_SEG    _TEXTSEG(AFX_VDEL)  // vector deleting destructors
#define AFX_TERM_SEG    _TEXTSEG(AFX_TERM)  // cleanup routines
#define AFX_MAPI_SEG    _TEXTSEG(AFX_MAPI)      // simple MAPI support
#define AFX_SOCK_SEG    _TEXTSEG(AFX_SOCK)      // windows sockets support
#else
#define AFX_CORE1_SEG                       // core functionality
#define AFX_CORE2_SEG                       // more core functionality
#define AFX_CORE3_SEG                       // more core functionality
#define AFX_CORE4_SEG                       // more core functionality
#define AFX_AUX_SEG                         // auxilliary functionality
#define AFX_COLL_SEG                        // collections
#define AFX_COLL2_SEG                       // more collections
#define AFX_OLE_SEG                         // OLE support
#define AFX_OLE2_SEG                        // more OLE support
#define AFX_OLE3_SEG                        // and more OLE support
#define AFX_OLE4_SEG                        // and more OLE support
#define AFX_OLE5_SEG                        // and even more OLE support
#define AFX_PRINT_SEG                       // Printing functionality
#define AFX_DBG1_SEG                        // inlines go here in _DEBUG
#define AFX_DBG2_SEG                        // inlines go here in _DEBUG
#define AFX_VDEL_SEG                        // vector deleting destructors
#define AFX_TERM_SEG                        // cleanup routines
#define AFX_MAPI_SEG                                            // simple MAPI support
#define AFX_SOCK_SEG                                            // windows sockets support
#endif

// AFX_INIT_SEG is hand tuned even in DLL version
#define AFX_INIT_SEG    _TEXTSEG(AFX_INIT)  // initialization

/////////////////////////////////////////////////////////////////////////////
// For target version (one of)
//   _CUSTOM   : for custom configurations (causes afxv_cfg.h to be included)
//
// Additional build options:
//  _DEBUG              debug versions (full diagnostics)
//  _WINDLL             DLL version, used in conjunction with _USRDLL
//  _USRDLL             Statically linked DLL version
//  _AFXDLL             Use shared MFC DLL
//  _AFXEXT             extension DLL version, implies _AFXDLL
//  _AFXCTL             OLE Custom Controls runtime library

#ifndef _DEBUG
        #define _AFX_ENABLE_INLINES
#endif

/////////////////////////////////////////////////////////////////////////////
// Special configurations

// _AFXEXT implies _AFXDLL
#if defined(_AFXEXT) && !defined(_AFXDLL)
        #define _AFXDLL
#endif

#if defined(_WINDLL) && !defined(_USRDLL) && !defined(_AFXDLL)
        #error Please define one of _AFXDLL, or _USRDLL with _WINDLL
#endif

#if defined(_AFXDLL) && defined(_USRDLL)
        #error Please define only one of _AFXDLL or _USRDLL
#endif

#if defined(_USRDLL) && !defined(_WINDLL)
        #error Please define _WINDLL along with _USRDLL
#endif

#if defined(_AFXCTL) && !defined(_AFXDLL)
        #error Please define _AFXDLL along with _AFXCTL
#endif

#ifndef _MAC
#if defined(_AFXDLL) && !defined(_DLL)
        #error Please use the /MD switch for _AFXDLL builds
#endif

#if defined(_AFXDLL) && !defined(_MT)
        #error Please use the /MD switch (multithreaded DLL C-runtime)
#endif
#endif

/////////////////////////////////////////////////////////////////////////////
// special include files

#include <afxv_w32.h>

// Include any non-Intel platform specific items
#ifndef _X86_
        #include <afxv_cpu.h>
#endif

// Include any non-Windows OS-specific items
#ifdef _MAC
        #include <afxv_mac.h>
#endif

#ifdef _CUSTOM
// Put any custom configuration items in afxv_cfg.h
        #include <afxv_cfg.h>
#endif

// setup default packing value
#ifndef _AFX_PACKING
        #define _AFX_PACKING    4   // default packs structs at 4 bytes
#endif

#ifdef _AFXDLL
// stand alone DLL (_WINDLL defined for DLL, not defined for app using DLL)
        #include <afxv_dll.h>
#endif

// Define this virtual key for use by status bar
#ifndef VK_KANA
#define VK_KANA             0x15
#endif

#if defined(_UNICODE)
        #define _AFX_NO_DB_SUPPORT
#endif

#define _AFX_NO_DB_SUPPORT
#define _AFX_OLD_EXCEPTIONS

#define _istlead(_c)    (0)

#ifdef _UNICODE
        #define _ttoi _wtoi
//        #define _tcsftime wscftime
        typedef wchar_t _TUCHAR;
        #define _tWinMain wWinMain
#else
        #define _ttoi atoi
//        #define _tcsftime strftime
        typedef unsigned char _TUCHAR;
        #define _tWinMain WinMain
#endif

/////////////////////////////////////////////////////////////////////////////
// Special AfxDebugBreak: used to break into debugger at critical times

#ifndef AfxDebugBreak
// by default, debug break is asm int 3, or a call to DebugBreak, or nothing
#if defined(_M_IX86) && !defined(_AFX_PORTABLE)
#define AfxDebugBreak() _asm { int 3 }
#else
#define AfxDebugBreak() DebugBreak()
#endif
#endif

#ifndef _DEBUG
#ifdef AfxDebugBreak
#undef AfxDebugBreak
#endif
#define AfxDebugBreak()
#endif  // _DEBUG

/////////////////////////////////////////////////////////////////////////////
// Standard preprocessor symbols if not already defined
/////////////////////////////////////////////////////////////////////////////

// SIZE_T_MAX is used by the collection classes
#ifndef SIZE_T_MAX
        #define SIZE_T_MAX  UINT_MAX
#endif

// PASCAL is used for static member functions
#ifndef PASCAL
        #define PASCAL
#endif

// CDECL and EXPORT are defined in case WINDOWS.H doesn't
#ifndef CDECL
        #define CDECL __cdecl
#endif

#ifndef EXPORT
        #define EXPORT
#endif

// UNALIGNED is used for unaligned data access (in CArchive mostly)
#ifndef UNALIGNED
        #define UNALIGNED
#endif

// AFXAPI is used on global public functions
#ifndef AFXAPI
        #define AFXAPI __stdcall
#endif

// AFX_CDECL is used for rare functions taking variable arguments
#ifndef AFX_CDECL
        #define AFX_CDECL __cdecl
#endif

// AFX_EXPORT is used for functions which need to be exported
#ifndef AFX_EXPORT
        #define AFX_EXPORT EXPORT
#endif

// The following macros are used to enable export/import

// for data
#ifndef AFX_DATA_EXPORT
        #define AFX_DATA_EXPORT __declspec(dllexport)
#endif
#ifndef AFX_DATA_IMPORT
        #define AFX_DATA_IMPORT __declspec(dllimport)
#endif

// for classes
#ifndef AFX_CLASS_EXPORT
        #define AFX_CLASS_EXPORT __declspec(dllexport)
#endif
#ifndef AFX_CLASS_IMPORT
        #define AFX_CLASS_IMPORT __declspec(dllimport)
#endif

// for global APIs
#ifndef AFX_API_EXPORT
        #define AFX_API_EXPORT __declspec(dllexport)
#endif
#ifndef AFX_API_IMPORT
        #define AFX_API_IMPORT __declspec(dllimport)
#endif

// The following macros are used on data declarations/definitions
//  (they are redefined for extension DLLs and the shared MFC DLL)
#define AFX_DATA
#define AFX_DATADEF

// used when building the "core" MFC30.DLL
#ifndef AFX_CORE_DATA
        #define AFX_CORE_DATA
        #define AFX_CORE_DATADEF
#endif

// used when building the MFC/OLE support MFCO30.DLL
#ifndef AFX_OLE_DATA
        #define AFX_OLE_DATA
        #define AFX_OLE_DATADEF
#endif

// used when building the MFC/DB support MFCD30.DLL
#ifndef AFX_DB_DATA
        #define AFX_DB_DATA
        #define AFX_DB_DATADEF
#endif

// used when building the MFC/NET support MFCN30.DLL
#ifndef AFX_NET_DATA
        #define AFX_NET_DATA
        #define AFX_NET_DATADEF
#endif

// used when building extension DLLs
#ifndef AFX_EXT_DATA
        #define AFX_EXT_DATA
        #define AFX_EXT_DATADEF
        #define AFX_EXT_CLASS
        #define AFX_EXT_API
#endif

// BASED_XXXX macros are provided for backward compatibility
#ifndef BASED_CODE
        #define BASED_CODE
#endif

#ifndef BASED_DEBUG
        #define BASED_DEBUG
#endif

#ifndef BASED_STACK
        #define BASED_STACK
#endif

// setup default code segment
#ifdef AFX_DEF_SEG
        #pragma code_seg(AFX_DEF_SEG)
#endif

/////////////////////////////////////////////////////////////////////////////