windef.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the w64 mingw-runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER within this package.
  5. */
  6. #ifndef _WINDEF_
  7. #define _WINDEF_
  8. #ifndef STRICT
  9. #define STRICT 1
  10. #endif
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. #ifndef WINVER
  15. #define WINVER 0x0502
  16. #endif
  17. #ifndef BASETYPES
  18. #define BASETYPES
  19. typedef unsigned long ULONG;
  20. typedef ULONG *PULONG;
  21. typedef unsigned short USHORT;
  22. typedef USHORT *PUSHORT;
  23. typedef unsigned char UCHAR;
  24. typedef UCHAR *PUCHAR;
  25. typedef char *PSZ;
  26. #endif
  27. #define MAX_PATH 260
  28. #ifndef NULL
  29. #ifdef __cplusplus
  30. #define NULL 0
  31. #else
  32. #define NULL ((void *)0)
  33. #endif
  34. #endif
  35. #ifndef FALSE
  36. #define FALSE 0
  37. #endif
  38. #ifndef TRUE
  39. #define TRUE 1
  40. #endif
  41. #ifndef IN
  42. #define IN
  43. #endif
  44. #ifndef OUT
  45. #define OUT
  46. #endif
  47. #ifndef OPTIONAL
  48. #define OPTIONAL
  49. #endif
  50. #undef far
  51. #undef near
  52. #undef pascal
  53. #define far
  54. #define near
  55. #define pascal __stdcall
  56. #define cdecl
  57. #ifndef CDECL
  58. #define CDECL
  59. #endif
  60. #ifndef CALLBACK
  61. #define CALLBACK __stdcall
  62. #endif
  63. #ifndef WINAPI
  64. #define WINAPI __stdcall
  65. #endif
  66. #define WINAPIV __cdecl
  67. #define APIENTRY WINAPI
  68. #define APIPRIVATE WINAPI
  69. #define PASCAL WINAPI
  70. #define WINAPI_INLINE WINAPI
  71. #undef FAR
  72. #undef NEAR
  73. #define FAR
  74. #define NEAR
  75. #ifndef CONST
  76. #define CONST const
  77. #endif
  78. typedef unsigned long DWORD;
  79. typedef int WINBOOL;
  80. #define BOOL WINBOOL
  81. typedef unsigned char BYTE;
  82. typedef unsigned short WORD;
  83. typedef float FLOAT;
  84. typedef FLOAT *PFLOAT;
  85. typedef WINBOOL *PBOOL;
  86. typedef WINBOOL *LPBOOL;
  87. typedef BYTE *PBYTE;
  88. typedef BYTE *LPBYTE;
  89. typedef int *PINT;
  90. typedef int *LPINT;
  91. typedef WORD *PWORD;
  92. typedef WORD *LPWORD;
  93. typedef long *LPLONG;
  94. typedef DWORD *PDWORD;
  95. typedef DWORD *LPDWORD;
  96. typedef void *LPVOID;
  97. # ifndef _LPCVOID_DEFINED
  98. #define _LPCVOID_DEFINED
  99. typedef CONST void *LPCVOID;
  100. #endif
  101. typedef int INT;
  102. typedef unsigned int UINT;
  103. typedef unsigned int *PUINT;
  104. #ifndef NT_INCLUDED
  105. #include <winnt.h>
  106. #endif
  107. //gr #include <specstrings.h>
  108. typedef UINT_PTR WPARAM;
  109. typedef LONG_PTR LPARAM;
  110. typedef LONG_PTR LRESULT;
  111. #ifndef __cplusplus
  112. #ifndef NOMINMAX
  113. #ifndef max
  114. #define max(a,b) (((a) > (b)) ? (a) : (b))
  115. #endif
  116. #ifndef min
  117. #define min(a,b) (((a) < (b)) ? (a) : (b))
  118. #endif
  119. #endif
  120. #endif
  121. #define MAKEWORD(a,b) ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))
  122. #define MAKELONG(a,b) ((LONG)(((WORD)((DWORD_PTR)(a) & 0xffff)) | ((DWORD)((WORD)((DWORD_PTR)(b) & 0xffff))) << 16))
  123. #define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xffff))
  124. #define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16))
  125. #define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xff))
  126. #define HIBYTE(w) ((BYTE)((DWORD_PTR)(w) >> 8))
  127. #ifndef WIN_INTERNAL
  128. DECLARE_HANDLE (HWND);
  129. DECLARE_HANDLE (HHOOK);
  130. #ifdef WINABLE
  131. DECLARE_HANDLE (HEVENT);
  132. #endif
  133. #endif
  134. typedef WORD ATOM;
  135. typedef HANDLE *SPHANDLE;
  136. typedef HANDLE *LPHANDLE;
  137. typedef HANDLE HGLOBAL;
  138. typedef HANDLE HLOCAL;
  139. typedef HANDLE GLOBALHANDLE;
  140. typedef HANDLE LOCALHANDLE;
  141. #ifdef _WIN64
  142. typedef INT_PTR (WINAPI *FARPROC)();
  143. typedef INT_PTR (WINAPI *NEARPROC)();
  144. typedef INT_PTR (WINAPI *PROC)();
  145. #else
  146. typedef int (WINAPI *FARPROC)();
  147. typedef int (WINAPI *NEARPROC)();
  148. typedef int (WINAPI *PROC)();
  149. #endif
  150. typedef void *HGDIOBJ;
  151. DECLARE_HANDLE(HKEY);
  152. typedef HKEY *PHKEY;
  153. DECLARE_HANDLE(HACCEL);
  154. DECLARE_HANDLE(HBITMAP);
  155. DECLARE_HANDLE(HBRUSH);
  156. DECLARE_HANDLE(HCOLORSPACE);
  157. DECLARE_HANDLE(HDC);
  158. DECLARE_HANDLE(HGLRC);
  159. DECLARE_HANDLE(HDESK);
  160. DECLARE_HANDLE(HENHMETAFILE);
  161. DECLARE_HANDLE(HFONT);
  162. DECLARE_HANDLE(HICON);
  163. DECLARE_HANDLE(HMENU);
  164. DECLARE_HANDLE(HMETAFILE);
  165. DECLARE_HANDLE(HINSTANCE);
  166. typedef HINSTANCE HMODULE;
  167. DECLARE_HANDLE(HPALETTE);
  168. DECLARE_HANDLE(HPEN);
  169. DECLARE_HANDLE(HRGN);
  170. DECLARE_HANDLE(HRSRC);
  171. DECLARE_HANDLE(HSTR);
  172. DECLARE_HANDLE(HTASK);
  173. DECLARE_HANDLE(HWINSTA);
  174. DECLARE_HANDLE(HKL);
  175. DECLARE_HANDLE(HMONITOR);
  176. DECLARE_HANDLE(HWINEVENTHOOK);
  177. DECLARE_HANDLE(HUMPD);
  178. typedef int HFILE;
  179. typedef HICON HCURSOR;
  180. typedef DWORD COLORREF;
  181. typedef DWORD *LPCOLORREF;
  182. #define HFILE_ERROR ((HFILE)-1)
  183. typedef struct tagRECT {
  184. LONG left;
  185. LONG top;
  186. LONG right;
  187. LONG bottom;
  188. } RECT,*PRECT,*NPRECT,*LPRECT;
  189. typedef const RECT *LPCRECT;
  190. typedef struct _RECTL {
  191. LONG left;
  192. LONG top;
  193. LONG right;
  194. LONG bottom;
  195. } RECTL,*PRECTL,*LPRECTL;
  196. typedef const RECTL *LPCRECTL;
  197. typedef struct tagPOINT {
  198. LONG x;
  199. LONG y;
  200. } POINT,*PPOINT,*NPPOINT,*LPPOINT;
  201. typedef struct _POINTL {
  202. LONG x;
  203. LONG y;
  204. } POINTL,*PPOINTL;
  205. typedef struct tagSIZE {
  206. LONG cx;
  207. LONG cy;
  208. } SIZE,*PSIZE,*LPSIZE;
  209. typedef SIZE SIZEL;
  210. typedef SIZE *PSIZEL,*LPSIZEL;
  211. typedef struct tagPOINTS {
  212. SHORT x;
  213. SHORT y;
  214. } POINTS,*PPOINTS,*LPPOINTS;
  215. typedef struct _FILETIME {
  216. DWORD dwLowDateTime;
  217. DWORD dwHighDateTime;
  218. } FILETIME,*PFILETIME,*LPFILETIME;
  219. #define _FILETIME_
  220. #define DM_UPDATE 1
  221. #define DM_COPY 2
  222. #define DM_PROMPT 4
  223. #define DM_MODIFY 8
  224. #define DM_IN_BUFFER DM_MODIFY
  225. #define DM_IN_PROMPT DM_PROMPT
  226. #define DM_OUT_BUFFER DM_COPY
  227. #define DM_OUT_DEFAULT DM_UPDATE
  228. #define DC_FIELDS 1
  229. #define DC_PAPERS 2
  230. #define DC_PAPERSIZE 3
  231. #define DC_MINEXTENT 4
  232. #define DC_MAXEXTENT 5
  233. #define DC_BINS 6
  234. #define DC_DUPLEX 7
  235. #define DC_SIZE 8
  236. #define DC_EXTRA 9
  237. #define DC_VERSION 10
  238. #define DC_DRIVER 11
  239. #define DC_BINNAMES 12
  240. #define DC_ENUMRESOLUTIONS 13
  241. #define DC_FILEDEPENDENCIES 14
  242. #define DC_TRUETYPE 15
  243. #define DC_PAPERNAMES 16
  244. #define DC_ORIENTATION 17
  245. #define DC_COPIES 18
  246. #ifdef __cplusplus
  247. }
  248. #endif
  249. #endif