--- origsrc/mingw-w64-headers/crt/wchar.h 2012-03-17 07:22:24.000000000 -0500 +++ src/mingw-w64-headers/crt/wchar.h 2012-06-03 05:14:59.269492900 -0500 @@ -451,7 +451,7 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob)) #undef __mingw_ovr #ifdef __cplusplus -#define __mingw_ovr inline __cdecl +#define __mingw_ovr static inline __cdecl #elif defined (__GNUC__) #define __mingw_ovr static __attribute__ ((__unused__)) __inline__ __cdecl #else --- origsrc/mingw-w64-headers/include/guiddef.h 2012-03-17 07:21:34.000000000 -0500 +++ src/mingw-w64-headers/include/guiddef.h 2012-06-03 04:51:02.061289300 -0500 @@ -94,7 +94,7 @@ typedef FMTID *LPFMTID; #ifndef _REFGUID_DEFINED #define _REFGUID_DEFINED -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CINTERFACE) #define REFGUID const GUID & #else #define REFGUID const GUID *__MIDL_CONST @@ -103,7 +103,7 @@ typedef FMTID *LPFMTID; #ifndef _REFIID_DEFINED #define _REFIID_DEFINED -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CINTERFACE) #define REFIID const IID & #else #define REFIID const IID *__MIDL_CONST @@ -112,7 +112,7 @@ typedef FMTID *LPFMTID; #ifndef _REFCLSID_DEFINED #define _REFCLSID_DEFINED -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CINTERFACE) #define REFCLSID const IID & #else #define REFCLSID const IID *__MIDL_CONST @@ -121,7 +121,7 @@ typedef FMTID *LPFMTID; #ifndef _REFFMTID_DEFINED #define _REFFMTID_DEFINED -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CINTERFACE) #define REFFMTID const IID & #else #define REFFMTID const IID *__MIDL_CONST @@ -134,7 +134,7 @@ typedef FMTID *LPFMTID; #define _SYS_GUID_OPERATORS_ #include -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CINTERFACE) __inline int InlineIsEqualGUID(REFGUID rguid1,REFGUID rguid2) { return (((unsigned long *) &rguid1)[0]==((unsigned long *) &rguid2)[0] && ((unsigned long *) &rguid1)[1]==((unsigned long *) &rguid2)[1] && ((unsigned long *) &rguid1)[2]==((unsigned long *) &rguid2)[2] && ((unsigned long *) &rguid1)[3]==((unsigned long *) &rguid2)[3]); @@ -155,7 +155,7 @@ __inline int IsEqualGUID(REFGUID rguid1, #if !defined _SYS_GUID_OPERATOR_EQ_ && !defined _NO_SYS_GUID_OPERATOR_EQ_ #define _SYS_GUID_OPERATOR_EQ_ -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CINTERFACE) __inline int operator==(REFGUID guidOne,REFGUID guidOther) { return IsEqualGUID(guidOne,guidOther); } __inline int operator!=(REFGUID guidOne,REFGUID guidOther) { return !(guidOne==guidOther); } #endif --- origsrc/mingw-w64-headers/include/ntdef.h 2012-03-17 07:21:30.000000000 -0500 +++ src/mingw-w64-headers/include/ntdef.h 2012-06-03 02:37:44.807872600 -0500 @@ -509,6 +509,8 @@ typedef struct _STRING64 { /* Object Attributes */ +#ifndef __OBJECT_ATTRIBUTES_DEFINED +#define __OBJECT_ATTRIBUTES_DEFINED typedef struct _OBJECT_ATTRIBUTES { ULONG Length; HANDLE RootDirectory; @@ -517,6 +519,7 @@ typedef struct _OBJECT_ATTRIBUTES { PVOID SecurityDescriptor; PVOID SecurityQualityOfService; } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; +#endif typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES; /* Values for the Attributes member */ --- origsrc/mingw-w64-headers/include/propkeydef.h 2012-03-17 07:21:54.000000000 -0500 +++ src/mingw-w64-headers/include/propkeydef.h 2012-06-03 04:52:30.981375200 -0500 @@ -31,7 +31,7 @@ #undef DEFINE_PROPERTYKEY #ifdef INITGUID -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CINTERFACE) #define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \ EXTERN_C const PROPERTYKEY DECLSPEC_SELECTANY name = \ { { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }, pid } @@ -46,7 +46,7 @@ #endif #ifndef IsEqualPropertyKey -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CINTERFACE) #define IsEqualPropertyKey(a,b) (((a).pid == (b).pid) && IsEqualIID((a).fmtid,(b).fmtid)) #else #define IsEqualPropertyKey(a,b) (((a).pid == (b).pid) && IsEqualIID(&(a).fmtid,&(b).fmtid)) @@ -55,7 +55,7 @@ #ifndef _PROPERTYKEY_EQUALITY_OPERATORS_ #define _PROPERTYKEY_EQUALITY_OPERATORS_ -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CINTERFACE) extern "C++" { --- origsrc/mingw-w64-headers/include/winnt.h 2012-03-17 07:21:29.000000000 -0500 +++ src/mingw-w64-headers/include/winnt.h 2012-06-03 05:45:33.298393400 -0500 @@ -88,7 +88,7 @@ extern "C" { #include -#if defined(_X86_) || defined(__ia64__) || defined(__x86_64) +#if defined(__W32API_USE_DLLIMPORT__) && (defined(_X86_) || defined(__ia64__) || defined(__x86_64)) #define DECLSPEC_IMPORT __declspec(dllimport) #else #define DECLSPEC_IMPORT @@ -3786,9 +3786,43 @@ inline ENUMTYPE &operator ^= (ENUMTYPE & #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE) #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE) +#define FILE_SUPERSEDE 0x00000000 +#define FILE_OPEN 0x00000001 +#define FILE_CREATE 0x00000002 +#define FILE_OPEN_IF 0x00000003 +#define FILE_OVERWRITE 0x00000004 +#define FILE_OVERWRITE_IF 0x00000005 +#define FILE_MAXIMUM_DISPOSITION 0x00000005 + +#define FILE_DIRECTORY_FILE 0x00000001 +#define FILE_WRITE_THROUGH 0x00000002 +#define FILE_SEQUENTIAL_ONLY 0x00000004 +#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008 +#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 +#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 +#define FILE_NON_DIRECTORY_FILE 0x00000040 +#define FILE_CREATE_TREE_CONNECTION 0x00000080 +#define FILE_COMPLETE_IF_OPLOCKED 0x00000100 +#define FILE_NO_EA_KNOWLEDGE 0x00000200 +#define FILE_OPEN_REMOTE_INSTANCE 0x00000400 +#define FILE_RANDOM_ACCESS 0x00000800 +#define FILE_DELETE_ON_CLOSE 0x00001000 +#define FILE_OPEN_BY_FILE_ID 0x00002000 +#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000 +#define FILE_NO_COMPRESSION 0x00008000 +#if (NTDDI_VERSION >= NTDDI_WIN7) +#define FILE_OPEN_REQUIRING_OPLOCK 0x00010000 +#define FILE_DISALLOW_EXCLUSIVE 0x00020000 +#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */ +#define FILE_RESERVE_OPFILTER 0x00100000 +#define FILE_OPEN_REPARSE_POINT 0x00200000 +#define FILE_OPEN_NO_RECALL 0x00400000 +#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 + #define FILE_SHARE_READ 0x00000001 #define FILE_SHARE_WRITE 0x00000002 #define FILE_SHARE_DELETE 0x00000004 +#define FILE_SHARE_VALID_FLAGS 0x00000007 #define FILE_ATTRIBUTE_READONLY 0x00000001 #define FILE_ATTRIBUTE_HIDDEN 0x00000002 #define FILE_ATTRIBUTE_SYSTEM 0x00000004 --- origsrc/mingw-w64-headers/include/winternl.h 2012-03-17 07:21:27.000000000 -0500 +++ src/mingw-w64-headers/include/winternl.h 2012-06-03 08:54:47.866837500 -0500 @@ -12,11 +12,14 @@ extern "C" { #endif +#ifndef __UNICODE_STRING_DEFINED +#define __UNICODE_STRING_DEFINED typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } UNICODE_STRING; +#endif typedef struct _PEB_LDR_DATA { BYTE Reserved1[8]; @@ -81,11 +84,14 @@ typedef struct _RTL_USER_PROCESS_PARAMET typedef LONG NTSTATUS; typedef CONST char *PCSZ; +#ifndef __STRING_DEFINED +#define __STRING_DEFINED typedef struct _STRING { USHORT Length; USHORT MaximumLength; PCHAR Buffer; } STRING; +#endif typedef STRING *PSTRING; typedef STRING ANSI_STRING; @@ -98,6 +104,8 @@ typedef struct _RTL_USER_PROCESS_PARAMET typedef UNICODE_STRING *PUNICODE_STRING; typedef const UNICODE_STRING *PCUNICODE_STRING; +#ifndef __OBJECT_ATTRIBUTES_DEFINED +#define __OBJECT_ATTRIBUTES_DEFINED typedef struct _OBJECT_ATTRIBUTES { ULONG Length; #ifdef _WIN64 @@ -112,6 +120,7 @@ typedef struct _RTL_USER_PROCESS_PARAMET PVOID SecurityDescriptor; PVOID SecurityQualityOfService; } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; +#endif /* Values for the Attributes member */ #define OBJ_INHERIT 0x00000002 @@ -344,14 +353,21 @@ typedef struct _RTL_USER_PROCESS_PARAMET ACCESS_MASK AccessFlags; } FILE_ACCESS_INFORMATION, *PFILE_ACCESS_INFORMATION; + typedef struct _FILE_LINK_INFORMATION { + BOOLEAN ReplaceIfExists; + HANDLE RootDirectory; + ULONG FileNameLength; + WCHAR FileName[1]; + } FILE_LINK_INFORMATION, *PFILE_LINK_INFORMATION; + typedef struct _FILE_NAME_INFORMATION { ULONG FileNameLength; WCHAR FileName[1]; } FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION; typedef struct _FILE_RENAME_INFORMATION { - BOOLEAN Replace; - HANDLE RootDir; + BOOLEAN ReplaceIfExists; + HANDLE RootDirectory; ULONG FileNameLength; WCHAR FileName[1]; } FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION; @@ -786,7 +802,7 @@ typedef struct _RTL_USER_PROCESS_PARAMET ULONG WINAPI RtlNtStatusToDosError (NTSTATUS Status); NTSTATUS WINAPI NtQueryInformationProcess(HANDLE ProcessHandle,PROCESSINFOCLASS ProcessInformationClass,PVOID ProcessInformation,ULONG ProcessInformationLength,PULONG ReturnLength); NTSTATUS WINAPI NtQueryInformationThread(HANDLE ThreadHandle,THREADINFOCLASS ThreadInformationClass,PVOID ThreadInformation,ULONG ThreadInformationLength,PULONG ReturnLength); - NTSTATUS WINAPI NtQueryInformationFile(HANDLE hFile,PIO_STATUS_BLOCK io,PVOID ptr,LONG len,FILE_INFORMATION_CLASS FileInformationClass); + NTSTATUS WINAPI NtQueryInformationFile(HANDLE hFile,PIO_STATUS_BLOCK io,PVOID ptr,ULONG len,FILE_INFORMATION_CLASS FileInformationClass); NTSTATUS WINAPI NtQueryObject(HANDLE Handle,OBJECT_INFORMATION_CLASS ObjectInformationClass,PVOID ObjectInformation,ULONG ObjectInformationLength,PULONG ReturnLength); NTSTATUS WINAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass,PVOID SystemInformation,ULONG SystemInformationLength,PULONG ReturnLength); NTSTATUS WINAPI NtQuerySystemTime(PLARGE_INTEGER SystemTime);