* include/specstrings.h (IN, OUT, OPTIONAL): Remove. * include/windef.h (IN, OUT, OPTIONAL): Define.
		
			
				
	
	
		
			338 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			338 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _WINDEF_H
 | 
						|
#define _WINDEF_H
 | 
						|
#if __GNUC__ >=3
 | 
						|
#pragma GCC system_header
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef WINVER
 | 
						|
#define WINVER 0x0400
 | 
						|
/*
 | 
						|
 * If you need Win32 API features newer the Win95 and WinNT then you must
 | 
						|
 * define WINVER before including windows.h or any other method of including
 | 
						|
 * the windef.h header.
 | 
						|
 */
 | 
						|
#endif
 | 
						|
#ifndef _WIN32_WINNT
 | 
						|
#define _WIN32_WINNT WINVER
 | 
						|
/*
 | 
						|
 * There may be the need to define _WIN32_WINNT to a value different from
 | 
						|
 * the value of WINVER.  I don't have any example of why you would do that.
 | 
						|
 * However, if you must then define _WIN32_WINNT to the value required before
 | 
						|
 * including windows.h or any other method of including the windef.h header.
 | 
						|
 */
 | 
						|
#endif
 | 
						|
#ifndef WIN32
 | 
						|
#define WIN32
 | 
						|
#endif
 | 
						|
#ifndef _WIN32
 | 
						|
#define _WIN32
 | 
						|
#endif
 | 
						|
#define FAR
 | 
						|
#define far
 | 
						|
#define NEAR
 | 
						|
#define near
 | 
						|
#ifndef CONST
 | 
						|
#define CONST const
 | 
						|
#endif
 | 
						|
#undef MAX_PATH
 | 
						|
#define MAX_PATH 260
 | 
						|
 | 
						|
#ifndef NULL
 | 
						|
#ifdef __cplusplus
 | 
						|
#define NULL 0
 | 
						|
#else
 | 
						|
#define NULL ((void*)0)
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
#ifndef FALSE
 | 
						|
#define FALSE 0
 | 
						|
#endif
 | 
						|
#ifndef TRUE
 | 
						|
#define TRUE 1
 | 
						|
#endif
 | 
						|
 | 
						|
/* Pseudo modifiers for parameters
 | 
						|
   We don't use these unnecessary defines in the w32api headers. Define
 | 
						|
   them by default since that is what people expect, but allow users
 | 
						|
   to avoid the pollution.  */
 | 
						|
#ifndef _NO_W32_PSEUDO_MODIFIERS
 | 
						|
#define IN
 | 
						|
#define OUT
 | 
						|
#ifndef OPTIONAL
 | 
						|
#define OPTIONAL
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __GNUC__
 | 
						|
#define PACKED __attribute__((packed))
 | 
						|
#ifndef _fastcall
 | 
						|
#define _fastcall __attribute__((fastcall))
 | 
						|
#endif
 | 
						|
#ifndef __fastcall
 | 
						|
#define __fastcall __attribute__((fastcall))
 | 
						|
#endif
 | 
						|
#ifndef _stdcall
 | 
						|
#define _stdcall __attribute__((stdcall))
 | 
						|
#endif
 | 
						|
#ifndef __stdcall
 | 
						|
#define __stdcall __attribute__((stdcall))
 | 
						|
#endif
 | 
						|
#ifndef _cdecl
 | 
						|
#define _cdecl __attribute__((cdecl))
 | 
						|
#endif
 | 
						|
#ifndef __cdecl
 | 
						|
#define __cdecl __attribute__((cdecl))
 | 
						|
#endif
 | 
						|
#ifndef __declspec
 | 
						|
#define __declspec(e) __attribute__((e))
 | 
						|
#endif
 | 
						|
#ifndef _declspec
 | 
						|
#define _declspec(e) __attribute__((e))
 | 
						|
#endif
 | 
						|
#elif defined(__WATCOMC__)
 | 
						|
#define PACKED
 | 
						|
#else
 | 
						|
#define PACKED
 | 
						|
#define _cdecl
 | 
						|
#define __cdecl
 | 
						|
#endif
 | 
						|
 | 
						|
#undef pascal
 | 
						|
#undef _pascal
 | 
						|
#undef __pascal
 | 
						|
#define pascal __stdcall
 | 
						|
#define _pascal __stdcall
 | 
						|
#define __pascal __stdcall
 | 
						|
#define PASCAL _pascal
 | 
						|
#define CDECL _cdecl
 | 
						|
#define STDCALL __stdcall
 | 
						|
#define FASTCALL __fastcall
 | 
						|
#define WINAPI __stdcall
 | 
						|
#define WINAPIV __cdecl
 | 
						|
#define APIENTRY __stdcall
 | 
						|
#define CALLBACK __stdcall
 | 
						|
#define APIPRIVATE __stdcall
 | 
						|
 | 
						|
#define DECLSPEC_IMPORT __declspec(dllimport)
 | 
						|
#define DECLSPEC_EXPORT __declspec(dllexport)
 | 
						|
#ifdef __GNUC__
 | 
						|
#define DECLSPEC_NORETURN __declspec(noreturn)
 | 
						|
#define DECLARE_STDCALL_P( type ) __stdcall type
 | 
						|
#elif defined(__WATCOMC__)
 | 
						|
#define DECLSPEC_NORETURN
 | 
						|
#define DECLARE_STDCALL_P( type ) type __stdcall
 | 
						|
#endif /* __GNUC__/__WATCOMC__ */
 | 
						|
#define MAKEWORD(a,b)	((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8)))
 | 
						|
#define MAKELONG(a,b)	((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
 | 
						|
#define LOWORD(l)	((WORD)((DWORD)(l)))
 | 
						|
#define HIWORD(l)	((WORD)(((DWORD)(l)>>16)&0xFFFF))
 | 
						|
#define LOBYTE(w)	((BYTE)(w))
 | 
						|
#define HIBYTE(w)	((BYTE)(((WORD)(w)>>8)&0xFF))
 | 
						|
 | 
						|
#ifndef __WATCOMC__
 | 
						|
#ifndef _export
 | 
						|
#define _export
 | 
						|
#endif
 | 
						|
#ifndef __export
 | 
						|
#define __export
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef NOMINMAX
 | 
						|
#ifndef max
 | 
						|
#define max(a,b) ((a)>(b)?(a):(b))
 | 
						|
#endif
 | 
						|
#ifndef min
 | 
						|
#define min(a,b) ((a)<(b)?(a):(b))
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
 | 
						|
#define UNREFERENCED_PARAMETER(P) {(P)=(P);}
 | 
						|
#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
 | 
						|
#define DBG_UNREFERENCED_PARAMETER(P)
 | 
						|
#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
 | 
						|
 | 
						|
#ifndef NONAMELESSUNION
 | 
						|
#ifdef __GNUC__
 | 
						|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
 | 
						|
#define _ANONYMOUS_UNION __extension__
 | 
						|
#define _ANONYMOUS_STRUCT __extension__
 | 
						|
#else
 | 
						|
#if defined(__cplusplus)
 | 
						|
#define _ANONYMOUS_UNION __extension__
 | 
						|
#endif /* __cplusplus */
 | 
						|
#endif /* __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) */
 | 
						|
#elif defined(__WATCOMC__)
 | 
						|
#define _ANONYMOUS_UNION
 | 
						|
#define _ANONYMOUS_STRUCT
 | 
						|
#endif /* __GNUC__/__WATCOMC__ */
 | 
						|
#endif /* NONAMELESSUNION */
 | 
						|
 | 
						|
#ifndef _ANONYMOUS_UNION
 | 
						|
#define _ANONYMOUS_UNION
 | 
						|
#define _UNION_NAME(x) x
 | 
						|
#define DUMMYUNIONNAME	u
 | 
						|
#define DUMMYUNIONNAME2	u2
 | 
						|
#define DUMMYUNIONNAME3	u3
 | 
						|
#define DUMMYUNIONNAME4	u4
 | 
						|
#define DUMMYUNIONNAME5	u5
 | 
						|
#define DUMMYUNIONNAME6	u6
 | 
						|
#define DUMMYUNIONNAME7	u7
 | 
						|
#define DUMMYUNIONNAME8	u8
 | 
						|
#else
 | 
						|
#define _UNION_NAME(x)
 | 
						|
#define DUMMYUNIONNAME
 | 
						|
#define DUMMYUNIONNAME2
 | 
						|
#define DUMMYUNIONNAME3
 | 
						|
#define DUMMYUNIONNAME4
 | 
						|
#define DUMMYUNIONNAME5
 | 
						|
#define DUMMYUNIONNAME6
 | 
						|
#define DUMMYUNIONNAME7
 | 
						|
#define DUMMYUNIONNAME8
 | 
						|
#endif
 | 
						|
#ifndef _ANONYMOUS_STRUCT
 | 
						|
#define _ANONYMOUS_STRUCT
 | 
						|
#define _STRUCT_NAME(x) x
 | 
						|
#define DUMMYSTRUCTNAME	s
 | 
						|
#define DUMMYSTRUCTNAME2 s2
 | 
						|
#define DUMMYSTRUCTNAME3 s3
 | 
						|
#else
 | 
						|
#define _STRUCT_NAME(x)
 | 
						|
#define DUMMYSTRUCTNAME
 | 
						|
#define DUMMYSTRUCTNAME2
 | 
						|
#define DUMMYSTRUCTNAME3
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef NO_STRICT
 | 
						|
#ifndef STRICT
 | 
						|
#define STRICT 1
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
 | 
						|
/* FIXME: This will make some code compile. The programs will most
 | 
						|
   likely crash when an exception is raised, but at least they will
 | 
						|
   compile. */
 | 
						|
#if defined (__GNUC__) && defined (__SEH_NOOP)
 | 
						|
#define __try
 | 
						|
#define __except(x) if (0) /* don't execute handler */
 | 
						|
#define __finally
 | 
						|
 | 
						|
#define _try __try
 | 
						|
#define _except __except
 | 
						|
#define _finally __finally
 | 
						|
#endif
 | 
						|
 | 
						|
typedef unsigned long DWORD;
 | 
						|
typedef int WINBOOL,*PWINBOOL,*LPWINBOOL;
 | 
						|
/* FIXME: Is there a good solution to this? */
 | 
						|
#ifndef XFree86Server
 | 
						|
#ifndef __OBJC__
 | 
						|
typedef WINBOOL BOOL;
 | 
						|
#else
 | 
						|
#define BOOL WINBOOL
 | 
						|
#endif
 | 
						|
typedef unsigned char BYTE;
 | 
						|
#endif /* ndef XFree86Server */
 | 
						|
typedef BOOL *PBOOL,*LPBOOL;
 | 
						|
typedef unsigned short WORD;
 | 
						|
typedef float FLOAT;
 | 
						|
typedef FLOAT *PFLOAT;
 | 
						|
typedef BYTE *PBYTE,*LPBYTE;
 | 
						|
typedef int *PINT,*LPINT;
 | 
						|
typedef WORD *PWORD,*LPWORD;
 | 
						|
typedef long *LPLONG;
 | 
						|
typedef DWORD *PDWORD,*LPDWORD;
 | 
						|
typedef CONST void *PCVOID,*LPCVOID;
 | 
						|
typedef int INT;
 | 
						|
typedef unsigned int UINT,*PUINT,*LPUINT;
 | 
						|
 | 
						|
#include <winnt.h>
 | 
						|
 | 
						|
typedef UINT_PTR WPARAM;
 | 
						|
typedef LONG_PTR LPARAM;
 | 
						|
typedef LONG_PTR LRESULT;
 | 
						|
#ifndef _HRESULT_DEFINED
 | 
						|
typedef LONG HRESULT;
 | 
						|
#define _HRESULT_DEFINED
 | 
						|
#endif
 | 
						|
#ifndef XFree86Server
 | 
						|
typedef WORD ATOM;
 | 
						|
#endif /* XFree86Server */
 | 
						|
typedef HANDLE HGLOBAL;
 | 
						|
typedef HANDLE HLOCAL;
 | 
						|
typedef HANDLE GLOBALHANDLE;
 | 
						|
typedef HANDLE LOCALHANDLE;
 | 
						|
typedef void *HGDIOBJ;
 | 
						|
DECLARE_HANDLE(HACCEL);
 | 
						|
DECLARE_HANDLE(HBITMAP);
 | 
						|
DECLARE_HANDLE(HBRUSH);
 | 
						|
DECLARE_HANDLE(HCOLORSPACE);
 | 
						|
DECLARE_HANDLE(HDC);
 | 
						|
DECLARE_HANDLE(HGLRC);
 | 
						|
DECLARE_HANDLE(HDESK);
 | 
						|
DECLARE_HANDLE(HENHMETAFILE);
 | 
						|
DECLARE_HANDLE(HFONT);
 | 
						|
DECLARE_HANDLE(HICON);
 | 
						|
DECLARE_HANDLE(HKEY);
 | 
						|
/* FIXME: How to handle these. SM_CMONITORS etc in winuser.h also. */
 | 
						|
DECLARE_HANDLE(HMONITOR);
 | 
						|
#define HMONITOR_DECLARED 1
 | 
						|
DECLARE_HANDLE(HTERMINAL);
 | 
						|
DECLARE_HANDLE(HWINEVENTHOOK);
 | 
						|
 | 
						|
typedef HKEY *PHKEY;
 | 
						|
DECLARE_HANDLE(HMENU);
 | 
						|
DECLARE_HANDLE(HMETAFILE);
 | 
						|
DECLARE_HANDLE(HINSTANCE);
 | 
						|
typedef HINSTANCE HMODULE;
 | 
						|
DECLARE_HANDLE(HPALETTE);
 | 
						|
DECLARE_HANDLE(HPEN);
 | 
						|
DECLARE_HANDLE(HRGN);
 | 
						|
DECLARE_HANDLE(HRSRC);
 | 
						|
DECLARE_HANDLE(HSTR);
 | 
						|
DECLARE_HANDLE(HTASK);
 | 
						|
DECLARE_HANDLE(HWND);
 | 
						|
DECLARE_HANDLE(HWINSTA);
 | 
						|
DECLARE_HANDLE(HKL);
 | 
						|
typedef int HFILE;
 | 
						|
typedef HICON HCURSOR;
 | 
						|
typedef DWORD COLORREF;
 | 
						|
typedef int (WINAPI *FARPROC)();
 | 
						|
typedef int (WINAPI *NEARPROC)();
 | 
						|
typedef int (WINAPI *PROC)();
 | 
						|
typedef struct tagRECT {
 | 
						|
	LONG left;
 | 
						|
	LONG top;
 | 
						|
	LONG right;
 | 
						|
	LONG bottom;
 | 
						|
} RECT,*PRECT,*LPRECT;
 | 
						|
typedef const RECT *LPCRECT;
 | 
						|
typedef struct tagRECTL {
 | 
						|
	LONG left;
 | 
						|
	LONG top;
 | 
						|
	LONG right;
 | 
						|
	LONG bottom;
 | 
						|
} RECTL,*PRECTL,*LPRECTL;
 | 
						|
typedef const RECTL *LPCRECTL;
 | 
						|
typedef struct tagPOINT {
 | 
						|
	LONG x;
 | 
						|
	LONG y;
 | 
						|
} POINT,POINTL,*PPOINT,*LPPOINT,*PPOINTL,*LPPOINTL;
 | 
						|
typedef struct tagSIZE {
 | 
						|
	LONG cx;
 | 
						|
	LONG cy;
 | 
						|
} SIZE,SIZEL,*PSIZE,*LPSIZE,*PSIZEL,*LPSIZEL;
 | 
						|
typedef struct tagPOINTS {
 | 
						|
	SHORT x;
 | 
						|
	SHORT y;
 | 
						|
} POINTS,*PPOINTS,*LPPOINTS;
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
#endif
 |