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 234