Home | History | Annotate | Download | only in include
      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