Moved some macros like NULL, FALSE to winnt.h
Moved the anonymous struct/unions to winnt.h Moved calling convention macros to winnt.h Moved some basic types like BOOL, INT, LONG, etc. to winnt.h Moved HANDLE and DECLARE_HANDLE to winnt.h Moved structure packing macros to winnt.h
This commit is contained in:
parent
ecae926945
commit
7d6467649f
|
@ -34,7 +34,6 @@ typedef NTSTATUS *PNTSTATUS;
|
||||||
typedef short CSHORT;
|
typedef short CSHORT;
|
||||||
typedef CSHORT *PCSHORT;
|
typedef CSHORT *PCSHORT;
|
||||||
|
|
||||||
typedef WCHAR * PWCHAR;
|
|
||||||
|
|
||||||
/* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
|
/* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
|
||||||
* If they are zero terminated, Length does not include the terminating 0.
|
* If they are zero terminated, Length does not include the terminating 0.
|
||||||
|
|
228
include/windef.h
228
include/windef.h
|
@ -15,26 +15,10 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Misc. constants. */
|
|
||||||
|
|
||||||
#define WINVER 0x0500
|
#define WINVER 0x0500
|
||||||
|
|
||||||
#ifdef FALSE
|
#include "winnt.h"
|
||||||
#undef FALSE
|
|
||||||
#endif
|
|
||||||
#define FALSE 0
|
|
||||||
|
|
||||||
#ifdef TRUE
|
|
||||||
#undef TRUE
|
|
||||||
#endif
|
|
||||||
#define TRUE 1
|
|
||||||
|
|
||||||
#undef NULL
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define NULL 0
|
|
||||||
#else
|
|
||||||
#define NULL ((void*)0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Macros to map Winelib names to the correct implementation name */
|
/* Macros to map Winelib names to the correct implementation name */
|
||||||
/* depending on __WINE__ and UNICODE macros. */
|
/* depending on __WINE__ and UNICODE macros. */
|
||||||
|
@ -58,202 +42,19 @@ extern "C" {
|
||||||
# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
|
# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
|
||||||
#endif /* __WINE__ */
|
#endif /* __WINE__ */
|
||||||
|
|
||||||
#ifdef __WINE__
|
|
||||||
# define NONAMELESSSTRUCT
|
|
||||||
# define NONAMELESSUNION
|
|
||||||
#else
|
|
||||||
/* Anonymous struct support starts with gcc/g++ 2.96 */
|
|
||||||
# if !defined(NONAMELESSSTRUCT) && defined(__GNUC__) && ((__GNUC__ < 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ < 96)))
|
|
||||||
# define NONAMELESSSTRUCT
|
|
||||||
# endif
|
|
||||||
/* Anonymous unions support starts with gcc 2.96/g++ 2.95 */
|
|
||||||
# if !defined(NONAMELESSUNION) && defined(__GNUC__) && ((__GNUC__ < 2) || ((__GNUC__ == 2) && ((__GNUC_MINOR__ < 95) || ((__GNUC_MINOR__ == 95) && !defined(__cplusplus)))))
|
|
||||||
# define NONAMELESSUNION
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef NONAMELESSSTRUCT
|
|
||||||
#define DUMMYSTRUCTNAME
|
|
||||||
#define DUMMYSTRUCTNAME1
|
|
||||||
#define DUMMYSTRUCTNAME2
|
|
||||||
#define DUMMYSTRUCTNAME3
|
|
||||||
#define DUMMYSTRUCTNAME4
|
|
||||||
#define DUMMYSTRUCTNAME5
|
|
||||||
#else /* !defined(NONAMELESSSTRUCT) */
|
|
||||||
#define DUMMYSTRUCTNAME s
|
|
||||||
#define DUMMYSTRUCTNAME1 s1
|
|
||||||
#define DUMMYSTRUCTNAME2 s2
|
|
||||||
#define DUMMYSTRUCTNAME3 s3
|
|
||||||
#define DUMMYSTRUCTNAME4 s4
|
|
||||||
#define DUMMYSTRUCTNAME5 s5
|
|
||||||
#endif /* !defined(NONAMELESSSTRUCT) */
|
|
||||||
|
|
||||||
#ifndef NONAMELESSUNION
|
|
||||||
#define DUMMYUNIONNAME
|
|
||||||
#define DUMMYUNIONNAME1
|
|
||||||
#define DUMMYUNIONNAME2
|
|
||||||
#define DUMMYUNIONNAME3
|
|
||||||
#define DUMMYUNIONNAME4
|
|
||||||
#define DUMMYUNIONNAME5
|
|
||||||
#define DUMMYUNIONNAME6
|
|
||||||
#define DUMMYUNIONNAME7
|
|
||||||
#define DUMMYUNIONNAME8
|
|
||||||
#else /* !defined(NONAMELESSUNION) */
|
|
||||||
#define DUMMYUNIONNAME u
|
|
||||||
#define DUMMYUNIONNAME1 u1
|
|
||||||
#define DUMMYUNIONNAME2 u2
|
|
||||||
#define DUMMYUNIONNAME3 u3
|
|
||||||
#define DUMMYUNIONNAME4 u4
|
|
||||||
#define DUMMYUNIONNAME5 u5
|
|
||||||
#define DUMMYUNIONNAME6 u6
|
|
||||||
#define DUMMYUNIONNAME7 u7
|
|
||||||
#define DUMMYUNIONNAME8 u8
|
|
||||||
#endif /* !defined(NONAMELESSUNION) */
|
|
||||||
|
|
||||||
/* Calling conventions definitions */
|
|
||||||
|
|
||||||
#ifdef __i386__
|
|
||||||
# ifndef _X86_
|
|
||||||
# define _X86_
|
|
||||||
# endif
|
|
||||||
# if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
|
|
||||||
# define __stdcall __attribute__((__stdcall__))
|
|
||||||
# define __cdecl __attribute__((__cdecl__))
|
|
||||||
# else
|
|
||||||
# error You need gcc >= 2.7 to build Wine on a 386
|
|
||||||
# endif /* __GNUC__ */
|
|
||||||
#else /* __i386__ */
|
|
||||||
# define __stdcall
|
|
||||||
# define __cdecl
|
|
||||||
#endif /* __i386__ */
|
|
||||||
|
|
||||||
#define CALLBACK __stdcall
|
|
||||||
#define WINAPI __stdcall
|
|
||||||
#define APIPRIVATE __stdcall
|
|
||||||
#define PASCAL __stdcall
|
|
||||||
#define pascal __stdcall
|
|
||||||
#define _pascal __stdcall
|
|
||||||
#define _stdcall __stdcall
|
|
||||||
#define _fastcall __stdcall
|
|
||||||
#define __fastcall __stdcall
|
|
||||||
#define __export __stdcall
|
|
||||||
#define CDECL __cdecl
|
|
||||||
#define _CDECL __cdecl
|
|
||||||
#define cdecl __cdecl
|
|
||||||
#define _cdecl __cdecl
|
|
||||||
#define WINAPIV __cdecl
|
|
||||||
#define APIENTRY WINAPI
|
|
||||||
|
|
||||||
#ifndef _declspec
|
|
||||||
#define _declspec(x)
|
|
||||||
#endif
|
|
||||||
#ifndef __declspec
|
|
||||||
#define __declspec(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CONST const
|
|
||||||
|
|
||||||
/* Standard data types. These are the same for emulator and library. */
|
|
||||||
|
|
||||||
typedef void VOID;
|
|
||||||
typedef int INT;
|
|
||||||
typedef unsigned int UINT;
|
|
||||||
typedef unsigned short WORD;
|
|
||||||
typedef unsigned long DWORD;
|
|
||||||
typedef unsigned long ULONG;
|
|
||||||
typedef unsigned char BYTE;
|
|
||||||
typedef long LONG;
|
|
||||||
typedef short SHORT;
|
|
||||||
typedef unsigned short USHORT;
|
|
||||||
typedef char CHAR;
|
|
||||||
typedef unsigned char UCHAR;
|
|
||||||
/* Some systems might have wchar_t, but we really need 16 bit characters */
|
|
||||||
typedef unsigned short WCHAR;
|
|
||||||
typedef int BOOL;
|
|
||||||
typedef double DATE;
|
|
||||||
typedef double DOUBLE;
|
|
||||||
|
|
||||||
/* FIXME: Wine does not compile with strict on, therefore strict
|
|
||||||
* handles are presently only usable on machines where sizeof(UINT) ==
|
|
||||||
* sizeof(void*). HANDLEs are supposed to be void* but a large amount
|
|
||||||
* of WINE code operates on HANDLES as if they are UINTs. So to WINE
|
|
||||||
* they exist as UINTs but to the Winelib user who turns on strict,
|
|
||||||
* they exist as void*. If there is a size difference between UINT and
|
|
||||||
* void* then things get ugly. */
|
|
||||||
#ifdef STRICT
|
|
||||||
typedef VOID* HANDLE;
|
|
||||||
#else
|
|
||||||
typedef UINT HANDLE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
typedef HANDLE *LPHANDLE;
|
|
||||||
|
|
||||||
/* Integer types. These are the same for emulator and library. */
|
/* Integer types. These are the same for emulator and library. */
|
||||||
typedef UINT WPARAM;
|
typedef UINT WPARAM;
|
||||||
typedef LONG LPARAM;
|
typedef LONG LPARAM;
|
||||||
typedef LONG HRESULT;
|
|
||||||
typedef LONG LRESULT;
|
typedef LONG LRESULT;
|
||||||
typedef WORD ATOM;
|
typedef WORD ATOM;
|
||||||
typedef WORD CATCHBUF[9];
|
typedef WORD CATCHBUF[9];
|
||||||
typedef WORD *LPCATCHBUF;
|
typedef WORD *LPCATCHBUF;
|
||||||
typedef HANDLE HHOOK;
|
typedef HANDLE HHOOK;
|
||||||
typedef HANDLE HMONITOR;
|
typedef HANDLE HMONITOR;
|
||||||
typedef DWORD LCID;
|
|
||||||
typedef WORD LANGID;
|
|
||||||
typedef float FLOAT;
|
|
||||||
|
|
||||||
/* Pointers types. These are the same for emulator and library. */
|
|
||||||
/* winnt types */
|
|
||||||
typedef VOID *PVOID;
|
|
||||||
typedef const void *PCVOID;
|
|
||||||
typedef CHAR *PCHAR;
|
|
||||||
typedef UCHAR *PUCHAR;
|
|
||||||
typedef BYTE *PBYTE;
|
|
||||||
typedef WORD *PWORD;
|
|
||||||
typedef USHORT *PUSHORT;
|
|
||||||
typedef SHORT *PSHORT;
|
|
||||||
typedef ULONG *PULONG;
|
|
||||||
typedef LONG *PLONG;
|
|
||||||
typedef DWORD *PDWORD;
|
|
||||||
/* common win32 types */
|
|
||||||
typedef CHAR *LPSTR;
|
|
||||||
typedef CHAR *PSTR;
|
|
||||||
typedef const CHAR *LPCSTR;
|
|
||||||
typedef const CHAR *PCSTR;
|
|
||||||
typedef WCHAR *LPWSTR;
|
|
||||||
typedef WCHAR *PWSTR;
|
|
||||||
typedef const WCHAR *LPCWSTR;
|
|
||||||
typedef const WCHAR *PCWSTR;
|
|
||||||
typedef BYTE *LPBYTE;
|
|
||||||
typedef WORD *LPWORD;
|
|
||||||
typedef DWORD *LPDWORD;
|
|
||||||
typedef LONG *LPLONG;
|
|
||||||
typedef VOID *LPVOID;
|
|
||||||
typedef const VOID *LPCVOID;
|
|
||||||
typedef INT *PINT;
|
|
||||||
typedef INT *LPINT;
|
|
||||||
typedef UINT *PUINT;
|
|
||||||
typedef UINT *LPUINT;
|
|
||||||
typedef FLOAT *PFLOAT;
|
|
||||||
typedef FLOAT *LPFLOAT;
|
|
||||||
typedef BOOL *PBOOL;
|
|
||||||
typedef BOOL *LPBOOL;
|
|
||||||
|
|
||||||
/* Handle types that exist both in Win16 and Win32. */
|
/* Handle types that exist both in Win16 and Win32. */
|
||||||
|
|
||||||
#ifdef STRICT
|
|
||||||
#define DECLARE_HANDLE(a) \
|
|
||||||
typedef struct a##__ { int unused; } *a; \
|
|
||||||
typedef a *P##a; \
|
|
||||||
typedef a *LP##a
|
|
||||||
#else /*STRICT*/
|
|
||||||
#define DECLARE_HANDLE(a) \
|
|
||||||
typedef HANDLE a; \
|
|
||||||
typedef a *P##a; \
|
|
||||||
typedef a *LP##a
|
|
||||||
#endif /*STRICT*/
|
|
||||||
|
|
||||||
DECLARE_HANDLE(HACMDRIVERID);
|
DECLARE_HANDLE(HACMDRIVERID);
|
||||||
DECLARE_HANDLE(HACMDRIVER);
|
DECLARE_HANDLE(HACMDRIVER);
|
||||||
DECLARE_HANDLE(HACMOBJ);
|
DECLARE_HANDLE(HACMOBJ);
|
||||||
|
@ -335,33 +136,6 @@ typedef VOID CALLBACK (*TIMERPROC)(HWND,UINT,UINT,DWORD);
|
||||||
typedef BOOL CALLBACK (*WNDENUMPROC)(HWND,LPARAM);
|
typedef BOOL CALLBACK (*WNDENUMPROC)(HWND,LPARAM);
|
||||||
typedef LRESULT CALLBACK (*WNDPROC)(HWND,UINT,WPARAM,LPARAM);
|
typedef LRESULT CALLBACK (*WNDPROC)(HWND,UINT,WPARAM,LPARAM);
|
||||||
|
|
||||||
/* Define some empty macros for compatibility with Windows code. */
|
|
||||||
|
|
||||||
#ifndef __WINE__
|
|
||||||
#define NEAR
|
|
||||||
#define FAR
|
|
||||||
#define near
|
|
||||||
#define far
|
|
||||||
#define _near
|
|
||||||
#define _far
|
|
||||||
#define IN
|
|
||||||
#define OUT
|
|
||||||
#define OPTIONAL
|
|
||||||
#endif /* __WINE__ */
|
|
||||||
|
|
||||||
#include "winnt.h"
|
|
||||||
|
|
||||||
/* Macro for structure packing. */
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#define WINE_PACKED __attribute__((packed))
|
|
||||||
#define WINE_UNUSED __attribute__((unused))
|
|
||||||
#define WINE_NORETURN __attribute__((noreturn))
|
|
||||||
#else
|
|
||||||
#define WINE_PACKED /* nothing */
|
|
||||||
#define WINE_UNUSED /* nothing */
|
|
||||||
#define WINE_NORETURN /* nothing */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Macros to split words and longs. */
|
/* Macros to split words and longs. */
|
||||||
|
|
||||||
|
|
306
include/winnt.h
306
include/winnt.h
|
@ -8,13 +8,284 @@
|
||||||
#define __WINE_WINNT_H
|
#define __WINE_WINNT_H
|
||||||
|
|
||||||
#include "basetsd.h"
|
#include "basetsd.h"
|
||||||
#include "windef.h"
|
|
||||||
|
|
||||||
#ifndef RC_INVOKED
|
#ifndef RC_INVOKED
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* On Windows winnt.h depends on a few windef.h types and macros and thus
|
||||||
|
* is not self-contained. Furthermore windef.h includes winnt.h so that it
|
||||||
|
* would be pointless to try to use winnt.h directly.
|
||||||
|
* But for Wine and Winelib I decided to make winnt.h self-contained by
|
||||||
|
* moving these definitions to winnt.h. It makes no difference to Winelib
|
||||||
|
* programs since they are not using winnt.h directly anyway, and it allows
|
||||||
|
* us to use winnt.h and get a minimal set of definitions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**** Some Wine specific definitions *****/
|
||||||
|
|
||||||
|
/* Calling conventions definitions */
|
||||||
|
|
||||||
|
#ifdef __i386__
|
||||||
|
# ifndef _X86_
|
||||||
|
# define _X86_
|
||||||
|
# endif
|
||||||
|
# if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
|
||||||
|
# define __stdcall __attribute__((__stdcall__))
|
||||||
|
# define __cdecl __attribute__((__cdecl__))
|
||||||
|
# else
|
||||||
|
# error You need gcc >= 2.7 to build Wine on a 386
|
||||||
|
# endif /* __GNUC__ */
|
||||||
|
#else /* __i386__ */
|
||||||
|
# define __stdcall
|
||||||
|
# define __cdecl
|
||||||
|
#endif /* __i386__ */
|
||||||
|
|
||||||
|
#ifndef __WINE__
|
||||||
|
#define pascal __stdcall
|
||||||
|
#define _pascal __stdcall
|
||||||
|
#define _stdcall __stdcall
|
||||||
|
#define _fastcall __stdcall
|
||||||
|
#define __fastcall __stdcall
|
||||||
|
#define __export __stdcall
|
||||||
|
#define cdecl __cdecl
|
||||||
|
#define _cdecl __cdecl
|
||||||
|
|
||||||
|
#define near
|
||||||
|
#define far
|
||||||
|
#define _near
|
||||||
|
#define _far
|
||||||
|
#define NEAR
|
||||||
|
#define FAR
|
||||||
|
|
||||||
|
#ifndef _declspec
|
||||||
|
#define _declspec(x)
|
||||||
|
#endif
|
||||||
|
#ifndef __declspec
|
||||||
|
#define __declspec(x)
|
||||||
|
#endif
|
||||||
|
#endif /* __WINE__ */
|
||||||
|
|
||||||
|
#define CALLBACK __stdcall
|
||||||
|
#define WINAPI __stdcall
|
||||||
|
#define APIPRIVATE __stdcall
|
||||||
|
#define PASCAL __stdcall
|
||||||
|
#define CDECL __cdecl
|
||||||
|
#define _CDECL __cdecl
|
||||||
|
#define WINAPIV __cdecl
|
||||||
|
#define APIENTRY WINAPI
|
||||||
|
#define CONST const
|
||||||
|
|
||||||
|
/* Macro for structure packing and more. */
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define WINE_PACKED __attribute__((packed))
|
||||||
|
#define WINE_UNUSED __attribute__((unused))
|
||||||
|
#define WINE_NORETURN __attribute__((noreturn))
|
||||||
|
#else
|
||||||
|
#define WINE_PACKED /* nothing */
|
||||||
|
#define WINE_UNUSED /* nothing */
|
||||||
|
#define WINE_NORETURN /* nothing */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Anonymous union/struct handling */
|
||||||
|
|
||||||
|
#ifdef __WINE__
|
||||||
|
# define NONAMELESSSTRUCT
|
||||||
|
# define NONAMELESSUNION
|
||||||
|
#else
|
||||||
|
/* Anonymous struct support starts with gcc/g++ 2.96 */
|
||||||
|
# if !defined(NONAMELESSSTRUCT) && defined(__GNUC__) && ((__GNUC__ < 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ < 96)))
|
||||||
|
# define NONAMELESSSTRUCT
|
||||||
|
# endif
|
||||||
|
/* Anonymous unions support starts with gcc 2.96/g++ 2.95 */
|
||||||
|
# if !defined(NONAMELESSUNION) && defined(__GNUC__) && ((__GNUC__ < 2) || ((__GNUC__ == 2) && ((__GNUC_MINOR__ < 95) || ((__GNUC_MINOR__ == 95) && !defined(__cplusplus)))))
|
||||||
|
# define NONAMELESSUNION
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NONAMELESSSTRUCT
|
||||||
|
#define DUMMYSTRUCTNAME
|
||||||
|
#define DUMMYSTRUCTNAME1
|
||||||
|
#define DUMMYSTRUCTNAME2
|
||||||
|
#define DUMMYSTRUCTNAME3
|
||||||
|
#define DUMMYSTRUCTNAME4
|
||||||
|
#define DUMMYSTRUCTNAME5
|
||||||
|
#else /* !defined(NONAMELESSSTRUCT) */
|
||||||
|
#define DUMMYSTRUCTNAME s
|
||||||
|
#define DUMMYSTRUCTNAME1 s1
|
||||||
|
#define DUMMYSTRUCTNAME2 s2
|
||||||
|
#define DUMMYSTRUCTNAME3 s3
|
||||||
|
#define DUMMYSTRUCTNAME4 s4
|
||||||
|
#define DUMMYSTRUCTNAME5 s5
|
||||||
|
#endif /* !defined(NONAMELESSSTRUCT) */
|
||||||
|
|
||||||
|
#ifndef NONAMELESSUNION
|
||||||
|
#define DUMMYUNIONNAME
|
||||||
|
#define DUMMYUNIONNAME1
|
||||||
|
#define DUMMYUNIONNAME2
|
||||||
|
#define DUMMYUNIONNAME3
|
||||||
|
#define DUMMYUNIONNAME4
|
||||||
|
#define DUMMYUNIONNAME5
|
||||||
|
#define DUMMYUNIONNAME6
|
||||||
|
#define DUMMYUNIONNAME7
|
||||||
|
#define DUMMYUNIONNAME8
|
||||||
|
#else /* !defined(NONAMELESSUNION) */
|
||||||
|
#define DUMMYUNIONNAME u
|
||||||
|
#define DUMMYUNIONNAME1 u1
|
||||||
|
#define DUMMYUNIONNAME2 u2
|
||||||
|
#define DUMMYUNIONNAME3 u3
|
||||||
|
#define DUMMYUNIONNAME4 u4
|
||||||
|
#define DUMMYUNIONNAME5 u5
|
||||||
|
#define DUMMYUNIONNAME6 u6
|
||||||
|
#define DUMMYUNIONNAME7 u7
|
||||||
|
#define DUMMYUNIONNAME8 u8
|
||||||
|
#endif /* !defined(NONAMELESSUNION) */
|
||||||
|
|
||||||
|
|
||||||
|
/**** Parts of windef.h that are needed here *****/
|
||||||
|
|
||||||
|
/* Misc. constants. */
|
||||||
|
|
||||||
|
#undef NULL
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define NULL 0
|
||||||
|
#else
|
||||||
|
#define NULL ((void*)0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FALSE
|
||||||
|
#undef FALSE
|
||||||
|
#endif
|
||||||
|
#define FALSE 0
|
||||||
|
|
||||||
|
#ifdef TRUE
|
||||||
|
#undef TRUE
|
||||||
|
#endif
|
||||||
|
#define TRUE 1
|
||||||
|
|
||||||
|
#ifndef IN
|
||||||
|
#define IN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef OUT
|
||||||
|
#define OUT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPTIONAL
|
||||||
|
#define OPTIONAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Standard data types */
|
||||||
|
typedef const void *PCVOID, *LPCVOID;
|
||||||
|
typedef int BOOL, *PBOOL, *LPBOOL;
|
||||||
|
typedef unsigned char BYTE, *PBYTE, *LPBYTE;
|
||||||
|
typedef unsigned char UCHAR, *PUCHAR;
|
||||||
|
typedef unsigned short USHORT, *PUSHORT, *LPUSHORT;
|
||||||
|
typedef unsigned short WORD, *PWORD, *LPWORD;
|
||||||
|
typedef int INT, *PINT, *LPINT;
|
||||||
|
typedef unsigned int UINT, *PUINT, *LPUINT;
|
||||||
|
typedef unsigned long DWORD, *PDWORD, *LPDWORD;
|
||||||
|
typedef unsigned long ULONG, *PULONG, *LPULONG;
|
||||||
|
typedef float FLOAT, *PFLOAT, *LPFLOAT;
|
||||||
|
typedef double DOUBLE, *PDOUBLE, *LPDOUBLE;
|
||||||
|
typedef double DATE;
|
||||||
|
|
||||||
|
|
||||||
|
/**** winnt.h proper *****/
|
||||||
|
|
||||||
|
/* Define the basic types */
|
||||||
|
#ifndef VOID
|
||||||
|
#define VOID void
|
||||||
|
#endif
|
||||||
|
typedef VOID *PVOID, *LPVOID;
|
||||||
|
typedef BYTE BOOLEAN, *PBOOLEAN;
|
||||||
|
typedef char CHAR, *PCHAR;
|
||||||
|
/* Some systems might have wchar_t, but we really need 16 bit characters */
|
||||||
|
typedef unsigned short WCHAR, *PWCHAR;
|
||||||
|
typedef short SHORT, *PSHORT;
|
||||||
|
typedef long LONG, *PLONG, *LPLONG;
|
||||||
|
|
||||||
|
/* 'Extended/Wide' numerical types */
|
||||||
|
#ifndef _ULONGLONG_
|
||||||
|
#define _ULONGLONG_
|
||||||
|
typedef __int64 LONGLONG, *PLONGLONG;
|
||||||
|
typedef __uint64 ULONGLONG, *PULONGLONG;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _DWORDLONG_
|
||||||
|
#define _DWORDLONG_
|
||||||
|
typedef ULONGLONG DWORDLONG, *PDWORDLONG;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ANSI string types */
|
||||||
|
typedef CHAR *PCH, *LPCH;
|
||||||
|
typedef const CHAR *PCCH, *LPCCH;
|
||||||
|
typedef CHAR *PSTR, *LPSTR;
|
||||||
|
typedef const CHAR *PCSTR, *LPCSTR;
|
||||||
|
|
||||||
|
/* Unicode string types */
|
||||||
|
typedef WCHAR *PWCH, *LPWCH;
|
||||||
|
typedef const WCHAR *PCWCH, *LPCWCH;
|
||||||
|
typedef WCHAR *PWSTR, *LPWSTR;
|
||||||
|
typedef const WCHAR *PCWSTR, *LPCWSTR;
|
||||||
|
|
||||||
|
/* Neutral character and string types */
|
||||||
|
/* These are only defined for WineLib, i.e. _not_ defined for
|
||||||
|
* the emulator. The reason is they depend on the UNICODE
|
||||||
|
* macro which only exists in the user's code.
|
||||||
|
*/
|
||||||
|
#ifndef __WINE__
|
||||||
|
# ifdef UNICODE
|
||||||
|
typedef WCHAR TCHAR, *PTCHAR;
|
||||||
|
typedef LPWSTR PTSTR, LPTSTR;
|
||||||
|
typedef LPCWSTR PCTSTR, LPCTSTR;
|
||||||
|
# define __TEXT(string) L##string /*probably wrong */
|
||||||
|
# else /* UNICODE */
|
||||||
|
typedef CHAR TCHAR, *PTCHAR;
|
||||||
|
typedef LPSTR PTSTR, LPTSTR;
|
||||||
|
typedef LPCSTR PCTSTR, LPCTSTR;
|
||||||
|
# define __TEXT(string) string
|
||||||
|
# endif /* UNICODE */
|
||||||
|
#endif /* __WINE__ */
|
||||||
|
#define TEXT(quote) __TEXT(quote)
|
||||||
|
|
||||||
|
/* Misc common WIN32 types */
|
||||||
|
typedef LONG HRESULT;
|
||||||
|
typedef DWORD LCID, *PLCID;
|
||||||
|
typedef WORD LANGID;
|
||||||
|
|
||||||
|
/* Handle type */
|
||||||
|
|
||||||
|
/* FIXME: Wine does not compile with strict on, therefore strict
|
||||||
|
* handles are presently only usable on machines where sizeof(UINT) ==
|
||||||
|
* sizeof(void*). HANDLEs are supposed to be void* but a large amount
|
||||||
|
* of WINE code operates on HANDLES as if they are UINTs. So to WINE
|
||||||
|
* they exist as UINTs but to the Winelib user who turns on strict,
|
||||||
|
* they exist as void*. If there is a size difference between UINT and
|
||||||
|
* void* then things get ugly. */
|
||||||
|
#ifdef STRICT
|
||||||
|
typedef VOID* HANDLE;
|
||||||
|
#else
|
||||||
|
typedef UINT HANDLE;
|
||||||
|
#endif
|
||||||
|
typedef HANDLE *LPHANDLE;
|
||||||
|
|
||||||
|
#ifdef STRICT
|
||||||
|
#define DECLARE_HANDLE(a) \
|
||||||
|
typedef struct a##__ { int unused; } *a; \
|
||||||
|
typedef a *P##a; \
|
||||||
|
typedef a *LP##a
|
||||||
|
#else /*STRICT*/
|
||||||
|
#define DECLARE_HANDLE(a) \
|
||||||
|
typedef HANDLE a; \
|
||||||
|
typedef a *P##a; \
|
||||||
|
typedef a *LP##a
|
||||||
|
#endif /*STRICT*/
|
||||||
|
|
||||||
|
|
||||||
#include "pshpack1.h"
|
#include "pshpack1.h"
|
||||||
/* Defines */
|
/* Defines */
|
||||||
|
|
||||||
|
@ -120,39 +391,6 @@ typedef struct _MEMORY_BASIC_INFORMATION
|
||||||
|
|
||||||
/* Types */
|
/* Types */
|
||||||
|
|
||||||
/* TCHAR data types definitions for Winelib. */
|
|
||||||
/* These types are _not_ defined for the emulator, because they */
|
|
||||||
/* depend on the UNICODE macro that only exists in user's code. */
|
|
||||||
|
|
||||||
#ifndef __WINE__
|
|
||||||
# ifdef UNICODE
|
|
||||||
typedef WCHAR TCHAR, *PTCHAR;
|
|
||||||
typedef LPWSTR PTSTR, LPTSTR;
|
|
||||||
typedef LPCWSTR PCTSTR, LPCTSTR;
|
|
||||||
#define __TEXT(string) L##string /*probably wrong */
|
|
||||||
# else /* UNICODE */
|
|
||||||
typedef char TCHAR, *PTCHAR;
|
|
||||||
typedef LPSTR PTSTR, LPTSTR;
|
|
||||||
typedef LPCSTR PCTSTR, LPCTSTR;
|
|
||||||
#define __TEXT(string) string
|
|
||||||
# endif /* UNICODE */
|
|
||||||
#endif /* __WINE__ */
|
|
||||||
#define TEXT(quote) __TEXT(quote)
|
|
||||||
|
|
||||||
typedef BYTE BOOLEAN;
|
|
||||||
typedef BOOLEAN *PBOOLEAN;
|
|
||||||
|
|
||||||
#ifndef _DWORDLONG_
|
|
||||||
#define _DWORDLONG_
|
|
||||||
typedef __uint64 DWORDLONG, *PDWORDLONG;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _ULONGLONG_
|
|
||||||
#define _ULONGLONG_
|
|
||||||
typedef __int64 LONGLONG, *PLONGLONG;
|
|
||||||
typedef __uint64 ULONGLONG, *PULONGLONG;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct _LIST_ENTRY {
|
typedef struct _LIST_ENTRY {
|
||||||
struct _LIST_ENTRY *Flink;
|
struct _LIST_ENTRY *Flink;
|
||||||
struct _LIST_ENTRY *Blink;
|
struct _LIST_ENTRY *Blink;
|
||||||
|
|
Loading…
Reference in New Issue