minwindef.h 4.3 KB

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