b3ff265439827e65ca8a09df8fa25da452a7114e
[tinycc.git] / win32 / include / winapi / windef.h
blobb3ff265439827e65ca8a09df8fa25da452a7114e
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_
9 #ifndef STRICT
10 #define STRICT 1
11 #endif
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
17 #ifndef WINVER
18 #define WINVER 0x0502
19 #endif
21 #ifndef BASETYPES
22 #define BASETYPES
23 typedef unsigned long ULONG;
24 typedef ULONG *PULONG;
25 typedef unsigned short USHORT;
26 typedef USHORT *PUSHORT;
27 typedef unsigned char UCHAR;
28 typedef UCHAR *PUCHAR;
29 typedef char *PSZ;
30 #endif
32 #define MAX_PATH 260
34 #ifndef NULL
35 #ifdef __cplusplus
36 #define NULL 0
37 #else
38 #define NULL ((void *)0)
39 #endif
40 #endif
42 #ifndef FALSE
43 #define FALSE 0
44 #endif
46 #ifndef TRUE
47 #define TRUE 1
48 #endif
50 #ifndef IN
51 #define IN
52 #endif
54 #ifndef OUT
55 #define OUT
56 #endif
58 #ifndef OPTIONAL
59 #define OPTIONAL
60 #endif
62 #undef far
63 #undef near
64 #undef pascal
66 #define far
67 #define near
68 #define pascal __stdcall
70 #define cdecl
71 #ifndef CDECL
72 #define CDECL
73 #endif
74 #ifndef CALLBACK
75 #define CALLBACK __stdcall
76 #endif
77 #ifndef WINAPI
78 #define WINAPI __stdcall
79 #endif
80 #define WINAPIV __cdecl
81 #define APIENTRY WINAPI
82 #define APIPRIVATE WINAPI
83 #define PASCAL WINAPI
84 #define WINAPI_INLINE WINAPI
86 #undef FAR
87 #undef NEAR
88 #define FAR
89 #define NEAR
90 #ifndef CONST
91 #define CONST const
92 #endif
94 typedef unsigned long DWORD;
95 typedef int WINBOOL;
96 #define BOOL WINBOOL
97 typedef unsigned char BYTE;
98 typedef unsigned short WORD;
99 typedef float FLOAT;
100 typedef FLOAT *PFLOAT;
101 typedef WINBOOL *PBOOL;
102 typedef WINBOOL *LPBOOL;
103 typedef BYTE *PBYTE;
104 typedef BYTE *LPBYTE;
105 typedef int *PINT;
106 typedef int *LPINT;
107 typedef WORD *PWORD;
108 typedef WORD *LPWORD;
109 typedef long *LPLONG;
110 typedef DWORD *PDWORD;
111 typedef DWORD *LPDWORD;
112 typedef void *LPVOID;
113 #ifndef _LPCVOID_DEFINED
114 #define _LPCVOID_DEFINED
115 typedef CONST void *LPCVOID;
116 #endif
117 typedef int INT;
118 typedef unsigned int UINT;
119 typedef unsigned int *PUINT;
121 #ifndef NT_INCLUDED
122 #include <winnt.h>
123 #endif
125 #include <specstrings.h>
127 typedef UINT_PTR WPARAM;
128 typedef LONG_PTR LPARAM;
129 typedef LONG_PTR LRESULT;
131 #ifndef __cplusplus
132 #ifndef NOMINMAX
133 #ifndef max
134 #define max(a,b) (((a) > (b)) ? (a) : (b))
135 #endif
137 #ifndef min
138 #define min(a,b) (((a) < (b)) ? (a) : (b))
139 #endif
140 #endif
141 #endif
143 #define MAKEWORD(a,b) ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))
144 #define MAKELONG(a,b) ((LONG)(((WORD)((DWORD_PTR)(a) & 0xffff)) | ((DWORD)((WORD)((DWORD_PTR)(b) & 0xffff))) << 16))
145 #define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xffff))
146 #define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16))
147 #define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xff))
148 #define HIBYTE(w) ((BYTE)((DWORD_PTR)(w) >> 8))
150 #ifndef WIN_INTERNAL
151 DECLARE_HANDLE (HWND);
152 DECLARE_HANDLE (HHOOK);
153 #ifdef WINABLE
154 DECLARE_HANDLE (HEVENT);
155 #endif
156 #endif
158 typedef WORD ATOM;
160 typedef HANDLE *SPHANDLE;
161 typedef HANDLE *LPHANDLE;
162 typedef HANDLE HGLOBAL;
163 typedef HANDLE HLOCAL;
164 typedef HANDLE GLOBALHANDLE;
165 typedef HANDLE LOCALHANDLE;
166 #ifdef _WIN64
167 typedef INT_PTR (WINAPI *FARPROC)();
168 typedef INT_PTR (WINAPI *NEARPROC)();
169 typedef INT_PTR (WINAPI *PROC)();
170 #else
171 typedef int (WINAPI *FARPROC)();
172 typedef int (WINAPI *NEARPROC)();
173 typedef int (WINAPI *PROC)();
174 #endif
176 typedef void *HGDIOBJ;
178 DECLARE_HANDLE(HKEY);
179 typedef HKEY *PHKEY;
181 DECLARE_HANDLE(HACCEL);
182 DECLARE_HANDLE(HBITMAP);
183 DECLARE_HANDLE(HBRUSH);
184 DECLARE_HANDLE(HCOLORSPACE);
185 DECLARE_HANDLE(HDC);
186 DECLARE_HANDLE(HGLRC);
187 DECLARE_HANDLE(HDESK);
188 DECLARE_HANDLE(HENHMETAFILE);
189 DECLARE_HANDLE(HFONT);
190 DECLARE_HANDLE(HICON);
191 DECLARE_HANDLE(HMENU);
192 DECLARE_HANDLE(HMETAFILE);
193 DECLARE_HANDLE(HINSTANCE);
194 typedef HINSTANCE HMODULE;
195 DECLARE_HANDLE(HPALETTE);
196 DECLARE_HANDLE(HPEN);
197 DECLARE_HANDLE(HRGN);
198 DECLARE_HANDLE(HRSRC);
199 DECLARE_HANDLE(HSTR);
200 DECLARE_HANDLE(HTASK);
201 DECLARE_HANDLE(HWINSTA);
202 DECLARE_HANDLE(HKL);
203 DECLARE_HANDLE(HMONITOR);
204 DECLARE_HANDLE(HWINEVENTHOOK);
205 DECLARE_HANDLE(HUMPD);
207 typedef int HFILE;
208 typedef HICON HCURSOR;
209 typedef DWORD COLORREF;
210 typedef DWORD *LPCOLORREF;
212 #define HFILE_ERROR ((HFILE)-1)
214 typedef struct tagRECT {
215 LONG left;
216 LONG top;
217 LONG right;
218 LONG bottom;
219 } RECT,*PRECT,*NPRECT,*LPRECT;
221 typedef const RECT *LPCRECT;
223 typedef struct _RECTL {
224 LONG left;
225 LONG top;
226 LONG right;
227 LONG bottom;
228 } RECTL,*PRECTL,*LPRECTL;
230 typedef const RECTL *LPCRECTL;
232 typedef struct tagPOINT {
233 LONG x;
234 LONG y;
235 } POINT,*PPOINT,*NPPOINT,*LPPOINT;
237 typedef struct _POINTL {
238 LONG x;
239 LONG y;
240 } POINTL,*PPOINTL;
242 typedef struct tagSIZE {
243 LONG cx;
244 LONG cy;
245 } SIZE,*PSIZE,*LPSIZE;
247 typedef SIZE SIZEL;
248 typedef SIZE *PSIZEL,*LPSIZEL;
250 typedef struct tagPOINTS {
251 SHORT x;
252 SHORT y;
253 } POINTS,*PPOINTS,*LPPOINTS;
255 typedef struct _FILETIME {
256 DWORD dwLowDateTime;
257 DWORD dwHighDateTime;
258 } FILETIME,*PFILETIME,*LPFILETIME;
259 #define _FILETIME_
261 #define DM_UPDATE 1
262 #define DM_COPY 2
263 #define DM_PROMPT 4
264 #define DM_MODIFY 8
266 #define DM_IN_BUFFER DM_MODIFY
267 #define DM_IN_PROMPT DM_PROMPT
268 #define DM_OUT_BUFFER DM_COPY
269 #define DM_OUT_DEFAULT DM_UPDATE
271 #define DC_FIELDS 1
272 #define DC_PAPERS 2
273 #define DC_PAPERSIZE 3
274 #define DC_MINEXTENT 4
275 #define DC_MAXEXTENT 5
276 #define DC_BINS 6
277 #define DC_DUPLEX 7
278 #define DC_SIZE 8
279 #define DC_EXTRA 9
280 #define DC_VERSION 10
281 #define DC_DRIVER 11
282 #define DC_BINNAMES 12
283 #define DC_ENUMRESOLUTIONS 13
284 #define DC_FILEDEPENDENCIES 14
285 #define DC_TRUETYPE 15
286 #define DC_PAPERNAMES 16
287 #define DC_ORIENTATION 17
288 #define DC_COPIES 18
290 #ifdef __cplusplus
292 #endif
293 #endif