holdingarea/llvm/llvm-gcc4.2-2.7-x86-mingw32/include/windef.h
branchbug235_bringup_0
changeset 20 d2d6724aef32
equal deleted inserted replaced
19:da7c1a80df0d 20:d2d6724aef32
       
     1 #ifndef _WINDEF_H
       
     2 #define _WINDEF_H
       
     3 #if __GNUC__ >=3
       
     4 #pragma GCC system_header
       
     5 #endif
       
     6 
       
     7 #ifdef __cplusplus
       
     8 extern "C" {
       
     9 #endif
       
    10 
       
    11 #ifndef WINVER
       
    12 #define WINVER 0x0400
       
    13 /*
       
    14  * If you need Win32 API features newer the Win95 and WinNT then you must
       
    15  * define WINVER before including windows.h or any other method of including
       
    16  * the windef.h header.
       
    17  */
       
    18 #endif
       
    19 #ifndef _WIN32_WINNT
       
    20 #define _WIN32_WINNT WINVER
       
    21 /*
       
    22  * There may be the need to define _WIN32_WINNT to a value different from
       
    23  * the value of WINVER.  I don't have any example of why you would do that.
       
    24  * However, if you must then define _WIN32_WINNT to the value required before
       
    25  * including windows.h or any other method of including the windef.h header.
       
    26  */
       
    27 #endif
       
    28 #ifndef WIN32
       
    29 #define WIN32
       
    30 #endif
       
    31 #ifndef _WIN32
       
    32 #define _WIN32
       
    33 #endif
       
    34 #define FAR
       
    35 #define far
       
    36 #define NEAR
       
    37 #define near
       
    38 #ifndef CONST
       
    39 #define CONST const
       
    40 #endif
       
    41 #undef MAX_PATH
       
    42 #define MAX_PATH 260
       
    43 
       
    44 #ifndef NULL
       
    45 #ifdef __cplusplus
       
    46 #define NULL 0
       
    47 #else
       
    48 #define NULL ((void*)0)
       
    49 #endif
       
    50 #endif
       
    51 #ifndef FALSE
       
    52 #define FALSE 0
       
    53 #endif
       
    54 #ifndef TRUE
       
    55 #define TRUE 1
       
    56 #endif
       
    57 
       
    58 /* Pseudo modifiers for parameters 
       
    59    We don't use these unnecessary defines in the w32api headers. Define
       
    60    them by default since that is what people expect, but allow users
       
    61    to avoid the pollution.  */
       
    62 #ifndef _NO_W32_PSEUDO_MODIFIERS
       
    63 #define IN
       
    64 #define OUT
       
    65 #ifndef OPTIONAL
       
    66 #define OPTIONAL
       
    67 #endif
       
    68 #endif
       
    69 
       
    70 #ifdef __GNUC__
       
    71 #define PACKED __attribute__((packed))
       
    72 #ifndef _fastcall
       
    73 #define _fastcall __attribute__((fastcall))
       
    74 #endif
       
    75 #ifndef __fastcall
       
    76 #define __fastcall __attribute__((fastcall))
       
    77 #endif
       
    78 #ifndef _stdcall
       
    79 #define _stdcall __attribute__((stdcall))
       
    80 #endif
       
    81 #ifndef __stdcall
       
    82 #define __stdcall __attribute__((stdcall))
       
    83 #endif
       
    84 #ifndef _cdecl
       
    85 #define _cdecl __attribute__((cdecl))
       
    86 #endif
       
    87 #ifndef __cdecl
       
    88 #define __cdecl __attribute__((cdecl))
       
    89 #endif
       
    90 #ifndef __declspec
       
    91 #define __declspec(e) __attribute__((e))
       
    92 #endif
       
    93 #ifndef _declspec
       
    94 #define _declspec(e) __attribute__((e))
       
    95 #endif
       
    96 #elif defined(__WATCOMC__)
       
    97 #define PACKED
       
    98 #else
       
    99 #define PACKED
       
   100 #define _cdecl
       
   101 #define __cdecl
       
   102 #endif
       
   103 
       
   104 #undef pascal
       
   105 #undef _pascal
       
   106 #undef __pascal
       
   107 #define pascal __stdcall
       
   108 #define _pascal __stdcall
       
   109 #define __pascal __stdcall
       
   110 #define PASCAL _pascal
       
   111 #define CDECL _cdecl
       
   112 #define STDCALL __stdcall
       
   113 #define FASTCALL __fastcall
       
   114 #define WINAPI __stdcall
       
   115 #define WINAPIV __cdecl
       
   116 #define APIENTRY __stdcall
       
   117 #define CALLBACK __stdcall
       
   118 #define APIPRIVATE __stdcall
       
   119 
       
   120 #define DECLSPEC_IMPORT __declspec(dllimport)
       
   121 #define DECLSPEC_EXPORT __declspec(dllexport)
       
   122 #ifdef __GNUC__
       
   123 #define DECLSPEC_NORETURN __declspec(noreturn)
       
   124 #define DECLARE_STDCALL_P( type ) __stdcall type
       
   125 #elif defined(__WATCOMC__)
       
   126 #define DECLSPEC_NORETURN
       
   127 #define DECLARE_STDCALL_P( type ) type __stdcall
       
   128 #endif /* __GNUC__/__WATCOMC__ */
       
   129 #define MAKEWORD(a,b)	((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8)))
       
   130 #define MAKELONG(a,b)	((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
       
   131 #define LOWORD(l)	((WORD)((DWORD)(l)))
       
   132 #define HIWORD(l)	((WORD)(((DWORD)(l)>>16)&0xFFFF))
       
   133 #define LOBYTE(w)	((BYTE)(w))
       
   134 #define HIBYTE(w)	((BYTE)(((WORD)(w)>>8)&0xFF))
       
   135 
       
   136 #ifndef __WATCOMC__
       
   137 #ifndef _export
       
   138 #define _export
       
   139 #endif
       
   140 #ifndef __export
       
   141 #define __export
       
   142 #endif
       
   143 #endif
       
   144 
       
   145 #ifndef NOMINMAX
       
   146 #ifndef max
       
   147 #define max(a,b) ((a)>(b)?(a):(b))
       
   148 #endif
       
   149 #ifndef min
       
   150 #define min(a,b) ((a)<(b)?(a):(b))
       
   151 #endif
       
   152 #endif
       
   153 
       
   154 #define UNREFERENCED_PARAMETER(P) {(P)=(P);}
       
   155 #define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
       
   156 #define DBG_UNREFERENCED_PARAMETER(P)
       
   157 #define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
       
   158 
       
   159 #ifndef NONAMELESSUNION
       
   160 #ifdef __GNUC__
       
   161 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) 
       
   162 #define _ANONYMOUS_UNION __extension__
       
   163 #define _ANONYMOUS_STRUCT __extension__
       
   164 #else
       
   165 #if defined(__cplusplus)
       
   166 #define _ANONYMOUS_UNION __extension__
       
   167 #endif /* __cplusplus */
       
   168 #endif /* __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) */
       
   169 #elif defined(__WATCOMC__)
       
   170 #define _ANONYMOUS_UNION
       
   171 #define _ANONYMOUS_STRUCT
       
   172 #endif /* __GNUC__/__WATCOMC__ */
       
   173 #endif /* NONAMELESSUNION */
       
   174 
       
   175 #ifndef _ANONYMOUS_UNION
       
   176 #define _ANONYMOUS_UNION
       
   177 #define _UNION_NAME(x) x
       
   178 #define DUMMYUNIONNAME	u
       
   179 #define DUMMYUNIONNAME2	u2
       
   180 #define DUMMYUNIONNAME3	u3
       
   181 #define DUMMYUNIONNAME4	u4
       
   182 #define DUMMYUNIONNAME5	u5
       
   183 #define DUMMYUNIONNAME6	u6
       
   184 #define DUMMYUNIONNAME7	u7
       
   185 #define DUMMYUNIONNAME8	u8
       
   186 #else
       
   187 #define _UNION_NAME(x)
       
   188 #define DUMMYUNIONNAME
       
   189 #define DUMMYUNIONNAME2
       
   190 #define DUMMYUNIONNAME3
       
   191 #define DUMMYUNIONNAME4
       
   192 #define DUMMYUNIONNAME5
       
   193 #define DUMMYUNIONNAME6
       
   194 #define DUMMYUNIONNAME7
       
   195 #define DUMMYUNIONNAME8
       
   196 #endif
       
   197 #ifndef _ANONYMOUS_STRUCT
       
   198 #define _ANONYMOUS_STRUCT
       
   199 #define _STRUCT_NAME(x) x
       
   200 #define DUMMYSTRUCTNAME	s
       
   201 #define DUMMYSTRUCTNAME2 s2
       
   202 #define DUMMYSTRUCTNAME3 s3
       
   203 #else
       
   204 #define _STRUCT_NAME(x)
       
   205 #define DUMMYSTRUCTNAME
       
   206 #define DUMMYSTRUCTNAME2
       
   207 #define DUMMYSTRUCTNAME3
       
   208 #endif
       
   209 
       
   210 #ifndef NO_STRICT
       
   211 #ifndef STRICT
       
   212 #define STRICT 1
       
   213 #endif
       
   214 #endif
       
   215 
       
   216 /* FIXME: This will make some code compile. The programs will most
       
   217    likely crash when an exception is raised, but at least they will
       
   218    compile. */
       
   219 #if defined (__GNUC__) && defined (__SEH_NOOP)
       
   220 #define __try
       
   221 #define __except(x) if (0) /* don't execute handler */
       
   222 #define __finally
       
   223 
       
   224 #define _try __try
       
   225 #define _except __except
       
   226 #define _finally __finally
       
   227 #endif
       
   228 
       
   229 typedef unsigned long DWORD;
       
   230 typedef int WINBOOL,*PWINBOOL,*LPWINBOOL;
       
   231 /* FIXME: Is there a good solution to this? */
       
   232 #ifndef XFree86Server
       
   233 #ifndef __OBJC__
       
   234 typedef WINBOOL BOOL;
       
   235 #else
       
   236 #define BOOL WINBOOL
       
   237 #endif
       
   238 typedef unsigned char BYTE;
       
   239 #endif /* ndef XFree86Server */
       
   240 typedef BOOL *PBOOL,*LPBOOL;
       
   241 typedef unsigned short WORD;
       
   242 typedef float FLOAT;
       
   243 typedef FLOAT *PFLOAT;
       
   244 typedef BYTE *PBYTE,*LPBYTE;
       
   245 typedef int *PINT,*LPINT;
       
   246 typedef WORD *PWORD,*LPWORD;
       
   247 typedef long *LPLONG;
       
   248 typedef DWORD *PDWORD,*LPDWORD;
       
   249 typedef CONST void *PCVOID,*LPCVOID;
       
   250 typedef int INT;
       
   251 typedef unsigned int UINT,*PUINT,*LPUINT;
       
   252 
       
   253 #include <winnt.h>
       
   254 
       
   255 typedef UINT_PTR WPARAM;
       
   256 typedef LONG_PTR LPARAM;
       
   257 typedef LONG_PTR LRESULT;
       
   258 #ifndef _HRESULT_DEFINED
       
   259 typedef LONG HRESULT;
       
   260 #define _HRESULT_DEFINED
       
   261 #endif
       
   262 #ifndef XFree86Server
       
   263 typedef WORD ATOM;
       
   264 #endif /* XFree86Server */
       
   265 typedef HANDLE HGLOBAL;
       
   266 typedef HANDLE HLOCAL;
       
   267 typedef HANDLE GLOBALHANDLE;
       
   268 typedef HANDLE LOCALHANDLE;
       
   269 typedef void *HGDIOBJ;
       
   270 DECLARE_HANDLE(HACCEL);
       
   271 DECLARE_HANDLE(HBITMAP);
       
   272 DECLARE_HANDLE(HBRUSH);
       
   273 DECLARE_HANDLE(HCOLORSPACE);
       
   274 DECLARE_HANDLE(HDC);
       
   275 DECLARE_HANDLE(HGLRC);
       
   276 DECLARE_HANDLE(HDESK);
       
   277 DECLARE_HANDLE(HENHMETAFILE);
       
   278 DECLARE_HANDLE(HFONT);
       
   279 DECLARE_HANDLE(HICON);
       
   280 DECLARE_HANDLE(HKEY);
       
   281 /* FIXME: How to handle these. SM_CMONITORS etc in winuser.h also. */
       
   282 DECLARE_HANDLE(HMONITOR);
       
   283 #define HMONITOR_DECLARED 1
       
   284 DECLARE_HANDLE(HTERMINAL);
       
   285 DECLARE_HANDLE(HWINEVENTHOOK);
       
   286 
       
   287 typedef HKEY *PHKEY;
       
   288 DECLARE_HANDLE(HMENU);
       
   289 DECLARE_HANDLE(HMETAFILE);
       
   290 DECLARE_HANDLE(HINSTANCE);
       
   291 typedef HINSTANCE HMODULE;
       
   292 DECLARE_HANDLE(HPALETTE);
       
   293 DECLARE_HANDLE(HPEN);
       
   294 DECLARE_HANDLE(HRGN);
       
   295 DECLARE_HANDLE(HRSRC);
       
   296 DECLARE_HANDLE(HSTR);
       
   297 DECLARE_HANDLE(HTASK);
       
   298 DECLARE_HANDLE(HWND);
       
   299 DECLARE_HANDLE(HWINSTA);
       
   300 DECLARE_HANDLE(HKL);
       
   301 typedef int HFILE;
       
   302 typedef HICON HCURSOR;
       
   303 typedef DWORD COLORREF;
       
   304 typedef int (WINAPI *FARPROC)();
       
   305 typedef int (WINAPI *NEARPROC)();
       
   306 typedef int (WINAPI *PROC)();
       
   307 typedef struct tagRECT {
       
   308 	LONG left;
       
   309 	LONG top;
       
   310 	LONG right;
       
   311 	LONG bottom;
       
   312 } RECT,*PRECT,*LPRECT;
       
   313 typedef const RECT *LPCRECT;
       
   314 typedef struct tagRECTL {
       
   315 	LONG left;
       
   316 	LONG top;
       
   317 	LONG right;
       
   318 	LONG bottom;
       
   319 } RECTL,*PRECTL,*LPRECTL;
       
   320 typedef const RECTL *LPCRECTL;
       
   321 typedef struct tagPOINT {
       
   322 	LONG x;
       
   323 	LONG y;
       
   324 } POINT,POINTL,*PPOINT,*LPPOINT,*PPOINTL,*LPPOINTL;
       
   325 typedef struct tagSIZE {
       
   326 	LONG cx;
       
   327 	LONG cy;
       
   328 } SIZE,SIZEL,*PSIZE,*LPSIZE,*PSIZEL,*LPSIZEL;
       
   329 typedef struct tagPOINTS {
       
   330 	SHORT x;
       
   331 	SHORT y;
       
   332 } POINTS,*PPOINTS,*LPPOINTS;
       
   333 
       
   334 #ifdef __cplusplus
       
   335 }
       
   336 #endif
       
   337 #endif