Sinked comment about IRP->ApcEnvironment and IRP->AllocationFlags
[reactos.git] / include / windows.h
1 /*
2    windows.h
3
4    Include this file if you wish to use the Windows32 API Library
5
6    Copyright (C) 1996 Free Software Foundation
7
8    Author:  Scott Christley <scottc@net-community.com>
9    Date: 1996
10
11    This file is part of the Windows32 API Library.
12
13    This library is free software; you can redistribute it and/or
14    modify it under the terms of the GNU Library General Public
15    License as published by the Free Software Foundation; either
16    version 2 of the License, or (at your option) any later version.
17
18    This library is distributed in the hope that it will be useful,
19    but WITHOUT ANY WARRANTY; without even the implied warranty of
20    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21    Library General Public License for more details.
22
23    If you are interested in a warranty or support for this source code,
24    contact Scott Christley <scottc@net-community.com> for more information.
25
26    You should have received a copy of the GNU Library General Public
27    License along with this library; see the file COPYING.LIB.
28    If not, write to the Free Software Foundation,
29    59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
30 */
31
32 #ifndef _GNU_H_WINDOWS_H
33 #define _GNU_H_WINDOWS_H
34
35 #ifndef max
36 #define max(a,b)   (((a) > (b)) ? (a) : (b))
37 #endif
38 #ifndef min
39 #define min(a,b)   (((a) < (b)) ? (a) : (b))
40 #endif
41
42 #ifndef MAX
43 #define MAX max
44 #endif
45 #ifndef MIN
46 #define MIN min
47 #endif
48
49 #ifndef RC_INVOKED
50 #include <limits.h>
51 #include <stdarg.h>
52 #endif
53
54 /* Base definitions */
55 #include <base.h>
56
57 /* WIN32 messages */
58 #ifndef WIN32_LEAN_AND_MEAN
59 #include <messages.h>
60 #endif
61
62 /* WIN32 definitions */
63 #include <defines.h>
64
65 #ifndef RC_INVOKED
66
67 /* WIN32 structures */
68 #include <structs.h>
69
70 /* WIN32 functions */
71 #ifndef WIN32_LEAN_AND_MEAN
72 #include <funcs.h>
73 #endif
74
75 /* WIN32 PE file format */
76 #include <pe.h>
77
78 #endif /* ! defined (RC_INVOKED) */
79
80 /* WIN32 error codes */
81 #ifndef WIN32_LEAN_AND_MEAN
82 #include <errors.h>
83 #endif
84
85 #ifndef RC_INVOKED
86
87 /* Windows sockets specification version 1.1 */
88 #ifdef Win32_Winsock
89 #ifndef WIN32_LEAN_AND_MEAN
90 #include <sockets.h>
91 #endif
92 #endif
93
94 /* There is a conflict with BOOL between Objective-C and Win32,
95    so the Windows32 API Library defines and uses WINBOOL.
96    However, if we are not using Objective-C then define the normal
97    windows BOOL so Win32 programs compile normally.  If you are
98    using Objective-C then you must use WINBOOL for Win32 operations.
99 */
100 #ifndef __OBJC__
101 //typedef WINBOOL BOOL;
102 #endif /* !__OBJC__ */
103
104 /* How do we get the VM page size on NT? */
105 #ifndef vm_page_size
106 #define vm_page_size 4096
107 #endif
108
109 #endif /* ! defined (RC_INVOKED) */
110
111 #ifdef __GNUC__
112 #ifndef NONAMELESSUNION
113 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
114 #define _ANONYMOUS_UNION __extension__
115 #define _ANONYMOUS_STRUCT __extension__
116 #else
117 #if defined(__cplusplus)
118 #define _ANONYMOUS_UNION __extension__
119 #endif
120 #endif /* __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) */
121 #endif /* NONAMELESSUNION */
122 #endif /* __GNUC__ */
123
124 #ifndef _ANONYMOUS_UNION
125 #define _ANONYMOUS_UNION
126 #define _UNION_NAME(x) x
127 #define DUMMYUNIONNAME  u
128 #define DUMMYUNIONNAME2 u2
129 #define DUMMYUNIONNAME3 u3
130 #define DUMMYUNIONNAME4 u4
131 #define DUMMYUNIONNAME5 u5
132 #define DUMMYUNIONNAME6 u6
133 #define DUMMYUNIONNAME7 u7
134 #define DUMMYUNIONNAME8 u8
135 #else
136 #define _UNION_NAME(x)
137 #define DUMMYUNIONNAME
138 #define DUMMYUNIONNAME2
139 #define DUMMYUNIONNAME3
140 #define DUMMYUNIONNAME4
141 #define DUMMYUNIONNAME5
142 #define DUMMYUNIONNAME6
143 #define DUMMYUNIONNAME7
144 #define DUMMYUNIONNAME8
145 #endif
146 #ifndef _ANONYMOUS_STRUCT
147 #define _ANONYMOUS_STRUCT
148 #define _STRUCT_NAME(x) x
149 #define DUMMYSTRUCTNAME s
150 #define DUMMYSTRUCTNAME2 s2
151 #define DUMMYSTRUCTNAME3 s3
152 #else
153 #define _STRUCT_NAME(x)
154 #define DUMMYSTRUCTNAME
155 #define DUMMYSTRUCTNAME2
156 #define DUMMYSTRUCTNAME3
157 #endif
158
159 #ifndef NO_STRICT
160 #ifndef STRICT
161 #define STRICT 1
162 #endif
163 #endif
164
165 #endif /* _GNU_H_WINDOWS_H */