/
dfs.inc
211 lines (184 loc) · 8.47 KB
/
dfs.inc
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
(******************************************************************************)
(* Delphi Free Stuff Include File. This file is used for all my components *)
(* to create some standard defines. This will help reduce headaches when new *)
(* versions of Delphi and C++Builder are released, among other things. *)
(******************************************************************************)
(* Brad Stowers: bstowers@pobox.com *)
(* Delphi Free Stuff: http://www.delphifreestuff.com/ *)
(* August 20, 1999 *)
(******************************************************************************)
(* Usage: Add the following line to the top of your unit file: *)
(* {$I DFS.INC} *)
(******************************************************************************)
(* *)
(* Complete Boolean Evaluation compiler directive is turned off by including *)
(* this file. *)
(* The $ObjExportAll directive is turned on if compiling with C++Builder 3 or *)
(* higher. This is required for Delphi components built in Builder with *)
(* run-time packages. *)
(* *)
(* Here is a brief explanation of what each of the defines mean: *)
(* DELPHI_FREE_STUFF : Always defined when DFS.INC is included *)
(* DFS_WIN16 : Compilation target is 16-bit Windows *)
(* DFS_WIN32 : Compilation target is 32-bit Windows *)
(* DFS_USEDEFSHLOBJ : The SHLOBJ.PAS version contains no none errors. *)
(* Delphi 2.0x and C++Builder 1.0x shipped with a *)
(* version of SHLOBJ.PAS that had many nasty errors. *)
(* See my web site in the Hints section for how to fix *)
(* DFS_NO_COM_CLEANUP : The version of the compiler being used does not *)
(* require COM objects to be released; it is done *)
(* automatically when they go "out of scope". *)
(* DFS_COMPILER_1 : Delphi 1.0 is the compiler. Note that C++B 1.0 *)
(* does NOT cause this to be defined. It is really *)
(* the 2.0 compiler. *)
(* DFS_COMPILER_1_UP : Delphi 1.0x or higher, or C++B 1.0x or higher is *)
(* the compiler. *)
(* DFS_COMPILER_2 : Delphi 2.0x or C++B 1.0x is the compiler. *)
(* DFS_COMPILER_2_UP : Delphi 2.0x or higher, or C++B 1.0x or higher is *)
(* the compiler. *)
(* DFS_COMPILER_3 : Delphi 3.0x or C++B 3.0x is the compiler. *)
(* DFS_COMPILER_3_UP : Delphi 3.0x or higher, or C++B 3.0x or higher is *)
(* the compiler. *)
(* DFS_COMPILER_4 : Delphi 4.0x or C++B 4.0x is the compiler. *)
(* DFS_COMPILER_4_UP : Delphi 4.0x or higher, or C++B 4.0x or higher is *)
(* the compiler. *)
(* DFS_COMPILER_5 : Delphi 5.0x or C++B 5.0x is the compiler. *)
(* DFS_COMPILER_5_UP : Delphi 5.0x or higher, or C++B 5.0x or higher is *)
(* the compiler. *)
(* DFS_UNKNOWN_COMPILER : No sense could be made of the compiliation *)
(* environment. *)
(* DFS_CPPB : Any version of C++B is being used. *)
(* DFS_CPPB_1 : C++B v1.0x is being used. *)
(* DFS_CPPB_3 : C++B v3.0x is being used. *)
(* DFS_CPPB_3_UP : C++B v3.0x or higher is being used. *)
(* DFS_CPPB_4 : C++B v4.0x is being used. *)
(* DFS_CPPB_4_UP : C++B v4.0x or higher is being used. *)
(* DFS_DELPHI : Any version of Delphi is being used. *)
(* DFS_DELPHI_1 : Delphi v1.0x is being used. *)
(* DFS_DELPHI_2 : Delphi v2.0x is being used. *)
(* DFS_DELPHI_2_UP : Delphi v2.0x or higher is being used. *)
(* DFS_DELPHI_3 : Delphi v3.0x is being used. *)
(* DFS_DELPHI_3_UP : Delphi v3.0x or higher is being used. *)
(* DFS_DELPHI_4 : Delphi v4.0x is being used. *)
(* DFS_DELPHI_4_UP : Delphi v4.0x or higher is being used. *)
(* DFS_DELPHI_5 : Delphi v5.0x is being used. *)
(* DFS_DELPHI_5_UP : Delphi v5.0x or higher is being used. *)
(******************************************************************************)
{ All DFS components rely on complete boolean eval compiler directive set off. }
{$B-}
{$DEFINE DELPHI_FREE_STUFF}
{$IFDEF WIN32}
{$DEFINE DFS_WIN32}
{$ELSE}
{$DEFINE DFS_WIN16}
{$ENDIF}
{$IFDEF VER130}
{$DEFINE DFS_COMPILER_5}
{$DEFINE DFS_DELPHI}
{$DEFINE DFS_DELPHI_5}
{$DEFINE DFS_USEDEFSHLOBJ} { Only D3+ and C++B 3+ have no errors in SHLOBJ }
{$ENDIF}
{$IFDEF VER125}
{$DEFINE DFS_COMPILER_4}
{$DEFINE DFS_CPPB}
{$DEFINE DFS_CPPB_4}
{$DEFINE DFS_USEDEFSHLOBJ} { Only D3+ and C++B 3+ have no errors in SHLOBJ }
{$ENDIF}
{$IFDEF VER120}
{$DEFINE DFS_COMPILER_4}
{$DEFINE DFS_DELPHI}
{$DEFINE DFS_DELPHI_4}
{$DEFINE DFS_USEDEFSHLOBJ} { Only D3+ and C++B 3+ have no errors in SHLOBJ }
{$ENDIF}
{$IFDEF VER110}
{$DEFINE DFS_COMPILER_3}
{$DEFINE DFS_CPPB}
{$DEFINE DFS_CPPB_3}
{$DEFINE DFS_USEDEFSHLOBJ} { Only D3+ and C++B 3+ have no errors in SHLOBJ }
{$ENDIF}
{$IFDEF VER100}
{$DEFINE DFS_COMPILER_3}
{$DEFINE DFS_DELPHI}
{$DEFINE DFS_DELPHI_3}
{$DEFINE DFS_USEDEFSHLOBJ} { Only D3+ and C++B 3+ have no errors in SHLOBJ }
{$ENDIF}
{$IFDEF VER93}
{$DEFINE DFS_COMPILER_2} { C++B v1 compiler is really v2 }
{$DEFINE DFS_CPPB}
{$DEFINE DFS_CPPB_1}
{.$DEFINE DFS_USEDEFSHLOBJ} { C++B 1 has the correct SHLOBJ.H, but
SHLOBJ.PAS has errors so this isn't defined }
{$ENDIF}
{$IFDEF VER90}
{$DEFINE DFS_COMPILER_2}
{$DEFINE DFS_DELPHI}
{$DEFINE DFS_DELPHI_2}
{$ENDIF}
{$IFDEF VER80}
{$DEFINE DFS_COMPILER_1}
{$DEFINE DFS_DELPHI}
{$DEFINE DFS_DELPHI_1}
{$ENDIF}
{$IFNDEF DFS_CPPB}
{$IFNDEF DFS_DELPHI}
{ Don't know what the hell it is. Could be new version, or could be old BP. }
{$DEFINE DFS_UNKNOWN_COMPILER}
{$ENDIF}
{$ENDIF}
{$IFDEF DFS_COMPILER_1}
{$DEFINE DFS_COMPILER_1_UP}
{$ENDIF}
{$IFDEF DFS_COMPILER_2}
{$DEFINE DFS_COMPILER_1_UP}
{$DEFINE DFS_COMPILER_2_UP}
{$ENDIF}
{$IFDEF DFS_COMPILER_3}
{$DEFINE DFS_COMPILER_1_UP}
{$DEFINE DFS_COMPILER_2_UP}
{$DEFINE DFS_COMPILER_3_UP}
{$ENDIF}
{$IFDEF DFS_COMPILER_4}
{$DEFINE DFS_COMPILER_1_UP}
{$DEFINE DFS_COMPILER_2_UP}
{$DEFINE DFS_COMPILER_3_UP}
{$DEFINE DFS_COMPILER_4_UP}
{$ENDIF}
{$IFDEF DFS_COMPILER_5}
{$DEFINE DFS_COMPILER_1_UP}
{$DEFINE DFS_COMPILER_2_UP}
{$DEFINE DFS_COMPILER_3_UP}
{$DEFINE DFS_COMPILER_4_UP}
{$DEFINE DFS_COMPILER_5_UP}
{$ENDIF}
{$IFDEF DFS_DELPHI_2}
{$DEFINE DFS_DELPHI_2_UP}
{$ENDIF}
{$IFDEF DFS_DELPHI_3}
{$DEFINE DFS_DELPHI_2_UP}
{$DEFINE DFS_DELPHI_3_UP}
{$ENDIF}
{$IFDEF DFS_DELPHI_4}
{$DEFINE DFS_DELPHI_2_UP}
{$DEFINE DFS_DELPHI_3_UP}
{$DEFINE DFS_DELPHI_4_UP}
{$ENDIF}
{$IFDEF DFS_DELPHI_5}
{$DEFINE DFS_DELPHI_2_UP}
{$DEFINE DFS_DELPHI_3_UP}
{$DEFINE DFS_DELPHI_4_UP}
{$DEFINE DFS_DELPHI_5_UP}
{$ENDIF}
{$IFDEF DFS_CPPB_3}
{$DEFINE DFS_CPPB_3_UP}
{$ENDIF}
{$IFDEF DFS_CPPB_4}
{$DEFINE DFS_CPPB_3_UP}
{$DEFINE DFS_CPPB_4_UP}
{$ENDIF}
{$IFDEF DFS_COMPILER_3_UP}
{$DEFINE DFS_NO_COM_CLEANUP}
{$ENDIF}
{$IFDEF DFS_CPPB_3_UP}
// C++Builder requires this if you use Delphi components in run-time packages.
{$ObjExportAll On}
{$ENDIF}