source: vendor/w32api/current/include/windef.h

Last change on this file was 2720, checked in by bird, 19 years ago

w32api v3.6

File size: 7.3 KB
Line 
1#ifndef _WINDEF_H
2#define _WINDEF_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "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#define IN
58#define OUT
59#ifndef OPTIONAL
60#define OPTIONAL
61#endif
62
63#ifdef __GNUC__
64#define PACKED __attribute__((packed))
65#ifndef _fastcall
66#define _fastcall __attribute__((fastcall))
67#endif
68#ifndef __fastcall
69#define __fastcall __attribute__((fastcall))
70#endif
71#ifndef _stdcall
72#define _stdcall __attribute__((stdcall))
73#endif
74#ifndef __stdcall
75#define __stdcall __attribute__((stdcall))
76#endif
77#ifndef _cdecl
78#define _cdecl __attribute__((cdecl))
79#endif
80#ifndef __cdecl
81#define __cdecl __attribute__((cdecl))
82#endif
83#ifndef __declspec
84#define __declspec(e) __attribute__((e))
85#endif
86#ifndef _declspec
87#define _declspec(e) __attribute__((e))
88#endif
89#elif defined(__WATCOMC__)
90#define PACKED
91#else
92#define PACKED
93#define _cdecl
94#define __cdecl
95#endif
96
97#undef pascal
98#undef _pascal
99#undef __pascal
100#define pascal __stdcall
101#define _pascal __stdcall
102#define __pascal __stdcall
103#define PASCAL _pascal
104#define CDECL _cdecl
105#define STDCALL __stdcall
106#define FASTCALL __fastcall
107#define WINAPI __stdcall
108#define WINAPIV __cdecl
109#define APIENTRY __stdcall
110#define CALLBACK __stdcall
111#define APIPRIVATE __stdcall
112
113#define DECLSPEC_IMPORT __declspec(dllimport)
114#define DECLSPEC_EXPORT __declspec(dllexport)
115#ifdef __GNUC__
116#define DECLSPEC_NORETURN __declspec(noreturn)
117#define DECLARE_STDCALL_P( type ) __stdcall type
118#elif defined(__WATCOMC__)
119#define DECLSPEC_NORETURN
120#define DECLARE_STDCALL_P( type ) type __stdcall
121#endif /* __GNUC__/__WATCOMC__ */
122#define MAKEWORD(a,b) ((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8)))
123#define MAKELONG(a,b) ((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
124#define LOWORD(l) ((WORD)((DWORD)(l)))
125#define HIWORD(l) ((WORD)(((DWORD)(l)>>16)&0xFFFF))
126#define LOBYTE(w) ((BYTE)(w))
127#define HIBYTE(w) ((BYTE)(((WORD)(w)>>8)&0xFF))
128
129#ifndef __WATCOMC__
130#ifndef _export
131#define _export
132#endif
133#ifndef __export
134#define __export
135#endif
136#endif
137
138#ifndef NOMINMAX
139#ifndef max
140#define max(a,b) ((a)>(b)?(a):(b))
141#endif
142#ifndef min
143#define min(a,b) ((a)<(b)?(a):(b))
144#endif
145#endif
146
147#define UNREFERENCED_PARAMETER(P) {(P)=(P);}
148#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
149#define DBG_UNREFERENCED_PARAMETER(P)
150#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
151
152#ifdef __GNUC__
153#ifndef NONAMELESSUNION
154#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
155#define _ANONYMOUS_UNION __extension__
156#define _ANONYMOUS_STRUCT __extension__
157#else
158#if defined(__cplusplus)
159#define _ANONYMOUS_UNION __extension__
160#endif /* __cplusplus */
161#endif /* __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) */
162#endif /* NONAMELESSUNION */
163#elif defined(__WATCOMC__)
164#define _ANONYMOUS_UNION
165#define _ANONYMOUS_STRUCT
166#endif /* __GNUC__/__WATCOMC__ */
167
168#ifndef _ANONYMOUS_UNION
169#define _ANONYMOUS_UNION
170#define _UNION_NAME(x) x
171#define DUMMYUNIONNAME u
172#define DUMMYUNIONNAME2 u2
173#define DUMMYUNIONNAME3 u3
174#define DUMMYUNIONNAME4 u4
175#define DUMMYUNIONNAME5 u5
176#define DUMMYUNIONNAME6 u6
177#define DUMMYUNIONNAME7 u7
178#define DUMMYUNIONNAME8 u8
179#else
180#define _UNION_NAME(x)
181#define DUMMYUNIONNAME
182#define DUMMYUNIONNAME2
183#define DUMMYUNIONNAME3
184#define DUMMYUNIONNAME4
185#define DUMMYUNIONNAME5
186#define DUMMYUNIONNAME6
187#define DUMMYUNIONNAME7
188#define DUMMYUNIONNAME8
189#endif
190#ifndef _ANONYMOUS_STRUCT
191#define _ANONYMOUS_STRUCT
192#define _STRUCT_NAME(x) x
193#define DUMMYSTRUCTNAME s
194#define DUMMYSTRUCTNAME2 s2
195#define DUMMYSTRUCTNAME3 s3
196#else
197#define _STRUCT_NAME(x)
198#define DUMMYSTRUCTNAME
199#define DUMMYSTRUCTNAME2
200#define DUMMYSTRUCTNAME3
201#endif
202
203#ifndef NO_STRICT
204#ifndef STRICT
205#define STRICT 1
206#endif
207#endif
208
209/* FIXME: This will make some code compile. The programs will most
210 likely crash when an exception is raised, but at least they will
211 compile. */
212#if defined (__GNUC__) && defined (__SEH_NOOP)
213#define __try
214#define __except(x) if (0) /* don't execute handler */
215#define __finally
216
217#define _try __try
218#define _except __except
219#define _finally __finally
220#endif
221
222typedef unsigned long DWORD;
223typedef int WINBOOL,*PWINBOOL,*LPWINBOOL;
224/* FIXME: Is there a good solution to this? */
225#ifndef XFree86Server
226#ifndef __OBJC__
227typedef WINBOOL BOOL;
228#else
229#define BOOL WINBOOL
230#endif
231typedef unsigned char BYTE;
232#endif /* ndef XFree86Server */
233typedef BOOL *PBOOL,*LPBOOL;
234typedef unsigned short WORD;
235typedef float FLOAT;
236typedef FLOAT *PFLOAT;
237typedef BYTE *PBYTE,*LPBYTE;
238typedef int *PINT,*LPINT;
239typedef WORD *PWORD,*LPWORD;
240typedef long *LPLONG;
241typedef DWORD *PDWORD,*LPDWORD;
242typedef CONST void *PCVOID,*LPCVOID;
243typedef int INT;
244typedef unsigned int UINT,*PUINT,*LPUINT;
245
246#include <winnt.h>
247
248typedef UINT_PTR WPARAM;
249typedef LONG_PTR LPARAM;
250typedef LONG_PTR LRESULT;
251#ifndef _HRESULT_DEFINED
252typedef LONG HRESULT;
253#define _HRESULT_DEFINED
254#endif
255#ifndef XFree86Server
256typedef WORD ATOM;
257#endif /* XFree86Server */
258typedef HANDLE HGLOBAL;
259typedef HANDLE HLOCAL;
260typedef HANDLE GLOBALHANDLE;
261typedef HANDLE LOCALHANDLE;
262typedef void *HGDIOBJ;
263DECLARE_HANDLE(HACCEL);
264DECLARE_HANDLE(HBITMAP);
265DECLARE_HANDLE(HBRUSH);
266DECLARE_HANDLE(HCOLORSPACE);
267DECLARE_HANDLE(HDC);
268DECLARE_HANDLE(HGLRC);
269DECLARE_HANDLE(HDESK);
270DECLARE_HANDLE(HENHMETAFILE);
271DECLARE_HANDLE(HFONT);
272DECLARE_HANDLE(HICON);
273DECLARE_HANDLE(HKEY);
274/* FIXME: How to handle these. SM_CMONITORS etc in winuser.h also. */
275/* #if (WINVER >= 0x0500) */
276DECLARE_HANDLE(HMONITOR);
277#define HMONITOR_DECLARED 1
278DECLARE_HANDLE(HTERMINAL);
279DECLARE_HANDLE(HWINEVENTHOOK);
280/* #endif */
281typedef HKEY *PHKEY;
282DECLARE_HANDLE(HMENU);
283DECLARE_HANDLE(HMETAFILE);
284DECLARE_HANDLE(HINSTANCE);
285typedef HINSTANCE HMODULE;
286DECLARE_HANDLE(HPALETTE);
287DECLARE_HANDLE(HPEN);
288DECLARE_HANDLE(HRGN);
289DECLARE_HANDLE(HRSRC);
290DECLARE_HANDLE(HSTR);
291DECLARE_HANDLE(HTASK);
292DECLARE_HANDLE(HWND);
293DECLARE_HANDLE(HWINSTA);
294DECLARE_HANDLE(HKL);
295typedef int HFILE;
296typedef HICON HCURSOR;
297typedef DWORD COLORREF;
298typedef int (WINAPI *FARPROC)();
299typedef int (WINAPI *NEARPROC)();
300typedef int (WINAPI *PROC)();
301typedef struct tagRECT {
302 LONG left;
303 LONG top;
304 LONG right;
305 LONG bottom;
306} RECT,*PRECT,*LPRECT;
307typedef const RECT *LPCRECT;
308typedef struct tagRECTL {
309 LONG left;
310 LONG top;
311 LONG right;
312 LONG bottom;
313} RECTL,*PRECTL,*LPRECTL;
314typedef const RECTL *LPCRECTL;
315typedef struct tagPOINT {
316 LONG x;
317 LONG y;
318} POINT,POINTL,*PPOINT,*LPPOINT,*PPOINTL,*LPPOINTL;
319typedef struct tagSIZE {
320 LONG cx;
321 LONG cy;
322} SIZE,SIZEL,*PSIZE,*LPSIZE,*PSIZEL,*LPSIZEL;
323typedef struct tagPOINTS {
324 SHORT x;
325 SHORT y;
326} POINTS,*PPOINTS,*LPPOINTS;
327
328#ifdef __cplusplus
329}
330#endif
331#endif
Note: See TracBrowser for help on using the repository browser.