diff --git a/reactos/tools/winebuild/build.h b/reactos/tools/winebuild/build.h index af5c2caed69..e876755395e 100644 --- a/reactos/tools/winebuild/build.h +++ b/reactos/tools/winebuild/build.h @@ -31,8 +31,6 @@ #include #include -#include "winglue.h" - typedef enum { TYPE_VARIABLE, /* variable */ diff --git a/reactos/tools/winebuild/import.c b/reactos/tools/winebuild/import.c index 5b62512a53b..904e92c1010 100644 --- a/reactos/tools/winebuild/import.c +++ b/reactos/tools/winebuild/import.c @@ -35,8 +35,7 @@ # include #endif -#include "windef.h" -#include "winbase.h" +#include "winglue.h" #include "build.h" struct import diff --git a/reactos/tools/winebuild/main.c b/reactos/tools/winebuild/main.c index 88a3a7dd664..6614680f5a8 100644 --- a/reactos/tools/winebuild/main.c +++ b/reactos/tools/winebuild/main.c @@ -36,8 +36,7 @@ # include #endif -#include "windef.h" -#include "winbase.h" +#include "winglue.h" #include "build.h" int UsePIC = 0; @@ -49,7 +48,7 @@ int verbose = 0; int save_temps = 0; int link_ext_symbols = 0; -#ifdef __i386__ +#if defined(__i386__) || defined(__x86_64__) enum target_cpu target_cpu = CPU_x86; #elif defined(__x86_64__) enum target_cpu target_cpu = CPU_x86_64; diff --git a/reactos/tools/winebuild/parser.c b/reactos/tools/winebuild/parser.c index bcbf9510be9..5e876a262c2 100644 --- a/reactos/tools/winebuild/parser.c +++ b/reactos/tools/winebuild/parser.c @@ -32,8 +32,7 @@ #include #include -#include "windef.h" -#include "winbase.h" +#include "winglue.h" #include "build.h" int current_line = 0; diff --git a/reactos/tools/winebuild/res16.c b/reactos/tools/winebuild/res16.c index 8648190ed24..858ea321f02 100644 --- a/reactos/tools/winebuild/res16.c +++ b/reactos/tools/winebuild/res16.c @@ -38,8 +38,7 @@ #include #endif -#include "windef.h" -#include "winbase.h" +#include "winglue.h" #include "build.h" /* Unicode string or integer id */ diff --git a/reactos/tools/winebuild/res32.c b/reactos/tools/winebuild/res32.c index 5d480ad28bf..82e938c7332 100644 --- a/reactos/tools/winebuild/res32.c +++ b/reactos/tools/winebuild/res32.c @@ -37,8 +37,7 @@ #include #endif -#include "windef.h" -#include "winbase.h" +#include "winglue.h" #include "build.h" /* Unicode string or integer id */ diff --git a/reactos/tools/winebuild/spec32.c b/reactos/tools/winebuild/spec32.c index c37fdac112e..358543a1ef7 100644 --- a/reactos/tools/winebuild/spec32.c +++ b/reactos/tools/winebuild/spec32.c @@ -30,8 +30,7 @@ #include #include -#include "windef.h" -#include "winbase.h" +#include "winglue.h" //#include "wine/exception.h" #include "build.h" diff --git a/reactos/tools/winebuild/utils.c b/reactos/tools/winebuild/utils.c index 8f137d87fe5..b0972abc1cd 100644 --- a/reactos/tools/winebuild/utils.c +++ b/reactos/tools/winebuild/utils.c @@ -31,8 +31,7 @@ # include #endif -#include "windef.h" -#include "winnt.h" +#include "winglue.h" #include "build.h" #define MAX_TMP_FILES 8 diff --git a/reactos/tools/winebuild/winglue.h b/reactos/tools/winebuild/winglue.h index af333d71d5a..39591341221 100644 --- a/reactos/tools/winebuild/winglue.h +++ b/reactos/tools/winebuild/winglue.h @@ -1,10 +1,136 @@ #ifndef _WINGLUE_H #define _WINGLUE_H -/* Stuff missing in the host's PSDK */ -#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100 +typedef unsigned char BYTE; +typedef unsigned short WORD; +typedef unsigned long DWORD; +typedef unsigned short WCHAR; +#if defined(_WIN64) +typedef unsigned __int64 UINT_PTR; +#else +typedef unsigned int UINT_PTR; +#endif + +#define LOBYTE(w) ((BYTE)(w)) +#define HIBYTE(w) ((BYTE)(((WORD)(w)>>8)&0xFF)) + +#define DLL_PROCESS_ATTACH 1 +#define DLL_PROCESS_DETACH 0 + +#define IMAGE_FILE_EXECUTABLE_IMAGE 2 +#define IMAGE_FILE_LARGE_ADDRESS_AWARE 32 +#define IMAGE_FILE_32BIT_MACHINE 256 +#define IMAGE_FILE_DLL 8192 +#define IMAGE_SUBSYSTEM_NATIVE 1 +#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 +#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 +#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 +#define IMAGE_FILE_MACHINE_UNKNOWN 0 +#define IMAGE_FILE_MACHINE_I386 0x014c #define IMAGE_FILE_MACHINE_ALPHA 0x0184 +#define IMAGE_FILE_MACHINE_POWERPC 0x01f0 +#define IMAGE_FILE_MACHINE_AMD64 0x8664 +#define IMAGE_NT_SIGNATURE 0x00004550 +#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100 #define IMAGE_SIZEOF_NT_OPTIONAL32_HEADER 224 #define IMAGE_SIZEOF_NT_OPTIONAL64_HEADER 240 +#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b +#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b +#if defined(_WIN64) +#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL64_HEADER +#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC +#else +#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL32_HEADER +#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC +#endif + +#ifdef __GNUC__ +#ifndef NONAMELESSUNION +#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) */ +#endif /* NONAMELESSUNION */ +#elif defined(__WATCOMC__) || defined(_MSC_VER) +#define _ANONYMOUS_UNION +#define _ANONYMOUS_STRUCT +#endif /* __GNUC__/__WATCOMC__ */ +#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 + +typedef struct _IMAGE_RESOURCE_DIRECTORY { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + WORD NumberOfNamedEntries; + WORD NumberOfIdEntries; +} IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY; +_ANONYMOUS_STRUCT typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { + _ANONYMOUS_UNION union { + _ANONYMOUS_STRUCT struct { + DWORD NameOffset:31; + DWORD NameIsString:1; + }DUMMYSTRUCTNAME; + DWORD Name; + WORD Id; + } DUMMYUNIONNAME; + _ANONYMOUS_UNION union { + DWORD OffsetToData; + _ANONYMOUS_STRUCT struct { + DWORD OffsetToDirectory:31; + DWORD DataIsDirectory:1; + } DUMMYSTRUCTNAME2; + } DUMMYUNIONNAME2; +} IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY; +typedef struct _IMAGE_RESOURCE_DATA_ENTRY { + DWORD OffsetToData; + DWORD Size; + DWORD CodePage; + DWORD Reserved; +} IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY; + +#ifndef max +#define max(a,b) ((a)>(b)?(a):(b)) +#endif +#ifndef min +#define min(a,b) ((a)<(b)?(a):(b)) +#endif #endif /* _WINGLUE_H */