master
  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
 19extern "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_
127typedef 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
134typedef BOOL *PBOOL;
135typedef 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