--- include/crtdbg.h.orig	2006-09-18 01:21:38.968750000 +0900
+++ include/crtdbg.h	2006-09-02 23:12:50.109375000 +0900
@@ -0,0 +1,11 @@
+#ifndef _CRTDBG_H
+#define _CRTDBG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifndef _ASSERTE
+#define _ASSERTE(expr) ((void)0)
+#endif
+
+#endif
--- include/excpt.h.orig	2009-01-11 04:32:43.000000000 +0900
+++ include/excpt.h	2009-08-21 09:21:56.000000000 +0900
@@ -16,8 +16,11 @@
 
 /* All the headers include this file. */
 #include <_mingw.h>
+#include <setjmp.h>
+#include <stdarg.h>
 
 #include <windef.h>
+#include <winbase.h>
 
 /*
  * NOTE: The constants structs and typedefs below should be defined in the
@@ -52,7 +55,7 @@
  * The type of function that is expected as an exception handler to be
  * installed with __try1.
  */
-typedef EXCEPTION_DISPOSITION (*PEXCEPTION_HANDLER)
+typedef EXCEPTION_DISPOSITION (* PEXCEPTION_HANDLER)
 		(struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
 
 /*
@@ -93,8 +96,122 @@
 	__asm__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl $8,%%esp;" \
 	 : : : "%eax");
 
+WINBASEAPI
+VOID
+WINAPI
+RtlUnwind (
+    IN PVOID TargetFrame OPTIONAL,
+    IN PVOID TargetIp OPTIONAL,
+    IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL,
+    IN PVOID ReturnValue
+    );
 #ifdef	__cplusplus
 }
+
+class __SEHandler
+{
+ public:
+  __SEHandler() {}
+  ~__SEHandler() {}
+  typedef int (*PF)(void *, LPEXCEPTION_POINTERS);
+  typedef void (*PH)(void *, LPEXCEPTION_POINTERS);
+  typedef void (*PN)(void *);
+  void Set(jmp_buf jb, void *pdata=NULL, PF pfilter=NULL, PH phandlerbody=NULL, PN pfinal=NULL)
+    {
+      __builtin_memcpy(m_jmpbuf, jb, sizeof(jmp_buf));
+      m_pData=pdata;
+      switch (reinterpret_cast<int>(pfilter))
+	{
+	default:
+	  m_filter=pfilter;
+	  break;
+	case EXCEPTION_CONTINUE_EXECUTION:
+	  m_filter=DefaultFilterContinueExecution;
+	  break;
+	case EXCEPTION_EXECUTE_HANDLER:
+	  m_filter=DefaultFilterExecuteHandler;
+	  break;
+	case EXCEPTION_CONTINUE_SEARCH:
+	  m_filter=DefaultFilterContinueSearch;
+	  break;
+	}
+      if (phandlerbody)
+	m_handlerbody=phandlerbody;
+      else
+	m_handlerbody=DefaultHandler;
+      if (pfinal)
+	m_final=pfinal;
+      else
+	m_final=DefaultFinal;
+      m_ER.pHandlerClass = this;
+      m_ER.hp = handler;
+      asm("movl %%fs:0, %%eax\n\t"
+	  "movl %%eax, %0": : "m" (m_ER.prev): "%eax" );
+      asm("movl %0, %%eax\n\t"
+	  "movl %%eax, %%fs:0": : "r" (&m_ER): "%eax" );
+    }
+  void Reset()
+    {
+      m_final(m_pData);
+      asm("movl %0, %%eax \n\t"
+	  "movl %%eax, %%fs:0"
+	  : : "m" (m_ER.prev): "%eax");
+    }
+ private:
+  __SEHandler(const __SEHandler&);
+  __SEHandler& operator=(const __SEHandler&);
+  struct _ER {
+    _ER* prev;
+    PEXCEPTION_HANDLER hp;
+    __SEHandler *pHandlerClass;
+  };
+  static EXCEPTION_DISPOSITION handler(
+		     struct _EXCEPTION_RECORD *pExceptionRecord,
+		     void * EstablisherFrame,
+		     struct _CONTEXT *ContextRecord,
+		     void * /*DispatcherContext*/)
+    {
+      __SEHandler* pThis = reinterpret_cast< _ER * >(EstablisherFrame)->pHandlerClass;
+      if ( pExceptionRecord->ExceptionFlags & EH_UNWINDING )
+	{
+	  pThis->m_final(pThis->m_pData);
+	  return ExceptionContinueSearch;
+	}
+      EXCEPTION_POINTERS ep={pExceptionRecord, ContextRecord};
+      switch ( pThis->m_filter(pThis->m_pData, &ep) )
+	{
+	case EXCEPTION_EXECUTE_HANDLER:
+	  RtlUnwind(EstablisherFrame, &&__set_label, pExceptionRecord, 0);
+__set_label:
+	  pThis->m_handlerbody(pThis->m_pData, &ep);
+	  ContextRecord->Ebp = pThis->m_jmpbuf[0];
+	  ContextRecord->Eip = pThis->m_jmpbuf[1];
+	  ContextRecord->Esp = pThis->m_jmpbuf[2];
+	  return ExceptionContinueExecution;
+	case EXCEPTION_CONTINUE_SEARCH:
+	  return ExceptionContinueSearch;
+	case EXCEPTION_CONTINUE_EXECUTION:
+	  return ExceptionContinueExecution;
+	}
+	  return ExceptionContinueExecution;
+    }
+  static int DefaultFilterContinueSearch(void *, LPEXCEPTION_POINTERS) { return EXCEPTION_CONTINUE_SEARCH; }
+  static int DefaultFilterContinueExecution(void *, LPEXCEPTION_POINTERS) { return EXCEPTION_CONTINUE_EXECUTION; }
+  static int DefaultFilterExecuteHandler(void *, LPEXCEPTION_POINTERS) { return EXCEPTION_EXECUTE_HANDLER; }
+  static void DefaultHandler(void *, LPEXCEPTION_POINTERS) {}
+  static void DefaultFinal(void *) {}
+  typedef int (*handler_p)(
+			   struct _EXCEPTION_RECORD *ExceptionRecord,
+			   void * EstablisherFrame,
+			   struct _CONTEXT *ContextRecord,
+			   void * DispatcherContext);
+  _ER m_ER;
+  void *m_pData;
+  PN m_final;
+  PH m_handlerbody;
+  PF m_filter;
+  jmp_buf m_jmpbuf;
+};
 #endif
 
 #endif	/* Not RC_INVOKED */
--- include/tchar.h.orig	2009-01-11 04:32:46.000000000 +0900
+++ include/tchar.h	2009-08-21 09:21:56.000000000 +0900
@@ -223,6 +223,9 @@
 #define _ttelldir	_wtelldir
 #define _tseekdir	_wseekdir
 
+#define _ttempnam	_wtempnam
+
+
 #else	/* Not _UNICODE */
 
 /*
@@ -407,6 +410,8 @@
 #define _ttelldir	telldir
 #define _tseekdir	seekdir
 
+#define _ttempnam	_tempnam
+
 #endif	/* Not _UNICODE */
 
 /*
--- include/amvideo.h.orig	2008-12-06 11:31:53.000000000 +0900
+++ include/amvideo.h	2009-08-21 09:21:56.000000000 +0900
@@ -52,10 +52,10 @@
 	BITMAPINFOHEADER bmiHeader;
 } VIDEOINFOHEADER;
 typedef struct tagVIDEOINFO {
-	RECT rcSource,
-	RECT rcTarget,
-	DWORD dwBitRate,
-	DWORD dwBitErrorRate,
+	RECT rcSource;
+	RECT rcTarget;
+	DWORD dwBitRate;
+	DWORD dwBitErrorRate;
 	REFERENCE_TIME AvgTimePerFrame;
 	BITMAPINFOHEADER bmiHeader;
 	union {
--- include/basetyps.h.orig	2008-12-06 11:31:53.000000000 +0900
+++ include/basetyps.h	2009-08-21 09:21:56.000000000 +0900
@@ -80,6 +80,8 @@
    CONST_VTABLE struct i##Vtbl
 #  define DECLARE_INTERFACE_(i,b) DECLARE_INTERFACE(i)
 # endif
+# define DECLARE_INTERFACE_IID(i,s) EXTERN_C const IID IID_##i; DECLARE_INTERFACE(i)
+# define DECLARE_INTERFACE_IID_(i,b,s) EXTERN_C const IID IID_##i; DECLARE_INTERFACE_(i,b)
 # define BEGIN_INTERFACE
 # define END_INTERFACE
 
--- include/objidl.h.orig	2008-12-06 11:32:04.000000000 +0900
+++ include/objidl.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#include <windows.h>
+#include <ole2.h>
+
 #ifndef _OBJIDL_H
 #define _OBJIDL_H
 #if __GNUC__ >= 3
@@ -880,8 +883,8 @@
 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 	STDMETHOD_(ULONG,Release)(THIS) PURE;
-	STDMETHOD(AddConnection)(THIS_ DWORD,DWORD) PURE;
-	STDMETHOD(ReleaseConnection)(THIS_ DWORD,DWORD,BOOL) PURE;
+	STDMETHOD_(DWORD,AddConnection)(THIS_ DWORD,DWORD) PURE;
+	STDMETHOD_(DWORD,ReleaseConnection)(THIS_ DWORD,DWORD,BOOL) PURE;
 };
 #undef INTERFACE
 
--- include/specstrings.h.orig	2008-12-06 11:32:09.000000000 +0900
+++ include/specstrings.h	2009-08-21 09:21:56.000000000 +0900
@@ -11,8 +11,31 @@
 /* __in and __out currently conflict with libstdc++, use with caution */
 
 
+#define __RPC__deref_inout_opt
+#define __RPC__deref_opt_inout_ecount_full_opt(size)
+#define __RPC__deref_opt_inout_opt
+#define __RPC__deref_out
+#define __RPC__deref_out_ecount_full_opt(size)
+#define __RPC__deref_out_opt
+#define __RPC__deref_out_opt_string
+#define __RPC__in
+#define __RPC__in_ecount_full(size)
+#define __RPC__in_ecount_full_opt(size)
+#define __RPC__in_opt
+#define __RPC__inout
+#define __RPC__inout_ecount_full(size)
+#define __RPC__inout_ecount_full_opt(size)
+#define __RPC__inout_opt
+#define __RPC__out
+#define __RPC__out_ecount_full(size)
+#define __RPC__out_ecount_full_string(size)
+#define __RPC__out_ecount_part(size,init)
+#define __RPC_unique_pointer
 #define __bcount(size)
 #define __bcount_opt(size)
+#define __callback
+#define __checkReturn
+#define __deref
 #define __deref_bcount(size)
 #define __deref_bcount_opt(size)
 #define __deref_ecount(size)
@@ -36,6 +59,7 @@
 #define __deref_inout_ecount_opt(size)
 #define __deref_inout_ecount_part(size,length)
 #define __deref_inout_ecount_part_opt(size,length)
+#define __deref_inout_ecount_z(size)
 #define __deref_inout_opt
 #define __deref_opt_bcount(size)
 #define __deref_opt_bcount_opt(size)
@@ -89,14 +113,23 @@
 #define __deref_out_ecount_part(size,length)
 #define __deref_out_ecount_part_opt(size,length)
 #define __deref_out_opt
+#define __deref_out_z
+#define __deref_out_z_opt
 #define __ecount(size)
 #define __ecount_opt(size)
+#define __field_bcount(size)
+#define __field_ecount(size)
+#define __field_ecount_opt(size)
+#define __format_string
+#define __gdi_entry
 #define __in
 #define __in_bcount(size)
 #define __in_bcount_opt(size)
 #define __in_ecount(size)
 #define __in_ecount_opt(size)
 #define __in_opt
+#define __in_xcount(size)
+#define __in_z_opt
 #define __inout
 #define __inout_bcount(size)
 #define __inout_bcount_full(size)
@@ -111,7 +144,12 @@
 #define __inout_ecount_part(size,length)
 #define __inout_ecount_part_opt(size,length)
 #define __inout_opt
+#define __inout_xcount(size)
+#define __notnull
+#define __nullnullterminated
+#define __nullterminated
 #define __out
+#define __out_awcount(expr,size)
 #define __out_bcount(size)
 #define __out_bcount_full(size)
 #define __out_bcount_full_opt(size)
@@ -119,12 +157,20 @@
 #define __out_bcount_part(size,length)
 #define __out_bcount_part_opt(size,length)
 #define __out_ecount(size)
+#define __out_ecount(size)
 #define __out_ecount_full(size)
 #define __out_ecount_full_opt(size)
 #define __out_ecount_opt(size)
 #define __out_ecount_part(size,length)
 #define __out_ecount_part_opt(size,length)
 #define __out_opt 
+#define __out_xcount(size)
+#define __out_xcount_opt(size)
+#define __reserved
+#define __struct_bcount(size)
+#define __success(expr)
+#define __typefix(ctype)
+#define __unaligned
 
 
 #endif /*_SPECSTRINGS_H */
--- include/uxtheme.h.orig	2008-12-06 11:32:11.000000000 +0900
+++ include/uxtheme.h	2010-01-22 14:50:56.327000000 +0900
@@ -10,7 +10,7 @@
 extern "C" {
 #endif
 
-#if (_WIN32_WINNT >= 0x0501)
+#if (_WIN32_WINNT >= 0x0500)
 #define DTBG_CLIPRECT 0x00000001
 #define DTBG_DRAWSOLID 0x00000002
 #define DTBG_OMITBORDER 0x00000004
@@ -35,6 +35,7 @@
 #define HTTB_RESIZINGBORDER (HTTB_RESIZINGBORDER_LEFT|HTTB_RESIZINGBORDER_TOP|HTTB_RESIZINGBORDER_RIGHT|HTTB_RESIZINGBORDER_BOTTOM)
 #define HTTB_SIZINGTEMPLATE 0x0100
 #define HTTB_SYSTEMSIZINGMARGINS 0x0200
+#if 0
 #define TMT_DISPLAYNAME 0x0259
 #define TMT_TOOLTIP 0x025A
 #define TMT_COMPANY 0x025B
@@ -186,6 +187,7 @@
 #define BT_IMAGEFILE  0x0000
 #define BT_BORDERFILL 0x0001
 #define BT_NONE       0x0002
+#endif
 
 typedef enum PROPERTYORIGIN {
 	PO_STATE = 0,
--- include/winbase.h.orig	2008-12-06 11:32:11.000000000 +0900
+++ include/winbase.h	2009-08-21 09:21:56.000000000 +0900
@@ -1354,8 +1354,8 @@
 WINBASEAPI HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
 WINBASEAPI BOOL WINAPI FindFirstFreeAce(PACL,PVOID*);
 #if (_WIN32_WINNT >= 0x0500)
-WINBASEAPI HANDLE WINAPI FindFirstVolumeA(LPCSTR,DWORD);
-WINBASEAPI HANDLE WINAPI FindFirstVolumeW(LPCWSTR,DWORD);
+WINBASEAPI HANDLE WINAPI FindFirstVolumeA(LPSTR,DWORD);
+WINBASEAPI HANDLE WINAPI FindFirstVolumeW(LPWSTR,DWORD);
 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointA(LPSTR,LPSTR,DWORD);
 WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointW(LPWSTR,LPWSTR,DWORD);
 #endif
@@ -1363,7 +1363,7 @@
 WINBASEAPI BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
 WINBASEAPI BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
 #if (_WIN32_WINNT >= 0x0500)
-WINBASEAPI BOOL WINAPI FindNextVolumeA(HANDLE,LPCSTR,DWORD);
+WINBASEAPI BOOL WINAPI FindNextVolumeA(HANDLE,LPSTR,DWORD);
 WINBASEAPI BOOL WINAPI FindNextVolumeW(HANDLE,LPWSTR,DWORD);
 WINBASEAPI BOOL WINAPI FindNextVolumeMountPointA(HANDLE,LPSTR,DWORD);
 WINBASEAPI BOOL WINAPI FindNextVolumeMountPointW(HANDLE,LPWSTR,DWORD);
@@ -1475,10 +1475,10 @@
 WINBASEAPI DWORD WINAPI GetLogicalDrives(void);
 WINBASEAPI DWORD WINAPI GetLogicalDriveStringsA(DWORD,LPSTR);
 WINBASEAPI DWORD WINAPI GetLogicalDriveStringsW(DWORD,LPWSTR);
-#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
+//#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
 WINBASEAPI DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
 WINBASEAPI DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
-#endif
+//#endif
 WINBASEAPI BOOL WINAPI GetMailslotInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD);
 WINBASEAPI DWORD WINAPI GetModuleFileNameA(HINSTANCE,LPSTR,DWORD);
 WINBASEAPI DWORD WINAPI GetModuleFileNameW(HINSTANCE,LPWSTR,DWORD);
@@ -1519,9 +1519,9 @@
 #endif
 WINBASEAPI HANDLE WINAPI GetProcessHeap(VOID);
 WINBASEAPI DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE);
-#if (_WIN32_WINNT >= 0x0501)
+//#if (_WIN32_WINNT >= 0x0501)
 WINBASEAPI DWORD WINAPI GetProcessId(HANDLE);
-#endif
+//#endif
 #if (_WIN32_WINNT >= 0x0500)
 WINBASEAPI BOOL WINAPI GetProcessIoCounters(HANDLE,PIO_COUNTERS);
 #endif
@@ -1802,9 +1802,9 @@
 WINBASEAPI BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
 WINBASEAPI HANDLE WINAPI OpenSemaphoreA(DWORD,BOOL,LPCSTR);
 WINBASEAPI HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
-#if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0490)
+//#if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0490)
 WINBASEAPI HANDLE WINAPI OpenThread(DWORD,BOOL,DWORD);
-#endif
+//#endif
 WINBASEAPI BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
 WINBASEAPI HANDLE WINAPI OpenWaitableTimerA(DWORD,BOOL,LPCSTR);
 WINBASEAPI HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR);
@@ -2029,6 +2029,7 @@
 WINBASEAPI DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
 WINBASEAPI BOOL WINAPI WaitNamedPipeA(LPCSTR,DWORD);
 WINBASEAPI BOOL WINAPI WaitNamedPipeW(LPCWSTR,DWORD);
+WINBASEAPI UINT WINAPI WinExec(LPCSTR,UINT);
 WINBASEAPI BOOL WINAPI WinLoadTrustProvider(GUID*);
 WINBASEAPI BOOL WINAPI WriteFile(HANDLE,PCVOID,DWORD,PDWORD,LPOVERLAPPED);
 WINBASEAPI BOOL WINAPI WriteFileEx(HANDLE,PCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
@@ -2151,9 +2152,9 @@
 #define GetFileAttributesEx GetFileAttributesExW
 #define GetFullPathName GetFullPathNameW
 #define GetLogicalDriveStrings GetLogicalDriveStringsW
-#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
+//#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
 #define GetLongPathName GetLongPathNameW
-#endif
+//#endif
 #define GetModuleFileName GetModuleFileNameW
 #define GetModuleHandle GetModuleHandleW
 #if (_WIN32_WINNT >= 0x0500)
@@ -2346,9 +2347,9 @@
 #define GetFileAttributesEx GetFileAttributesExA
 #define GetFullPathName GetFullPathNameA
 #define GetLogicalDriveStrings GetLogicalDriveStringsA
-#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
+//#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
 #define GetLongPathName GetLongPathNameA
-#endif
+//#endif
 #define GetNamedPipeHandleState GetNamedPipeHandleStateA
 #define GetModuleHandle GetModuleHandleA
 #if (_WIN32_WINNT >= 0x0500)
--- include/windef.h.orig	2008-12-06 11:32:12.000000000 +0900
+++ include/windef.h	2009-08-21 09:21:56.000000000 +0900
@@ -251,6 +251,7 @@
 typedef unsigned int UINT,*PUINT,*LPUINT;
 
 #include <winnt.h>
+#include <specstrings.h>
 
 typedef UINT_PTR WPARAM;
 typedef LONG_PTR LPARAM;
--- include/wininet.h.orig	2008-12-06 11:32:13.000000000 +0900
+++ include/wininet.h	2009-08-21 09:21:56.000000000 +0900
@@ -868,6 +868,7 @@
 BOOL WINAPI InternetAutodial(DWORD,DWORD);
 BOOL WINAPI InternetAutodialHangup(DWORD);
 BOOL WINAPI InternetGetConnectedState(LPDWORD,DWORD);
+BOOL WINAPI InternetGetConnectedStateEx(LPDWORD,LPTSTR,DWORD,DWORD);
 BOOL WINAPI InternetSetDialState(LPCTSTR,DWORD,DWORD);
 BOOL WINAPI InternetReadFileExA(HINTERNET,LPINTERNET_BUFFERSA,DWORD,DWORD_PTR);
 BOOL WINAPI InternetReadFileExW(HINTERNET,LPINTERNET_BUFFERSW,DWORD,DWORD_PTR);
--- include/winver.h.orig	2008-12-06 11:32:14.000000000 +0900
+++ include/winver.h	2009-08-21 09:21:56.000000000 +0900
@@ -101,10 +101,10 @@
 DWORD WINAPI VerFindFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT,LPWSTR,PUINT);
 DWORD WINAPI VerInstallFileA(DWORD,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,PUINT);
 DWORD WINAPI VerInstallFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT);
-DWORD WINAPI GetFileVersionInfoSizeA(LPCSTR,PDWORD);
-DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR,PDWORD);
-BOOL WINAPI GetFileVersionInfoA(LPCSTR,DWORD,DWORD,PVOID);
-BOOL WINAPI GetFileVersionInfoW(LPCWSTR,DWORD,DWORD,PVOID);
+DWORD WINAPI GetFileVersionInfoSizeA(LPSTR,PDWORD);
+DWORD WINAPI GetFileVersionInfoSizeW(LPWSTR,PDWORD);
+BOOL WINAPI GetFileVersionInfoA(LPSTR,DWORD,DWORD,PVOID);
+BOOL WINAPI GetFileVersionInfoW(LPWSTR,DWORD,DWORD,PVOID);
 DWORD WINAPI VerLanguageNameA(DWORD,LPSTR,DWORD);
 DWORD WINAPI VerLanguageNameW(DWORD,LPWSTR,DWORD);
 BOOL WINAPI VerQueryValueA(const LPVOID,LPSTR,LPVOID*,PUINT);
--- include/wtypes.h.orig	2008-12-06 11:32:14.000000000 +0900
+++ include/wtypes.h	2009-08-21 09:21:56.000000000 +0900
@@ -66,6 +66,19 @@
 	unsigned short asData[1];
 }FLAGGED_WORD_BLOB;
 
+typedef struct _COAUTHIDENTITY
+    {
+    /* [size_is] */ USHORT *User;
+    /* [range] */ ULONG UserLength;
+    /* [size_is] */ USHORT *Domain;
+    /* [range] */ ULONG DomainLength;
+    /* [size_is] */ USHORT *Password;
+    /* [range] */ ULONG PasswordLength;
+    ULONG Flags;
+    } 	COAUTHIDENTITY;
+
+typedef WORD CLIPFORMAT,*LPCLIPFORMAT;
+
 #ifndef OLE2ANSI
 typedef WCHAR OLECHAR;
 typedef LPWSTR LPOLESTR;
@@ -94,6 +107,7 @@
 	}_STRUCT_NAME(s);
 	LONGLONG int64;
 } CY;
+typedef union tagCY *LPCY;
 typedef double DATE;
 typedef struct  tagBSTRBLOB {
 	ULONG cbSize;
@@ -165,6 +179,52 @@
 #define DECIMAL_SETZERO(d) {(d).Lo64=(d).Hi32=(d).signscale=0;}
 #endif
 typedef void *HMETAFILEPICT;
+
+typedef enum tagTYSPEC {
+    TYSPEC_CLSID, 
+    TYSPEC_FILEEXT,
+    TYSPEC_MIMETYPE,
+    TYSPEC_FILENAME,
+    TYSPEC_PROGID,
+    TYSPEC_PACKAGENAME,
+    TYSPEC_OBJECTID
+} TYSPEC;
+
+typedef union {
+        CLSID clsid;
+        LPOLESTR pFileExt;
+        LPOLESTR pMimeType;
+        LPOLESTR pProgId;
+        LPOLESTR pFileName;
+        struct {
+        LPOLESTR pPackageName;
+        GUID PolicyId;
+        } ByName;
+        struct {
+        GUID ObjectId;
+        GUID PolicyId;
+        } ByObjectId;
+} uCLSSPEC;
+
+typedef struct tagCSPLATFORM {
+   DWORD dwContext;
+   DWORD dwVersionHi;
+   DWORD dwVersionLo;
+   DWORD dwProcessorArch;
+} CSPLATFORM;
+
+typedef struct tagQUERYCONTEXT {
+  DWORD dwContext;
+  CSPLATFORM Platform;
+  LCID Locale;
+  DWORD dwVersionHi;
+  DWORD dwVersionLo;
+} QUERYCONTEXT;
+typedef struct
+{
+	GUID fmtid;
+	DWORD pid;
+} PROPERTYKEY;
 #ifdef __cplusplus
 }
 #endif
--- include/adoctint.h.orig	2008-01-18 22:17:10.000000000 +0900
+++ include/adoctint.h	2009-08-21 09:21:56.000000000 +0900
@@ -11,6 +11,9 @@
 //--------------------------------------------------------------------
 #ifndef _ADOCTINT_H_
 #define _ADOCTINT_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 #ifndef _INC_TCHAR
 #include <tchar.h>
@@ -2489,11 +2492,11 @@
 #endif 	/* __Procedure_INTERFACE_DEFINED__ */
 EXTERN_C const CLSID CLSID_Catalog;
 #ifdef __cplusplus
-Catalog;
+//Catalog;
 #endif
 EXTERN_C const CLSID CLSID_Table;
 #ifdef __cplusplus
-Table;
+//Table;
 #endif
 #ifndef __Property_INTERFACE_DEFINED__
 #define __Property_INTERFACE_DEFINED__
@@ -2635,23 +2638,23 @@
 #endif 	/* __Property_INTERFACE_DEFINED__ */
 EXTERN_C const CLSID CLSID_Group;
 #ifdef __cplusplus
-Group;
+//Group;
 #endif
 EXTERN_C const CLSID CLSID_User;
 #ifdef __cplusplus
-User;
+//User;
 #endif
 EXTERN_C const CLSID CLSID_Column;
 #ifdef __cplusplus
-Column;
+//Column;
 #endif
 EXTERN_C const CLSID CLSID_Index;
 #ifdef __cplusplus
-Index;
+//Index;
 #endif
 EXTERN_C const CLSID CLSID_Key;
 #ifdef __cplusplus
-Key;
+//Key;
 #endif
 #ifndef __Tables_INTERFACE_DEFINED__
 #define __Tables_INTERFACE_DEFINED__
@@ -3332,8 +3335,8 @@
             /* [in] */ VARIANT Item,
             /* [defaultvalue][in] */ KeyTypeEnum Type,
             /* [optional][in] */ VARIANT Column,
-            /* [defaultvalue][in] */ __RPC__in BSTR RelatedADOTable = L"",
-            /* [defaultvalue][in] */ __RPC__in BSTR RelatedADOColumn = L"") = 0;
+            /* [defaultvalue][in] */ __RPC__in BSTR RelatedADOTable = const_cast<BSTR>(L""),
+            /* [defaultvalue][in] */ __RPC__in BSTR RelatedADOColumn = const_cast<BSTR>(L"")) = 0;
         
         virtual /* [helpcontext] */ HRESULT STDMETHODCALLTYPE Delete( 
             /* [in] */ VARIANT Item) = 0;
--- include/adodef.h.orig	2008-01-18 22:17:10.000000000 +0900
+++ include/adodef.h	2009-08-21 09:21:56.000000000 +0900
@@ -12,6 +12,9 @@
 
 #ifndef _ADODEF_H_
 #define _ADODEF_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 // TYPELIB MAJOR VERSIONS
 #define ADO_MAJOR			6
--- include/adoguids.h.orig	2008-01-18 22:17:10.000000000 +0900
+++ include/adoguids.h	2009-08-21 09:21:56.000000000 +0900
@@ -11,6 +11,10 @@
 //-----------------------------------------------------------------------------
 
 
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
 #define STRING_GUID(l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) l##-##w1##-##w2##-##b1##b2##-##b3##b4##b5##b6##b7##b8
 
 #if defined(__midl) || defined(GEN_MIDL)
--- include/adoint.h.orig	2008-01-18 22:17:10.000000000 +0900
+++ include/adoint.h	2009-08-21 09:21:56.000000000 +0900
@@ -11,6 +11,9 @@
 //--------------------------------------------------------------------
 #ifndef _ADOINT_H_
 #define _ADOINT_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 #ifndef _INC_TCHAR
 #include <tchar.h>
@@ -3494,7 +3497,7 @@
 #endif 	/* __ADOConnectionConstruction_INTERFACE_DEFINED__ */
 EXTERN_C const CLSID CLSID_Connection;
 #ifdef __cplusplus
-Connection;
+//Connection;
 #endif
 #ifndef ___Record_INTERFACE_DEFINED__
 #define ___Record_INTERFACE_DEFINED__
@@ -3793,7 +3796,7 @@
 #endif 	/* ___Record_INTERFACE_DEFINED__ */
 EXTERN_C const CLSID CLSID_Record;
 #ifdef __cplusplus
-Record;
+//Record;
 #endif
 #ifndef ___Stream_INTERFACE_DEFINED__
 #define ___Stream_INTERFACE_DEFINED__
@@ -4123,7 +4126,7 @@
 #endif 	/* ___Stream_INTERFACE_DEFINED__ */
 EXTERN_C const CLSID CLSID_Stream;
 #ifdef __cplusplus
-Stream;
+//Stream;
 #endif
 #ifndef __ADORecordConstruction_INTERFACE_DEFINED__
 #define __ADORecordConstruction_INTERFACE_DEFINED__
@@ -4405,11 +4408,11 @@
 #endif 	/* __ADOCommandConstruction_INTERFACE_DEFINED__ */
 EXTERN_C const CLSID CLSID_Command;
 #ifdef __cplusplus
-Command;
+//Command;
 #endif
 EXTERN_C const CLSID CLSID_Recordset;
 #ifdef __cplusplus
-Recordset;
+//Recordset;
 #endif
 #ifndef __Recordset15_INTERFACE_DEFINED__
 #define __Recordset15_INTERFACE_DEFINED__
@@ -8305,7 +8308,7 @@
 #endif 	/* ___Parameter_INTERFACE_DEFINED__ */
 EXTERN_C const CLSID CLSID_Parameter;
 #ifdef __cplusplus
-Parameter;
+//Parameter;
 #endif
 #ifndef __Parameters_INTERFACE_DEFINED__
 #define __Parameters_INTERFACE_DEFINED__
--- include/bcrypt.h.orig	2008-01-18 22:17:12.000000000 +0900
+++ include/bcrypt.h	2008-04-10 22:57:54.410750000 +0900
@@ -40,12 +40,6 @@
 #define OPTIONAL
 #endif
 
-#if !defined(__midl)
-#define BCRYPT_STRUCT_ALIGNMENT __declspec(align(BCRYPT_OBJECT_ALIGNMENT))
-#else
-#define BCRYPT_STRUCT_ALIGNMENT
-#endif /*!defined(__midl)*/
-
 //
 //  Alignment macros
 //
@@ -57,11 +51,7 @@
  #define BCRYPT_OBJECT_ALIGNMENT    4
 #endif
 
-#if !defined(__midl)
-#define BCRYPT_STRUCT_ALIGNMENT __declspec(align(BCRYPT_OBJECT_ALIGNMENT))
-#else
 #define BCRYPT_STRUCT_ALIGNMENT
-#endif /*!defined(__midl)*/
 
 //
 // DeriveKey KDF Types
@@ -108,7 +98,11 @@
 
 typedef BCRYPT_KEY_LENGTHS_STRUCT BCRYPT_AUTH_TAG_LENGTHS_STRUCT;
 
-#pragma pack(push, BCRYPT_OBJECT_ALIGNMENT)
+#if defined(_IA64_) || defined(_AMD64_)
+#pragma pack(push, 8)
+#else
+#pragma pack(push, 4)
+#endif
 typedef BCRYPT_STRUCT_ALIGNMENT struct _BCRYPT_OID
 {
     ULONG   cbOID;
--- include/commctrl.h.orig	2008-01-18 22:17:14.000000000 +0900
+++ include/commctrl.h	2009-08-21 09:21:56.000000000 +0900
@@ -14,6 +14,14 @@
 #ifndef _INC_COMMCTRL
 #define _INC_COMMCTRL
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 #pragma warning(push)
 #pragma warning(disable:4001) /* nonstandard extension : single line comment */
@@ -369,8 +377,10 @@
 
 // Shell reserved               (0U-580U) -  (0U-589U)
 
+#ifndef CDN_FIRST
 #define CDN_FIRST               (0U-601U)       // common dialog (new)
 #define CDN_LAST                (0U-699U)
+#endif
 
 #define TBN_FIRST               (0U-700U)       // toolbar
 #define TBN_LAST                (0U-720U)
@@ -683,7 +693,7 @@
 #define ILP_DOWNLEVEL       1           // Write or reads the stream using downlevel sematics.
 
 
-WINCOMMCTRLAPI HRESULT WINAPI ImageList_ReadEx(DWORD dwFlags, LPSTREAM pstm, REFIID riid, PVOID* ppv);
+//WINCOMMCTRLAPI HRESULT WINAPI ImageList_ReadEx(DWORD dwFlags, LPSTREAM pstm, REFIID riid, PVOID* ppv);
 WINCOMMCTRLAPI HRESULT WINAPI ImageList_WriteEx(HIMAGELIST himl, DWORD dwFlags, LPSTREAM pstm);
 #endif
 
@@ -713,7 +723,7 @@
 #endif
 
 #if (_WIN32_WINNT >= 0x0501)
-WINCOMMCTRLAPI HRESULT WINAPI HIMAGELIST_QueryInterface(HIMAGELIST himl, REFIID riid, void** ppv);
+//WINCOMMCTRLAPI HRESULT WINAPI HIMAGELIST_QueryInterface(HIMAGELIST himl, REFIID riid, void** ppv);
 
 #ifdef __cplusplus
 FORCEINLINE HIMAGELIST IImageListToHIMAGELIST(struct IImageList *himl)
@@ -8056,8 +8066,10 @@
 #if (_WIN32_WINNT >= 0x0501)
 
 // custom combobox control messages
+#ifndef CB_SETMINVISIBLE
 #define CB_SETMINVISIBLE        (CBM_FIRST + 1)
 #define CB_GETMINVISIBLE        (CBM_FIRST + 2)
+#endif
 #define CB_SETCUEBANNER         (CBM_FIRST + 3)
 #define CB_GETCUEBANNER         (CBM_FIRST + 4)
 
@@ -8651,7 +8663,7 @@
 
 #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
 #if defined(ISOLATION_AWARE_ENABLED) && (ISOLATION_AWARE_ENABLED != 0)
-#include "commctrl.inl"
+//#include "commctrl.inl"
 #endif /* ISOLATION_AWARE_ENABLED */
 #endif /* RC */
 
@@ -8666,6 +8678,10 @@
 #pragma warning(pop)
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif  /* _INC_COMMCTRL */
 
 
--- include/control.h.orig	2008-01-18 22:17:14.000000000 +0900
+++ include/control.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/dispex.h.orig	2008-01-18 22:17:16.000000000 +0900
+++ include/dispex.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/filter.h.orig	2008-01-18 22:17:18.000000000 +0900
+++ include/filter.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/gdiplusbitmap.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusbitmap.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /**************************************************************************\
 *
 * Copyright (c) 1998-2001, Microsoft Corp.  All Rights Reserved.
--- include/gdiplusbrush.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusbrush.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /**************************************************************************\
 * 
 * Copyright (c) 1998-2001, Microsoft Corp.  All Rights Reserved.
--- include/gdiplusenums.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusenums.h	2009-08-21 09:21:56.000000000 +0900
@@ -542,7 +542,7 @@
 
 #define GDIP_EMFPLUS_RECORD_BASE        0x00004000
 #define GDIP_WMF_RECORD_BASE            0x00010000
-#define GDIP_WMF_RECORD_TO_EMFPLUS(n)   ((EmfPlusRecordType)((n) | GDIP_WMF_RECORD_BASE))
+#define GDIP_WMF_RECORD_TO_EMFPLUS(n)   ((n) | GDIP_WMF_RECORD_BASE)
 #define GDIP_EMFPLUS_RECORD_TO_WMF(n)   ((n) & (~GDIP_WMF_RECORD_BASE))
 #define GDIP_IS_WMF_RECORDTYPE(n)       (((n) & GDIP_WMF_RECORD_BASE) != 0)
 
--- include/gdiplusfont.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusfont.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /**************************************************************************\
 *
 * Copyright (c) 1998-2001, Microsoft Corp.  All Rights Reserved.
--- include/gdiplusheaders.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusheaders.h	2008-03-28 21:44:34.907750000 +0900
@@ -704,7 +704,7 @@
 
 class CachedBitmap : public GdiplusBase
 {
-    friend Graphics;
+    friend class Graphics;
 
 public:
     CachedBitmap(IN Bitmap *bitmap,
@@ -888,7 +888,7 @@
 
     UINT GetDownLevelRasterizationLimit() const;
 
-    static UINT Metafile::EmfToWmfBits(
+    static UINT EmfToWmfBits(
         IN HENHMETAFILE       hemf,
         IN UINT               cbData16,     
         OUT LPBYTE            pData16,
--- include/gdiplusimageattributes.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusimageattributes.h	2009-08-21 09:21:56.000000000 +0900
@@ -32,6 +32,9 @@
 
 #ifndef _GDIPLUSIMAGEATTRIBUTES_H
 #define _GDIPLUSIMAGEATTRIBUTES_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 class GpImageAttributes;
 
--- include/gdiplusimaging.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusimaging.h	2009-08-21 09:21:56.000000000 +0900
@@ -160,7 +160,7 @@
     UINT Width;
     UINT Height;
     INT Stride;
-    PixelFormat PixelFormat;
+    ::Gdiplus::PixelFormat PixelFormat;
     VOID* Scan0;
     UINT_PTR Reserved;
 };
--- include/gdiplusmatrix.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusmatrix.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /**************************************************************************\
 * 
 * Copyright (c) 1998-2001, Microsoft Corp.  All Rights Reserved.
--- include/gdipluspath.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdipluspath.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /**************************************************************************\
 *
 * Copyright (c) 1998-2001, Microsoft Corp.  All Rights Reserved.
--- include/gdipluspen.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdipluspen.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /**************************************************************************\
 * 
 * Copyright (c) 1998-2001, Microsoft Corp.  All Rights Reserved.
--- include/gdiplusregion.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusregion.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /**************************************************************************\
 *
 * Copyright (c) 1998-2001, Microsoft Corp.  All Rights Reserved.
--- include/gdiplusstringformat.h.orig	2008-01-18 22:17:46.000000000 +0900
+++ include/gdiplusstringformat.h	2009-08-21 09:21:56.000000000 +0900
@@ -217,7 +217,7 @@
         ));
     }
 
-    StringTrimming StringFormat::GetTrimming() const
+    StringTrimming GetTrimming() const
     {
         StringTrimming trimming;
         SetStatus(DllExports::GdipGetStringFormatTrimming(
--- include/imm.h.orig	2008-01-18 22:17:20.000000000 +0900
+++ include/imm.h	2009-08-21 09:21:56.000000000 +0900
@@ -7,6 +7,13 @@
 #ifndef _IMM_
 #define _IMM_
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -715,5 +722,9 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif  // _IMM_
 
--- include/imagehlp.h.orig	2008-01-18 22:17:20.000000000 +0900
+++ include/imagehlp.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /*++ BUILD Version: 0000     Increment this if a change has global effects
 
 Copyright (c) Microsoft Corporation. All rights reserved.
@@ -59,6 +62,13 @@
 #include <wintrust.h>
 #endif
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -407,7 +417,7 @@
 IMAGEAPI
 TouchFileTimes (
     __in HANDLE FileHandle,
-    __in_opt PSYSTEMTIME pSystemTime
+    __in_opt LPSYSTEMTIME pSystemTime
     );
 
 BOOL
@@ -3950,7 +3960,7 @@
 // ThreadId must be 4 bytes on all architectures.
 //
 
-C_ASSERT (sizeof ( ((PPROCESS_INFORMATION)0)->dwThreadId ) == 4);
+//C_ASSERT (sizeof ( ((PPROCESS_INFORMATION)0)->dwThreadId ) == 4);
 
 typedef struct _MINIDUMP_THREAD {
     ULONG32 ThreadId;
@@ -4684,5 +4694,9 @@
 #endif
 
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif // _IMAGEHLP_
 
--- include/mapiwin.h.orig	2008-01-18 22:17:22.000000000 +0900
+++ include/mapiwin.h	2009-08-21 09:21:56.000000000 +0900
@@ -428,5 +428,5 @@
 #endif
 
 #endif /* __MAPIWIN_H__ */
-
+
 
--- include/msdasc.h.orig	2008-01-18 22:17:26.000000000 +0900
+++ include/msdasc.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/msi.h.orig	2008-01-18 22:17:28.000000000 +0900
+++ include/msi.h	2009-08-21 09:21:56.000000000 +0900
@@ -59,6 +59,14 @@
 #endif // _MSI_NO_CRYPTO
 #endif //(_WIN32_MSI >= 150)
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 // --------------------------------------------------------------------------
 // Installer generic handle definitions
 // --------------------------------------------------------------------------
@@ -2248,5 +2256,9 @@
 // LOCALIZE END
 
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif // _MSI_H_
 
--- include/msiquery.h.orig	2008-01-18 22:17:28.000000000 +0900
+++ include/msiquery.h	2009-08-21 09:21:56.000000000 +0900
@@ -21,6 +21,14 @@
 #define _MSIQUERY_H_
 #include "msi.h"  // INSTALLSTATE
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #define MSI_NULL_INTEGER 0x80000000  // integer value reserved for null
 
 // MsiOpenDatabase persist predefine values, otherwise output database path is used
@@ -1026,5 +1034,9 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif // _MSIQUERY_H_
 
--- include/multimon.h.orig	2008-01-18 22:17:30.000000000 +0900
+++ include/multimon.h	2009-08-21 09:21:56.000000000 +0900
@@ -175,7 +175,7 @@
 
 BOOL IsPlatformNT()
 { 
-    OSVERSIONINFOA osvi = {0};
+    OSVERSIONINFOA osvi;
     osvi.dwOSVersionInfoSize = sizeof(osvi);
     GetVersionExA((OSVERSIONINFOA*)&osvi);
     return (VER_PLATFORM_WIN32_NT == osvi.dwPlatformId);    
--- include/ntquery.h.orig	2008-01-18 22:17:30.000000000 +0900
+++ include/ntquery.h	2009-02-16 21:34:39.065125000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 //+---------------------------------------------------------------------------
 //
 //  Microsoft Windows
@@ -18,6 +21,14 @@
 
 #include "stgprop.h"
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #if defined(__cplusplus)
 extern "C"
 {
@@ -404,6 +415,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif // __NTQUERY_H__
 
 
--- include/oaidl.h.orig	2008-12-06 11:32:03.000000000 +0900
+++ include/oaidl.h	2010-02-27 13:28:29.448250000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -442,7 +445,7 @@
                 FLOAT fltVal;
                 DOUBLE dblVal;
                 VARIANT_BOOL boolVal;
-                _VARIANT_BOOL bool;
+//                _VARIANT_BOOL bool;
                 SCODE scode;
                 CY cyVal;
                 DATE date;
--- include/ocidl.h.orig	2008-01-18 22:17:32.000000000 +0900
+++ include/ocidl.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -294,6 +297,14 @@
 #include "servprov.h"
 #include "urlmon.h"
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #ifdef __cplusplus
 extern "C"{
 #endif 
@@ -4595,11 +4606,13 @@
 	HITRESULT_HIT	= 3
     } 	HITRESULT;
 
+#if 0
 typedef /* [v1_enum] */ 
 enum tagDVASPECT2
     {	DVASPECT_OPAQUE	= 16,
 	DVASPECT_TRANSPARENT	= 32
     } 	DVASPECT2;
+#endif
 
 typedef struct tagExtentInfo
     {
@@ -6554,6 +6567,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif
 
 
--- include/oleauto.h.orig	2008-01-18 22:17:32.000000000 +0900
+++ include/oleauto.h	2009-08-21 09:21:56.000000000 +0900
@@ -56,6 +56,14 @@
 /* pull in the MIDL generated header */
 #include <oaidl.h>
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 
 /*---------------------------------------------------------------------*/
 /*                            BSTR API                                 */
@@ -1160,7 +1168,7 @@
 
 // Declare variant access functions.
 
-#if __STDC__ || defined(NONAMELESSUNION)
+#ifdef NONAMELESSUNION
 #define V_UNION(X, Y)   ((X)->n1.n2.n3.Y)
 #define V_VT(X)         ((X)->n1.n2.vt)
 #define V_RECORDINFO(X) ((X)->n1.n2.n3.brecVal.pRecInfo)
@@ -1242,5 +1250,9 @@
 #include <poppack.h>
 #endif // RC_INVOKED
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif     // __OLEAUTO_H__
 
--- include/olectl.h.orig	2008-01-18 22:17:32.000000000 +0900
+++ include/olectl.h	2009-08-21 09:21:56.000000000 +0900
@@ -28,6 +28,14 @@
 #include <ocidl.h>
 #endif // _MAC
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #ifdef _OLEAUT32_
 #define WINOLECTLAPI        STDAPI
 #define WINOLECTLAPI_(type) STDAPI_(type)
@@ -616,5 +624,9 @@
 
 #endif // defined(__MKTYPLIB__) || defined(__midl)
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif // _OLECTL_H_
 
--- include/oledb.h.orig	2008-01-18 22:17:32.000000000 +0900
+++ include/oledb.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -797,7 +800,7 @@
 
 //@@@+ V2.0
 #if( OLEDBVER >= 0x0200 )
-#if !defined(_WINBASE_) && !defined(_FILETIME_)
+#if !defined(_WINBASE_H) && !defined(_FILETIME_)
 #define _FILETIME_
 typedef struct _FILETIME {
 		DWORD dwLowDateTime;
--- include/oleidl.h.orig	2008-01-18 22:17:32.000000000 +0900
+++ include/oleidl.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -189,6 +192,14 @@
 /* header files for imported files */
 #include "objidl.h"
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #ifdef __cplusplus
 extern "C"{
 #endif 
@@ -3868,6 +3879,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif
 
 
--- include/propidl.h.orig	2008-01-18 22:17:32.000000000 +0900
+++ include/propidl.h	2010-02-27 14:11:52.213875000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -76,6 +79,14 @@
 #include "objidl.h"
 #include "oaidl.h"
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #ifdef __cplusplus
 extern "C"{
 #endif 
@@ -143,6 +154,7 @@
     CHAR *pElems;
     } 	CAC;
 
+#if 0
 typedef struct tagCAUB
     {
     ULONG cElems;
@@ -268,7 +280,9 @@
     ULONG cElems;
     CLSID *pElems;
     } 	CACLSID;
+#endif
 
+#if 0
 #ifdef MIDL_PASS
 // This is the PROPVARIANT padding layout for marshaling.
 typedef BYTE PROPVAR_PAD1;
@@ -385,6 +399,7 @@
 #endif
 
 #endif /* _MSC_EXTENSIONS */
+#endif
 
 #ifdef MIDL_PASS
 // This is the LPPROPVARIANT definition for marshaling.
@@ -509,6 +524,7 @@
 
 #define	PRSPEC_PROPID	( 1 )
 
+#if 0
 typedef struct tagPROPSPEC
     {
     ULONG ulKind;
@@ -526,12 +542,14 @@
     PROPID propid;
     VARTYPE vt;
     } 	STATPROPSTG;
+#endif
 
 // Macros for parsing the OS Version of the Property Set Header
 #define PROPSETHDR_OSVER_KIND(dwOSVer)      HIWORD( (dwOSVer) )
 #define PROPSETHDR_OSVER_MAJOR(dwOSVer)     LOBYTE(LOWORD( (dwOSVer) ))
 #define PROPSETHDR_OSVER_MINOR(dwOSVer)     HIBYTE(LOWORD( (dwOSVer) ))
 #define PROPSETHDR_OSVERSION_UNKNOWN        0xFFFFFFFF
+#if 0
 typedef struct tagSTATPROPSETSTG
     {
     FMTID fmtid;
@@ -542,12 +560,14 @@
     FILETIME atime;
     DWORD dwOSVersion;
     } 	STATPROPSETSTG;
+#endif
 
 
 
 extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0000_v0_0_c_ifspec;
 extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0000_v0_0_s_ifspec;
 
+#if 0
 #ifndef __IPropertyStorage_INTERFACE_DEFINED__
 #define __IPropertyStorage_INTERFACE_DEFINED__
 
@@ -1119,7 +1139,6 @@
 #endif 	/* C style interface */
 
 
-
 /* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATPROPSETSTG_RemoteNext_Proxy( 
     IEnumSTATPROPSETSTG * This,
     /* [in] */ ULONG celt,
@@ -1136,6 +1155,7 @@
 
 
 #endif 	/* __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ */
+#endif
 
 
 /* interface __MIDL_itf_propidl_0000_0004 */
@@ -1268,6 +1287,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif
 
 
--- include/propkeydef.h.orig	2008-01-18 22:17:32.000000000 +0900
+++ include/propkeydef.h	2009-08-21 09:21:56.000000000 +0900
@@ -2,6 +2,10 @@
 #define PID_FIRST_USABLE 2
 #endif
 
+#ifndef __MIDL_CONST
+#define __MIDL_CONST const
+#endif
+
 #ifndef REFPROPERTYKEY
 #ifdef __cplusplus
 #define REFPROPERTYKEY const PROPERTYKEY &
--- include/propsys.h.orig	2008-01-18 22:17:34.000000000 +0900
+++ include/propsys.h	2009-08-21 09:21:56.000000000 +0900
@@ -228,6 +228,14 @@
 #endif // 0
 #include <propkeydef.h>
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 
 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0000_v0_0_c_ifspec;
 extern RPC_IF_HANDLE __MIDL_itf_propsys_0000_0000_v0_0_s_ifspec;
@@ -3600,6 +3608,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif
 
 
--- include/propvarutil.h.orig	2008-01-18 22:17:34.000000000 +0900
+++ include/propvarutil.h	2010-02-26 19:34:40.863625000 +0900
@@ -14,6 +14,14 @@
 #include <shtypes.h>
 #include <shlwapi.h>
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #ifndef PSSTDAPI
 #if defined(_PROPSYS_)
 #define PSSTDAPI          STDAPI
--- include/shlobj.h.orig	2008-01-18 22:17:36.000000000 +0900
+++ include/shlobj.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /*===========================================================================
 
 Copyright (c) Microsoft Corporation. All rights reserved.
@@ -103,6 +106,14 @@
 #include <shtypes.h>
 #include <shobjidl.h>
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
 #pragma once
 #endif
@@ -3117,7 +3128,7 @@
 SHSTDAPI_(BOOL)                 ILIsEqual(__in PCIDLIST_ABSOLUTE pidl1, __in PCIDLIST_ABSOLUTE pidl2);
 SHSTDAPI_(BOOL)                 ILIsParent(__in PCIDLIST_ABSOLUTE pidl1, __in PCIDLIST_ABSOLUTE pidl2, BOOL fImmediate);
 SHSTDAPI                        ILSaveToStream(__in IStream *pstm, __in PCUIDLIST_RELATIVE pidl);
-DECLSPEC_DEPRECATED SHSTDAPI    ILLoadFromStream(__in IStream *pstm, __inout PIDLIST_RELATIVE *pidl);
+SHSTDAPI    ILLoadFromStream(__in IStream *pstm, __inout PIDLIST_RELATIVE *pidl);
 SHSTDAPI                        ILLoadFromStreamEx(__in IStream *pstm, __deref_out PIDLIST_RELATIVE *pidl);
 
 #if (_WIN32_IE >= 0x0400)
@@ -4578,5 +4589,9 @@
 #endif
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif /* _SHLOBJ_H_ */
 
--- include/shobjidl.h.orig	2008-01-18 22:17:36.000000000 +0900
+++ include/shobjidl.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -1667,6 +1670,14 @@
 #include "prsht.h"
 #include "propsys.h"
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #ifdef __cplusplus
 extern "C"{
 #endif 
@@ -6384,7 +6395,6 @@
 
 typedef ICommDlgBrowser2 *LPCOMMDLGBROWSER2;
 
-#endif  // NTDDI_WIN2K
 #if (_WIN32_IE >= _WIN32_IE_IE70)
 
 
@@ -6727,6 +6737,7 @@
 /* [local] */ 
 
 #endif  // (_WIN32_IE >= _WIN32_IE_IE70)
+#endif  // NTDDI_WIN2K
 
 
 extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0000_0026_v0_0_c_ifspec;
@@ -7331,6 +7342,13 @@
 typedef LPTBBUTTON LPTBBUTTONSB;
 #endif //_NEVER_
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
 
 extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0000_0032_v0_0_c_ifspec;
 extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0000_0032_v0_0_s_ifspec;
@@ -29000,6 +29018,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif
 
 
--- include/shtypes.h.orig	2008-01-18 22:17:36.000000000 +0900
+++ include/shtypes.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -137,7 +140,7 @@
 
 #endif // defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
 #include <poppack.h>
-typedef /* [unique] */  __RPC_unique_pointer BYTE_BLOB *wirePIDL;
+//typedef /* [unique] */  __RPC_unique_pointer BYTE_BLOB *wirePIDL;
 
 typedef /* [wire_marshal] */ ITEMIDLIST __unaligned *LPITEMIDLIST;
 
--- include/sspi.h.orig	2008-01-18 22:17:38.000000000 +0900
+++ include/sspi.h	2009-08-21 09:21:56.000000000 +0900
@@ -20,6 +20,14 @@
 #define __SSPI_H__
 // end_ntifs
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #if _MSC_VER > 1000
 #pragma once
 #endif
@@ -2154,8 +2162,7 @@
 
 // begin_ntifs
 
-#ifndef _AUTH_IDENTITY_DEFINED
-#define _AUTH_IDENTITY_DEFINED
+#ifndef SEC_WINNT_AUTH_IDENTITY_ANSI
 
 //
 // This was not defined in NTIFS.h for windows 2000 however
@@ -2326,6 +2333,10 @@
 }  // extern "C"
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 // begin_ntifs
 #endif // __SSPI_H__
 // end_ntifs
--- include/strmif.h.orig	2008-01-18 22:17:38.000000000 +0900
+++ include/strmif.h	2009-02-16 21:34:39.065125000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -888,6 +891,14 @@
 #include "oaidl.h"
 #include "ocidl.h"
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #ifdef __cplusplus
 extern "C"{
 #endif 
@@ -16250,7 +16261,7 @@
 #define _IAMFilterGraphCallback_
 // Note: Because this interface was not defined as a proper interface it is
 //       supported under C++ only. Methods aren't stdcall.
-EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
+DEFINE_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
 interface IAMFilterGraphCallback : public IUnknown
 {
     // S_OK means rendering complete, S_FALSE means retry now.
@@ -21934,7 +21945,7 @@
 typedef struct tagVMRGUID
     {
     GUID *pGUID;
-    GUID GUID;
+    GUID aGUID;
     } 	VMRGUID;
 
 typedef struct tagVMRMONITORINFO
@@ -23341,6 +23352,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif
 
 
--- include/strsafe.h.orig	2008-01-18 22:17:38.000000000 +0900
+++ include/strsafe.h	2009-02-16 21:34:39.065125000 +0900
@@ -13,12 +13,23 @@
 #if (_MSC_VER > 1000)
 #pragma once
 #endif
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 #include <stdio.h>          // for _vsnprintf, _vsnwprintf, getc, getwc
 #include <string.h>         // for memset
 #include <stdarg.h>         // for va_start, etc.
 #include <specstrings.h>    // for __in, etc.
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #if !defined(_W64)
 #if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && (_MSC_VER >= 1300)
 #define _W64 __w64
@@ -9254,7 +9265,7 @@
             wchar_t ch = getwc(stdin);
             // ASSERT(sizeof(wchar_t) == sizeof(wint_t));
             
-            if (ch == WEOF)
+            if (ch == 0xffff)
             {
                 if (cchNewDestLength == 0)
                 {
@@ -9763,5 +9774,9 @@
 
 #pragma warning(pop)
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif  // _STRSAFE_H_INCLUDED_
 
--- include/structuredquery.h.orig	2008-01-18 22:17:38.000000000 +0900
+++ include/structuredquery.h	2009-08-21 09:21:56.000000000 +0900
@@ -233,6 +233,14 @@
 #include "ocidl.h"
 #include "propidl.h"
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #ifdef __cplusplus
 extern "C"{
 #endif 
@@ -2472,6 +2480,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif
 
 
--- include/urlmon.h.orig	2008-01-18 22:17:40.000000000 +0900
+++ include/urlmon.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -330,6 +333,14 @@
 #include "servprov.h"
 #include "msxml.h"
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #ifdef __cplusplus
 extern "C"{
 #endif 
@@ -8880,6 +8891,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif
 
 
--- include/wincrypt.h.orig	2008-01-18 22:17:42.000000000 +0900
+++ include/wincrypt.h	2009-02-16 21:34:39.065125000 +0900
@@ -14,6 +14,14 @@
 
 #include <specstrings.h>        /* for SAL annotations */
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 #if defined (_MSC_VER)
 
 #if ( _MSC_VER >= 800 )
@@ -1927,6 +1935,14 @@
 #include <bcrypt.h>
 #include <ncrypt.h>
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+
 // This type is used when the API can take either the CAPI1 HCRYPTPROV or
 // the CNG NCRYPT_KEY_HANDLE. Where appropriate, the HCRYPTPROV will be
 // converted to a NCRYPT_KEY_HANDLE via the CNG NCryptTranslateHandle().
@@ -17113,8 +17129,8 @@
     __in      DWORD                       dwFlags,
     __in_opt  PCRYPT_KEY_PROV_INFO        pKeyProvInfo,
     __in_opt  PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
-    __in_opt  PSYSTEMTIME                 pStartTime,
-    __in_opt  PSYSTEMTIME                 pEndTime,
+    __in_opt  LPSYSTEMTIME                 pStartTime,
+    __in_opt  LPSYSTEMTIME                 pEndTime,
     __in_opt  PCERT_EXTENSIONS            pExtensions
     );
 
@@ -19174,6 +19190,10 @@
 #endif
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif // __WINCRYPT_H__
 
 
--- include/winerror.h.orig	2008-01-18 22:17:42.000000000 +0900
+++ include/winerror.h	2009-08-21 09:21:56.000000000 +0900
@@ -23,6 +23,11 @@
 
 #include <specstrings.h>
 
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
 //
 //  Values are 32 bit values laid out as follows:
 //
--- include/wingdi.h.orig	2008-01-18 22:17:42.000000000 +0900
+++ include/wingdi.h	2009-08-21 09:21:56.000000000 +0900
@@ -9,6 +9,13 @@
 #ifndef _WINGDI_
 #define _WINGDI_
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
 
 #pragma once
 
@@ -1901,7 +1908,7 @@
 /* size of a form name string */
 #define CCHFORMNAME 32
 
-#if (_WIN32_WINNT >= ((OSVER(NTDDI_WINXPSP2)) >> 16))
+#if (_WIN32_WINNT >= ((NTDDI_WINXPSP2 & 0xFFFF0000) >> 16))
 typedef struct _devicemodeA {
     BYTE   dmDeviceName[CCHDEVICENAME];
     WORD dmSpecVersion;
@@ -5424,6 +5431,10 @@
 }
 #endif
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif /* _WINGDI_ */
 
 
--- include/wintrust.h.orig	2008-01-18 22:17:42.000000000 +0900
+++ include/wintrust.h	2009-08-21 09:21:56.000000000 +0900
@@ -1252,6 +1252,7 @@
 //
 #ifdef WT_DEFINE_ALL_APIS
 
+#if 0
 typedef struct _WIN_CERTIFICATE
 {
     DWORD       dwLength;
@@ -1260,6 +1261,7 @@
     BYTE        bCertificate[ANYSIZE_ARRAY];
 
 } WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
+#endif
 
 #define WIN_CERT_REVISION_1_0               (0x0100)
 #define WIN_CERT_REVISION_2_0               (0x0200)
--- include/winuser.h.orig	2008-01-18 22:17:44.000000000 +0900
+++ include/winuser.h	2009-08-21 09:21:56.000000000 +0900
@@ -11,6 +11,15 @@
 #ifndef _WINUSER_
 #define _WINUSER_
 
+#define __in
+#define __out
+#ifdef __cplusplus
+#define __inline inline
+#else
+#define __inline static __inline__
+#endif
+DECLARE_HANDLE(HHOOK);
+typedef CONST GUID *LPCGUID;
 
 
 #pragma once
@@ -39,7 +48,7 @@
 #define WINVER  0x0500      /* version 5.0 */
 #endif /* !WINVER */
 
-#include <stdarg.h>
+#include <../include/stdarg.h>
 
 #ifndef NOUSER
 
@@ -10717,7 +10726,7 @@
 #define CDS_RESET                    0x40000000
 #define CDS_NORESET                  0x10000000
 
-#include <tvout.h>
+//#include <tvout.h>
 
 /* Return values for ChangeDisplaySettings */
 #define DISP_CHANGE_SUCCESSFUL       0
@@ -12571,16 +12580,20 @@
 
 
 
-#if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
-#if defined(ISOLATION_AWARE_ENABLED) && (ISOLATION_AWARE_ENABLED != 0)
-#include "winuser.inl"
-#endif /* ISOLATION_AWARE_ENABLED */
-#endif /* RC */
+//#if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
+//#if defined(ISOLATION_AWARE_ENABLED) && (ISOLATION_AWARE_ENABLED != 0)
+//#include "winuser.inl"
+//#endif /* ISOLATION_AWARE_ENABLED */
+//#endif /* RC */
 
 #ifdef __cplusplus
 }
 #endif  /* __cplusplus */
 
+#undef __in
+#undef __out
+#undef __inline
+
 #endif /* !_WINUSER_ */
 
 
--- include/wspiapi.h.orig	2008-01-18 22:17:44.000000000 +0900
+++ include/wspiapi.h	2009-08-21 09:21:56.000000000 +0900
@@ -15,6 +15,9 @@
 
 #ifndef _WSPIAPI_H_
 #define _WSPIAPI_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 #pragma once
 
@@ -85,6 +88,11 @@
 
 #ifdef __cplusplus
 extern "C" {
+#define _inline inline
+#define __inline inline
+#else
+#define _inline static __inline__
+#define __inline static __inline__
 #endif
     
 ////////////////////////////////////////////////////////////
@@ -1052,6 +1060,8 @@
     (*pfFreeAddrInfo)(ai);
 }
 
+#undef _inline
+#undef __inline
 #ifdef  __cplusplus
 }
 #endif
--- include/d3dtypes.h.orig	2004-09-27 12:34:16.000000000 +0900
+++ include/d3dtypes.h	2007-11-30 21:42:09.558750000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 /*==========================================================================;
  *
  *  Copyright (C) Microsoft Corporation.  All Rights Reserved.
--- include/d3dx9core.h.orig	2006-03-31 12:16:02.000000000 +0900
+++ include/d3dx9core.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 ///////////////////////////////////////////////////////////////////////////
 //
 //  Copyright (C) Microsoft Corporation.  All Rights Reserved.
--- include/d3dx9math.h.orig	2005-07-22 17:00:18.000000000 +0900
+++ include/d3dx9math.h	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 //////////////////////////////////////////////////////////////////////////////
 //
 //  Copyright (C) Microsoft Corporation.  All Rights Reserved.
--- include/d3dx9math.inl.orig	2005-03-18 17:26:56.000000000 +0900
+++ include/d3dx9math.inl	2009-08-21 09:21:56.000000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 //////////////////////////////////////////////////////////////////////////////
 //
 //  Copyright (C) Microsoft Corporation.  All Rights Reserved.
--- include/dxtrans.h.orig	2004-09-28 00:18:32.000000000 +0900
+++ include/dxtrans.h	2007-01-02 22:08:41.640625000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
 
 #pragma warning( disable: 4049 )  /* more than 64k source lines */
 
