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.PD within this package.
10 #define _WINDEF_H // wine ...
14 #pragma warning(disable:4255)
17 #if defined(__LP64__) || (!defined(_M_AMD64) && defined(__WINESRC__))
18 #if !defined(__ROS_LONG64__)
19 #define __ROS_LONG64__
33 #if defined(_MAC) && !defined(_WIN32)
47 #ifndef __ROS_LONG64__
48 typedef unsigned long ULONG
;
50 typedef unsigned int ULONG
;
52 typedef ULONG
*PULONG
;
53 typedef unsigned short USHORT
;
54 typedef USHORT
*PUSHORT
;
55 typedef unsigned char UCHAR
;
56 typedef UCHAR
*PUCHAR
;
59 #endif /* BASETYPES */
72 #define NULL ((void *)0)
84 #ifndef _NO_W32_PSEUDO_MODIFIERS
97 #define PACKED __attribute__((packed))
99 #define __declspec(e) __attribute__((e))
102 #define _declspec(e) __attribute__((e))
104 #elif defined(__WATCOMC__)
116 #define pascal __stdcall
123 #if !defined(__x86_64__) //defined(_STDCALL_SUPPORTED)
125 #define CALLBACK __stdcall
128 #define WINAPI __stdcall
130 #define WINAPIV __cdecl
131 #define APIENTRY WINAPI
132 #define APIPRIVATE WINAPI
133 #define PASCAL WINAPI
138 #define APIENTRY WINAPI
140 #define PASCAL pascal
152 #ifndef _DEF_WINBOOL_
153 #define _DEF_WINBOOL_
155 #pragma push_macro("BOOL")
157 #if !defined(__OBJC__) && !defined(__OBJC_BOOL) && !defined(__objc_INCLUDE_GNU)
162 typedef BOOL
*LPBOOL
;
163 #pragma pop_macro("BOOL")
164 #endif /* _DEF_WINBOOL_ */
166 typedef unsigned char BYTE
;
167 typedef unsigned short WORD
;
168 #ifndef __ROS_LONG64__
169 typedef unsigned long DWORD
;
171 typedef unsigned int DWORD
;
174 typedef FLOAT
*PFLOAT
;
176 typedef BYTE
*LPBYTE
;
180 typedef WORD
*LPWORD
;
181 #ifndef __ROS_LONG64__
182 typedef long *LPLONG
;
186 typedef DWORD
*PDWORD
;
187 typedef DWORD
*LPDWORD
;
188 typedef void *LPVOID
;
189 #ifndef _LPCVOID_DEFINED
190 #define _LPCVOID_DEFINED
191 typedef CONST
void *LPCVOID
;
194 typedef unsigned int UINT
;
195 typedef unsigned int *PUINT
;
196 typedef unsigned int *LPUINT
;
205 //#include <specstrings.h>
207 typedef UINT_PTR WPARAM
;
208 typedef LONG_PTR LPARAM
;
209 typedef LONG_PTR LRESULT
;
210 #ifndef _HRESULT_DEFINED
211 typedef LONG HRESULT
;
212 #define _HRESULT_DEFINED
217 #define max(a, b) (((a) > (b)) ? (a) : (b))
220 #define min(a, b) (((a) < (b)) ? (a) : (b))
224 #define MAKEWORD(bLow, bHigh) ((WORD)(((BYTE)((DWORD_PTR)(bLow) & 0xff )) | (((WORD)((BYTE)((DWORD_PTR)(bHigh) & 0xff))) << 8 )))
225 #define MAKELONG(wLow, wHigh) ((LONG)(((WORD)((DWORD_PTR)(wLow) & 0xffff)) | (((DWORD)((WORD)((DWORD_PTR)(wHigh) & 0xffff))) << 16)))
226 #define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xffff))
227 #define HIWORD(l) ((WORD)(((DWORD_PTR)(l) >> 16) & 0xffff))
228 #define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xff))
229 #define HIBYTE(w) ((BYTE)(((DWORD_PTR)(w) >> 8) & 0xff))
232 DECLARE_HANDLE (HWND
);
233 //DECLARE_HANDLE (HHOOK);
235 DECLARE_HANDLE (HEVENT
);
241 typedef HANDLE
*SPHANDLE
;
242 typedef HANDLE
*LPHANDLE
;
243 typedef HANDLE HGLOBAL
;
244 typedef HANDLE HLOCAL
;
245 typedef HANDLE GLOBALHANDLE
;
246 typedef HANDLE LOCALHANDLE
;
248 typedef INT_PTR (WINAPI
*FARPROC
)();
249 typedef INT_PTR (WINAPI
*NEARPROC
)();
250 typedef INT_PTR (WINAPI
*PROC
)();
252 typedef void *HGDIOBJ
;
254 DECLARE_HANDLE(HKEY
);
257 DECLARE_HANDLE(HACCEL
);
258 DECLARE_HANDLE(HBITMAP
);
259 DECLARE_HANDLE(HBRUSH
);
260 DECLARE_HANDLE(HCOLORSPACE
);
262 DECLARE_HANDLE(HGLRC
);
263 DECLARE_HANDLE(HDESK
);
264 DECLARE_HANDLE(HENHMETAFILE
);
265 DECLARE_HANDLE(HFONT
);
266 DECLARE_HANDLE(HICON
);
267 DECLARE_HANDLE(HMENU
);
268 DECLARE_HANDLE(HMETAFILE
);
269 DECLARE_HANDLE(HINSTANCE
);
270 typedef HINSTANCE HMODULE
;
271 DECLARE_HANDLE(HPALETTE
);
272 DECLARE_HANDLE(HPEN
);
273 DECLARE_HANDLE(HRGN
);
274 DECLARE_HANDLE(HRSRC
);
275 DECLARE_HANDLE(HSTR
);
276 DECLARE_HANDLE(HTASK
);
277 DECLARE_HANDLE(HWINSTA
);
279 DECLARE_HANDLE(HMONITOR
);
280 DECLARE_HANDLE(HWINEVENTHOOK
);
281 DECLARE_HANDLE(HUMPD
);
284 typedef HICON HCURSOR
;
285 typedef DWORD COLORREF
;
286 typedef DWORD
*LPCOLORREF
;
288 #define HFILE_ERROR ((HFILE)-1)
290 typedef struct tagRECT
{
295 } RECT
,*PRECT
,*NPRECT
,*LPRECT
;
297 typedef const RECT
*LPCRECT
;
299 typedef struct _RECTL
{
304 } RECTL
,*PRECTL
,*LPRECTL
;
306 typedef const RECTL
*LPCRECTL
;
308 typedef struct tagPOINT
{
311 } POINT
,*PPOINT
,*NPPOINT
,*LPPOINT
;
313 typedef struct _POINTL
{
318 typedef struct tagSIZE
{
321 } SIZE
,*PSIZE
,*LPSIZE
;
324 typedef SIZE
*PSIZEL
,*LPSIZEL
;
326 typedef struct tagPOINTS
{
329 } POINTS
,*PPOINTS
,*LPPOINTS
;
331 typedef struct _FILETIME
{
333 DWORD dwHighDateTime
;
334 } FILETIME
,*PFILETIME
,*LPFILETIME
;
342 #define DM_IN_BUFFER DM_MODIFY
343 #define DM_IN_PROMPT DM_PROMPT
344 #define DM_OUT_BUFFER DM_COPY
345 #define DM_OUT_DEFAULT DM_UPDATE
349 #define DC_PAPERSIZE 3
350 #define DC_MINEXTENT 4
351 #define DC_MAXEXTENT 5
356 #define DC_VERSION 10
358 #define DC_BINNAMES 12
359 #define DC_ENUMRESOLUTIONS 13
360 #define DC_FILEDEPENDENCIES 14
361 #define DC_TRUETYPE 15
362 #define DC_PAPERNAMES 16
363 #define DC_ORIENTATION 17
366 /* needed by header files generated by WIDL */
368 #define WINE_NO_UNICODE_MACROS
371 #ifdef WINE_NO_UNICODE_MACROS
372 # define WINELIB_NAME_AW(func) \
373 func##_must_be_suffixed_with_W_or_A_in_this_context \
374 func##_must_be_suffixed_with_W_or_A_in_this_context
375 #else /* WINE_NO_UNICODE_MACROS */
377 # define WINELIB_NAME_AW(func) func##W
379 # define WINELIB_NAME_AW(func) func##A
381 #endif /* WINE_NO_UNICODE_MACROS */
383 #ifdef WINE_NO_UNICODE_MACROS
384 # define DECL_WINELIB_TYPE_AW(type) /* nothing */
386 # define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
400 #define PACKED __attribute__((packed))
402 //#define _fastcall __attribute__((fastcall))
405 //#define __fastcall __attribute__((fastcall))
408 //#define _stdcall __attribute__((stdcall))
411 //#define __stdcall __attribute__((stdcall))
414 //#define _cdecl __attribute__((cdecl))
417 //#define __cdecl __attribute__((cdecl))
420 #define __declspec(e) __attribute__((e))
423 #define _declspec(e) __attribute__((e))
425 #elif defined(__WATCOMC__)
434 #if 1 // needed by shlwapi.h
436 # if defined(__x86_64__) && defined (__GNUC__)
437 # define __ms_va_list __builtin_ms_va_list
438 # define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg)
439 # define __ms_va_end(list) __builtin_ms_va_end(list)
441 # define __ms_va_list va_list
442 # define __ms_va_start(list,arg) va_start(list,arg)
443 # define __ms_va_end(list) va_end(list)
456 #endif /* _WINDEF_ */