1 #ifndef _MINWINDEF_
2 #define _MINWINDEF_
3 
4 #include <_mingw.h>
5 #include <winapifamily.h>
6 #include <specstrings.h>
7 
8 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
9 
10 #if !defined (STRICT) && !defined (NO_STRICT)
11 #define STRICT 1
12 #endif
13 
14 #ifndef WIN32
15 #define WIN32
16 #endif
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #ifndef BASETYPES
23 #define BASETYPES
24   typedef unsigned __LONG32 ULONG;
25   typedef ULONG *PULONG;
26   typedef unsigned short USHORT;
27   typedef USHORT *PUSHORT;
28   typedef unsigned char UCHAR;
29   typedef UCHAR *PUCHAR;
30   typedef char *PSZ;
31 #endif
32 
33 #define MAX_PATH 260
34 
35 #ifndef NULL
36 #ifdef __cplusplus
37 #ifndef _WIN64
38 #define NULL 0
39 #else
40 #define NULL 0LL
41 #endif
42 #else
43 #define NULL ((void *)0)
44 #endif
45 #endif
46 
47 #ifndef FALSE
48 #define FALSE 0
49 #endif
50 
51 #ifndef TRUE
52 #define TRUE 1
53 #endif
54 
55 #ifndef _NO_W32_PSEUDO_MODIFIERS
56 #ifndef IN
57 #define IN
58 #endif
59 
60 #ifndef OUT
61 #define OUT
62 #endif
63 
64 #ifndef OPTIONAL
65 #define OPTIONAL
66 #endif
67 #endif /* _NO_W32_PSEUDO_MODIFIERS */
68 
69 #undef far
70 #undef near
71 #undef pascal
72 
73 #define far
74 #define near
75 #if defined(_ARM_)
76 #define pascal
77 #else
78 #define pascal __stdcall
79 #endif
80 
81 #define cdecl
82 #ifndef CDECL
83 #define CDECL
84 #endif
85 
86 #ifndef CALLBACK
87 #if defined(_ARM_)
88 #define CALLBACK
89 #else
90 #define CALLBACK __stdcall
91 #endif
92 #endif
93 
94 #ifndef WINAPI
95 #if defined(_ARM_)
96 #define WINAPI
97 #else
98 #define WINAPI __stdcall
99 #endif
100 #endif
101 
102 #define WINAPIV __cdecl
103 #define APIENTRY WINAPI
104 #if defined(_ARM_)
105 #define APIPRIVATE
106 #define PASCAL
107 #else
108 #define APIPRIVATE __stdcall
109 #define PASCAL __stdcall
110 #endif
111 
112 #ifndef WINAPI_INLINE
113 #define WINAPI_INLINE WINAPI
114 #endif
115 
116 #undef FAR
117 #undef NEAR
118 #define FAR
119 #define NEAR
120 
121 #ifndef CONST
122 #define CONST const
123 #endif
124 
125 #ifndef _DEF_WINBOOL_
126 #define _DEF_WINBOOL_
127 typedef int WINBOOL;
128 #pragma push_macro("BOOL")
129 #undef BOOL
130 #if !defined(__OBJC__) && !defined(__OBJC_BOOL) && !defined(__objc_INCLUDE_GNU) && !defined(_NO_BOOL_TYPEDEF)
131   typedef int BOOL;
132 #endif
133 #define BOOL WINBOOL
134 typedef BOOL *PBOOL;
135 typedef BOOL *LPBOOL;
136 #pragma pop_macro("BOOL")
137 #endif /* _DEF_WINBOOL_ */
138 
139   typedef unsigned char BYTE;
140   typedef unsigned short WORD;
141   typedef unsigned __LONG32 DWORD;
142   typedef float FLOAT;
143   typedef FLOAT *PFLOAT;
144   typedef BYTE *PBYTE;
145   typedef BYTE *LPBYTE;
146   typedef int *PINT;
147   typedef int *LPINT;
148   typedef WORD *PWORD;
149   typedef WORD *LPWORD;
150   typedef __LONG32 *LPLONG;
151   typedef DWORD *PDWORD;
152   typedef DWORD *LPDWORD;
153   typedef void *LPVOID;
154 #ifndef _LPCVOID_DEFINED
155 #define _LPCVOID_DEFINED
156   typedef CONST void *LPCVOID;
157 #endif
158   typedef int INT;
159   typedef unsigned int UINT;
160   typedef unsigned int *PUINT;
161 
162 #ifndef NT_INCLUDED
163 #include <winnt.h>
164 #endif
165 
166   typedef UINT_PTR WPARAM;
167   typedef LONG_PTR LPARAM;
168   typedef LONG_PTR LRESULT;
169 
170 #ifndef __cplusplus
171 #ifndef NOMINMAX
172 #ifndef max
173 #define max(a, b) (((a) > (b)) ? (a) : (b))
174 #endif
175 
176 #ifndef min
177 #define min(a, b) (((a) < (b)) ? (a) : (b))
178 #endif
179 #endif
180 #endif
181 
182 #define MAKEWORD(a,b) ((WORD) (((BYTE) (((DWORD_PTR) (a)) & 0xff)) | ((WORD) ((BYTE) (((DWORD_PTR) (b)) & 0xff))) << 8))
183 #define MAKELONG(a, b) ((LONG) (((WORD) (((DWORD_PTR) (a)) & 0xffff)) | ((DWORD) ((WORD) (((DWORD_PTR) (b)) & 0xffff))) << 16))
184 #define LOWORD(l) ((WORD) (((DWORD_PTR) (l)) & 0xffff))
185 #define HIWORD(l) ((WORD) ((((DWORD_PTR) (l)) >> 16) & 0xffff))
186 #define LOBYTE(w) ((BYTE) (((DWORD_PTR) (w)) & 0xff))
187 #define HIBYTE(w) ((BYTE) ((((DWORD_PTR) (w)) >> 8) & 0xff))
188 
189   typedef HANDLE *SPHANDLE;
190   typedef HANDLE *LPHANDLE;
191   typedef HANDLE HGLOBAL;
192   typedef HANDLE HLOCAL;
193   typedef HANDLE GLOBALHANDLE;
194   typedef HANDLE LOCALHANDLE;
195 #ifdef _WIN64
196   typedef INT_PTR (WINAPI *FARPROC) ();
197   typedef INT_PTR (WINAPI *NEARPROC) ();
198   typedef INT_PTR (WINAPI *PROC) ();
199 #else
200   typedef int (WINAPI *FARPROC) ();
201   typedef int (WINAPI *NEARPROC) ();
202   typedef int (WINAPI *PROC) ();
203 #endif
204 
205   typedef WORD ATOM;
206 
207   typedef int HFILE;
208   DECLARE_HANDLE (HINSTANCE);
209   DECLARE_HANDLE (HKEY);
210   typedef HKEY *PHKEY;
211   DECLARE_HANDLE (HKL);
212   DECLARE_HANDLE (HLSURF);
213   DECLARE_HANDLE (HMETAFILE);
214   typedef HINSTANCE HMODULE;
215   DECLARE_HANDLE (HRGN);
216   DECLARE_HANDLE (HRSRC);
217   DECLARE_HANDLE (HSPRITE);
218   DECLARE_HANDLE (HSTR);
219   DECLARE_HANDLE (HTASK);
220   DECLARE_HANDLE (HWINSTA);
221 
222   typedef struct _FILETIME {
223     DWORD dwLowDateTime;
224     DWORD dwHighDateTime;
225   } FILETIME,*PFILETIME,*LPFILETIME;
226 #define _FILETIME_
227 
228 #ifdef __cplusplus
229 }
230 #endif
231 
232 #endif
233 #endif
234