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.PD within this package. 5 */ 6 #ifndef _WINDEF_ 7 #define _WINDEF_ 8 #pragma once 9 10 #define _WINDEF_H // wine ... 11 12 #ifdef _MSC_VER 13 #pragma warning(push) 14 #pragma warning(disable:4255) 15 #endif 16 17 #if defined(__LP64__) || (!defined(_M_AMD64) && defined(__WINESRC__)) 18 #if !defined(__ROS_LONG64__) 19 #define __ROS_LONG64__ 20 #endif 21 #endif 22 23 #ifndef NO_STRICT 24 #ifndef STRICT 25 #define STRICT 1 26 #endif 27 #endif 28 29 #ifndef WIN32 30 #define WIN32 31 #endif 32 33 #if defined(_MAC) && !defined(_WIN32) 34 #define _WIN32 35 #endif 36 37 #ifdef __cplusplus 38 extern "C" { 39 #endif 40 41 #ifndef WINVER 42 #define WINVER 0x0502 43 #endif 44 45 #ifndef BASETYPES 46 #define BASETYPES 47 #ifndef __ROS_LONG64__ 48 typedef unsigned long ULONG; 49 #else 50 typedef unsigned int ULONG; 51 #endif 52 typedef ULONG *PULONG; 53 typedef unsigned short USHORT; 54 typedef USHORT *PUSHORT; 55 typedef unsigned char UCHAR; 56 typedef UCHAR *PUCHAR; 57 typedef char *PSZ; 58 typedef int INT; 59 #endif /* BASETYPES */ 60 61 #undef MAX_PATH 62 #define MAX_PATH 260 63 64 #ifndef NULL 65 #ifdef __cplusplus 66 #ifndef _WIN64 67 #define NULL 0 68 #else 69 #define NULL 0LL 70 #endif /* W64 */ 71 #else 72 #define NULL ((void *)0) 73 #endif 74 #endif 75 76 #ifndef FALSE 77 #define FALSE 0 78 #endif 79 80 #ifndef TRUE 81 #define TRUE 1 82 #endif 83 84 #ifndef _NO_W32_PSEUDO_MODIFIERS 85 #ifndef IN 86 #define IN 87 #endif 88 #ifndef OUT 89 #define OUT 90 #endif 91 #ifndef OPTIONAL 92 #define OPTIONAL 93 #endif 94 #endif 95 96 #ifdef __GNUC__ 97 #define PACKED __attribute__((packed)) 98 #ifndef __declspec 99 #define __declspec(e) __attribute__((e)) 100 #endif 101 #ifndef _declspec 102 #define _declspec(e) __attribute__((e)) 103 #endif 104 #elif defined(__WATCOMC__) 105 #define PACKED 106 #else 107 #define PACKED 108 #endif 109 110 #undef far 111 #undef near 112 #undef pascal 113 114 #define far 115 #define near 116 #define pascal __stdcall 117 118 #define cdecl 119 #ifndef CDECL 120 #define CDECL 121 #endif 122 123 #if !defined(__x86_64__) //defined(_STDCALL_SUPPORTED) 124 #ifndef CALLBACK 125 #define CALLBACK __stdcall 126 #endif 127 #ifndef WINAPI 128 #define WINAPI __stdcall 129 #endif 130 #define WINAPIV __cdecl 131 #define APIENTRY WINAPI 132 #define APIPRIVATE WINAPI 133 #define PASCAL WINAPI 134 #else 135 #define CALLBACK 136 #define WINAPI 137 #define WINAPIV 138 #define APIENTRY WINAPI 139 #define APIPRIVATE 140 #define PASCAL pascal 141 #endif 142 143 #undef FAR 144 #undef NEAR 145 #define FAR 146 #define NEAR 147 148 #ifndef CONST 149 #define CONST const 150 #endif 151 152 #ifndef _DEF_WINBOOL_ 153 #define _DEF_WINBOOL_ 154 typedef int WINBOOL; 155 #pragma push_macro("BOOL") 156 #undef BOOL 157 #if !defined(__OBJC__) && !defined(__OBJC_BOOL) && !defined(__objc_INCLUDE_GNU) 158 typedef int BOOL; 159 #endif 160 #define BOOL WINBOOL 161 typedef BOOL *PBOOL; 162 typedef BOOL *LPBOOL; 163 #pragma pop_macro("BOOL") 164 #endif /* _DEF_WINBOOL_ */ 165 166 typedef unsigned char BYTE; 167 typedef unsigned short WORD; 168 #ifndef __ROS_LONG64__ 169 typedef unsigned long DWORD; 170 #else 171 typedef unsigned int DWORD; 172 #endif 173 typedef float FLOAT; 174 typedef FLOAT *PFLOAT; 175 typedef BYTE *PBYTE; 176 typedef BYTE *LPBYTE; 177 typedef int *PINT; 178 typedef int *LPINT; 179 typedef WORD *PWORD; 180 typedef WORD *LPWORD; 181 #ifndef __ROS_LONG64__ 182 typedef long *LPLONG; 183 #else 184 typedef int *LPLONG; 185 #endif 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; 192 #endif 193 //typedef int INT; 194 typedef unsigned int UINT; 195 typedef unsigned int *PUINT; 196 typedef unsigned int *LPUINT; 197 198 199 200 201 #ifndef NT_INCLUDED 202 #include <winnt.h> 203 #endif 204 205 //#include <specstrings.h> 206 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 213 #endif 214 215 #ifndef NOMINMAX 216 #ifndef max 217 #define max(a, b) (((a) > (b)) ? (a) : (b)) 218 #endif 219 #ifndef min 220 #define min(a, b) (((a) < (b)) ? (a) : (b)) 221 #endif 222 #endif 223 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)) 230 231 #ifndef WIN_INTERNAL 232 DECLARE_HANDLE (HWND); 233 //DECLARE_HANDLE (HHOOK); 234 #ifdef WINABLE 235 DECLARE_HANDLE (HEVENT); 236 #endif 237 #endif 238 239 typedef WORD ATOM; 240 241 typedef HANDLE *SPHANDLE; 242 typedef HANDLE *LPHANDLE; 243 typedef HANDLE HGLOBAL; 244 typedef HANDLE HLOCAL; 245 typedef HANDLE GLOBALHANDLE; 246 typedef HANDLE LOCALHANDLE; 247 248 typedef INT_PTR (WINAPI *FARPROC)(); 249 typedef INT_PTR (WINAPI *NEARPROC)(); 250 typedef INT_PTR (WINAPI *PROC)(); 251 252 typedef void *HGDIOBJ; 253 254 DECLARE_HANDLE(HKEY); 255 typedef HKEY *PHKEY; 256 257 DECLARE_HANDLE(HACCEL); 258 DECLARE_HANDLE(HBITMAP); 259 DECLARE_HANDLE(HBRUSH); 260 DECLARE_HANDLE(HCOLORSPACE); 261 DECLARE_HANDLE(HDC); 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); 278 DECLARE_HANDLE(HKL); 279 DECLARE_HANDLE(HMONITOR); 280 DECLARE_HANDLE(HWINEVENTHOOK); 281 DECLARE_HANDLE(HUMPD); 282 283 typedef int HFILE; 284 typedef HICON HCURSOR; 285 typedef DWORD COLORREF; 286 typedef DWORD *LPCOLORREF; 287 288 #define HFILE_ERROR ((HFILE)-1) 289 290 typedef struct tagRECT { 291 LONG left; 292 LONG top; 293 LONG right; 294 LONG bottom; 295 } RECT,*PRECT,*NPRECT,*LPRECT; 296 297 typedef const RECT *LPCRECT; 298 299 typedef struct _RECTL { 300 LONG left; 301 LONG top; 302 LONG right; 303 LONG bottom; 304 } RECTL,*PRECTL,*LPRECTL; 305 306 typedef const RECTL *LPCRECTL; 307 308 typedef struct tagPOINT { 309 LONG x; 310 LONG y; 311 } POINT,*PPOINT,*NPPOINT,*LPPOINT; 312 313 typedef struct _POINTL { 314 LONG x; 315 LONG y; 316 } POINTL,*PPOINTL; 317 318 typedef struct tagSIZE { 319 LONG cx; 320 LONG cy; 321 } SIZE,*PSIZE,*LPSIZE; 322 323 typedef SIZE SIZEL; 324 typedef SIZE *PSIZEL,*LPSIZEL; 325 326 typedef struct tagPOINTS { 327 SHORT x; 328 SHORT y; 329 } POINTS,*PPOINTS,*LPPOINTS; 330 331 typedef struct _FILETIME { 332 DWORD dwLowDateTime; 333 DWORD dwHighDateTime; 334 } FILETIME,*PFILETIME,*LPFILETIME; 335 #define _FILETIME_ 336 337 #define DM_UPDATE 1 338 #define DM_COPY 2 339 #define DM_PROMPT 4 340 #define DM_MODIFY 8 341 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 346 347 #define DC_FIELDS 1 348 #define DC_PAPERS 2 349 #define DC_PAPERSIZE 3 350 #define DC_MINEXTENT 4 351 #define DC_MAXEXTENT 5 352 #define DC_BINS 6 353 #define DC_DUPLEX 7 354 #define DC_SIZE 8 355 #define DC_EXTRA 9 356 #define DC_VERSION 10 357 #define DC_DRIVER 11 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 364 #define DC_COPIES 18 365 366 /* needed by header files generated by WIDL */ 367 #ifdef __WINESRC__ 368 #define WINE_NO_UNICODE_MACROS 369 #endif 370 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 */ 376 # ifdef UNICODE 377 # define WINELIB_NAME_AW(func) func##W 378 # else 379 # define WINELIB_NAME_AW(func) func##A 380 # endif 381 #endif /* WINE_NO_UNICODE_MACROS */ 382 383 #ifdef WINE_NO_UNICODE_MACROS 384 # define DECL_WINELIB_TYPE_AW(type) /* nothing */ 385 #else 386 # define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type; 387 #endif 388 389 #ifndef __WATCOMC__ 390 #ifndef _export 391 #define _export 392 #endif 393 #ifndef __export 394 #define __export 395 #endif 396 #endif 397 398 #if 0 399 #ifdef __GNUC__ 400 #define PACKED __attribute__((packed)) 401 //#ifndef _fastcall 402 //#define _fastcall __attribute__((fastcall)) 403 //#endif 404 //#ifndef __fastcall 405 //#define __fastcall __attribute__((fastcall)) 406 //#endif 407 //#ifndef _stdcall 408 //#define _stdcall __attribute__((stdcall)) 409 //#endif 410 //#ifndef __stdcall 411 //#define __stdcall __attribute__((stdcall)) 412 //#endif 413 //#ifndef _cdecl 414 //#define _cdecl __attribute__((cdecl)) 415 //#endif 416 //#ifndef __cdecl 417 //#define __cdecl __attribute__((cdecl)) 418 //#endif 419 #ifndef __declspec 420 #define __declspec(e) __attribute__((e)) 421 #endif 422 #ifndef _declspec 423 #define _declspec(e) __attribute__((e)) 424 #endif 425 #elif defined(__WATCOMC__) 426 #define PACKED 427 #else 428 #define PACKED 429 #define _cdecl 430 #define __cdecl 431 #endif 432 #endif 433 434 #if 1 // needed by shlwapi.h 435 #ifndef __ms_va_list 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) 440 # else 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) 444 # endif 445 #endif 446 #endif 447 448 #ifdef _MSC_VER 449 #pragma warning(pop) 450 #endif 451 452 #ifdef __cplusplus 453 } 454 #endif 455 456 #endif /* _WINDEF_ */ 457 458