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 CSHORT *PCSHORT;
|
||||
|
||||
typedef WCHAR * PWCHAR;
|
||||
|
||||
/* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
|
||||
* 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" {
|
||||
#endif
|
||||
|
||||
/* Misc. constants. */
|
||||
|
||||
#define WINVER 0x0500
|
||||
|
||||
#ifdef FALSE
|
||||
#undef FALSE
|
||||
#endif
|
||||
#define FALSE 0
|
||||
#include "winnt.h"
|
||||
|
||||
#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 */
|
||||
/* depending on __WINE__ and UNICODE macros. */
|
||||
|
@ -58,202 +42,19 @@ extern "C" {
|
|||
# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
|
||||
#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. */
|
||||
typedef UINT WPARAM;
|
||||
typedef LONG LPARAM;
|
||||
typedef LONG HRESULT;
|
||||
typedef LONG LRESULT;
|
||||
typedef WORD ATOM;
|
||||
typedef WORD CATCHBUF[9];
|
||||
typedef WORD *LPCATCHBUF;
|
||||
typedef HANDLE HHOOK;
|
||||
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. */
|
||||
|
||||
#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(HACMDRIVER);
|
||||
DECLARE_HANDLE(HACMOBJ);
|
||||
|
@ -335,33 +136,6 @@ typedef VOID CALLBACK (*TIMERPROC)(HWND,UINT,UINT,DWORD);
|
|||
typedef BOOL CALLBACK (*WNDENUMPROC)(HWND,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. */
|
||||
|
||||
|
|
306
include/winnt.h
306
include/winnt.h
|
@ -8,13 +8,284 @@
|
|||
#define __WINE_WINNT_H
|
||||
|
||||
#include "basetsd.h"
|
||||
#include "windef.h"
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#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"
|
||||
/* Defines */
|
||||
|
||||
|
@ -120,39 +391,6 @@ typedef struct _MEMORY_BASIC_INFORMATION
|
|||
|
||||
/* 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 {
|
||||
struct _LIST_ENTRY *Flink;
|
||||
struct _LIST_ENTRY *Blink;
|
||||
|
|
Loading…
Reference in New Issue