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