Various changes for 32-bit and 64-bit support.
objc specific changes not defining interface for __OBJC__.



git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@202 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/ChangeLog b/mingw-w64-headers/include/ChangeLog
index 46d07d8..0d9f9a0 100755
--- a/mingw-w64-headers/include/ChangeLog
+++ b/mingw-w64-headers/include/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-19  Kai Tietz  <kai.tietz@onevision.com>
+
+	* all files with interface: Use instead struct for objc sake.
+	various changes for 32-bit support.
+
 2007-11-15  Kai Tietz  <kai.tietz@onevision.com>
 
 	* wchar.h: Add _iob definition. Additionally add 32-bit
diff --git a/mingw-w64-headers/include/activscp.h b/mingw-w64-headers/include/activscp.h
index cfb8ecc..fac215c 100755
--- a/mingw-w64-headers/include/activscp.h
+++ b/mingw-w64-headers/include/activscp.h
@@ -24,122 +24,122 @@
 
 #ifndef __IActiveScriptSite_FWD_DEFINED__
 #define __IActiveScriptSite_FWD_DEFINED__
-typedef interface IActiveScriptSite IActiveScriptSite;
+typedef struct IActiveScriptSite IActiveScriptSite;
 #endif
 
 #ifndef __IActiveScriptError_FWD_DEFINED__
 #define __IActiveScriptError_FWD_DEFINED__
-typedef interface IActiveScriptError IActiveScriptError;
+typedef struct IActiveScriptError IActiveScriptError;
 #endif
 
 #ifndef __IActiveScriptError64_FWD_DEFINED__
 #define __IActiveScriptError64_FWD_DEFINED__
-typedef interface IActiveScriptError64 IActiveScriptError64;
+typedef struct IActiveScriptError64 IActiveScriptError64;
 #endif
 
 #ifndef __IActiveScriptSiteWindow_FWD_DEFINED__
 #define __IActiveScriptSiteWindow_FWD_DEFINED__
-typedef interface IActiveScriptSiteWindow IActiveScriptSiteWindow;
+typedef struct IActiveScriptSiteWindow IActiveScriptSiteWindow;
 #endif
 
 #ifndef __IActiveScriptSiteInterruptPoll_FWD_DEFINED__
 #define __IActiveScriptSiteInterruptPoll_FWD_DEFINED__
-typedef interface IActiveScriptSiteInterruptPoll IActiveScriptSiteInterruptPoll;
+typedef struct IActiveScriptSiteInterruptPoll IActiveScriptSiteInterruptPoll;
 #endif
 
 #ifndef __IActiveScript_FWD_DEFINED__
 #define __IActiveScript_FWD_DEFINED__
-typedef interface IActiveScript IActiveScript;
+typedef struct IActiveScript IActiveScript;
 #endif
 
 #ifndef __IActiveScriptParse32_FWD_DEFINED__
 #define __IActiveScriptParse32_FWD_DEFINED__
-typedef interface IActiveScriptParse32 IActiveScriptParse32;
+typedef struct IActiveScriptParse32 IActiveScriptParse32;
 #endif
 
 #ifndef __IActiveScriptParse64_FWD_DEFINED__
 #define __IActiveScriptParse64_FWD_DEFINED__
-typedef interface IActiveScriptParse64 IActiveScriptParse64;
+typedef struct IActiveScriptParse64 IActiveScriptParse64;
 #endif
 
 #ifndef __IActiveScriptParseProcedureOld32_FWD_DEFINED__
 #define __IActiveScriptParseProcedureOld32_FWD_DEFINED__
-typedef interface IActiveScriptParseProcedureOld32 IActiveScriptParseProcedureOld32;
+typedef struct IActiveScriptParseProcedureOld32 IActiveScriptParseProcedureOld32;
 #endif
 
 #ifndef __IActiveScriptParseProcedureOld64_FWD_DEFINED__
 #define __IActiveScriptParseProcedureOld64_FWD_DEFINED__
-typedef interface IActiveScriptParseProcedureOld64 IActiveScriptParseProcedureOld64;
+typedef struct IActiveScriptParseProcedureOld64 IActiveScriptParseProcedureOld64;
 #endif
 
 #ifndef __IActiveScriptParseProcedure32_FWD_DEFINED__
 #define __IActiveScriptParseProcedure32_FWD_DEFINED__
-typedef interface IActiveScriptParseProcedure32 IActiveScriptParseProcedure32;
+typedef struct IActiveScriptParseProcedure32 IActiveScriptParseProcedure32;
 #endif
 
 #ifndef __IActiveScriptParseProcedure64_FWD_DEFINED__
 #define __IActiveScriptParseProcedure64_FWD_DEFINED__
-typedef interface IActiveScriptParseProcedure64 IActiveScriptParseProcedure64;
+typedef struct IActiveScriptParseProcedure64 IActiveScriptParseProcedure64;
 #endif
 
 #ifndef __IActiveScriptParseProcedure2_32_FWD_DEFINED__
 #define __IActiveScriptParseProcedure2_32_FWD_DEFINED__
-typedef interface IActiveScriptParseProcedure2_32 IActiveScriptParseProcedure2_32;
+typedef struct IActiveScriptParseProcedure2_32 IActiveScriptParseProcedure2_32;
 #endif
 
 #ifndef __IActiveScriptParseProcedure2_64_FWD_DEFINED__
 #define __IActiveScriptParseProcedure2_64_FWD_DEFINED__
-typedef interface IActiveScriptParseProcedure2_64 IActiveScriptParseProcedure2_64;
+typedef struct IActiveScriptParseProcedure2_64 IActiveScriptParseProcedure2_64;
 #endif
 
 #ifndef __IActiveScriptEncode_FWD_DEFINED__
 #define __IActiveScriptEncode_FWD_DEFINED__
-typedef interface IActiveScriptEncode IActiveScriptEncode;
+typedef struct IActiveScriptEncode IActiveScriptEncode;
 #endif
 
 #ifndef __IActiveScriptHostEncode_FWD_DEFINED__
 #define __IActiveScriptHostEncode_FWD_DEFINED__
-typedef interface IActiveScriptHostEncode IActiveScriptHostEncode;
+typedef struct IActiveScriptHostEncode IActiveScriptHostEncode;
 #endif
 
 #ifndef __IBindEventHandler_FWD_DEFINED__
 #define __IBindEventHandler_FWD_DEFINED__
-typedef interface IBindEventHandler IBindEventHandler;
+typedef struct IBindEventHandler IBindEventHandler;
 #endif
 
 #ifndef __IActiveScriptStats_FWD_DEFINED__
 #define __IActiveScriptStats_FWD_DEFINED__
-typedef interface IActiveScriptStats IActiveScriptStats;
+typedef struct IActiveScriptStats IActiveScriptStats;
 #endif
 
 #ifndef __IActiveScriptProperty_FWD_DEFINED__
 #define __IActiveScriptProperty_FWD_DEFINED__
-typedef interface IActiveScriptProperty IActiveScriptProperty;
+typedef struct IActiveScriptProperty IActiveScriptProperty;
 #endif
 
 #ifndef __ITridentEventSink_FWD_DEFINED__
 #define __ITridentEventSink_FWD_DEFINED__
-typedef interface ITridentEventSink ITridentEventSink;
+typedef struct ITridentEventSink ITridentEventSink;
 #endif
 
 #ifndef __IActiveScriptGarbageCollector_FWD_DEFINED__
 #define __IActiveScriptGarbageCollector_FWD_DEFINED__
-typedef interface IActiveScriptGarbageCollector IActiveScriptGarbageCollector;
+typedef struct IActiveScriptGarbageCollector IActiveScriptGarbageCollector;
 #endif
 
 #ifndef __IActiveScriptSIPInfo_FWD_DEFINED__
 #define __IActiveScriptSIPInfo_FWD_DEFINED__
-typedef interface IActiveScriptSIPInfo IActiveScriptSIPInfo;
+typedef struct IActiveScriptSIPInfo IActiveScriptSIPInfo;
 #endif
 
 #ifndef __IActiveScriptSiteTraceInfo_FWD_DEFINED__
 #define __IActiveScriptSiteTraceInfo_FWD_DEFINED__
-typedef interface IActiveScriptSiteTraceInfo IActiveScriptSiteTraceInfo;
+typedef struct IActiveScriptSiteTraceInfo IActiveScriptSiteTraceInfo;
 #endif
 
 #ifndef __IActiveScriptTraceInfo_FWD_DEFINED__
 #define __IActiveScriptTraceInfo_FWD_DEFINED__
-typedef interface IActiveScriptTraceInfo IActiveScriptTraceInfo;
+typedef struct IActiveScriptTraceInfo IActiveScriptTraceInfo;
 #endif
 
 #include "ocidl.h"
@@ -308,7 +308,7 @@
       HRESULT (WINAPI *OnLeaveScript)(IActiveScriptSite *This);
     END_INTERFACE
   } IActiveScriptSiteVtbl;
-  interface IActiveScriptSite {
+  struct IActiveScriptSite {
     CONST_VTBL struct IActiveScriptSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -365,7 +365,7 @@
       HRESULT (WINAPI *GetSourceLineText)(IActiveScriptError *This,BSTR *pbstrSourceLine);
     END_INTERFACE
   } IActiveScriptErrorVtbl;
-  interface IActiveScriptError {
+  struct IActiveScriptError {
     CONST_VTBL struct IActiveScriptErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -406,7 +406,7 @@
       HRESULT (WINAPI *GetSourcePosition64)(IActiveScriptError64 *This,DWORDLONG *pdwSourceContext,ULONG *pulLineNumber,LONG *plCharacterPosition);
     END_INTERFACE
   } IActiveScriptError64Vtbl;
-  interface IActiveScriptError64 {
+  struct IActiveScriptError64 {
     CONST_VTBL struct IActiveScriptError64Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -443,7 +443,7 @@
       HRESULT (WINAPI *EnableModeless)(IActiveScriptSiteWindow *This,WINBOOL fEnable);
     END_INTERFACE
   } IActiveScriptSiteWindowVtbl;
-  interface IActiveScriptSiteWindow {
+  struct IActiveScriptSiteWindow {
     CONST_VTBL struct IActiveScriptSiteWindowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -478,7 +478,7 @@
       HRESULT (WINAPI *QueryContinue)(IActiveScriptSiteInterruptPoll *This);
     END_INTERFACE
   } IActiveScriptSiteInterruptPollVtbl;
-  interface IActiveScriptSiteInterruptPoll {
+  struct IActiveScriptSiteInterruptPoll {
     CONST_VTBL struct IActiveScriptSiteInterruptPollVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -534,7 +534,7 @@
       HRESULT (WINAPI *Clone)(IActiveScript *This,IActiveScript **ppscript);
     END_INTERFACE
   } IActiveScriptVtbl;
-  interface IActiveScript {
+  struct IActiveScript {
     CONST_VTBL struct IActiveScriptVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -606,7 +606,7 @@
       HRESULT (WINAPI *ParseScriptText)(IActiveScriptParse32 *This,LPCOLESTR pstrCode,LPCOLESTR pstrItemName,IUnknown *punkContext,LPCOLESTR pstrDelimiter,DWORD dwSourceContextCookie,ULONG ulStartingLineNumber,DWORD dwFlags,VARIANT *pvarResult,EXCEPINFO *pexcepinfo);
     END_INTERFACE
   } IActiveScriptParse32Vtbl;
-  interface IActiveScriptParse32 {
+  struct IActiveScriptParse32 {
     CONST_VTBL struct IActiveScriptParse32Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -648,7 +648,7 @@
       HRESULT (WINAPI *ParseScriptText)(IActiveScriptParse64 *This,LPCOLESTR pstrCode,LPCOLESTR pstrItemName,IUnknown *punkContext,LPCOLESTR pstrDelimiter,DWORDLONG dwSourceContextCookie,ULONG ulStartingLineNumber,DWORD dwFlags,VARIANT *pvarResult,EXCEPINFO *pexcepinfo);
     END_INTERFACE
   } IActiveScriptParse64Vtbl;
-  interface IActiveScriptParse64 {
+  struct IActiveScriptParse64 {
     CONST_VTBL struct IActiveScriptParse64Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -698,7 +698,7 @@
       HRESULT (WINAPI *ParseProcedureText)(IActiveScriptParseProcedureOld32 *This,LPCOLESTR pstrCode,LPCOLESTR pstrFormalParams,LPCOLESTR pstrItemName,IUnknown *punkContext,LPCOLESTR pstrDelimiter,DWORD dwSourceContextCookie,ULONG ulStartingLineNumber,DWORD dwFlags,IDispatch **ppdisp);
     END_INTERFACE
   } IActiveScriptParseProcedureOld32Vtbl;
-  interface IActiveScriptParseProcedureOld32 {
+  struct IActiveScriptParseProcedureOld32 {
     CONST_VTBL struct IActiveScriptParseProcedureOld32Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -730,7 +730,7 @@
       HRESULT (WINAPI *ParseProcedureText)(IActiveScriptParseProcedureOld64 *This,LPCOLESTR pstrCode,LPCOLESTR pstrFormalParams,LPCOLESTR pstrItemName,IUnknown *punkContext,LPCOLESTR pstrDelimiter,DWORDLONG dwSourceContextCookie,ULONG ulStartingLineNumber,DWORD dwFlags,IDispatch **ppdisp);
     END_INTERFACE
   } IActiveScriptParseProcedureOld64Vtbl;
-  interface IActiveScriptParseProcedureOld64 {
+  struct IActiveScriptParseProcedureOld64 {
     CONST_VTBL struct IActiveScriptParseProcedureOld64Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -774,7 +774,7 @@
       HRESULT (WINAPI *ParseProcedureText)(IActiveScriptParseProcedure32 *This,LPCOLESTR pstrCode,LPCOLESTR pstrFormalParams,LPCOLESTR pstrProcedureName,LPCOLESTR pstrItemName,IUnknown *punkContext,LPCOLESTR pstrDelimiter,DWORD dwSourceContextCookie,ULONG ulStartingLineNumber,DWORD dwFlags,IDispatch **ppdisp);
     END_INTERFACE
   } IActiveScriptParseProcedure32Vtbl;
-  interface IActiveScriptParseProcedure32 {
+  struct IActiveScriptParseProcedure32 {
     CONST_VTBL struct IActiveScriptParseProcedure32Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -806,7 +806,7 @@
       HRESULT (WINAPI *ParseProcedureText)(IActiveScriptParseProcedure64 *This,LPCOLESTR pstrCode,LPCOLESTR pstrFormalParams,LPCOLESTR pstrProcedureName,LPCOLESTR pstrItemName,IUnknown *punkContext,LPCOLESTR pstrDelimiter,DWORDLONG dwSourceContextCookie,ULONG ulStartingLineNumber,DWORD dwFlags,IDispatch **ppdisp);
     END_INTERFACE
   } IActiveScriptParseProcedure64Vtbl;
-  interface IActiveScriptParseProcedure64 {
+  struct IActiveScriptParseProcedure64 {
     CONST_VTBL struct IActiveScriptParseProcedure64Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -849,7 +849,7 @@
       HRESULT (WINAPI *ParseProcedureText)(IActiveScriptParseProcedure2_32 *This,LPCOLESTR pstrCode,LPCOLESTR pstrFormalParams,LPCOLESTR pstrProcedureName,LPCOLESTR pstrItemName,IUnknown *punkContext,LPCOLESTR pstrDelimiter,DWORD dwSourceContextCookie,ULONG ulStartingLineNumber,DWORD dwFlags,IDispatch **ppdisp);
     END_INTERFACE
   } IActiveScriptParseProcedure2_32Vtbl;
-  interface IActiveScriptParseProcedure2_32 {
+  struct IActiveScriptParseProcedure2_32 {
     CONST_VTBL struct IActiveScriptParseProcedure2_32Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -877,7 +877,7 @@
       HRESULT (WINAPI *ParseProcedureText)(IActiveScriptParseProcedure2_64 *This,LPCOLESTR pstrCode,LPCOLESTR pstrFormalParams,LPCOLESTR pstrProcedureName,LPCOLESTR pstrItemName,IUnknown *punkContext,LPCOLESTR pstrDelimiter,DWORDLONG dwSourceContextCookie,ULONG ulStartingLineNumber,DWORD dwFlags,IDispatch **ppdisp);
     END_INTERFACE
   } IActiveScriptParseProcedure2_64Vtbl;
-  interface IActiveScriptParseProcedure2_64 {
+  struct IActiveScriptParseProcedure2_64 {
     CONST_VTBL struct IActiveScriptParseProcedure2_64Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -922,7 +922,7 @@
       HRESULT (WINAPI *GetEncodeProgId)(IActiveScriptEncode *This,BSTR *pbstrOut);
     END_INTERFACE
   } IActiveScriptEncodeVtbl;
-  interface IActiveScriptEncode {
+  struct IActiveScriptEncode {
     CONST_VTBL struct IActiveScriptEncodeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -960,7 +960,7 @@
       HRESULT (WINAPI *EncodeScriptHostFile)(IActiveScriptHostEncode *This,BSTR bstrInFile,BSTR *pbstrOutFile,unsigned long cFlags,BSTR bstrDefaultLang);
     END_INTERFACE
   } IActiveScriptHostEncodeVtbl;
-  interface IActiveScriptHostEncode {
+  struct IActiveScriptHostEncode {
     CONST_VTBL struct IActiveScriptHostEncodeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -993,7 +993,7 @@
       HRESULT (WINAPI *BindHandler)(IBindEventHandler *This,LPCOLESTR pstrEvent,IDispatch *pdisp);
     END_INTERFACE
   } IBindEventHandlerVtbl;
-  interface IBindEventHandler {
+  struct IBindEventHandler {
     CONST_VTBL struct IBindEventHandlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1029,7 +1029,7 @@
       HRESULT (WINAPI *ResetStats)(IActiveScriptStats *This);
     END_INTERFACE
   } IActiveScriptStatsVtbl;
-  interface IActiveScriptStats {
+  struct IActiveScriptStats {
     CONST_VTBL struct IActiveScriptStatsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1069,7 +1069,7 @@
       HRESULT (WINAPI *SetProperty)(IActiveScriptProperty *This,DWORD dwProperty,VARIANT *pvarIndex,VARIANT *pvarValue);
     END_INTERFACE
   } IActiveScriptPropertyVtbl;
-  interface IActiveScriptProperty {
+  struct IActiveScriptProperty {
     CONST_VTBL struct IActiveScriptPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1104,7 +1104,7 @@
       HRESULT (WINAPI *FireEvent)(ITridentEventSink *This,LPCOLESTR pstrEvent,DISPPARAMS *pdp,VARIANT *pvarRes,EXCEPINFO *pei);
     END_INTERFACE
   } ITridentEventSinkVtbl;
-  interface ITridentEventSink {
+  struct ITridentEventSink {
     CONST_VTBL struct ITridentEventSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1136,7 +1136,7 @@
       HRESULT (WINAPI *CollectGarbage)(IActiveScriptGarbageCollector *This,SCRIPTGCTYPE scriptgctype);
     END_INTERFACE
   } IActiveScriptGarbageCollectorVtbl;
-  interface IActiveScriptGarbageCollector {
+  struct IActiveScriptGarbageCollector {
     CONST_VTBL struct IActiveScriptGarbageCollectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1168,7 +1168,7 @@
       HRESULT (WINAPI *GetSIPOID)(IActiveScriptSIPInfo *This,GUID *poid_sip);
     END_INTERFACE
   } IActiveScriptSIPInfoVtbl;
-  interface IActiveScriptSIPInfo {
+  struct IActiveScriptSIPInfo {
     CONST_VTBL struct IActiveScriptSIPInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1200,7 +1200,7 @@
       HRESULT (WINAPI *SendScriptTraceInfo)(IActiveScriptSiteTraceInfo *This,SCRIPTTRACEINFO stiEventType,GUID guidContextID,DWORD dwScriptContextCookie,LONG lScriptStatementStart,LONG lScriptStatementEnd,DWORD64 dwReserved);
     END_INTERFACE
   } IActiveScriptSiteTraceInfoVtbl;
-  interface IActiveScriptSiteTraceInfo {
+  struct IActiveScriptSiteTraceInfo {
     CONST_VTBL struct IActiveScriptSiteTraceInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1234,7 +1234,7 @@
       HRESULT (WINAPI *StopScriptTracing)(IActiveScriptTraceInfo *This);
     END_INTERFACE
   } IActiveScriptTraceInfoVtbl;
-  interface IActiveScriptTraceInfo {
+  struct IActiveScriptTraceInfo {
     CONST_VTBL struct IActiveScriptTraceInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/admex.h b/mingw-w64-headers/include/admex.h
index 9a11c34..52e79a5 100755
--- a/mingw-w64-headers/include/admex.h
+++ b/mingw-w64-headers/include/admex.h
@@ -24,12 +24,12 @@
 
 #ifndef __IMSAdminReplication_FWD_DEFINED__
 #define __IMSAdminReplication_FWD_DEFINED__
-typedef interface IMSAdminReplication IMSAdminReplication;
+typedef struct IMSAdminReplication IMSAdminReplication;
 #endif
 
 #ifndef __IMSAdminCryptoCapabilities_FWD_DEFINED__
 #define __IMSAdminCryptoCapabilities_FWD_DEFINED__
-typedef interface IMSAdminCryptoCapabilities IMSAdminCryptoCapabilities;
+typedef struct IMSAdminCryptoCapabilities IMSAdminCryptoCapabilities;
 #endif
 
 #include "unknwn.h"
@@ -77,7 +77,7 @@
       HRESULT (WINAPI *DeSerialize)(IMSAdminReplication *This,DWORD dwBufferSize,unsigned char *pbBuffer);
     END_INTERFACE
   } IMSAdminReplicationVtbl;
-  interface IMSAdminReplication {
+  struct IMSAdminReplication {
     CONST_VTBL struct IMSAdminReplicationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -132,7 +132,7 @@
       HRESULT (WINAPI *SetCAList)(IMSAdminCryptoCapabilities *This,DWORD dwBufferSize,unsigned char *pbBuffer);
     END_INTERFACE
   } IMSAdminCryptoCapabilitiesVtbl;
-  interface IMSAdminCryptoCapabilities {
+  struct IMSAdminCryptoCapabilities {
     CONST_VTBL struct IMSAdminCryptoCapabilitiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/adoctint.h b/mingw-w64-headers/include/adoctint.h
index 875f294..346d544 100755
--- a/mingw-w64-headers/include/adoctint.h
+++ b/mingw-w64-headers/include/adoctint.h
@@ -20,55 +20,55 @@
 
 #ifndef ___ADOCollection_FWD_DEFINED__
 #define ___ADOCollection_FWD_DEFINED__
-typedef interface _ADOADOCollection _ADOCollection;
+typedef struct _ADOADOCollection _ADOCollection;
 #endif
 #ifndef ___ADODynaCollection_FWD_DEFINED__
 #define ___ADODynaCollection_FWD_DEFINED__
-typedef interface _ADODynaADOCollection _ADODynaCollection;
+typedef struct _ADODynaADOCollection _ADODynaCollection;
 #endif
 #ifndef ___Catalog_FWD_DEFINED__
 #define ___Catalog_FWD_DEFINED__
-typedef interface _ADOCatalog _Catalog;
+typedef struct _ADOCatalog _Catalog;
 #endif
 #ifndef ___Table_FWD_DEFINED__
 #define ___Table_FWD_DEFINED__
-typedef interface _ADOTable _Table;
+typedef struct _ADOTable _Table;
 #endif
 #ifndef ___Group25_FWD_DEFINED__
 #define ___Group25_FWD_DEFINED__
-typedef interface _Group25 _Group25;
+typedef struct _Group25 _Group25;
 #endif
 #ifndef ___Group_FWD_DEFINED__
 #define ___Group_FWD_DEFINED__
-typedef interface _ADOGroup _Group;
+typedef struct _ADOGroup _Group;
 #endif
 #ifndef ___User25_FWD_DEFINED__
 #define ___User25_FWD_DEFINED__
-typedef interface _User25 _User25;
+typedef struct _User25 _User25;
 #endif
 #ifndef ___User_FWD_DEFINED__
 #define ___User_FWD_DEFINED__
-typedef interface _ADOUser _User;
+typedef struct _ADOUser _User;
 #endif
 #ifndef ___Column_FWD_DEFINED__
 #define ___Column_FWD_DEFINED__
-typedef interface _ADOColumn _Column;
+typedef struct _ADOColumn _Column;
 #endif
 #ifndef ___Index_FWD_DEFINED__
 #define ___Index_FWD_DEFINED__
-typedef interface _ADOIndex _Index;
+typedef struct _ADOIndex _Index;
 #endif
 #ifndef ___Key_FWD_DEFINED__
 #define ___Key_FWD_DEFINED__
-typedef interface _ADOKey _Key;
+typedef struct _ADOKey _Key;
 #endif
 #ifndef __View_FWD_DEFINED__
 #define __View_FWD_DEFINED__
-typedef interface ADOView View;
+typedef struct ADOView View;
 #endif
 #ifndef __Procedure_FWD_DEFINED__
 #define __Procedure_FWD_DEFINED__
-typedef interface ADOProcedure Procedure;
+typedef struct ADOProcedure Procedure;
 #endif
 #ifndef __Catalog_FWD_DEFINED__
 #define __Catalog_FWD_DEFINED__
@@ -88,7 +88,7 @@
 #endif
 #ifndef __Property_FWD_DEFINED__
 #define __Property_FWD_DEFINED__
-typedef interface ADOProperty Property;
+typedef struct ADOProperty Property;
 #endif
 #ifndef __Group_FWD_DEFINED__
 #define __Group_FWD_DEFINED__
@@ -132,39 +132,39 @@
 #endif
 #ifndef __Tables_FWD_DEFINED__
 #define __Tables_FWD_DEFINED__
-typedef interface ADOTables Tables;
+typedef struct ADOTables Tables;
 #endif
 #ifndef __Columns_FWD_DEFINED__
 #define __Columns_FWD_DEFINED__
-typedef interface ADOColumns Columns;
+typedef struct ADOColumns Columns;
 #endif
 #ifndef __Procedures_FWD_DEFINED__
 #define __Procedures_FWD_DEFINED__
-typedef interface ADOProcedures Procedures;
+typedef struct ADOProcedures Procedures;
 #endif
 #ifndef __Views_FWD_DEFINED__
 #define __Views_FWD_DEFINED__
-typedef interface ADOViews Views;
+typedef struct ADOViews Views;
 #endif
 #ifndef __Indexes_FWD_DEFINED__
 #define __Indexes_FWD_DEFINED__
-typedef interface ADOIndexes Indexes;
+typedef struct ADOIndexes Indexes;
 #endif
 #ifndef __Keys_FWD_DEFINED__
 #define __Keys_FWD_DEFINED__
-typedef interface ADOKeys Keys;
+typedef struct ADOKeys Keys;
 #endif
 #ifndef __Users_FWD_DEFINED__
 #define __Users_FWD_DEFINED__
-typedef interface ADOUsers Users;
+typedef struct ADOUsers Users;
 #endif
 #ifndef __Groups_FWD_DEFINED__
 #define __Groups_FWD_DEFINED__
-typedef interface ADOGroups Groups;
+typedef struct ADOGroups Groups;
 #endif
 #ifndef __Properties_FWD_DEFINED__
 #define __Properties_FWD_DEFINED__
-typedef interface ADOProperties Properties;
+typedef struct ADOProperties Properties;
 #endif
 
 #include "oaidl.h"
@@ -257,7 +257,7 @@
       HRESULT (WINAPI *Refresh)(_ADOADOCollection *This);
     END_INTERFACE
   } _ADOCollectionVtbl;
-  interface _ADOCollection {
+  struct _ADOCollection {
     CONST_VTBL struct _ADOCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -307,7 +307,7 @@
       HRESULT (WINAPI *Delete)(_ADODynaADOCollection *This,VARIANT Item);
     END_INTERFACE
   } _ADODynaCollectionVtbl;
-  interface _ADODynaCollection {
+  struct _ADODynaCollection {
     CONST_VTBL struct _ADODynaCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -373,7 +373,7 @@
       HRESULT (WINAPI *SetObjectOwner)(_ADOCatalog *This,BSTR ObjectName,ObjectTypeEnum ObjectType,BSTR UserName,VARIANT ObjectTypeId);
     END_INTERFACE
   } _CatalogVtbl;
-  interface _Catalog {
+  struct _Catalog {
     CONST_VTBL struct _CatalogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -464,7 +464,7 @@
       HRESULT (WINAPI *putref_ParentADOCatalog)(_ADOTable *This,_ADOCatalog *ppvObject);
     END_INTERFACE
   } _TableVtbl;
-  interface _Table {
+  struct _Table {
     CONST_VTBL struct _TableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -544,7 +544,7 @@
       HRESULT (WINAPI *get_Users)(_Group25 *This,ADOUsers **ppvObject);
     END_INTERFACE
   } _Group25Vtbl;
-  interface _Group25 {
+  struct _Group25 {
     CONST_VTBL struct _Group25Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -606,7 +606,7 @@
       HRESULT (WINAPI *putref_ParentADOCatalog)(_ADOGroup *This,_ADOCatalog *ppvObject);
     END_INTERFACE
   } _GroupVtbl;
-  interface _Group {
+  struct _Group {
     CONST_VTBL struct _GroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -669,7 +669,7 @@
       HRESULT (WINAPI *get_Groups)(_User25 *This,ADOGroups **ppvObject);
     END_INTERFACE
   } _User25Vtbl;
-  interface _User25 {
+  struct _User25 {
     CONST_VTBL struct _User25Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -735,7 +735,7 @@
       HRESULT (WINAPI *putref_ParentADOCatalog)(_ADOUser *This,_ADOCatalog *ppvObject);
     END_INTERFACE
   } _UserVtbl;
-  interface _User {
+  struct _User {
     CONST_VTBL struct _UserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -827,7 +827,7 @@
       HRESULT (WINAPI *putref_ParentADOCatalog)(_ADOColumn *This,_ADOCatalog *ppvObject);
     END_INTERFACE
   } _ColumnVtbl;
-  interface _Column {
+  struct _Column {
     CONST_VTBL struct _ColumnVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -945,7 +945,7 @@
       HRESULT (WINAPI *get_Properties)(_ADOIndex *This,ADOProperties **ppvObject);
     END_INTERFACE
   } _IndexVtbl;
-  interface _Index {
+  struct _Index {
     CONST_VTBL struct _IndexVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1037,7 +1037,7 @@
       HRESULT (WINAPI *get_Columns)(_ADOKey *This,ADOColumns **ppvObject);
     END_INTERFACE
   } _KeyVtbl;
-  interface _Key {
+  struct _Key {
     CONST_VTBL struct _KeyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1116,7 +1116,7 @@
       HRESULT (WINAPI *get_DateModified)(ADOView *This,VARIANT *pVal);
     END_INTERFACE
   } ViewVtbl;
-  interface View {
+  struct View {
     CONST_VTBL struct ViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1180,7 +1180,7 @@
       HRESULT (WINAPI *get_DateModified)(ADOProcedure *This,VARIANT *pVal);
     END_INTERFACE
   } ProcedureVtbl;
-  interface Procedure {
+  struct Procedure {
     CONST_VTBL struct ProcedureVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1252,7 +1252,7 @@
       HRESULT (WINAPI *put_Attributes)(ADOProperty *This,long lAttributes);
     END_INTERFACE
   } PropertyVtbl;
-  interface Property {
+  struct Property {
     CONST_VTBL struct PropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1333,7 +1333,7 @@
       HRESULT (WINAPI *Delete)(ADOTables *This,VARIANT Item);
     END_INTERFACE
   } TablesVtbl;
-  interface Tables {
+  struct Tables {
     CONST_VTBL struct TablesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1388,7 +1388,7 @@
       HRESULT (WINAPI *Delete)(ADOColumns *This,VARIANT Item);
     END_INTERFACE
   } ColumnsVtbl;
-  interface Columns {
+  struct Columns {
     CONST_VTBL struct ColumnsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1443,7 +1443,7 @@
       HRESULT (WINAPI *Delete)(ADOProcedures *This,VARIANT Item);
     END_INTERFACE
   } ProceduresVtbl;
-  interface Procedures {
+  struct Procedures {
     CONST_VTBL struct ProceduresVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1498,7 +1498,7 @@
       HRESULT (WINAPI *Delete)(ADOViews *This,VARIANT Item);
     END_INTERFACE
   } ViewsVtbl;
-  interface Views {
+  struct Views {
     CONST_VTBL struct ViewsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1553,7 +1553,7 @@
       HRESULT (WINAPI *Delete)(ADOIndexes *This,VARIANT Item);
     END_INTERFACE
   } IndexesVtbl;
-  interface Indexes {
+  struct Indexes {
     CONST_VTBL struct IndexesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1608,7 +1608,7 @@
       HRESULT (WINAPI *Delete)(ADOKeys *This,VARIANT Item);
     END_INTERFACE
   } KeysVtbl;
-  interface Keys {
+  struct Keys {
     CONST_VTBL struct KeysVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1663,7 +1663,7 @@
       HRESULT (WINAPI *Delete)(ADOUsers *This,VARIANT Item);
     END_INTERFACE
   } UsersVtbl;
-  interface Users {
+  struct Users {
     CONST_VTBL struct UsersVtbl *lpVtbl;
   };
 
@@ -1719,7 +1719,7 @@
       HRESULT (WINAPI *Delete)(ADOGroups *This,VARIANT Item);
     END_INTERFACE
   } GroupsVtbl;
-  interface Groups {
+  struct Groups {
     CONST_VTBL struct GroupsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1770,7 +1770,7 @@
       HRESULT (WINAPI *get_Item)(ADOProperties *This,VARIANT Item,ADOProperty **ppvObject);
     END_INTERFACE
   } PropertiesVtbl;
-  interface Properties {
+  struct Properties {
     CONST_VTBL struct PropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/adoint.h b/mingw-w64-headers/include/adoint.h
index b1ca7b4..7595057 100755
--- a/mingw-w64-headers/include/adoint.h
+++ b/mingw-w64-headers/include/adoint.h
@@ -20,67 +20,67 @@
 
 #ifndef ___ADOCollection_FWD_DEFINED__
 #define ___ADOCollection_FWD_DEFINED__
-typedef interface _ADOCollection _ADOCollection;
+typedef struct _ADOCollection _ADOCollection;
 #endif
 #ifndef ___ADODynaCollection_FWD_DEFINED__
 #define ___ADODynaCollection_FWD_DEFINED__
-typedef interface _ADODynaCollection _ADODynaCollection;
+typedef struct _ADODynaCollection _ADODynaCollection;
 #endif
 #ifndef ___ADO_FWD_DEFINED__
 #define ___ADO_FWD_DEFINED__
-typedef interface _ADO _ADO;
+typedef struct _ADO _ADO;
 #endif
 #ifndef __Error_FWD_DEFINED__
 #define __Error_FWD_DEFINED__
-typedef interface ADOError Error;
+typedef struct ADOError Error;
 #endif
 #ifndef __Errors_FWD_DEFINED__
 #define __Errors_FWD_DEFINED__
-typedef interface ADOErrors Errors;
+typedef struct ADOErrors Errors;
 #endif
 #ifndef __Command15_FWD_DEFINED__
 #define __Command15_FWD_DEFINED__
-typedef interface Command15 Command15;
+typedef struct Command15 Command15;
 #endif
 #ifndef __Command25_FWD_DEFINED__
 #define __Command25_FWD_DEFINED__
-typedef interface Command25 Command25;
+typedef struct Command25 Command25;
 #endif
 #ifndef ___Command_FWD_DEFINED__
 #define ___Command_FWD_DEFINED__
-typedef interface _ADOCommand _Command;
+typedef struct _ADOCommand _Command;
 #endif
 #ifndef __ConnectionEventsVt_FWD_DEFINED__
 #define __ConnectionEventsVt_FWD_DEFINED__
-typedef interface ConnectionEventsVt ConnectionEventsVt;
+typedef struct ConnectionEventsVt ConnectionEventsVt;
 #endif
 #ifndef __RecordsetEventsVt_FWD_DEFINED__
 #define __RecordsetEventsVt_FWD_DEFINED__
-typedef interface RecordsetEventsVt RecordsetEventsVt;
+typedef struct RecordsetEventsVt RecordsetEventsVt;
 #endif
 #ifndef __ConnectionEvents_FWD_DEFINED__
 #define __ConnectionEvents_FWD_DEFINED__
-typedef interface ConnectionEvents ConnectionEvents;
+typedef struct ConnectionEvents ConnectionEvents;
 #endif
 #ifndef __RecordsetEvents_FWD_DEFINED__
 #define __RecordsetEvents_FWD_DEFINED__
-typedef interface RecordsetEvents RecordsetEvents;
+typedef struct RecordsetEvents RecordsetEvents;
 #endif
 #ifndef __Connection15_FWD_DEFINED__
 #define __Connection15_FWD_DEFINED__
-typedef interface Connection15 Connection15;
+typedef struct Connection15 Connection15;
 #endif
 #ifndef ___Connection_FWD_DEFINED__
 #define ___Connection_FWD_DEFINED__
-typedef interface _ADOConnection _Connection;
+typedef struct _ADOConnection _Connection;
 #endif
 #ifndef __ADOConnectionConstruction15_FWD_DEFINED__
 #define __ADOConnectionConstruction15_FWD_DEFINED__
-typedef interface ADOConnectionConstruction15 ADOConnectionConstruction15;
+typedef struct ADOConnectionConstruction15 ADOConnectionConstruction15;
 #endif
 #ifndef __ADOConnectionConstruction_FWD_DEFINED__
 #define __ADOConnectionConstruction_FWD_DEFINED__
-typedef interface ADOConnectionConstruction ADOConnectionConstruction;
+typedef struct ADOConnectionConstruction ADOConnectionConstruction;
 #endif
 #ifndef __Connection_FWD_DEFINED__
 #define __Connection_FWD_DEFINED__
@@ -92,7 +92,7 @@
 #endif
 #ifndef ___Record_FWD_DEFINED__
 #define ___Record_FWD_DEFINED__
-typedef interface _ADORecord _Record;
+typedef struct _ADORecord _Record;
 #endif
 #ifndef __Record_FWD_DEFINED__
 #define __Record_FWD_DEFINED__
@@ -104,7 +104,7 @@
 #endif
 #ifndef ___Stream_FWD_DEFINED__
 #define ___Stream_FWD_DEFINED__
-typedef interface _ADOStream _Stream;
+typedef struct _ADOStream _Stream;
 #endif
 #ifndef __Stream_FWD_DEFINED__
 #define __Stream_FWD_DEFINED__
@@ -116,15 +116,15 @@
 #endif
 #ifndef __ADORecordConstruction_FWD_DEFINED__
 #define __ADORecordConstruction_FWD_DEFINED__
-typedef interface ADORecordConstruction ADORecordConstruction;
+typedef struct ADORecordConstruction ADORecordConstruction;
 #endif
 #ifndef __ADOStreamConstruction_FWD_DEFINED__
 #define __ADOStreamConstruction_FWD_DEFINED__
-typedef interface ADOStreamConstruction ADOStreamConstruction;
+typedef struct ADOStreamConstruction ADOStreamConstruction;
 #endif
 #ifndef __ADOCommandConstruction_FWD_DEFINED__
 #define __ADOCommandConstruction_FWD_DEFINED__
-typedef interface ADOCommandConstruction ADOCommandConstruction;
+typedef struct ADOCommandConstruction ADOCommandConstruction;
 #endif
 #ifndef __Command_FWD_DEFINED__
 #define __Command_FWD_DEFINED__
@@ -144,51 +144,51 @@
 #endif
 #ifndef __Recordset15_FWD_DEFINED__
 #define __Recordset15_FWD_DEFINED__
-typedef interface Recordset15 Recordset15;
+typedef struct Recordset15 Recordset15;
 #endif
 #ifndef __Recordset20_FWD_DEFINED__
 #define __Recordset20_FWD_DEFINED__
-typedef interface Recordset20 Recordset20;
+typedef struct Recordset20 Recordset20;
 #endif
 #ifndef __Recordset21_FWD_DEFINED__
 #define __Recordset21_FWD_DEFINED__
-typedef interface Recordset21 Recordset21;
+typedef struct Recordset21 Recordset21;
 #endif
 #ifndef ___Recordset_FWD_DEFINED__
 #define ___Recordset_FWD_DEFINED__
-typedef interface _ADORecordset _Recordset;
+typedef struct _ADORecordset _Recordset;
 #endif
 #ifndef __ADORecordsetConstruction_FWD_DEFINED__
 #define __ADORecordsetConstruction_FWD_DEFINED__
-typedef interface ADORecordsetConstruction ADORecordsetConstruction;
+typedef struct ADORecordsetConstruction ADORecordsetConstruction;
 #endif
 #ifndef __Field15_FWD_DEFINED__
 #define __Field15_FWD_DEFINED__
-typedef interface Field15 Field15;
+typedef struct Field15 Field15;
 #endif
 #ifndef __Field20_FWD_DEFINED__
 #define __Field20_FWD_DEFINED__
-typedef interface Field20 Field20;
+typedef struct Field20 Field20;
 #endif
 #ifndef __Field_FWD_DEFINED__
 #define __Field_FWD_DEFINED__
-typedef interface ADOField Field;
+typedef struct ADOField Field;
 #endif
 #ifndef __Fields15_FWD_DEFINED__
 #define __Fields15_FWD_DEFINED__
-typedef interface Fields15 Fields15;
+typedef struct Fields15 Fields15;
 #endif
 #ifndef __Fields20_FWD_DEFINED__
 #define __Fields20_FWD_DEFINED__
-typedef interface Fields20 Fields20;
+typedef struct Fields20 Fields20;
 #endif
 #ifndef __Fields_FWD_DEFINED__
 #define __Fields_FWD_DEFINED__
-typedef interface ADOFields Fields;
+typedef struct ADOFields Fields;
 #endif
 #ifndef ___Parameter_FWD_DEFINED__
 #define ___Parameter_FWD_DEFINED__
-typedef interface _ADOParameter _Parameter;
+typedef struct _ADOParameter _Parameter;
 #endif
 #ifndef __Parameter_FWD_DEFINED__
 #define __Parameter_FWD_DEFINED__
@@ -200,15 +200,15 @@
 #endif
 #ifndef __Parameters_FWD_DEFINED__
 #define __Parameters_FWD_DEFINED__
-typedef interface ADOParameters Parameters;
+typedef struct ADOParameters Parameters;
 #endif
 #ifndef __Property_FWD_DEFINED__
 #define __Property_FWD_DEFINED__
-typedef interface ADOProperty Property;
+typedef struct ADOProperty Property;
 #endif
 #ifndef __Properties_FWD_DEFINED__
 #define __Properties_FWD_DEFINED__
-typedef interface ADOProperties Properties;
+typedef struct ADOProperties Properties;
 #endif
 #ifdef __cplusplus
 extern "C"{
@@ -514,7 +514,7 @@
       HRESULT (WINAPI *Refresh)(_ADOCollection *This);
     END_INTERFACE
   } _ADOCollectionVtbl;
-  interface _ADOCollection {
+  struct _ADOCollection {
     CONST_VTBL struct _ADOCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -564,7 +564,7 @@
       HRESULT (WINAPI *Delete)(_ADODynaCollection *This,VARIANT Index);
     END_INTERFACE
   } _ADODynaCollectionVtbl;
-  interface _ADODynaCollection {
+  struct _ADODynaCollection {
     CONST_VTBL struct _ADODynaCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -609,7 +609,7 @@
       HRESULT (WINAPI *get_Properties)(_ADO *This,ADOProperties **ppvObject);
     END_INTERFACE
   } _ADOVtbl;
-  interface _ADO {
+  struct _ADO {
     CONST_VTBL struct _ADOVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -660,7 +660,7 @@
       HRESULT (WINAPI *get_NativeError)(ADOError *This,long *pl);
     END_INTERFACE
   } ErrorVtbl;
-  interface Error {
+  struct Error {
     CONST_VTBL struct ErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -722,7 +722,7 @@
       HRESULT (WINAPI *Clear)(ADOErrors *This);
     END_INTERFACE
   } ErrorsVtbl;
-  interface Errors {
+  struct Errors {
     CONST_VTBL struct ErrorsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -798,7 +798,7 @@
       HRESULT (WINAPI *put_Name)(Command15 *This,BSTR bstrName);
     END_INTERFACE
   } Command15Vtbl;
-  interface Command15 {
+  struct Command15 {
     CONST_VTBL struct Command15Vtbl *lpVtbl;
   };
 
@@ -903,7 +903,7 @@
       HRESULT (WINAPI *Cancel)(Command25 *This);
     END_INTERFACE
   } Command25Vtbl;
-  interface Command25 {
+  struct Command25 {
     CONST_VTBL struct Command25Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -991,7 +991,7 @@
       HRESULT (WINAPI *get_NamedParameters)(_ADOCommand *This,VARIANT_BOOL *pfNamedParameters);
     END_INTERFACE
   } _CommandVtbl;
-  interface _Command {
+  struct _Command {
     CONST_VTBL struct _CommandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1077,7 +1077,7 @@
       HRESULT (WINAPI *Disconnect)(ConnectionEventsVt *This,EventStatusEnum *adStatus,_ADOConnection *pConnection);
     END_INTERFACE
   } ConnectionEventsVtVtbl;
-  interface ConnectionEventsVt {
+  struct ConnectionEventsVt {
     CONST_VTBL struct ConnectionEventsVtVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1152,7 +1152,7 @@
       HRESULT (WINAPI *FetchComplete)(RecordsetEventsVt *This,ADOError *pError,EventStatusEnum *adStatus,_ADORecordset *pRecordset);
     END_INTERFACE
   } RecordsetEventsVtVtbl;
-  interface RecordsetEventsVt {
+  struct RecordsetEventsVt {
     CONST_VTBL struct RecordsetEventsVtVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1214,7 +1214,7 @@
       HRESULT (WINAPI *Invoke)(ConnectionEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } ConnectionEventsVtbl;
-  interface ConnectionEvents {
+  struct ConnectionEvents {
     CONST_VTBL struct ConnectionEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1247,7 +1247,7 @@
       HRESULT (WINAPI *Invoke)(RecordsetEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } RecordsetEventsVtbl;
-  interface RecordsetEvents {
+  struct RecordsetEvents {
     CONST_VTBL struct RecordsetEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1338,7 +1338,7 @@
       HRESULT (WINAPI *OpenSchema)(Connection15 *This,SchemaEnum Schema,VARIANT Restrictions,VARIANT SchemaID,_ADORecordset **pprset);
     END_INTERFACE
   } Connection15Vtbl;
-  interface Connection15 {
+  struct Connection15 {
     CONST_VTBL struct Connection15Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1488,7 +1488,7 @@
       HRESULT (WINAPI *Cancel)(_ADOConnection *This);
     END_INTERFACE
   } _ConnectionVtbl;
-  interface _Connection {
+  struct _Connection {
     CONST_VTBL struct _ConnectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1556,7 +1556,7 @@
       HRESULT (WINAPI *WrapDSOandSession)(ADOConnectionConstruction15 *This,IUnknown *pDSO,IUnknown *pSession);
     END_INTERFACE
   } ADOConnectionConstruction15Vtbl;
-  interface ADOConnectionConstruction15 {
+  struct ADOConnectionConstruction15 {
     CONST_VTBL struct ADOConnectionConstruction15Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1594,7 +1594,7 @@
       HRESULT (WINAPI *WrapDSOandSession)(ADOConnectionConstruction *This,IUnknown *pDSO,IUnknown *pSession);
     END_INTERFACE
   } ADOConnectionConstructionVtbl;
-  interface ADOConnectionConstruction {
+  struct ADOConnectionConstruction {
     CONST_VTBL struct ADOConnectionConstructionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1670,7 +1670,7 @@
       HRESULT (WINAPI *Cancel)(_ADORecord *This);
     END_INTERFACE
   } _RecordVtbl;
-  interface _Record {
+  struct _Record {
     CONST_VTBL struct _RecordVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1818,7 +1818,7 @@
       HRESULT (WINAPI *Cancel)(_ADOStream *This);
     END_INTERFACE
   } _StreamVtbl;
-  interface _Stream {
+  struct _Stream {
     CONST_VTBL struct _StreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1940,7 +1940,7 @@
       HRESULT (WINAPI *put_ParentRow)(ADORecordConstruction *This,IUnknown *pRow);
     END_INTERFACE
   } ADORecordConstructionVtbl;
-  interface ADORecordConstruction {
+  struct ADORecordConstruction {
     CONST_VTBL struct ADORecordConstructionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1987,7 +1987,7 @@
       HRESULT (WINAPI *put_Stream)(ADOStreamConstruction *This,IUnknown *pStm);
     END_INTERFACE
   } ADOStreamConstructionVtbl;
-  interface ADOStreamConstruction {
+  struct ADOStreamConstruction {
     CONST_VTBL struct ADOStreamConstructionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2027,7 +2027,7 @@
       HRESULT (WINAPI *put_OLEDBCommand)(ADOCommandConstruction *This,IUnknown *pOLEDBCommand);
     END_INTERFACE
   } ADOCommandConstructionVtbl;
-  interface ADOCommandConstruction {
+  struct ADOCommandConstruction {
     CONST_VTBL struct ADOCommandConstructionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2192,7 +2192,7 @@
       HRESULT (WINAPI *Find)(Recordset15 *This,BSTR Criteria,ADO_LONGPTR SkipRecords,SearchDirectionEnum SearchDirection,VARIANT Start);
     END_INTERFACE
   } Recordset15Vtbl;
-  interface Recordset15 {
+  struct Recordset15 {
     CONST_VTBL struct Recordset15Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2494,7 +2494,7 @@
       HRESULT (WINAPI *Resync)(Recordset20 *This,AffectEnum AffectRecords,ResyncEnum ResyncValues);
     END_INTERFACE
   } Recordset20Vtbl;
-  interface Recordset20 {
+  struct Recordset20 {
     CONST_VTBL struct Recordset20Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2708,7 +2708,7 @@
       HRESULT (WINAPI *get_Index)(Recordset21 *This,BSTR *pbstrIndex);
     END_INTERFACE
   } Recordset21Vtbl;
-  interface Recordset21 {
+  struct Recordset21 {
     CONST_VTBL struct Recordset21Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2904,7 +2904,7 @@
       HRESULT (WINAPI *Save)(_ADORecordset *This,VARIANT Destination,PersistFormatEnum PersistFormat);
     END_INTERFACE
   } _RecordsetVtbl;
-  interface _Recordset {
+  struct _Recordset {
     CONST_VTBL struct _RecordsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3030,7 +3030,7 @@
       HRESULT (WINAPI *put_RowPosition)(ADORecordsetConstruction *This,IUnknown *pRowPos);
     END_INTERFACE
   } ADORecordsetConstructionVtbl;
-  interface ADORecordsetConstruction {
+  struct ADORecordsetConstruction {
     CONST_VTBL struct ADORecordsetConstructionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3109,7 +3109,7 @@
       HRESULT (WINAPI *get_UnderlyingValue)(Field15 *This,VARIANT *pvar);
     END_INTERFACE
   } Field15Vtbl;
-  interface Field15 {
+  struct Field15 {
     CONST_VTBL struct Field15Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3224,7 +3224,7 @@
       HRESULT (WINAPI *put_Attributes)(Field20 *This,long lAttributes);
     END_INTERFACE
   } Field20Vtbl;
-  interface Field20 {
+  struct Field20 {
     CONST_VTBL struct Field20Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3342,7 +3342,7 @@
       HRESULT (WINAPI *get_Status)(ADOField *This,long *pFStatus);
     END_INTERFACE
   } FieldVtbl;
-  interface Field {
+  struct Field {
     CONST_VTBL struct FieldVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3405,7 +3405,7 @@
       HRESULT (WINAPI *get_Item)(Fields15 *This,VARIANT Index,ADOField **ppvObject);
     END_INTERFACE
   } Fields15Vtbl;
-  interface Fields15 {
+  struct Fields15 {
     CONST_VTBL struct Fields15Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3453,7 +3453,7 @@
       HRESULT (WINAPI *Delete)(Fields20 *This,VARIANT Index);
     END_INTERFACE
   } Fields20Vtbl;
-  interface Fields20 {
+  struct Fields20 {
     CONST_VTBL struct Fields20Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3511,7 +3511,7 @@
       HRESULT (WINAPI *CancelUpdate)(ADOFields *This);
     END_INTERFACE
   } FieldsVtbl;
-  interface Fields {
+  struct Fields {
     CONST_VTBL struct FieldsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3598,7 +3598,7 @@
       HRESULT (WINAPI *put_Attributes)(_ADOParameter *This,LONG lParmAttribs);
     END_INTERFACE
   } _ParameterVtbl;
-  interface _Parameter {
+  struct _Parameter {
     CONST_VTBL struct _ParameterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3673,7 +3673,7 @@
 #define __Parameters_INTERFACE_DEFINED__
   EXTERN_C const IID IID_Parameters;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct 
+  struct
 ADOParameters : public _ADODynaCollection {
   public:
     virtual HRESULT WINAPI get_Item(VARIANT Index,_ADOParameter **ppvObject) = 0;
@@ -3696,7 +3696,7 @@
       HRESULT (WINAPI *get_Item)(ADOParameters *This,VARIANT Index,_ADOParameter **ppvObject);
     END_INTERFACE
   } ParametersVtbl;
-  interface Parameters {
+  struct Parameters {
     CONST_VTBL struct ParametersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3750,7 +3750,7 @@
       HRESULT (WINAPI *put_Attributes)(ADOProperty *This,long lAttributes);
     END_INTERFACE
   } PropertyVtbl;
-  interface Property {
+  struct Property {
     CONST_VTBL struct PropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3808,7 +3808,7 @@
       HRESULT (WINAPI *get_Item)(ADOProperties *This,VARIANT Index,ADOProperty **ppvObject);
     END_INTERFACE
   } PropertiesVtbl;
-  interface Properties {
+  struct Properties {
     CONST_VTBL struct PropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/adojet.h b/mingw-w64-headers/include/adojet.h
index 5c5f89a..30dcd4c 100755
--- a/mingw-w64-headers/include/adojet.h
+++ b/mingw-w64-headers/include/adojet.h
@@ -15,22 +15,22 @@
 
 #ifndef __IReplica_FWD_DEFINED__
 #define __IReplica_FWD_DEFINED__
-typedef interface IReplica IReplica;
+typedef struct IReplica IReplica;
 #endif
 
 #ifndef __Filter_FWD_DEFINED__
 #define __Filter_FWD_DEFINED__
-typedef interface Filter Filter;
+typedef struct Filter Filter;
 #endif
 
 #ifndef __Filters_FWD_DEFINED__
 #define __Filters_FWD_DEFINED__
-typedef interface Filters Filters;
+typedef struct Filters Filters;
 #endif
 
 #ifndef __IJetEngine_FWD_DEFINED__
 #define __IJetEngine_FWD_DEFINED__
-typedef interface IJetEngine IJetEngine;
+typedef struct IJetEngine IJetEngine;
 #endif
 
 #ifndef __Replica_FWD_DEFINED__
@@ -153,7 +153,7 @@
       HRESULT (WINAPI *get_Filters)(IReplica *This,Filters **ppFilters);
     END_INTERFACE
   } IReplicaVtbl;
-  interface IReplica {
+  struct IReplica {
     CONST_VTBL struct IReplicaVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -256,7 +256,7 @@
       HRESULT (WINAPI *get_FilterCriteria)(Filter *This,BSTR *pbstr);
     END_INTERFACE
   } FilterVtbl;
-  interface Filter {
+  struct Filter {
     CONST_VTBL struct FilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -311,7 +311,7 @@
       HRESULT (WINAPI *Delete)(Filters *This,VARIANT Index);
     END_INTERFACE
   } FiltersVtbl;
-  interface Filters {
+  struct Filters {
     CONST_VTBL struct FiltersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -367,7 +367,7 @@
       HRESULT (WINAPI *RefreshCache)(IJetEngine *This,_Connection *Connection);
     END_INTERFACE
   } IJetEngineVtbl;
-  interface IJetEngine {
+  struct IJetEngine {
     CONST_VTBL struct IJetEngineVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/adomd.h b/mingw-w64-headers/include/adomd.h
index fd38100..10fcd06 100755
--- a/mingw-w64-headers/include/adomd.h
+++ b/mingw-w64-headers/include/adomd.h
@@ -15,97 +15,97 @@
 
 #ifndef __ICatalog_FWD_DEFINED__
 #define __ICatalog_FWD_DEFINED__
-typedef interface ICatalog ICatalog;
+typedef struct ICatalog ICatalog;
 #endif
 
 #ifndef __ICellset_FWD_DEFINED__
 #define __ICellset_FWD_DEFINED__
-typedef interface ICellset ICellset;
+typedef struct ICellset ICellset;
 #endif
 
 #ifndef __Cell_FWD_DEFINED__
 #define __Cell_FWD_DEFINED__
-typedef interface Cell Cell;
+typedef struct Cell Cell;
 #endif
 
 #ifndef __Axis_FWD_DEFINED__
 #define __Axis_FWD_DEFINED__
-typedef interface Axis Axis;
+typedef struct Axis Axis;
 #endif
 
 #ifndef __Position_FWD_DEFINED__
 #define __Position_FWD_DEFINED__
-typedef interface Position Position;
+typedef struct Position Position;
 #endif
 
 #ifndef __Member_FWD_DEFINED__
 #define __Member_FWD_DEFINED__
-typedef interface Member Member;
+typedef struct Member Member;
 #endif
 
 #ifndef __Level_FWD_DEFINED__
 #define __Level_FWD_DEFINED__
-typedef interface Level Level;
+typedef struct Level Level;
 #endif
 
 #ifndef __CubeDef25_FWD_DEFINED__
 #define __CubeDef25_FWD_DEFINED__
-typedef interface CubeDef25 CubeDef25;
+typedef struct CubeDef25 CubeDef25;
 #endif
 
 #ifndef __CubeDef_FWD_DEFINED__
 #define __CubeDef_FWD_DEFINED__
-typedef interface CubeDef CubeDef;
+typedef struct CubeDef CubeDef;
 #endif
 
 #ifndef __Dimension_FWD_DEFINED__
 #define __Dimension_FWD_DEFINED__
-typedef interface Dimension Dimension;
+typedef struct Dimension Dimension;
 #endif
 
 #ifndef __Hierarchy_FWD_DEFINED__
 #define __Hierarchy_FWD_DEFINED__
-typedef interface Hierarchy Hierarchy;
+typedef struct Hierarchy Hierarchy;
 #endif
 
 #ifndef __MD_Collection_FWD_DEFINED__
 #define __MD_Collection_FWD_DEFINED__
-typedef interface MD_Collection MD_Collection;
+typedef struct MD_Collection MD_Collection;
 #endif
 
 #ifndef __Members_FWD_DEFINED__
 #define __Members_FWD_DEFINED__
-typedef interface Members Members;
+typedef struct Members Members;
 #endif
 
 #ifndef __Levels_FWD_DEFINED__
 #define __Levels_FWD_DEFINED__
-typedef interface Levels Levels;
+typedef struct Levels Levels;
 #endif
 
 #ifndef __Axes_FWD_DEFINED__
 #define __Axes_FWD_DEFINED__
-typedef interface Axes Axes;
+typedef struct Axes Axes;
 #endif
 
 #ifndef __Positions_FWD_DEFINED__
 #define __Positions_FWD_DEFINED__
-typedef interface Positions Positions;
+typedef struct Positions Positions;
 #endif
 
 #ifndef __Hierarchies_FWD_DEFINED__
 #define __Hierarchies_FWD_DEFINED__
-typedef interface Hierarchies Hierarchies;
+typedef struct Hierarchies Hierarchies;
 #endif
 
 #ifndef __Dimensions_FWD_DEFINED__
 #define __Dimensions_FWD_DEFINED__
-typedef interface Dimensions Dimensions;
+typedef struct Dimensions Dimensions;
 #endif
 
 #ifndef __CubeDefs_FWD_DEFINED__
 #define __CubeDefs_FWD_DEFINED__
-typedef interface CubeDefs CubeDefs;
+typedef struct CubeDefs CubeDefs;
 #endif
 
 #ifndef __Catalog_FWD_DEFINED__
@@ -181,7 +181,7 @@
       HRESULT (WINAPI *get_CubeDefs)(ICatalog *This,CubeDefs **ppvObject);
     END_INTERFACE
   } ICatalogVtbl;
-  interface ICatalog {
+  struct ICatalog {
     CONST_VTBL struct ICatalogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -257,7 +257,7 @@
       HRESULT (WINAPI *get_Properties)(ICellset *This,Properties **ppvObject);
     END_INTERFACE
   } ICellsetVtbl;
-  interface ICellset {
+  struct ICellset {
     CONST_VTBL struct ICellsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -344,7 +344,7 @@
       HRESULT (WINAPI *get_Ordinal)(Cell *This,long *pl);
     END_INTERFACE
   } CellVtbl;
-  interface Cell {
+  struct Cell {
     CONST_VTBL struct CellVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -407,7 +407,7 @@
       HRESULT (WINAPI *get_Properties)(Axis *This,Properties **ppvObject);
     END_INTERFACE
   } AxisVtbl;
-  interface Axis {
+  struct Axis {
     CONST_VTBL struct AxisVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -457,7 +457,7 @@
       HRESULT (WINAPI *get_Members)(Position *This,Members **ppvObject);
     END_INTERFACE
   } PositionVtbl;
-  interface Position {
+  struct Position {
     CONST_VTBL struct PositionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -523,7 +523,7 @@
       HRESULT (WINAPI *get_Children)(Member *This,Members **ppvObject);
     END_INTERFACE
   } MemberVtbl;
-  interface Member {
+  struct Member {
     CONST_VTBL struct MemberVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -610,7 +610,7 @@
       HRESULT (WINAPI *get_Members)(Level *This,Members **ppvObject);
     END_INTERFACE
   } LevelVtbl;
-  interface Level {
+  struct Level {
     CONST_VTBL struct LevelVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -673,7 +673,7 @@
       HRESULT (WINAPI *get_Dimensions)(CubeDef25 *This,Dimensions **ppvObject);
     END_INTERFACE
   } CubeDef25Vtbl;
-  interface CubeDef25 {
+  struct CubeDef25 {
     CONST_VTBL struct CubeDef25Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -726,7 +726,7 @@
       HRESULT (WINAPI *GetSchemaObject)(CubeDef *This,SchemaObjectTypeEnum eObjType,BSTR bsUniqueName,IDispatch **ppObj);
     END_INTERFACE
   } CubeDefVtbl;
-  interface CubeDef {
+  struct CubeDef {
     CONST_VTBL struct CubeDefVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -777,7 +777,7 @@
       HRESULT (WINAPI *get_Hierarchies)(Dimension *This,Hierarchies **ppvObject);
     END_INTERFACE
   } DimensionVtbl;
-  interface Dimension {
+  struct Dimension {
     CONST_VTBL struct DimensionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -836,7 +836,7 @@
       HRESULT (WINAPI *get_Levels)(Hierarchy *This,Levels **ppvObject);
     END_INTERFACE
   } HierarchyVtbl;
-  interface Hierarchy {
+  struct Hierarchy {
     CONST_VTBL struct HierarchyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -891,7 +891,7 @@
       HRESULT (WINAPI *get_Count)(MD_Collection *This,long *c);
     END_INTERFACE
   } MD_CollectionVtbl;
-  interface MD_Collection {
+  struct MD_Collection {
     CONST_VTBL struct MD_CollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -939,7 +939,7 @@
       HRESULT (WINAPI *get_Item)(Members *This,VARIANT Index,Member **ppvObject);
     END_INTERFACE
   } MembersVtbl;
-  interface Members {
+  struct Members {
     CONST_VTBL struct MembersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -984,7 +984,7 @@
       HRESULT (WINAPI *get_Item)(Levels *This,VARIANT Index,Level **ppvObject);
     END_INTERFACE
   } LevelsVtbl;
-  interface Levels {
+  struct Levels {
     CONST_VTBL struct LevelsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1029,7 +1029,7 @@
       HRESULT (WINAPI *get_Item)(Axes *This,VARIANT Index,Axis **ppvObject);
     END_INTERFACE
   } AxesVtbl;
-  interface Axes {
+  struct Axes {
     CONST_VTBL struct AxesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1074,7 +1074,7 @@
       HRESULT (WINAPI *get_Item)(Positions *This,VARIANT Index,Position **ppvObject);
     END_INTERFACE
   } PositionsVtbl;
-  interface Positions {
+  struct Positions {
     CONST_VTBL struct PositionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1119,7 +1119,7 @@
       HRESULT (WINAPI *get_Item)(Hierarchies *This,VARIANT Index,Hierarchy **ppvObject);
     END_INTERFACE
   } HierarchiesVtbl;
-  interface Hierarchies {
+  struct Hierarchies {
     CONST_VTBL struct HierarchiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1164,7 +1164,7 @@
       HRESULT (WINAPI *get_Item)(Dimensions *This,VARIANT Index,Dimension **ppvObject);
     END_INTERFACE
   } DimensionsVtbl;
-  interface Dimensions {
+  struct Dimensions {
     CONST_VTBL struct DimensionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1209,7 +1209,7 @@
       HRESULT (WINAPI *get_Item)(CubeDefs *This,VARIANT Index,CubeDef **ppvObject);
     END_INTERFACE
   } CubeDefsVtbl;
-  interface CubeDefs {
+  struct CubeDefs {
     CONST_VTBL struct CubeDefsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/agtctl.h b/mingw-w64-headers/include/agtctl.h
index 887c40b..eaeb3ca 100755
--- a/mingw-w64-headers/include/agtctl.h
+++ b/mingw-w64-headers/include/agtctl.h
@@ -28,192 +28,192 @@
 
 #ifndef __IAgentCtlRequest_FWD_DEFINED__
 #define __IAgentCtlRequest_FWD_DEFINED__
-  typedef interface IAgentCtlRequest IAgentCtlRequest;
+  typedef struct IAgentCtlRequest IAgentCtlRequest;
 #endif
 
 #ifndef __IAgentCtlUserInput_FWD_DEFINED__
 #define __IAgentCtlUserInput_FWD_DEFINED__
-  typedef interface IAgentCtlUserInput IAgentCtlUserInput;
+  typedef struct IAgentCtlUserInput IAgentCtlUserInput;
 #endif
 
 #ifndef __IAgentCtlBalloon_FWD_DEFINED__
 #define __IAgentCtlBalloon_FWD_DEFINED__
-  typedef interface IAgentCtlBalloon IAgentCtlBalloon;
+  typedef struct IAgentCtlBalloon IAgentCtlBalloon;
 #endif
 
 #ifndef __IAgentCtlBalloonEx_FWD_DEFINED__
 #define __IAgentCtlBalloonEx_FWD_DEFINED__
-  typedef interface IAgentCtlBalloonEx IAgentCtlBalloonEx;
+  typedef struct IAgentCtlBalloonEx IAgentCtlBalloonEx;
 #endif
 
 #ifndef __IAgentCtlCommand_FWD_DEFINED__
 #define __IAgentCtlCommand_FWD_DEFINED__
-  typedef interface IAgentCtlCommand IAgentCtlCommand;
+  typedef struct IAgentCtlCommand IAgentCtlCommand;
 #endif
 
 #ifndef __IAgentCtlCommandEx_FWD_DEFINED__
 #define __IAgentCtlCommandEx_FWD_DEFINED__
-  typedef interface IAgentCtlCommandEx IAgentCtlCommandEx;
+  typedef struct IAgentCtlCommandEx IAgentCtlCommandEx;
 #endif
 
 #ifndef __IAgentCtlCommands_FWD_DEFINED__
 #define __IAgentCtlCommands_FWD_DEFINED__
-  typedef interface IAgentCtlCommands IAgentCtlCommands;
+  typedef struct IAgentCtlCommands IAgentCtlCommands;
 #endif
 
 #ifndef __IAgentCtlCommandsEx_FWD_DEFINED__
 #define __IAgentCtlCommandsEx_FWD_DEFINED__
-  typedef interface IAgentCtlCommandsEx IAgentCtlCommandsEx;
+  typedef struct IAgentCtlCommandsEx IAgentCtlCommandsEx;
 #endif
 
 #ifndef __IAgentCtlCharacter_FWD_DEFINED__
 #define __IAgentCtlCharacter_FWD_DEFINED__
-  typedef interface IAgentCtlCharacter IAgentCtlCharacter;
+  typedef struct IAgentCtlCharacter IAgentCtlCharacter;
 #endif
 
 #ifndef __IAgentCtlAnimationNames_FWD_DEFINED__
 #define __IAgentCtlAnimationNames_FWD_DEFINED__
-  typedef interface IAgentCtlAnimationNames IAgentCtlAnimationNames;
+  typedef struct IAgentCtlAnimationNames IAgentCtlAnimationNames;
 #endif
 
 #ifndef __IAgentCtlCharacterEx_FWD_DEFINED__
 #define __IAgentCtlCharacterEx_FWD_DEFINED__
-  typedef interface IAgentCtlCharacterEx IAgentCtlCharacterEx;
+  typedef struct IAgentCtlCharacterEx IAgentCtlCharacterEx;
 #endif
 
 #ifndef __IAgentCtlCharacters_FWD_DEFINED__
 #define __IAgentCtlCharacters_FWD_DEFINED__
-  typedef interface IAgentCtlCharacters IAgentCtlCharacters;
+  typedef struct IAgentCtlCharacters IAgentCtlCharacters;
 #endif
 
 #ifndef __IAgentCtlAudioObject_FWD_DEFINED__
 #define __IAgentCtlAudioObject_FWD_DEFINED__
-  typedef interface IAgentCtlAudioObject IAgentCtlAudioObject;
+  typedef struct IAgentCtlAudioObject IAgentCtlAudioObject;
 #endif
 
 #ifndef __IAgentCtlAudioObjectEx_FWD_DEFINED__
 #define __IAgentCtlAudioObjectEx_FWD_DEFINED__
-  typedef interface IAgentCtlAudioObjectEx IAgentCtlAudioObjectEx;
+  typedef struct IAgentCtlAudioObjectEx IAgentCtlAudioObjectEx;
 #endif
 
 #ifndef __IAgentCtlSpeechInput_FWD_DEFINED__
 #define __IAgentCtlSpeechInput_FWD_DEFINED__
-  typedef interface IAgentCtlSpeechInput IAgentCtlSpeechInput;
+  typedef struct IAgentCtlSpeechInput IAgentCtlSpeechInput;
 #endif
 
 #ifndef __IAgentCtlPropertySheet_FWD_DEFINED__
 #define __IAgentCtlPropertySheet_FWD_DEFINED__
-  typedef interface IAgentCtlPropertySheet IAgentCtlPropertySheet;
+  typedef struct IAgentCtlPropertySheet IAgentCtlPropertySheet;
 #endif
 
 #ifndef __IAgentCtlCommandsWindow_FWD_DEFINED__
 #define __IAgentCtlCommandsWindow_FWD_DEFINED__
-  typedef interface IAgentCtlCommandsWindow IAgentCtlCommandsWindow;
+  typedef struct IAgentCtlCommandsWindow IAgentCtlCommandsWindow;
 #endif
 
 #ifndef __IAgentCtl_FWD_DEFINED__
 #define __IAgentCtl_FWD_DEFINED__
-  typedef interface IAgentCtl IAgentCtl;
+  typedef struct IAgentCtl IAgentCtl;
 #endif
 
 #ifndef __IAgentCtlEx_FWD_DEFINED__
 #define __IAgentCtlEx_FWD_DEFINED__
-  typedef interface IAgentCtlEx IAgentCtlEx;
+  typedef struct IAgentCtlEx IAgentCtlEx;
 #endif
 
 #ifndef __IAgentCtlCharacters_FWD_DEFINED__
 #define __IAgentCtlCharacters_FWD_DEFINED__
-  typedef interface IAgentCtlCharacters IAgentCtlCharacters;
+  typedef struct IAgentCtlCharacters IAgentCtlCharacters;
 #endif
 
 #ifndef __IAgentCtlBalloon_FWD_DEFINED__
 #define __IAgentCtlBalloon_FWD_DEFINED__
-  typedef interface IAgentCtlBalloon IAgentCtlBalloon;
+  typedef struct IAgentCtlBalloon IAgentCtlBalloon;
 #endif
 
 #ifndef __IAgentCtlBalloonEx_FWD_DEFINED__
 #define __IAgentCtlBalloonEx_FWD_DEFINED__
-  typedef interface IAgentCtlBalloonEx IAgentCtlBalloonEx;
+  typedef struct IAgentCtlBalloonEx IAgentCtlBalloonEx;
 #endif
 
 #ifndef __IAgentCtlCharacter_FWD_DEFINED__
 #define __IAgentCtlCharacter_FWD_DEFINED__
-  typedef interface IAgentCtlCharacter IAgentCtlCharacter;
+  typedef struct IAgentCtlCharacter IAgentCtlCharacter;
 #endif
 
 #ifndef __IAgentCtlCharacterEx_FWD_DEFINED__
 #define __IAgentCtlCharacterEx_FWD_DEFINED__
-  typedef interface IAgentCtlCharacterEx IAgentCtlCharacterEx;
+  typedef struct IAgentCtlCharacterEx IAgentCtlCharacterEx;
 #endif
 
 #ifndef __IAgentCtlAudioObject_FWD_DEFINED__
 #define __IAgentCtlAudioObject_FWD_DEFINED__
-  typedef interface IAgentCtlAudioObject IAgentCtlAudioObject;
+  typedef struct IAgentCtlAudioObject IAgentCtlAudioObject;
 #endif
 
 #ifndef __IAgentCtlAudioObjectEx_FWD_DEFINED__
 #define __IAgentCtlAudioObjectEx_FWD_DEFINED__
-  typedef interface IAgentCtlAudioObjectEx IAgentCtlAudioObjectEx;
+  typedef struct IAgentCtlAudioObjectEx IAgentCtlAudioObjectEx;
 #endif
 
 #ifndef __IAgentCtlSpeechInput_FWD_DEFINED__
 #define __IAgentCtlSpeechInput_FWD_DEFINED__
-  typedef interface IAgentCtlSpeechInput IAgentCtlSpeechInput;
+  typedef struct IAgentCtlSpeechInput IAgentCtlSpeechInput;
 #endif
 
 #ifndef __IAgentCtlPropertySheet_FWD_DEFINED__
 #define __IAgentCtlPropertySheet_FWD_DEFINED__
-  typedef interface IAgentCtlPropertySheet IAgentCtlPropertySheet;
+  typedef struct IAgentCtlPropertySheet IAgentCtlPropertySheet;
 #endif
 
 #ifndef __IAgentCtlCommands_FWD_DEFINED__
 #define __IAgentCtlCommands_FWD_DEFINED__
-  typedef interface IAgentCtlCommands IAgentCtlCommands;
+  typedef struct IAgentCtlCommands IAgentCtlCommands;
 #endif
 
 #ifndef __IAgentCtlCommandsEx_FWD_DEFINED__
 #define __IAgentCtlCommandsEx_FWD_DEFINED__
-  typedef interface IAgentCtlCommandsEx IAgentCtlCommandsEx;
+  typedef struct IAgentCtlCommandsEx IAgentCtlCommandsEx;
 #endif
 
 #ifndef __IAgentCtlCommand_FWD_DEFINED__
 #define __IAgentCtlCommand_FWD_DEFINED__
-  typedef interface IAgentCtlCommand IAgentCtlCommand;
+  typedef struct IAgentCtlCommand IAgentCtlCommand;
 #endif
 
 #ifndef __IAgentCtlCommandEx_FWD_DEFINED__
 #define __IAgentCtlCommandEx_FWD_DEFINED__
-  typedef interface IAgentCtlCommandEx IAgentCtlCommandEx;
+  typedef struct IAgentCtlCommandEx IAgentCtlCommandEx;
 #endif
 
 #ifndef __IAgentCtlRequest_FWD_DEFINED__
 #define __IAgentCtlRequest_FWD_DEFINED__
-  typedef interface IAgentCtlRequest IAgentCtlRequest;
+  typedef struct IAgentCtlRequest IAgentCtlRequest;
 #endif
 
 #ifndef __IAgentCtlUserInput_FWD_DEFINED__
 #define __IAgentCtlUserInput_FWD_DEFINED__
-  typedef interface IAgentCtlUserInput IAgentCtlUserInput;
+  typedef struct IAgentCtlUserInput IAgentCtlUserInput;
 #endif
 
 #ifndef __IAgentCtlCommandsWindow_FWD_DEFINED__
 #define __IAgentCtlCommandsWindow_FWD_DEFINED__
-  typedef interface IAgentCtlCommandsWindow IAgentCtlCommandsWindow;
+  typedef struct IAgentCtlCommandsWindow IAgentCtlCommandsWindow;
 #endif
 
 #ifndef __IAgentCtl_FWD_DEFINED__
 #define __IAgentCtl_FWD_DEFINED__
-  typedef interface IAgentCtl IAgentCtl;
+  typedef struct IAgentCtl IAgentCtl;
 #endif
 
 #ifndef __IAgentCtlEx_FWD_DEFINED__
 #define __IAgentCtlEx_FWD_DEFINED__
-  typedef interface IAgentCtlEx IAgentCtlEx;
+  typedef struct IAgentCtlEx IAgentCtlEx;
 #endif
 
 #ifndef ___AgentEvents_FWD_DEFINED__
 #define ___AgentEvents_FWD_DEFINED__
-  typedef interface _AgentEvents _AgentEvents;
+  typedef struct _AgentEvents _AgentEvents;
 #endif
 
 #ifndef __Agent_FWD_DEFINED__
@@ -268,7 +268,7 @@
       HRESULT (WINAPI *get_Number)(IAgentCtlRequest *This,long *Number);
     END_INTERFACE
   } IAgentCtlRequestVtbl;
-  interface IAgentCtlRequest {
+  struct IAgentCtlRequest {
     CONST_VTBL struct IAgentCtlRequestVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -336,7 +336,7 @@
       HRESULT (WINAPI *get_Alt2Voice)(IAgentCtlUserInput *This,BSTR *pAlt2Voice);
     END_INTERFACE
   } IAgentCtlUserInputVtbl;
-  interface IAgentCtlUserInput {
+  struct IAgentCtlUserInput {
     CONST_VTBL struct IAgentCtlUserInputVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -439,7 +439,7 @@
       HRESULT (WINAPI *get_FontCharSet)(IAgentCtlBalloon *This,short *FontCharSet);
     END_INTERFACE
   } IAgentCtlBalloonVtbl;
-  interface IAgentCtlBalloon {
+  struct IAgentCtlBalloon {
     CONST_VTBL struct IAgentCtlBalloonVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -549,7 +549,7 @@
       HRESULT (WINAPI *get_Style)(IAgentCtlBalloonEx *This,long *Style);
     END_INTERFACE
   } IAgentCtlBalloonExVtbl;
-  interface IAgentCtlBalloonEx {
+  struct IAgentCtlBalloonEx {
     CONST_VTBL struct IAgentCtlBalloonExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -631,7 +631,7 @@
       HRESULT (WINAPI *put_ConfidenceText)(IAgentCtlCommand *This,BSTR Text);
     END_INTERFACE
   } IAgentCtlCommandVtbl;
-  interface IAgentCtlCommand {
+  struct IAgentCtlCommand {
     CONST_VTBL struct IAgentCtlCommandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -721,7 +721,7 @@
       HRESULT (WINAPI *get_VoiceCaption)(IAgentCtlCommandEx *This,BSTR *VoiceCaption);
     END_INTERFACE
   } IAgentCtlCommandExVtbl;
-  interface IAgentCtlCommandEx {
+  struct IAgentCtlCommandEx {
     CONST_VTBL struct IAgentCtlCommandExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -807,7 +807,7 @@
       HRESULT (WINAPI *RemoveAll)(IAgentCtlCommands *This);
     END_INTERFACE
   } IAgentCtlCommandsVtbl;
-  interface IAgentCtlCommands {
+  struct IAgentCtlCommands {
     CONST_VTBL struct IAgentCtlCommandsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -921,7 +921,7 @@
       HRESULT (WINAPI *get_GlobalVoiceCommandsEnabled)(IAgentCtlCommandsEx *This,VARIANT_BOOL *Enable);
     END_INTERFACE
   } IAgentCtlCommandsExVtbl;
-  interface IAgentCtlCommandsEx {
+  struct IAgentCtlCommandsEx {
     CONST_VTBL struct IAgentCtlCommandsExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1079,7 +1079,7 @@
       HRESULT (WINAPI *get_ExtraData)(IAgentCtlCharacter *This,BSTR *ExtraData);
     END_INTERFACE
   } IAgentCtlCharacterVtbl;
-  interface IAgentCtlCharacter {
+  struct IAgentCtlCharacter {
     CONST_VTBL struct IAgentCtlCharacterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1226,7 +1226,7 @@
       HRESULT (WINAPI *get_Enum)(IAgentCtlAnimationNames *This,IUnknown **ppunkEnum);
     END_INTERFACE
   } IAgentCtlAnimationNamesVtbl;
-  interface IAgentCtlAnimationNames {
+  struct IAgentCtlAnimationNames {
     CONST_VTBL struct IAgentCtlAnimationNamesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1348,7 +1348,7 @@
       HRESULT (WINAPI *get_SRStatus)(IAgentCtlCharacterEx *This,long *Status);
     END_INTERFACE
   } IAgentCtlCharacterExVtbl;
-  interface IAgentCtlCharacterEx {
+  struct IAgentCtlCharacterEx {
     CONST_VTBL struct IAgentCtlCharacterExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1501,7 +1501,7 @@
       HRESULT (WINAPI *Load)(IAgentCtlCharacters *This,BSTR CharacterID,VARIANT LoadKey,IAgentCtlRequest **ppidRequest);
     END_INTERFACE
   } IAgentCtlCharactersVtbl;
-  interface IAgentCtlCharacters {
+  struct IAgentCtlCharacters {
     CONST_VTBL struct IAgentCtlCharactersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1554,7 +1554,7 @@
       HRESULT (WINAPI *get_SoundEffects)(IAgentCtlAudioObject *This,VARIANT_BOOL *SoundEffects);
     END_INTERFACE
   } IAgentCtlAudioObjectVtbl;
-  interface IAgentCtlAudioObject {
+  struct IAgentCtlAudioObject {
     CONST_VTBL struct IAgentCtlAudioObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1598,7 +1598,7 @@
       HRESULT (WINAPI *get_Status)(IAgentCtlAudioObjectEx *This,short *Available);
     END_INTERFACE
   } IAgentCtlAudioObjectExVtbl;
-  interface IAgentCtlAudioObjectEx {
+  struct IAgentCtlAudioObjectEx {
     CONST_VTBL struct IAgentCtlAudioObjectExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1651,7 +1651,7 @@
       HRESULT (WINAPI *get_ListeningTip)(IAgentCtlSpeechInput *This,VARIANT_BOOL *ListeningTip);
     END_INTERFACE
   } IAgentCtlSpeechInputVtbl;
-  interface IAgentCtlSpeechInput {
+  struct IAgentCtlSpeechInput {
     CONST_VTBL struct IAgentCtlSpeechInputVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1722,7 +1722,7 @@
       HRESULT (WINAPI *get_Page)(IAgentCtlPropertySheet *This,BSTR *Page);
     END_INTERFACE
   } IAgentCtlPropertySheetVtbl;
-  interface IAgentCtlPropertySheet {
+  struct IAgentCtlPropertySheet {
     CONST_VTBL struct IAgentCtlPropertySheetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1792,7 +1792,7 @@
       HRESULT (WINAPI *get_Width)(IAgentCtlCommandsWindow *This,short *Width);
     END_INTERFACE
   } IAgentCtlCommandsWindowVtbl;
-  interface IAgentCtlCommandsWindow {
+  struct IAgentCtlCommandsWindow {
     CONST_VTBL struct IAgentCtlCommandsWindowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1860,7 +1860,7 @@
       HRESULT (WINAPI *get_Suspended)(IAgentCtl *This,VARIANT_BOOL *Suspended);
     END_INTERFACE
   } IAgentCtlVtbl;
-  interface IAgentCtl {
+  struct IAgentCtl {
     CONST_VTBL struct IAgentCtlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1932,7 +1932,7 @@
       HRESULT (WINAPI *put_RaiseRequestErrors)(IAgentCtlEx *This,VARIANT_BOOL RaiseErrors);
     END_INTERFACE
   } IAgentCtlExVtbl;
-  interface IAgentCtlEx {
+  struct IAgentCtlEx {
     CONST_VTBL struct IAgentCtlExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1992,7 +1992,7 @@
       HRESULT (WINAPI *Invoke)(_AgentEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } _AgentEventsVtbl;
-  interface _AgentEvents {
+  struct _AgentEvents {
     CONST_VTBL struct _AgentEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/agtsvr.h b/mingw-w64-headers/include/agtsvr.h
index 1d8bc90..d27848a 100755
--- a/mingw-w64-headers/include/agtsvr.h
+++ b/mingw-w64-headers/include/agtsvr.h
@@ -28,107 +28,107 @@
 
 #ifndef __IAgentUserInput_FWD_DEFINED__
 #define __IAgentUserInput_FWD_DEFINED__
-  typedef interface IAgentUserInput IAgentUserInput;
+  typedef struct IAgentUserInput IAgentUserInput;
 #endif
 
 #ifndef __IAgentCommand_FWD_DEFINED__
 #define __IAgentCommand_FWD_DEFINED__
-  typedef interface IAgentCommand IAgentCommand;
+  typedef struct IAgentCommand IAgentCommand;
 #endif
 
 #ifndef __IAgentCommandEx_FWD_DEFINED__
 #define __IAgentCommandEx_FWD_DEFINED__
-  typedef interface IAgentCommandEx IAgentCommandEx;
+  typedef struct IAgentCommandEx IAgentCommandEx;
 #endif
 
 #ifndef __IAgentCommands_FWD_DEFINED__
 #define __IAgentCommands_FWD_DEFINED__
-  typedef interface IAgentCommands IAgentCommands;
+  typedef struct IAgentCommands IAgentCommands;
 #endif
 
 #ifndef __IAgentCommandsEx_FWD_DEFINED__
 #define __IAgentCommandsEx_FWD_DEFINED__
-  typedef interface IAgentCommandsEx IAgentCommandsEx;
+  typedef struct IAgentCommandsEx IAgentCommandsEx;
 #endif
 
 #ifndef __IAgentCommandWindow_FWD_DEFINED__
 #define __IAgentCommandWindow_FWD_DEFINED__
-  typedef interface IAgentCommandWindow IAgentCommandWindow;
+  typedef struct IAgentCommandWindow IAgentCommandWindow;
 #endif
 
 #ifndef __IAgentSpeechInputProperties_FWD_DEFINED__
 #define __IAgentSpeechInputProperties_FWD_DEFINED__
-  typedef interface IAgentSpeechInputProperties IAgentSpeechInputProperties;
+  typedef struct IAgentSpeechInputProperties IAgentSpeechInputProperties;
 #endif
 
 #ifndef __IAgentAudioOutputProperties_FWD_DEFINED__
 #define __IAgentAudioOutputProperties_FWD_DEFINED__
-  typedef interface IAgentAudioOutputProperties IAgentAudioOutputProperties;
+  typedef struct IAgentAudioOutputProperties IAgentAudioOutputProperties;
 #endif
 
 #ifndef __IAgentAudioOutputPropertiesEx_FWD_DEFINED__
 #define __IAgentAudioOutputPropertiesEx_FWD_DEFINED__
-  typedef interface IAgentAudioOutputPropertiesEx IAgentAudioOutputPropertiesEx;
+  typedef struct IAgentAudioOutputPropertiesEx IAgentAudioOutputPropertiesEx;
 #endif
 
 #ifndef __IAgentPropertySheet_FWD_DEFINED__
 #define __IAgentPropertySheet_FWD_DEFINED__
-  typedef interface IAgentPropertySheet IAgentPropertySheet;
+  typedef struct IAgentPropertySheet IAgentPropertySheet;
 #endif
 
 #ifndef __IAgentBalloon_FWD_DEFINED__
 #define __IAgentBalloon_FWD_DEFINED__
-  typedef interface IAgentBalloon IAgentBalloon;
+  typedef struct IAgentBalloon IAgentBalloon;
 #endif
 
 #ifndef __IAgentBalloonEx_FWD_DEFINED__
 #define __IAgentBalloonEx_FWD_DEFINED__
-  typedef interface IAgentBalloonEx IAgentBalloonEx;
+  typedef struct IAgentBalloonEx IAgentBalloonEx;
 #endif
 
 #ifndef __IAgentCharacter_FWD_DEFINED__
 #define __IAgentCharacter_FWD_DEFINED__
-  typedef interface IAgentCharacter IAgentCharacter;
+  typedef struct IAgentCharacter IAgentCharacter;
 #endif
 
 #ifndef __IAgentCharacterEx_FWD_DEFINED__
 #define __IAgentCharacterEx_FWD_DEFINED__
-  typedef interface IAgentCharacterEx IAgentCharacterEx;
+  typedef struct IAgentCharacterEx IAgentCharacterEx;
 #endif
 
 #ifndef __IAgent_FWD_DEFINED__
 #define __IAgent_FWD_DEFINED__
-  typedef interface IAgent IAgent;
+  typedef struct IAgent IAgent;
 #endif
 
 #ifndef __IAgentEx_FWD_DEFINED__
 #define __IAgentEx_FWD_DEFINED__
-  typedef interface IAgentEx IAgentEx;
+  typedef struct IAgentEx IAgentEx;
 #endif
 
 #ifndef __IAgentNotifySink_FWD_DEFINED__
 #define __IAgentNotifySink_FWD_DEFINED__
-  typedef interface IAgentNotifySink IAgentNotifySink;
+  typedef struct IAgentNotifySink IAgentNotifySink;
 #endif
 
 #ifndef __IAgentNotifySinkEx_FWD_DEFINED__
 #define __IAgentNotifySinkEx_FWD_DEFINED__
-  typedef interface IAgentNotifySinkEx IAgentNotifySinkEx;
+  typedef struct IAgentNotifySinkEx IAgentNotifySinkEx;
 #endif
 
 #ifndef __IAgentPrivateNotifySink_FWD_DEFINED__
 #define __IAgentPrivateNotifySink_FWD_DEFINED__
-  typedef interface IAgentPrivateNotifySink IAgentPrivateNotifySink;
+  typedef struct IAgentPrivateNotifySink IAgentPrivateNotifySink;
 #endif
 
 #ifndef __IAgentCustomMarshalMaker_FWD_DEFINED__
 #define __IAgentCustomMarshalMaker_FWD_DEFINED__
-  typedef interface IAgentCustomMarshalMaker IAgentCustomMarshalMaker;
+  typedef struct IAgentCustomMarshalMaker IAgentCustomMarshalMaker;
 #endif
 
 #ifndef __IAgentClientStatus_FWD_DEFINED__
 #define __IAgentClientStatus_FWD_DEFINED__
-  typedef interface IAgentClientStatus IAgentClientStatus;
+  typedef struct IAgentClientStatus IAgentClientStatus;
 #endif
 
 #ifndef __AgentServer_FWD_DEFINED__
@@ -142,92 +142,92 @@
 
 #ifndef __IAgentUserInput_FWD_DEFINED__
 #define __IAgentUserInput_FWD_DEFINED__
-  typedef interface IAgentUserInput IAgentUserInput;
+  typedef struct IAgentUserInput IAgentUserInput;
 #endif
 
 #ifndef __IAgentCommand_FWD_DEFINED__
 #define __IAgentCommand_FWD_DEFINED__
-  typedef interface IAgentCommand IAgentCommand;
+  typedef struct IAgentCommand IAgentCommand;
 #endif
 
 #ifndef __IAgentCommandEx_FWD_DEFINED__
 #define __IAgentCommandEx_FWD_DEFINED__
-  typedef interface IAgentCommandEx IAgentCommandEx;
+  typedef struct IAgentCommandEx IAgentCommandEx;
 #endif
 
 #ifndef __IAgentCommands_FWD_DEFINED__
 #define __IAgentCommands_FWD_DEFINED__
-  typedef interface IAgentCommands IAgentCommands;
+  typedef struct IAgentCommands IAgentCommands;
 #endif
 
 #ifndef __IAgentCommandsEx_FWD_DEFINED__
 #define __IAgentCommandsEx_FWD_DEFINED__
-  typedef interface IAgentCommandsEx IAgentCommandsEx;
+  typedef struct IAgentCommandsEx IAgentCommandsEx;
 #endif
 
 #ifndef __IAgentSpeechInputProperties_FWD_DEFINED__
 #define __IAgentSpeechInputProperties_FWD_DEFINED__
-  typedef interface IAgentSpeechInputProperties IAgentSpeechInputProperties;
+  typedef struct IAgentSpeechInputProperties IAgentSpeechInputProperties;
 #endif
 
 #ifndef __IAgentAudioOutputProperties_FWD_DEFINED__
 #define __IAgentAudioOutputProperties_FWD_DEFINED__
-  typedef interface IAgentAudioOutputProperties IAgentAudioOutputProperties;
+  typedef struct IAgentAudioOutputProperties IAgentAudioOutputProperties;
 #endif
 
 #ifndef __IAgentAudioOutputPropertiesEx_FWD_DEFINED__
 #define __IAgentAudioOutputPropertiesEx_FWD_DEFINED__
-  typedef interface IAgentAudioOutputPropertiesEx IAgentAudioOutputPropertiesEx;
+  typedef struct IAgentAudioOutputPropertiesEx IAgentAudioOutputPropertiesEx;
 #endif
 
 #ifndef __IAgentPropertySheet_FWD_DEFINED__
 #define __IAgentPropertySheet_FWD_DEFINED__
-  typedef interface IAgentPropertySheet IAgentPropertySheet;
+  typedef struct IAgentPropertySheet IAgentPropertySheet;
 #endif
 
 #ifndef __IAgentBalloon_FWD_DEFINED__
 #define __IAgentBalloon_FWD_DEFINED__
-  typedef interface IAgentBalloon IAgentBalloon;
+  typedef struct IAgentBalloon IAgentBalloon;
 #endif
 
 #ifndef __IAgentBalloonEx_FWD_DEFINED__
 #define __IAgentBalloonEx_FWD_DEFINED__
-  typedef interface IAgentBalloonEx IAgentBalloonEx;
+  typedef struct IAgentBalloonEx IAgentBalloonEx;
 #endif
 
 #ifndef __IAgentCharacter_FWD_DEFINED__
 #define __IAgentCharacter_FWD_DEFINED__
-  typedef interface IAgentCharacter IAgentCharacter;
+  typedef struct IAgentCharacter IAgentCharacter;
 #endif
 
 #ifndef __IAgentCharacterEx_FWD_DEFINED__
 #define __IAgentCharacterEx_FWD_DEFINED__
-  typedef interface IAgentCharacterEx IAgentCharacterEx;
+  typedef struct IAgentCharacterEx IAgentCharacterEx;
 #endif
 
 #ifndef __IAgent_FWD_DEFINED__
 #define __IAgent_FWD_DEFINED__
-  typedef interface IAgent IAgent;
+  typedef struct IAgent IAgent;
 #endif
 
 #ifndef __IAgentEx_FWD_DEFINED__
 #define __IAgentEx_FWD_DEFINED__
-  typedef interface IAgentEx IAgentEx;
+  typedef struct IAgentEx IAgentEx;
 #endif
 
 #ifndef __IAgentNotifySink_FWD_DEFINED__
 #define __IAgentNotifySink_FWD_DEFINED__
-  typedef interface IAgentNotifySink IAgentNotifySink;
+  typedef struct IAgentNotifySink IAgentNotifySink;
 #endif
 
 #ifndef __IAgentNotifySinkEx_FWD_DEFINED__
 #define __IAgentNotifySinkEx_FWD_DEFINED__
-  typedef interface IAgentNotifySinkEx IAgentNotifySinkEx;
+  typedef struct IAgentNotifySinkEx IAgentNotifySinkEx;
 #endif
 
 #ifndef __IAgentCommandWindow_FWD_DEFINED__
 #define __IAgentCommandWindow_FWD_DEFINED__
-  typedef interface IAgentCommandWindow IAgentCommandWindow;
+  typedef struct IAgentCommandWindow IAgentCommandWindow;
 #endif
 
 #include "oaidl.h"
@@ -344,7 +344,7 @@
       HRESULT (WINAPI *GetAllItemData)(IAgentUserInput *This,VARIANT *pdwItemIndices,VARIANT *plConfidences,VARIANT *pbszText);
     END_INTERFACE
   } IAgentUserInputVtbl;
-  interface IAgentUserInput {
+  struct IAgentUserInput {
     CONST_VTBL struct IAgentUserInputVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -419,7 +419,7 @@
       HRESULT (WINAPI *GetID)(IAgentCommand *This,long *pdwID);
     END_INTERFACE
   } IAgentCommandVtbl;
-  interface IAgentCommand {
+  struct IAgentCommand {
     CONST_VTBL struct IAgentCommandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -514,7 +514,7 @@
       HRESULT (WINAPI *GetVoiceCaption)(IAgentCommandEx *This,BSTR *pbszVoiceCaption);
     END_INTERFACE
   } IAgentCommandExVtbl;
-  interface IAgentCommandEx {
+  struct IAgentCommandEx {
     CONST_VTBL struct IAgentCommandExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -597,7 +597,7 @@
       HRESULT (WINAPI *RemoveAll)(IAgentCommands *This);
     END_INTERFACE
   } IAgentCommandsVtbl;
-  interface IAgentCommands {
+  struct IAgentCommands {
     CONST_VTBL struct IAgentCommandsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -709,7 +709,7 @@
       HRESULT (WINAPI *GetGlobalVoiceCommandsEnabled)(IAgentCommandsEx *This,long *pbEnabled);
     END_INTERFACE
   } IAgentCommandsExVtbl;
-  interface IAgentCommandsEx {
+  struct IAgentCommandsEx {
     CONST_VTBL struct IAgentCommandsExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -808,7 +808,7 @@
       HRESULT (WINAPI *GetSize)(IAgentCommandWindow *This,long *plWidth,long *plHeight);
     END_INTERFACE
   } IAgentCommandWindowVtbl;
-  interface IAgentCommandWindow {
+  struct IAgentCommandWindow {
     CONST_VTBL struct IAgentCommandWindowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -868,7 +868,7 @@
       HRESULT (WINAPI *GetListeningTip)(IAgentSpeechInputProperties *This,long *pbListeningTip);
     END_INTERFACE
   } IAgentSpeechInputPropertiesVtbl;
-  interface IAgentSpeechInputProperties {
+  struct IAgentSpeechInputProperties {
     CONST_VTBL struct IAgentSpeechInputPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -927,7 +927,7 @@
       HRESULT (WINAPI *GetUsingSoundEffects)(IAgentAudioOutputProperties *This,long *pbUsingSoundEffects);
     END_INTERFACE
   } IAgentAudioOutputPropertiesVtbl;
-  interface IAgentAudioOutputProperties {
+  struct IAgentAudioOutputProperties {
     CONST_VTBL struct IAgentAudioOutputPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -971,7 +971,7 @@
       HRESULT (WINAPI *GetStatus)(IAgentAudioOutputPropertiesEx *This,long *plStatus);
     END_INTERFACE
   } IAgentAudioOutputPropertiesExVtbl;
-  interface IAgentAudioOutputPropertiesEx {
+  struct IAgentAudioOutputPropertiesEx {
     CONST_VTBL struct IAgentAudioOutputPropertiesExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1022,7 +1022,7 @@
       HRESULT (WINAPI *SetPage)(IAgentPropertySheet *This,BSTR bszPage);
     END_INTERFACE
   } IAgentPropertySheetVtbl;
-  interface IAgentPropertySheet {
+  struct IAgentPropertySheet {
     CONST_VTBL struct IAgentPropertySheetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1110,7 +1110,7 @@
       HRESULT (WINAPI *GetFontCharSet)(IAgentBalloon *This,short *psFontCharSet);
     END_INTERFACE
   } IAgentBalloonVtbl;
-  interface IAgentBalloon {
+  struct IAgentBalloon {
     CONST_VTBL struct IAgentBalloonVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1224,7 +1224,7 @@
       HRESULT (WINAPI *SetNumCharsPerLine)(IAgentBalloonEx *This,long lCharsPerLine);
     END_INTERFACE
   } IAgentBalloonExVtbl;
-  interface IAgentBalloonEx {
+  struct IAgentBalloonEx {
     CONST_VTBL struct IAgentBalloonExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1350,7 +1350,7 @@
       HRESULT (WINAPI *GetExtraData)(IAgentCharacter *This,BSTR *pbszExtraData);
     END_INTERFACE
   } IAgentCharacterVtbl;
-  interface IAgentCharacter {
+  struct IAgentCharacter {
     CONST_VTBL struct IAgentCharacterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1554,7 +1554,7 @@
       HRESULT (WINAPI *GetSRStatus)(IAgentCharacterEx *This,long *plStatus);
     END_INTERFACE
   } IAgentCharacterExVtbl;
-  interface IAgentCharacterEx {
+  struct IAgentCharacterEx {
     CONST_VTBL struct IAgentCharacterExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1700,7 +1700,7 @@
       HRESULT (WINAPI *GetSuspended)(IAgent *This,long *pbSuspended);
     END_INTERFACE
   } IAgentVtbl;
-  interface IAgent {
+  struct IAgent {
     CONST_VTBL struct IAgentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1764,7 +1764,7 @@
       HRESULT (WINAPI *ShowDefaultCharacterProperties)(IAgentEx *This,short x,short y,long bUseDefaultPosition);
     END_INTERFACE
   } IAgentExVtbl;
-  interface IAgentEx {
+  struct IAgentEx {
     CONST_VTBL struct IAgentExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1845,7 +1845,7 @@
       HRESULT (WINAPI *BalloonVisibleState)(IAgentNotifySink *This,long dwCharID,long bVisible);
     END_INTERFACE
   } IAgentNotifySinkVtbl;
-  interface IAgentNotifySink {
+  struct IAgentNotifySink {
     CONST_VTBL struct IAgentNotifySinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1953,7 +1953,7 @@
       HRESULT (WINAPI *ActiveClientChange)(IAgentNotifySinkEx *This,long dwCharID,long lStatus);
     END_INTERFACE
   } IAgentNotifySinkExVtbl;
-  interface IAgentNotifySinkEx {
+  struct IAgentNotifySinkEx {
     CONST_VTBL struct IAgentNotifySinkExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2020,7 +2020,7 @@
       HRESULT (WINAPI *GetClientID)(IAgentPrivateNotifySink *This,DWORD *pdwClientID);
     END_INTERFACE
   } IAgentPrivateNotifySinkVtbl;
-  interface IAgentPrivateNotifySink {
+  struct IAgentPrivateNotifySink {
     CONST_VTBL struct IAgentPrivateNotifySinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2058,7 +2058,7 @@
       HRESULT (WINAPI *Create)(IAgentCustomMarshalMaker *This,IUnknown *pSink,REFIID riidSink,IUnknown **pMarshaledSink);
     END_INTERFACE
   } IAgentCustomMarshalMakerVtbl;
-  interface IAgentCustomMarshalMaker {
+  struct IAgentCustomMarshalMaker {
     CONST_VTBL struct IAgentCustomMarshalMakerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2089,7 +2089,7 @@
       HRESULT (WINAPI *Ping)(IAgentClientStatus *This);
     END_INTERFACE
   } IAgentClientStatusVtbl;
-  interface IAgentClientStatus {
+  struct IAgentClientStatus {
     CONST_VTBL struct IAgentClientStatusVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/asptlb.h b/mingw-w64-headers/include/asptlb.h
index 9162081..a236054 100755
--- a/mingw-w64-headers/include/asptlb.h
+++ b/mingw-w64-headers/include/asptlb.h
@@ -15,17 +15,17 @@
 
 #ifndef __IStringList_FWD_DEFINED__
 #define __IStringList_FWD_DEFINED__
-typedef interface IStringList IStringList;
+typedef struct IStringList IStringList;
 #endif
 
 #ifndef __IRequestDictionary_FWD_DEFINED__
 #define __IRequestDictionary_FWD_DEFINED__
-typedef interface IRequestDictionary IRequestDictionary;
+typedef struct IRequestDictionary IRequestDictionary;
 #endif
 
 #ifndef __IRequest_FWD_DEFINED__
 #define __IRequest_FWD_DEFINED__
-typedef interface IRequest IRequest;
+typedef struct IRequest IRequest;
 #endif
 
 #ifndef __Request_FWD_DEFINED__
@@ -39,17 +39,17 @@
 
 #ifndef __IReadCookie_FWD_DEFINED__
 #define __IReadCookie_FWD_DEFINED__
-typedef interface IReadCookie IReadCookie;
+typedef struct IReadCookie IReadCookie;
 #endif
 
 #ifndef __IWriteCookie_FWD_DEFINED__
 #define __IWriteCookie_FWD_DEFINED__
-typedef interface IWriteCookie IWriteCookie;
+typedef struct IWriteCookie IWriteCookie;
 #endif
 
 #ifndef __IResponse_FWD_DEFINED__
 #define __IResponse_FWD_DEFINED__
-typedef interface IResponse IResponse;
+typedef struct IResponse IResponse;
 #endif
 
 #ifndef __Response_FWD_DEFINED__
@@ -63,12 +63,12 @@
 
 #ifndef __IVariantDictionary_FWD_DEFINED__
 #define __IVariantDictionary_FWD_DEFINED__
-typedef interface IVariantDictionary IVariantDictionary;
+typedef struct IVariantDictionary IVariantDictionary;
 #endif
 
 #ifndef __ISessionObject_FWD_DEFINED__
 #define __ISessionObject_FWD_DEFINED__
-typedef interface ISessionObject ISessionObject;
+typedef struct ISessionObject ISessionObject;
 #endif
 
 #ifndef __Session_FWD_DEFINED__
@@ -82,7 +82,7 @@
 
 #ifndef __IApplicationObject_FWD_DEFINED__
 #define __IApplicationObject_FWD_DEFINED__
-typedef interface IApplicationObject IApplicationObject;
+typedef struct IApplicationObject IApplicationObject;
 #endif
 
 #ifndef __Application_FWD_DEFINED__
@@ -96,12 +96,12 @@
 
 #ifndef __IASPError_FWD_DEFINED__
 #define __IASPError_FWD_DEFINED__
-typedef interface IASPError IASPError;
+typedef struct IASPError IASPError;
 #endif
 
 #ifndef __IServer_FWD_DEFINED__
 #define __IServer_FWD_DEFINED__
-typedef interface IServer IServer;
+typedef struct IServer IServer;
 #endif
 
 #ifndef __Server_FWD_DEFINED__
@@ -115,7 +115,7 @@
 
 #ifndef __IScriptingContext_FWD_DEFINED__
 #define __IScriptingContext_FWD_DEFINED__
-typedef interface IScriptingContext IScriptingContext;
+typedef struct IScriptingContext IScriptingContext;
 #endif
 
 #ifndef __ScriptingContext_FWD_DEFINED__
@@ -163,7 +163,7 @@
       HRESULT (WINAPI *get__NewEnum)(IStringList *This,IUnknown **ppEnumReturn);
     END_INTERFACE
   } IStringListVtbl;
-  interface IStringList {
+  struct IStringList {
     CONST_VTBL struct IStringListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -214,7 +214,7 @@
       HRESULT (WINAPI *get_Key)(IRequestDictionary *This,VARIANT VarKey,VARIANT *pvar);
     END_INTERFACE
   } IRequestDictionaryVtbl;
-  interface IRequestDictionary {
+  struct IRequestDictionary {
     CONST_VTBL struct IRequestDictionaryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -278,7 +278,7 @@
       HRESULT (WINAPI *BinaryRead)(IRequest *This,VARIANT *pvarCountToRead,VARIANT *pvarReturn);
     END_INTERFACE
   } IRequestVtbl;
-  interface IRequest {
+  struct IRequest {
     CONST_VTBL struct IRequestVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -354,7 +354,7 @@
       HRESULT (WINAPI *get_Key)(IReadCookie *This,VARIANT VarKey,VARIANT *pvar);
     END_INTERFACE
   } IReadCookieVtbl;
-  interface IReadCookie {
+  struct IReadCookie {
     CONST_VTBL struct IReadCookieVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -417,7 +417,7 @@
       HRESULT (WINAPI *get__NewEnum)(IWriteCookie *This,IUnknown **ppEnumReturn);
     END_INTERFACE
   } IWriteCookieVtbl;
-  interface IWriteCookie {
+  struct IWriteCookie {
     CONST_VTBL struct IWriteCookieVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -526,7 +526,7 @@
       HRESULT (WINAPI *put_CacheControl)(IResponse *This,BSTR bstrCacheControl);
     END_INTERFACE
   } IResponseVtbl;
-  interface IResponse {
+  struct IResponse {
     CONST_VTBL struct IResponseVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -662,7 +662,7 @@
       HRESULT (WINAPI *RemoveAll)(IVariantDictionary *This);
     END_INTERFACE
   } IVariantDictionaryVtbl;
-  interface IVariantDictionary {
+  struct IVariantDictionary {
     CONST_VTBL struct IVariantDictionaryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -746,7 +746,7 @@
       HRESULT (WINAPI *get_Contents)(ISessionObject *This,IVariantDictionary **ppProperties);
     END_INTERFACE
   } ISessionObjectVtbl;
-  interface ISessionObject {
+  struct ISessionObject {
     CONST_VTBL struct ISessionObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -838,7 +838,7 @@
       HRESULT (WINAPI *get_Contents)(IApplicationObject *This,IVariantDictionary **ppProperties);
     END_INTERFACE
   } IApplicationObjectVtbl;
-  interface IApplicationObject {
+  struct IApplicationObject {
     CONST_VTBL struct IApplicationObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -916,7 +916,7 @@
       HRESULT (WINAPI *get_Source)(IASPError *This,BSTR *pbstrLineText);
     END_INTERFACE
   } IASPErrorVtbl;
-  interface IASPError {
+  struct IASPError {
     CONST_VTBL struct IASPErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -997,7 +997,7 @@
       HRESULT (WINAPI *GetLastError)(IServer *This,IASPError **ppASPErrorObject);
     END_INTERFACE
   } IServerVtbl;
-  interface IServer {
+  struct IServer {
     CONST_VTBL struct IServerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1076,7 +1076,7 @@
       HRESULT (WINAPI *get_Application)(IScriptingContext *This,IApplicationObject **ppApplication);
     END_INTERFACE
   } IScriptingContextVtbl;
-  interface IScriptingContext {
+  struct IScriptingContext {
     CONST_VTBL struct IScriptingContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/azroles.h b/mingw-w64-headers/include/azroles.h
index 900254c..db6f30d 100755
--- a/mingw-w64-headers/include/azroles.h
+++ b/mingw-w64-headers/include/azroles.h
@@ -24,92 +24,92 @@
 
 #ifndef __IAzAuthorizationStore_FWD_DEFINED__
 #define __IAzAuthorizationStore_FWD_DEFINED__
-typedef interface IAzAuthorizationStore IAzAuthorizationStore;
+typedef struct IAzAuthorizationStore IAzAuthorizationStore;
 #endif
 
 #ifndef __IAzAuthorizationStore2_FWD_DEFINED__
 #define __IAzAuthorizationStore2_FWD_DEFINED__
-typedef interface IAzAuthorizationStore2 IAzAuthorizationStore2;
+typedef struct IAzAuthorizationStore2 IAzAuthorizationStore2;
 #endif
 
 #ifndef __IAzApplication_FWD_DEFINED__
 #define __IAzApplication_FWD_DEFINED__
-typedef interface IAzApplication IAzApplication;
+typedef struct IAzApplication IAzApplication;
 #endif
 
 #ifndef __IAzApplication2_FWD_DEFINED__
 #define __IAzApplication2_FWD_DEFINED__
-typedef interface IAzApplication2 IAzApplication2;
+typedef struct IAzApplication2 IAzApplication2;
 #endif
 
 #ifndef __IAzApplications_FWD_DEFINED__
 #define __IAzApplications_FWD_DEFINED__
-typedef interface IAzApplications IAzApplications;
+typedef struct IAzApplications IAzApplications;
 #endif
 
 #ifndef __IAzOperation_FWD_DEFINED__
 #define __IAzOperation_FWD_DEFINED__
-typedef interface IAzOperation IAzOperation;
+typedef struct IAzOperation IAzOperation;
 #endif
 
 #ifndef __IAzOperations_FWD_DEFINED__
 #define __IAzOperations_FWD_DEFINED__
-typedef interface IAzOperations IAzOperations;
+typedef struct IAzOperations IAzOperations;
 #endif
 
 #ifndef __IAzTask_FWD_DEFINED__
 #define __IAzTask_FWD_DEFINED__
-typedef interface IAzTask IAzTask;
+typedef struct IAzTask IAzTask;
 #endif
 
 #ifndef __IAzTasks_FWD_DEFINED__
 #define __IAzTasks_FWD_DEFINED__
-typedef interface IAzTasks IAzTasks;
+typedef struct IAzTasks IAzTasks;
 #endif
 
 #ifndef __IAzScope_FWD_DEFINED__
 #define __IAzScope_FWD_DEFINED__
-typedef interface IAzScope IAzScope;
+typedef struct IAzScope IAzScope;
 #endif
 
 #ifndef __IAzScopes_FWD_DEFINED__
 #define __IAzScopes_FWD_DEFINED__
-typedef interface IAzScopes IAzScopes;
+typedef struct IAzScopes IAzScopes;
 #endif
 
 #ifndef __IAzApplicationGroup_FWD_DEFINED__
 #define __IAzApplicationGroup_FWD_DEFINED__
-typedef interface IAzApplicationGroup IAzApplicationGroup;
+typedef struct IAzApplicationGroup IAzApplicationGroup;
 #endif
 
 #ifndef __IAzApplicationGroups_FWD_DEFINED__
 #define __IAzApplicationGroups_FWD_DEFINED__
-typedef interface IAzApplicationGroups IAzApplicationGroups;
+typedef struct IAzApplicationGroups IAzApplicationGroups;
 #endif
 
 #ifndef __IAzRole_FWD_DEFINED__
 #define __IAzRole_FWD_DEFINED__
-typedef interface IAzRole IAzRole;
+typedef struct IAzRole IAzRole;
 #endif
 
 #ifndef __IAzRoles_FWD_DEFINED__
 #define __IAzRoles_FWD_DEFINED__
-typedef interface IAzRoles IAzRoles;
+typedef struct IAzRoles IAzRoles;
 #endif
 
 #ifndef __IAzClientContext_FWD_DEFINED__
 #define __IAzClientContext_FWD_DEFINED__
-typedef interface IAzClientContext IAzClientContext;
+typedef struct IAzClientContext IAzClientContext;
 #endif
 
 #ifndef __IAzClientContext2_FWD_DEFINED__
 #define __IAzClientContext2_FWD_DEFINED__
-typedef interface IAzClientContext2 IAzClientContext2;
+typedef struct IAzClientContext2 IAzClientContext2;
 #endif
 
 #ifndef __IAzBizRuleContext_FWD_DEFINED__
 #define __IAzBizRuleContext_FWD_DEFINED__
-typedef interface IAzBizRuleContext IAzBizRuleContext;
+typedef struct IAzBizRuleContext IAzBizRuleContext;
 #endif
 
 #ifndef __AzAuthorizationStore_FWD_DEFINED__
@@ -270,7 +270,7 @@
       HRESULT (WINAPI *CloseApplication)(IAzAuthorizationStore *This,BSTR bstrApplicationName,LONG lFlag);
     END_INTERFACE
   } IAzAuthorizationStoreVtbl;
-  interface IAzAuthorizationStore {
+  struct IAzAuthorizationStore {
     CONST_VTBL struct IAzAuthorizationStoreVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -512,7 +512,7 @@
       HRESULT (WINAPI *CreateApplication2)(IAzAuthorizationStore2 *This,BSTR bstrApplicationName,VARIANT varReserved,IAzApplication2 **ppApplication);
     END_INTERFACE
   } IAzAuthorizationStore2Vtbl;
-  interface IAzAuthorizationStore2 {
+  struct IAzAuthorizationStore2 {
     CONST_VTBL struct IAzAuthorizationStore2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -725,7 +725,7 @@
       HRESULT (WINAPI *DeleteDelegatedPolicyUserName)(IAzApplication *This,BSTR bstrDelegatedPolicyUser,VARIANT varReserved);
     END_INTERFACE
   } IAzApplicationVtbl;
-  interface IAzApplication {
+  struct IAzApplication {
     CONST_VTBL struct IAzApplicationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1007,7 +1007,7 @@
       HRESULT (WINAPI *InitializeClientContext2)(IAzApplication2 *This,BSTR IdentifyingString,VARIANT varReserved,IAzClientContext2 **ppClientContext);
     END_INTERFACE
   } IAzApplication2Vtbl;
-  interface IAzApplication2 {
+  struct IAzApplication2 {
     CONST_VTBL struct IAzApplication2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1114,7 +1114,7 @@
       HRESULT (WINAPI *get__NewEnum)(IAzApplications *This,LPUNKNOWN *ppEnumPtr);
     END_INTERFACE
   } IAzApplicationsVtbl;
-  interface IAzApplications {
+  struct IAzApplications {
     CONST_VTBL struct IAzApplicationsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1181,7 +1181,7 @@
       HRESULT (WINAPI *Submit)(IAzOperation *This,LONG lFlags,VARIANT varReserved);
     END_INTERFACE
   } IAzOperationVtbl;
-  interface IAzOperation {
+  struct IAzOperation {
     CONST_VTBL struct IAzOperationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1257,7 +1257,7 @@
       HRESULT (WINAPI *get__NewEnum)(IAzOperations *This,LPUNKNOWN *ppEnumPtr);
     END_INTERFACE
   } IAzOperationsVtbl;
-  interface IAzOperations {
+  struct IAzOperations {
     CONST_VTBL struct IAzOperationsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1352,7 +1352,7 @@
       HRESULT (WINAPI *Submit)(IAzTask *This,LONG lFlags,VARIANT varReserved);
     END_INTERFACE
   } IAzTaskVtbl;
-  interface IAzTask {
+  struct IAzTask {
     CONST_VTBL struct IAzTaskVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1470,7 +1470,7 @@
       HRESULT (WINAPI *get__NewEnum)(IAzTasks *This,LPUNKNOWN *ppEnumPtr);
     END_INTERFACE
   } IAzTasksVtbl;
-  interface IAzTasks {
+  struct IAzTasks {
     CONST_VTBL struct IAzTasksVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1589,7 +1589,7 @@
       HRESULT (WINAPI *DeletePolicyReaderName)(IAzScope *This,BSTR bstrReader,VARIANT varReserved);
     END_INTERFACE
   } IAzScopeVtbl;
-  interface IAzScope {
+  struct IAzScope {
     CONST_VTBL struct IAzScopeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1743,7 +1743,7 @@
       HRESULT (WINAPI *get__NewEnum)(IAzScopes *This,LPUNKNOWN *ppEnumPtr);
     END_INTERFACE
   } IAzScopesVtbl;
-  interface IAzScopes {
+  struct IAzScopes {
     CONST_VTBL struct IAzScopesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1850,7 +1850,7 @@
       HRESULT (WINAPI *get_NonMembersName)(IAzApplicationGroup *This,VARIANT *pvarProp);
     END_INTERFACE
   } IAzApplicationGroupVtbl;
-  interface IAzApplicationGroup {
+  struct IAzApplicationGroup {
     CONST_VTBL struct IAzApplicationGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1986,7 +1986,7 @@
       HRESULT (WINAPI *get__NewEnum)(IAzApplicationGroups *This,LPUNKNOWN *ppEnumPtr);
     END_INTERFACE
   } IAzApplicationGroupsVtbl;
-  interface IAzApplicationGroups {
+  struct IAzApplicationGroups {
     CONST_VTBL struct IAzApplicationGroupsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2083,7 +2083,7 @@
       HRESULT (WINAPI *get_MembersName)(IAzRole *This,VARIANT *pvarProp);
     END_INTERFACE
   } IAzRoleVtbl;
-  interface IAzRole {
+  struct IAzRole {
     CONST_VTBL struct IAzRoleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2204,7 +2204,7 @@
       HRESULT (WINAPI *get__NewEnum)(IAzRoles *This,LPUNKNOWN *ppEnumPtr);
     END_INTERFACE
   } IAzRolesVtbl;
-  interface IAzRoles {
+  struct IAzRoles {
     CONST_VTBL struct IAzRolesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2273,7 +2273,7 @@
       HRESULT (WINAPI *put_RoleForAccessCheck)(IAzClientContext *This,BSTR bstrProp);
     END_INTERFACE
   } IAzClientContextVtbl;
-  interface IAzClientContext {
+  struct IAzClientContext {
     CONST_VTBL struct IAzClientContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2371,7 +2371,7 @@
       HRESULT (WINAPI *get_LDAPQueryDN)(IAzClientContext2 *This,BSTR *pbstrLDAPQueryDN);
     END_INTERFACE
   } IAzClientContext2Vtbl;
-  interface IAzClientContext2 {
+  struct IAzClientContext2 {
     CONST_VTBL struct IAzClientContext2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2444,7 +2444,7 @@
       HRESULT (WINAPI *GetParameter)(IAzBizRuleContext *This,BSTR bstrParameterName,VARIANT *pvarParameterValue);
     END_INTERFACE
   } IAzBizRuleContextVtbl;
-  interface IAzBizRuleContext {
+  struct IAzBizRuleContext {
     CONST_VTBL struct IAzBizRuleContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/basetyps.h b/mingw-w64-headers/include/basetyps.h
index 45737f9..376665e 100755
--- a/mingw-w64-headers/include/basetyps.h
+++ b/mingw-w64-headers/include/basetyps.h
@@ -33,7 +33,6 @@
 #if defined(__cplusplus) && !defined(CINTERFACE)
 
 #define __STRUCT__ struct
-#define interface __STRUCT__
 #define STDMETHOD(method) virtual HRESULT WINAPI method
 #define STDMETHOD_(type,method) virtual type WINAPI method
 #define STDMETHODV(method) virtual HRESULT STDMETHODVCALLTYPE method
@@ -41,11 +40,13 @@
 #define PURE = 0
 #define THIS_
 #define THIS void
-#define DECLARE_INTERFACE(iface) interface iface
-#define DECLARE_INTERFACE_(iface,baseiface) interface iface : public baseiface
+#define DECLARE_INTERFACE(iface) __STRUCT__ iface
+#define DECLARE_INTERFACE_(iface,baseiface) __STRUCT__ iface : public baseiface
 #else
 
+#ifndef __OBJC__
 #define interface struct
+#endif
 
 #define STDMETHOD(method) HRESULT (WINAPI *method)
 #define STDMETHOD_(type,method) type (WINAPI *method)
@@ -56,12 +57,12 @@
 #define THIS_ INTERFACE *This,
 #define THIS INTERFACE *This
 #ifdef CONST_VTABLE
-#define DECLARE_INTERFACE(iface) typedef interface iface { \
+#define DECLARE_INTERFACE(iface) typedef struct iface { \
   const struct iface##Vtbl *lpVtbl; } iface; \
   typedef const struct iface##Vtbl iface##Vtbl; \
   const struct iface##Vtbl
 #else
-#define DECLARE_INTERFACE(iface) typedef interface iface { \
+#define DECLARE_INTERFACE(iface) typedef struct iface { \
     struct iface##Vtbl *lpVtbl; \
   } iface; \
   typedef struct iface##Vtbl iface##Vtbl; \
diff --git a/mingw-w64-headers/include/bidispl.h b/mingw-w64-headers/include/bidispl.h
index 7236898..a0f977b 100755
--- a/mingw-w64-headers/include/bidispl.h
+++ b/mingw-w64-headers/include/bidispl.h
@@ -24,17 +24,17 @@
 
 #ifndef __IBidiRequest_FWD_DEFINED__
 #define __IBidiRequest_FWD_DEFINED__
-typedef interface IBidiRequest IBidiRequest;
+typedef struct IBidiRequest IBidiRequest;
 #endif
 
 #ifndef __IBidiRequestContainer_FWD_DEFINED__
 #define __IBidiRequestContainer_FWD_DEFINED__
-typedef interface IBidiRequestContainer IBidiRequestContainer;
+typedef struct IBidiRequestContainer IBidiRequestContainer;
 #endif
 
 #ifndef __IBidiSpl_FWD_DEFINED__
 #define __IBidiSpl_FWD_DEFINED__
-typedef interface IBidiSpl IBidiSpl;
+typedef struct IBidiSpl IBidiSpl;
 #endif
 
 #ifndef __BidiRequest_FWD_DEFINED__
@@ -98,7 +98,7 @@
       HRESULT (WINAPI *GetEnumCount)(IBidiRequest *This,DWORD *pdwTotal);
     END_INTERFACE
   } IBidiRequestVtbl;
-  interface IBidiRequest {
+  struct IBidiRequest {
     CONST_VTBL struct IBidiRequestVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -145,7 +145,7 @@
       HRESULT (WINAPI *GetRequestCount)(IBidiRequestContainer *This,ULONG *puCount);
     END_INTERFACE
   } IBidiRequestContainerVtbl;
-  interface IBidiRequestContainer {
+  struct IBidiRequestContainer {
     CONST_VTBL struct IBidiRequestContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -188,7 +188,7 @@
       HRESULT (WINAPI *MultiSendRecv)(IBidiSpl *This,const LPCWSTR pszAction,IBidiRequestContainer *pRequestContainer);
     END_INTERFACE
   } IBidiSplVtbl;
-  interface IBidiSpl {
+  struct IBidiSpl {
     CONST_VTBL struct IBidiSplVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/bits.h b/mingw-w64-headers/include/bits.h
index c357cb8..b41fce3 100755
--- a/mingw-w64-headers/include/bits.h
+++ b/mingw-w64-headers/include/bits.h
@@ -24,42 +24,42 @@
 
 #ifndef __IBackgroundCopyFile_FWD_DEFINED__
 #define __IBackgroundCopyFile_FWD_DEFINED__
-typedef interface IBackgroundCopyFile IBackgroundCopyFile;
+typedef struct IBackgroundCopyFile IBackgroundCopyFile;
 #endif
 
 #ifndef __IEnumBackgroundCopyFiles_FWD_DEFINED__
 #define __IEnumBackgroundCopyFiles_FWD_DEFINED__
-typedef interface IEnumBackgroundCopyFiles IEnumBackgroundCopyFiles;
+typedef struct IEnumBackgroundCopyFiles IEnumBackgroundCopyFiles;
 #endif
 
 #ifndef __IBackgroundCopyError_FWD_DEFINED__
 #define __IBackgroundCopyError_FWD_DEFINED__
-typedef interface IBackgroundCopyError IBackgroundCopyError;
+typedef struct IBackgroundCopyError IBackgroundCopyError;
 #endif
 
 #ifndef __IBackgroundCopyJob_FWD_DEFINED__
 #define __IBackgroundCopyJob_FWD_DEFINED__
-typedef interface IBackgroundCopyJob IBackgroundCopyJob;
+typedef struct IBackgroundCopyJob IBackgroundCopyJob;
 #endif
 
 #ifndef __IEnumBackgroundCopyJobs_FWD_DEFINED__
 #define __IEnumBackgroundCopyJobs_FWD_DEFINED__
-typedef interface IEnumBackgroundCopyJobs IEnumBackgroundCopyJobs;
+typedef struct IEnumBackgroundCopyJobs IEnumBackgroundCopyJobs;
 #endif
 
 #ifndef __IBackgroundCopyCallback_FWD_DEFINED__
 #define __IBackgroundCopyCallback_FWD_DEFINED__
-typedef interface IBackgroundCopyCallback IBackgroundCopyCallback;
+typedef struct IBackgroundCopyCallback IBackgroundCopyCallback;
 #endif
 
 #ifndef __AsyncIBackgroundCopyCallback_FWD_DEFINED__
 #define __AsyncIBackgroundCopyCallback_FWD_DEFINED__
-typedef interface AsyncIBackgroundCopyCallback AsyncIBackgroundCopyCallback;
+typedef struct AsyncIBackgroundCopyCallback AsyncIBackgroundCopyCallback;
 #endif
 
 #ifndef __IBackgroundCopyManager_FWD_DEFINED__
 #define __IBackgroundCopyManager_FWD_DEFINED__
-typedef interface IBackgroundCopyManager IBackgroundCopyManager;
+typedef struct IBackgroundCopyManager IBackgroundCopyManager;
 #endif
 
 #ifndef __BackgroundCopyManager_FWD_DEFINED__
@@ -74,7 +74,7 @@
 
 #ifndef __IBackgroundCopyCallback_FWD_DEFINED__
 #define __IBackgroundCopyCallback_FWD_DEFINED__
-typedef interface IBackgroundCopyCallback IBackgroundCopyCallback;
+typedef struct IBackgroundCopyCallback IBackgroundCopyCallback;
 #endif
 
 #include "unknwn.h"
@@ -120,7 +120,7 @@
       HRESULT (WINAPI *GetProgress)(IBackgroundCopyFile *This,BG_FILE_PROGRESS *pVal);
     END_INTERFACE
   } IBackgroundCopyFileVtbl;
-  interface IBackgroundCopyFile {
+  struct IBackgroundCopyFile {
     CONST_VTBL struct IBackgroundCopyFileVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -165,7 +165,7 @@
       HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyFiles *This,ULONG *puCount);
     END_INTERFACE
   } IEnumBackgroundCopyFilesVtbl;
-  interface IEnumBackgroundCopyFiles {
+  struct IEnumBackgroundCopyFiles {
     CONST_VTBL struct IEnumBackgroundCopyFilesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -221,7 +221,7 @@
       HRESULT (WINAPI *GetProtocol)(IBackgroundCopyError *This,LPWSTR *pProtocol);
     END_INTERFACE
   } IBackgroundCopyErrorVtbl;
-  interface IBackgroundCopyError {
+  struct IBackgroundCopyError {
     CONST_VTBL struct IBackgroundCopyErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -365,7 +365,7 @@
       HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob *This);
     END_INTERFACE
   } IBackgroundCopyJobVtbl;
-  interface IBackgroundCopyJob {
+  struct IBackgroundCopyJob {
     CONST_VTBL struct IBackgroundCopyJobVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -497,7 +497,7 @@
       HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyJobs *This,ULONG *puCount);
     END_INTERFACE
   } IEnumBackgroundCopyJobsVtbl;
-  interface IEnumBackgroundCopyJobs {
+  struct IEnumBackgroundCopyJobs {
     CONST_VTBL struct IEnumBackgroundCopyJobsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -552,7 +552,7 @@
       HRESULT (WINAPI *JobModification)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
     END_INTERFACE
   } IBackgroundCopyCallbackVtbl;
-  interface IBackgroundCopyCallback {
+  struct IBackgroundCopyCallback {
     CONST_VTBL struct IBackgroundCopyCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -599,7 +599,7 @@
       HRESULT (WINAPI *Finish_JobModification)(AsyncIBackgroundCopyCallback *This);
     END_INTERFACE
   } AsyncIBackgroundCopyCallbackVtbl;
-  interface AsyncIBackgroundCopyCallback {
+  struct AsyncIBackgroundCopyCallback {
     CONST_VTBL struct AsyncIBackgroundCopyCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -654,7 +654,7 @@
       HRESULT (WINAPI *GetErrorDescription)(IBackgroundCopyManager *This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription);
     END_INTERFACE
   } IBackgroundCopyManagerVtbl;
-  interface IBackgroundCopyManager {
+  struct IBackgroundCopyManager {
     CONST_VTBL struct IBackgroundCopyManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/bits1_5.h b/mingw-w64-headers/include/bits1_5.h
index ea3bc20..b26db0d 100755
--- a/mingw-w64-headers/include/bits1_5.h
+++ b/mingw-w64-headers/include/bits1_5.h
@@ -24,7 +24,7 @@
 
 #ifndef __IBackgroundCopyJob2_FWD_DEFINED__
 #define __IBackgroundCopyJob2_FWD_DEFINED__
-typedef interface IBackgroundCopyJob2 IBackgroundCopyJob2;
+typedef struct IBackgroundCopyJob2 IBackgroundCopyJob2;
 #endif
 
 #ifndef __BackgroundCopyManager1_5_FWD_DEFINED__
@@ -38,7 +38,7 @@
 
 #ifndef __IBackgroundCopyJob2_FWD_DEFINED__
 #define __IBackgroundCopyJob2_FWD_DEFINED__
-typedef interface IBackgroundCopyJob2 IBackgroundCopyJob2;
+typedef struct IBackgroundCopyJob2 IBackgroundCopyJob2;
 #endif
 
 #include "bits.h"
@@ -147,7 +147,7 @@
       HRESULT (WINAPI *RemoveCredentials)(IBackgroundCopyJob2 *This,BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme);
     END_INTERFACE
   } IBackgroundCopyJob2Vtbl;
-  interface IBackgroundCopyJob2 {
+  struct IBackgroundCopyJob2 {
     CONST_VTBL struct IBackgroundCopyJob2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/bits2_0.h b/mingw-w64-headers/include/bits2_0.h
index e95250c..977cfeb 100755
--- a/mingw-w64-headers/include/bits2_0.h
+++ b/mingw-w64-headers/include/bits2_0.h
@@ -23,12 +23,12 @@
 #define __bits2_0_h__
 #ifndef __IBackgroundCopyJob3_FWD_DEFINED__
 #define __IBackgroundCopyJob3_FWD_DEFINED__
-typedef interface IBackgroundCopyJob3 IBackgroundCopyJob3;
+typedef struct IBackgroundCopyJob3 IBackgroundCopyJob3;
 #endif
 
 #ifndef __IBackgroundCopyFile2_FWD_DEFINED__
 #define __IBackgroundCopyFile2_FWD_DEFINED__
-typedef interface IBackgroundCopyFile2 IBackgroundCopyFile2;
+typedef struct IBackgroundCopyFile2 IBackgroundCopyFile2;
 #endif
 
 #ifndef __BackgroundCopyManager2_0_FWD_DEFINED__
@@ -42,7 +42,7 @@
 
 #ifndef __IBackgroundCopyJob3_FWD_DEFINED__
 #define __IBackgroundCopyJob3_FWD_DEFINED__
-typedef interface IBackgroundCopyJob3 IBackgroundCopyJob3;
+typedef struct IBackgroundCopyJob3 IBackgroundCopyJob3;
 #endif
 
 #include "bits.h"
@@ -133,7 +133,7 @@
       HRESULT (WINAPI *GetFileACLFlags)(IBackgroundCopyJob3 *This,DWORD *Flags);
     END_INTERFACE
   } IBackgroundCopyJob3Vtbl;
-  interface IBackgroundCopyJob3 {
+  struct IBackgroundCopyJob3 {
     CONST_VTBL struct IBackgroundCopyJob3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -218,7 +218,7 @@
       HRESULT (WINAPI *SetRemoteName)(IBackgroundCopyFile2 *This,LPCWSTR Val);
     END_INTERFACE
   } IBackgroundCopyFile2Vtbl;
-  interface IBackgroundCopyFile2 {
+  struct IBackgroundCopyFile2 {
     CONST_VTBL struct IBackgroundCopyFile2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/bitscfg.h b/mingw-w64-headers/include/bitscfg.h
index 574032c..56c1388 100755
--- a/mingw-w64-headers/include/bitscfg.h
+++ b/mingw-w64-headers/include/bitscfg.h
@@ -24,12 +24,12 @@
 
 #ifndef __IBITSExtensionSetup_FWD_DEFINED__
 #define __IBITSExtensionSetup_FWD_DEFINED__
-typedef interface IBITSExtensionSetup IBITSExtensionSetup;
+typedef struct IBITSExtensionSetup IBITSExtensionSetup;
 #endif
 
 #ifndef __IBITSExtensionSetupFactory_FWD_DEFINED__
 #define __IBITSExtensionSetupFactory_FWD_DEFINED__
-typedef interface IBITSExtensionSetupFactory IBITSExtensionSetupFactory;
+typedef struct IBITSExtensionSetupFactory IBITSExtensionSetupFactory;
 #endif
 
 #ifndef __BITSExtensionSetupFactory_FWD_DEFINED__
@@ -80,7 +80,7 @@
       HRESULT (WINAPI *GetCleanupTask)(IBITSExtensionSetup *This,REFIID riid,IUnknown **ppUnk);
     END_INTERFACE
   } IBITSExtensionSetupVtbl;
-  interface IBITSExtensionSetup {
+  struct IBITSExtensionSetup {
     CONST_VTBL struct IBITSExtensionSetupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -128,7 +128,7 @@
       HRESULT (WINAPI *GetObject)(IBITSExtensionSetupFactory *This,BSTR Path,IBITSExtensionSetup **ppExtensionSetup);
     END_INTERFACE
   } IBITSExtensionSetupFactoryVtbl;
-  interface IBITSExtensionSetupFactory {
+  struct IBITSExtensionSetupFactory {
     CONST_VTBL struct IBITSExtensionSetupFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/callobj.h b/mingw-w64-headers/include/callobj.h
index 09e27af..b8c33c0 100755
--- a/mingw-w64-headers/include/callobj.h
+++ b/mingw-w64-headers/include/callobj.h
@@ -24,37 +24,37 @@
 
 #ifndef __ICallFrame_FWD_DEFINED__
 #define __ICallFrame_FWD_DEFINED__
-typedef interface ICallFrame ICallFrame;
+typedef struct ICallFrame ICallFrame;
 #endif
 
 #ifndef __ICallIndirect_FWD_DEFINED__
 #define __ICallIndirect_FWD_DEFINED__
-typedef interface ICallIndirect ICallIndirect;
+typedef struct ICallIndirect ICallIndirect;
 #endif
 
 #ifndef __ICallInterceptor_FWD_DEFINED__
 #define __ICallInterceptor_FWD_DEFINED__
-typedef interface ICallInterceptor ICallInterceptor;
+typedef struct ICallInterceptor ICallInterceptor;
 #endif
 
 #ifndef __ICallFrameEvents_FWD_DEFINED__
 #define __ICallFrameEvents_FWD_DEFINED__
-typedef interface ICallFrameEvents ICallFrameEvents;
+typedef struct ICallFrameEvents ICallFrameEvents;
 #endif
 
 #ifndef __ICallUnmarshal_FWD_DEFINED__
 #define __ICallUnmarshal_FWD_DEFINED__
-typedef interface ICallUnmarshal ICallUnmarshal;
+typedef struct ICallUnmarshal ICallUnmarshal;
 #endif
 
 #ifndef __ICallFrameWalker_FWD_DEFINED__
 #define __ICallFrameWalker_FWD_DEFINED__
-typedef interface ICallFrameWalker ICallFrameWalker;
+typedef struct ICallFrameWalker ICallFrameWalker;
 #endif
 
 #ifndef __IInterfaceRelated_FWD_DEFINED__
 #define __IInterfaceRelated_FWD_DEFINED__
-typedef interface IInterfaceRelated IInterfaceRelated;
+typedef struct IInterfaceRelated IInterfaceRelated;
 #endif
 
 #include "oaidl.h"
@@ -170,7 +170,7 @@
       HRESULT (WINAPI *Invoke)(ICallFrame *This,void *pvReceiver,...);
     END_INTERFACE
   } ICallFrameVtbl;
-  interface ICallFrame {
+  struct ICallFrame {
     CONST_VTBL struct ICallFrameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -261,7 +261,7 @@
       HRESULT (WINAPI *GetIID)(ICallIndirect *This,IID *piid,WINBOOL *pfDerivesFromIDispatch,ULONG *pcMethod,LPWSTR *pwszInterface);
     END_INTERFACE
   } ICallIndirectVtbl;
-  interface ICallIndirect {
+  struct ICallIndirect {
     CONST_VTBL struct ICallIndirectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -307,7 +307,7 @@
       HRESULT (WINAPI *GetRegisteredSink)(ICallInterceptor *This,ICallFrameEvents **ppsink);
     END_INTERFACE
   } ICallInterceptorVtbl;
-  interface ICallInterceptor {
+  struct ICallInterceptor {
     CONST_VTBL struct ICallInterceptorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -345,7 +345,7 @@
       HRESULT (WINAPI *OnCall)(ICallFrameEvents *This,ICallFrame *pFrame);
     END_INTERFACE
   } ICallFrameEventsVtbl;
-  interface ICallFrameEvents {
+  struct ICallFrameEvents {
     CONST_VTBL struct ICallFrameEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -378,7 +378,7 @@
       HRESULT (WINAPI *ReleaseMarshalData)(ICallUnmarshal *This,ULONG iMethod,PVOID pBuffer,ULONG cbBuffer,ULONG ibFirstRelease,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext);
     END_INTERFACE
   } ICallUnmarshalVtbl;
-  interface ICallUnmarshal {
+  struct ICallUnmarshal {
     CONST_VTBL struct ICallUnmarshalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -412,7 +412,7 @@
       HRESULT (WINAPI *OnWalkInterface)(ICallFrameWalker *This,REFIID iid,PVOID *ppvInterface,WINBOOL fIn,WINBOOL fOut);
     END_INTERFACE
   } ICallFrameWalkerVtbl;
-  interface ICallFrameWalker {
+  struct ICallFrameWalker {
     CONST_VTBL struct ICallFrameWalkerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -445,7 +445,7 @@
       HRESULT (WINAPI *GetIID)(IInterfaceRelated *This,IID *piid);
     END_INTERFACE
   } IInterfaceRelatedVtbl;
-  interface IInterfaceRelated {
+  struct IInterfaceRelated {
     CONST_VTBL struct IInterfaceRelatedVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/cdoex.h b/mingw-w64-headers/include/cdoex.h
index 6f75a07..ded508a 100755
--- a/mingw-w64-headers/include/cdoex.h
+++ b/mingw-w64-headers/include/cdoex.h
@@ -30,192 +30,192 @@
 
 #ifndef __IDataSource_FWD_DEFINED__
 #define __IDataSource_FWD_DEFINED__
-typedef interface IDataSource IDataSource;
+typedef struct IDataSource IDataSource;
 #endif
 
 #ifndef __IMessage_FWD_DEFINED__
 #define __IMessage_FWD_DEFINED__
-typedef interface IMessage IMessage;
+typedef struct IMessage IMessage;
 #endif
 
 #ifndef __IBodyPart_FWD_DEFINED__
 #define __IBodyPart_FWD_DEFINED__
-typedef interface IBodyPart IBodyPart;
+typedef struct IBodyPart IBodyPart;
 #endif
 
 #ifndef __IConfiguration_FWD_DEFINED__
 #define __IConfiguration_FWD_DEFINED__
-typedef interface IConfiguration IConfiguration;
+typedef struct IConfiguration IConfiguration;
 #endif
 
 #ifndef __IMessages_FWD_DEFINED__
 #define __IMessages_FWD_DEFINED__
-typedef interface IMessages IMessages;
+typedef struct IMessages IMessages;
 #endif
 
 #ifndef __IDropDirectory_FWD_DEFINED__
 #define __IDropDirectory_FWD_DEFINED__
-typedef interface IDropDirectory IDropDirectory;
+typedef struct IDropDirectory IDropDirectory;
 #endif
 
 #ifndef __IBodyParts_FWD_DEFINED__
 #define __IBodyParts_FWD_DEFINED__
-typedef interface IBodyParts IBodyParts;
+typedef struct IBodyParts IBodyParts;
 #endif
 
 #ifndef __ISMTPScriptConnector_FWD_DEFINED__
 #define __ISMTPScriptConnector_FWD_DEFINED__
-typedef interface ISMTPScriptConnector ISMTPScriptConnector;
+typedef struct ISMTPScriptConnector ISMTPScriptConnector;
 #endif
 
 #ifndef __INNTPEarlyScriptConnector_FWD_DEFINED__
 #define __INNTPEarlyScriptConnector_FWD_DEFINED__
-typedef interface INNTPEarlyScriptConnector INNTPEarlyScriptConnector;
+typedef struct INNTPEarlyScriptConnector INNTPEarlyScriptConnector;
 #endif
 
 #ifndef __INNTPPostScriptConnector_FWD_DEFINED__
 #define __INNTPPostScriptConnector_FWD_DEFINED__
-typedef interface INNTPPostScriptConnector INNTPPostScriptConnector;
+typedef struct INNTPPostScriptConnector INNTPPostScriptConnector;
 #endif
 
 #ifndef __INNTPFinalScriptConnector_FWD_DEFINED__
 #define __INNTPFinalScriptConnector_FWD_DEFINED__
-typedef interface INNTPFinalScriptConnector INNTPFinalScriptConnector;
+typedef struct INNTPFinalScriptConnector INNTPFinalScriptConnector;
 #endif
 
 #ifndef __ISMTPOnArrival_FWD_DEFINED__
 #define __ISMTPOnArrival_FWD_DEFINED__
-typedef interface ISMTPOnArrival ISMTPOnArrival;
+typedef struct ISMTPOnArrival ISMTPOnArrival;
 #endif
 
 #ifndef __INNTPOnPostEarly_FWD_DEFINED__
 #define __INNTPOnPostEarly_FWD_DEFINED__
-typedef interface INNTPOnPostEarly INNTPOnPostEarly;
+typedef struct INNTPOnPostEarly INNTPOnPostEarly;
 #endif
 
 #ifndef __INNTPOnPost_FWD_DEFINED__
 #define __INNTPOnPost_FWD_DEFINED__
-typedef interface INNTPOnPost INNTPOnPost;
+typedef struct INNTPOnPost INNTPOnPost;
 #endif
 
 #ifndef __INNTPOnPostFinal_FWD_DEFINED__
 #define __INNTPOnPostFinal_FWD_DEFINED__
-typedef interface INNTPOnPostFinal INNTPOnPostFinal;
+typedef struct INNTPOnPostFinal INNTPOnPostFinal;
 #endif
 
 #ifndef __IProxyObject_FWD_DEFINED__
 #define __IProxyObject_FWD_DEFINED__
-typedef interface IProxyObject IProxyObject;
+typedef struct IProxyObject IProxyObject;
 #endif
 
 #ifndef __IItem_FWD_DEFINED__
 #define __IItem_FWD_DEFINED__
-typedef interface IItem IItem;
+typedef struct IItem IItem;
 #endif
 
 #ifndef __IAppointment_FWD_DEFINED__
 #define __IAppointment_FWD_DEFINED__
-typedef interface IAppointment IAppointment;
+typedef struct IAppointment IAppointment;
 #endif
 
 #ifndef __ICalendarMessage_FWD_DEFINED__
 #define __ICalendarMessage_FWD_DEFINED__
-typedef interface ICalendarMessage ICalendarMessage;
+typedef struct ICalendarMessage ICalendarMessage;
 #endif
 
 #ifndef __IIntegers_FWD_DEFINED__
 #define __IIntegers_FWD_DEFINED__
-typedef interface IIntegers IIntegers;
+typedef struct IIntegers IIntegers;
 #endif
 
 #ifndef __IVariants_FWD_DEFINED__
 #define __IVariants_FWD_DEFINED__
-typedef interface IVariants IVariants;
+typedef struct IVariants IVariants;
 #endif
 
 #ifndef __IRecurrencePattern_FWD_DEFINED__
 #define __IRecurrencePattern_FWD_DEFINED__
-typedef interface IRecurrencePattern IRecurrencePattern;
+typedef struct IRecurrencePattern IRecurrencePattern;
 #endif
 
 #ifndef __IException_FWD_DEFINED__
 #define __IException_FWD_DEFINED__
-typedef interface IException IException;
+typedef struct IException IException;
 #endif
 
 #ifndef __IRecurrencePatterns_FWD_DEFINED__
 #define __IRecurrencePatterns_FWD_DEFINED__
-typedef interface IRecurrencePatterns IRecurrencePatterns;
+typedef struct IRecurrencePatterns IRecurrencePatterns;
 #endif
 
 #ifndef __IExceptions_FWD_DEFINED__
 #define __IExceptions_FWD_DEFINED__
-typedef interface IExceptions IExceptions;
+typedef struct IExceptions IExceptions;
 #endif
 
 #ifndef __ICalendarPart_FWD_DEFINED__
 #define __ICalendarPart_FWD_DEFINED__
-typedef interface ICalendarPart ICalendarPart;
+typedef struct ICalendarPart ICalendarPart;
 #endif
 
 #ifndef __ICalendarParts_FWD_DEFINED__
 #define __ICalendarParts_FWD_DEFINED__
-typedef interface ICalendarParts ICalendarParts;
+typedef struct ICalendarParts ICalendarParts;
 #endif
 
 #ifndef __IAttendee_FWD_DEFINED__
 #define __IAttendee_FWD_DEFINED__
-typedef interface IAttendee IAttendee;
+typedef struct IAttendee IAttendee;
 #endif
 
 #ifndef __IAttendees_FWD_DEFINED__
 #define __IAttendees_FWD_DEFINED__
-typedef interface IAttendees IAttendees;
+typedef struct IAttendees IAttendees;
 #endif
 
 #ifndef __IMailbox_FWD_DEFINED__
 #define __IMailbox_FWD_DEFINED__
-typedef interface IMailbox IMailbox;
+typedef struct IMailbox IMailbox;
 #endif
 
 #ifndef __IFolder_FWD_DEFINED__
 #define __IFolder_FWD_DEFINED__
-typedef interface IFolder IFolder;
+typedef struct IFolder IFolder;
 #endif
 
 #ifndef __IContactGroupMembers_FWD_DEFINED__
 #define __IContactGroupMembers_FWD_DEFINED__
-typedef interface IContactGroupMembers IContactGroupMembers;
+typedef struct IContactGroupMembers IContactGroupMembers;
 #endif
 
 #ifndef __IPerson_FWD_DEFINED__
 #define __IPerson_FWD_DEFINED__
-typedef interface IPerson IPerson;
+typedef struct IPerson IPerson;
 #endif
 
 #ifndef __IAddressee_FWD_DEFINED__
 #define __IAddressee_FWD_DEFINED__
-typedef interface IAddressee IAddressee;
+typedef struct IAddressee IAddressee;
 #endif
 
 #ifndef __IAddressees_FWD_DEFINED__
 #define __IAddressees_FWD_DEFINED__
-typedef interface IAddressees IAddressees;
+typedef struct IAddressees IAddressees;
 #endif
 
 #ifndef __IGetInterface_FWD_DEFINED__
 #define __IGetInterface_FWD_DEFINED__
-typedef interface IGetInterface IGetInterface;
+typedef struct IGetInterface IGetInterface;
 #endif
 
 #ifndef __IBodyParts_FWD_DEFINED__
 #define __IBodyParts_FWD_DEFINED__
-typedef interface IBodyParts IBodyParts;
+typedef struct IBodyParts IBodyParts;
 #endif
 
 #ifndef __IMessages_FWD_DEFINED__
 #define __IMessages_FWD_DEFINED__
-typedef interface IMessages IMessages;
+typedef struct IMessages IMessages;
 #endif
 
 #ifndef __Message_FWD_DEFINED__
@@ -348,21 +348,21 @@
 #include "oaidl.h"
 #include "ocidl.h"
 #ifndef __cplusplus
-typedef interface ADOError ADOError;
-typedef interface ADOErrors ADOErrors;
-typedef interface _ADOCommand _ADOCommand;
-typedef interface _ADOConnection _ADOConnection;
-typedef interface _ADORecord _ADORecord;
-typedef interface IRecADOFields IRecADOFields;
-typedef interface _ADOStream _ADOStream;
-typedef interface _ADORecordset _ADORecordset;
-typedef interface ADOField ADOField;
-typedef interface _ADOField _ADOField;
-typedef interface ADOFields ADOFields;
-typedef interface _ADOParameter _ADOParameter;
-typedef interface ADOParameters ADOParameters;
-typedef interface ADOProperty ADOProperty;
-typedef interface ADOProperties ADOProperties;
+typedef struct ADOError ADOError;
+typedef struct ADOErrors ADOErrors;
+typedef struct _ADOCommand _ADOCommand;
+typedef struct _ADOConnection _ADOConnection;
+typedef struct _ADORecord _ADORecord;
+typedef struct IRecADOFields IRecADOFields;
+typedef struct _ADOStream _ADOStream;
+typedef struct _ADORecordset _ADORecordset;
+typedef struct ADOField ADOField;
+typedef struct _ADOField _ADOField;
+typedef struct ADOFields ADOFields;
+typedef struct _ADOParameter _ADOParameter;
+typedef struct ADOParameters ADOParameters;
+typedef struct ADOProperty ADOProperty;
+typedef struct ADOProperties ADOProperties;
 #endif
 #include "adoint.h"
 
@@ -538,7 +538,7 @@
       HRESULT (WINAPI *SaveToContainer)(IDataSource *This,BSTR ContainerURL,IDispatch *ActiveConnection,ConnectModeEnum Mode,RecordCreateOptionsEnum CreateOptions,RecordOpenOptionsEnum Options,BSTR UserName,BSTR Password);
     END_INTERFACE
   } IDataSourceVtbl;
-  interface IDataSource {
+  struct IDataSource {
     CONST_VTBL struct IDataSourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -722,7 +722,7 @@
       HRESULT (WINAPI *GetInterface)(IMessage *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IMessageVtbl;
-  interface IMessage {
+  struct IMessage {
     CONST_VTBL struct IMessageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -971,7 +971,7 @@
       HRESULT (WINAPI *GetInterface)(IBodyPart *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IBodyPartVtbl;
-  interface IBodyPart {
+  struct IBodyPart {
     CONST_VTBL struct IBodyPartVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1077,7 +1077,7 @@
       HRESULT (WINAPI *GetInterface)(IConfiguration *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IConfigurationVtbl;
-  interface IConfiguration {
+  struct IConfiguration {
     CONST_VTBL struct IConfigurationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1132,7 +1132,7 @@
       HRESULT (WINAPI *get_Filename)(IMessages *This,VARIANT var,BSTR *Filename);
     END_INTERFACE
   } IMessagesVtbl;
-  interface IMessages {
+  struct IMessages {
     CONST_VTBL struct IMessagesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1186,7 +1186,7 @@
       HRESULT (WINAPI *GetMessages)(IDropDirectory *This,BSTR DirName,IMessages **Msgs);
     END_INTERFACE
   } IDropDirectoryVtbl;
-  interface IDropDirectory {
+  struct IDropDirectory {
     CONST_VTBL struct IDropDirectoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1235,7 +1235,7 @@
       HRESULT (WINAPI *Add)(IBodyParts *This,long Index,IBodyPart **ppPart);
     END_INTERFACE
   } IBodyPartsVtbl;
-  interface IBodyParts {
+  struct IBodyParts {
     CONST_VTBL struct IBodyPartsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1287,7 +1287,7 @@
       HRESULT (WINAPI *Invoke)(ISMTPScriptConnector *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } ISMTPScriptConnectorVtbl;
-  interface ISMTPScriptConnector {
+  struct ISMTPScriptConnector {
     CONST_VTBL struct ISMTPScriptConnectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1321,7 +1321,7 @@
       HRESULT (WINAPI *Invoke)(INNTPEarlyScriptConnector *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } INNTPEarlyScriptConnectorVtbl;
-  interface INNTPEarlyScriptConnector {
+  struct INNTPEarlyScriptConnector {
     CONST_VTBL struct INNTPEarlyScriptConnectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1354,7 +1354,7 @@
       HRESULT (WINAPI *Invoke)(INNTPPostScriptConnector *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } INNTPPostScriptConnectorVtbl;
-  interface INNTPPostScriptConnector {
+  struct INNTPPostScriptConnector {
     CONST_VTBL struct INNTPPostScriptConnectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1387,7 +1387,7 @@
       HRESULT (WINAPI *Invoke)(INNTPFinalScriptConnector *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } INNTPFinalScriptConnectorVtbl;
-  interface INNTPFinalScriptConnector {
+  struct INNTPFinalScriptConnector {
     CONST_VTBL struct INNTPFinalScriptConnectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1423,7 +1423,7 @@
       HRESULT (WINAPI *OnArrival)(ISMTPOnArrival *This,IMessage *Msg,CdoEventStatus *EventStatus);
     END_INTERFACE
   } ISMTPOnArrivalVtbl;
-  interface ISMTPOnArrival {
+  struct ISMTPOnArrival {
     CONST_VTBL struct ISMTPOnArrivalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1462,7 +1462,7 @@
       HRESULT (WINAPI *OnPostEarly)(INNTPOnPostEarly *This,IMessage *Msg,CdoEventStatus *EventStatus);
     END_INTERFACE
   } INNTPOnPostEarlyVtbl;
-  interface INNTPOnPostEarly {
+  struct INNTPOnPostEarly {
     CONST_VTBL struct INNTPOnPostEarlyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1501,7 +1501,7 @@
       HRESULT (WINAPI *OnPost)(INNTPOnPost *This,IMessage *Msg,CdoEventStatus *EventStatus);
     END_INTERFACE
   } INNTPOnPostVtbl;
-  interface INNTPOnPost {
+  struct INNTPOnPost {
     CONST_VTBL struct INNTPOnPostVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1541,7 +1541,7 @@
       HRESULT (WINAPI *OnPostFinal)(INNTPOnPostFinal *This,IMessage *Msg,CdoEventStatus *EventStatus);
     END_INTERFACE
   } INNTPOnPostFinalVtbl;
-  interface INNTPOnPostFinal {
+  struct INNTPOnPostFinal {
     CONST_VTBL struct INNTPOnPostFinalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1576,7 +1576,7 @@
       HRESULT (WINAPI *get_Object)(IProxyObject *This,IUnknown **ppParent);
     END_INTERFACE
   } IProxyObjectVtbl;
-  interface IProxyObject {
+  struct IProxyObject {
     CONST_VTBL struct IProxyObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1652,7 +1652,7 @@
       HRESULT (WINAPI *get_VisibleCount)(IItem *This,long *varVisibleCount);
     END_INTERFACE
   } IItemVtbl;
-  interface IItem {
+  struct IItem {
     CONST_VTBL struct IItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1874,7 +1874,7 @@
       HRESULT (WINAPI *GetRecurringMaster)(IAppointment *This,BSTR CalendarLocation,BSTR UserName,BSTR Password,IAppointment **Appointment);
     END_INTERFACE
   } IAppointmentVtbl;
-  interface IAppointment {
+  struct IAppointment {
     CONST_VTBL struct IAppointmentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2114,7 +2114,7 @@
       HRESULT (WINAPI *putref_Configuration)(ICalendarMessage *This,IConfiguration *varConfiguration);
     END_INTERFACE
   } ICalendarMessageVtbl;
-  interface ICalendarMessage {
+  struct ICalendarMessage {
     CONST_VTBL struct ICalendarMessageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2179,7 +2179,7 @@
       HRESULT (WINAPI *get__NewEnum)(IIntegers *This,IUnknown **Unknown);
     END_INTERFACE
   } IIntegersVtbl;
-  interface IIntegers {
+  struct IIntegers {
     CONST_VTBL struct IIntegersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2238,7 +2238,7 @@
       HRESULT (WINAPI *get__NewEnum)(IVariants *This,IUnknown **Unknown);
     END_INTERFACE
   } IVariantsVtbl;
-  interface IVariants {
+  struct IVariants {
     CONST_VTBL struct IVariantsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2333,7 +2333,7 @@
       HRESULT (WINAPI *get_ByPosition)(IRecurrencePattern *This,IIntegers **varByPosition);
     END_INTERFACE
   } IRecurrencePatternVtbl;
-  interface IRecurrencePattern {
+  struct IRecurrencePattern {
     CONST_VTBL struct IRecurrencePatternVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2456,7 +2456,7 @@
       HRESULT (WINAPI *get_Fields)(IException *This,Fields **varFields);
     END_INTERFACE
   } IExceptionVtbl;
-  interface IException {
+  struct IException {
     CONST_VTBL struct IExceptionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2530,7 +2530,7 @@
       HRESULT (WINAPI *get__NewEnum)(IRecurrencePatterns *This,IUnknown **Unknown);
     END_INTERFACE
   } IRecurrencePatternsVtbl;
-  interface IRecurrencePatterns {
+  struct IRecurrencePatterns {
     CONST_VTBL struct IRecurrencePatternsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2589,7 +2589,7 @@
       HRESULT (WINAPI *get__NewEnum)(IExceptions *This,IUnknown **Unknown);
     END_INTERFACE
   } IExceptionsVtbl;
-  interface IExceptions {
+  struct IExceptions {
     CONST_VTBL struct IExceptionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2652,7 +2652,7 @@
       HRESULT (WINAPI *GetUpdatedItem)(ICalendarPart *This,BSTR CalendarLocation,BSTR UserName,BSTR Password,IDispatch **Item);
     END_INTERFACE
   } ICalendarPartVtbl;
-  interface ICalendarPart {
+  struct ICalendarPart {
     CONST_VTBL struct ICalendarPartVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2718,7 +2718,7 @@
       HRESULT (WINAPI *get__NewEnum)(ICalendarParts *This,IUnknown **Unknown);
     END_INTERFACE
   } ICalendarPartsVtbl;
-  interface ICalendarParts {
+  struct ICalendarParts {
     CONST_VTBL struct ICalendarPartsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2752,7 +2752,7 @@
 #define __IAttendee_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IAttendee;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct 
+  struct
 IAttendee : public IDispatch {
   public:
     virtual HRESULT WINAPI get_DisplayName(BSTR *pDisplayName) = 0;
@@ -2792,7 +2792,7 @@
       HRESULT (WINAPI *put_Status)(IAttendee *This,CdoAttendeeStatusValues varStatus);
     END_INTERFACE
   } IAttendeeVtbl;
-  interface IAttendee {
+  struct IAttendee {
     CONST_VTBL struct IAttendeeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2872,7 +2872,7 @@
       HRESULT (WINAPI *get__NewEnum)(IAttendees *This,IUnknown **Unknown);
     END_INTERFACE
   } IAttendeesVtbl;
-  interface IAttendees {
+  struct IAttendees {
     CONST_VTBL struct IAttendeesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2945,7 +2945,7 @@
       HRESULT (WINAPI *get_Journal)(IMailbox *This,BSTR *varJournal);
     END_INTERFACE
   } IMailboxVtbl;
-  interface IMailbox {
+  struct IMailbox {
     CONST_VTBL struct IMailboxVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3047,7 +3047,7 @@
       HRESULT (WINAPI *GetInterface)(IFolder *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IFolderVtbl;
-  interface IFolder {
+  struct IFolder {
     CONST_VTBL struct IFolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3139,7 +3139,7 @@
       HRESULT (WINAPI *get__NewEnum)(IContactGroupMembers *This,IUnknown **Unknown);
     END_INTERFACE
   } IContactGroupMembersVtbl;
-  interface IContactGroupMembers {
+  struct IContactGroupMembers {
     CONST_VTBL struct IContactGroupMembersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3340,7 +3340,7 @@
       HRESULT (WINAPI *put_Title)(IPerson *This,BSTR varTitle);
     END_INTERFACE
   } IPersonVtbl;
-  interface IPerson {
+  struct IPerson {
     CONST_VTBL struct IPersonVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3636,7 +3636,7 @@
       HRESULT (WINAPI *CheckName)(IAddressee *This,BSTR Directory,BSTR UserName,BSTR Password,VARIANT_BOOL *pBRet);
     END_INTERFACE
   } IAddresseeVtbl;
-  interface IAddressee {
+  struct IAddressee {
     CONST_VTBL struct IAddresseeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3727,7 +3727,7 @@
       HRESULT (WINAPI *get__NewEnum)(IAddressees *This,IUnknown **Unknown);
     END_INTERFACE
   } IAddresseesVtbl;
-  interface IAddressees {
+  struct IAddressees {
     CONST_VTBL struct IAddresseesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3770,7 +3770,7 @@
       HRESULT (WINAPI *GetInterfaceInner)(IGetInterface *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IGetInterfaceVtbl;
-  interface IGetInterface {
+  struct IGetInterface {
     CONST_VTBL struct IGetInterfaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/cdoexm.h b/mingw-w64-headers/include/cdoexm.h
index eeda005..2422a25 100755
--- a/mingw-w64-headers/include/cdoexm.h
+++ b/mingw-w64-headers/include/cdoexm.h
@@ -15,17 +15,17 @@
 
 #ifndef __IDistributionList_FWD_DEFINED__
 #define __IDistributionList_FWD_DEFINED__
-typedef interface IDistributionList IDistributionList;
+typedef struct IDistributionList IDistributionList;
 #endif
 
 #ifndef __IMailRecipient_FWD_DEFINED__
 #define __IMailRecipient_FWD_DEFINED__
-typedef interface IMailRecipient IMailRecipient;
+typedef struct IMailRecipient IMailRecipient;
 #endif
 
 #ifndef __IMailboxStore_FWD_DEFINED__
 #define __IMailboxStore_FWD_DEFINED__
-typedef interface IMailboxStore IMailboxStore;
+typedef struct IMailboxStore IMailboxStore;
 #endif
 
 #ifndef __MailGroup_FWD_DEFINED__
@@ -163,7 +163,7 @@
       HRESULT (WINAPI *put_HideDLMembership)(IDistributionList *This,VARIANT_BOOL varHideDLMembership);
     END_INTERFACE
   } IDistributionListVtbl;
-  interface IDistributionList {
+  struct IDistributionList {
     CONST_VTBL struct IDistributionListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -257,7 +257,7 @@
       HRESULT (WINAPI *MailDisable)(IMailRecipient *This);
     END_INTERFACE
   } IMailRecipientVtbl;
-  interface IMailRecipient {
+  struct IMailRecipient {
     CONST_VTBL struct IMailRecipientVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -416,7 +416,7 @@
       HRESULT (WINAPI *MoveMailbox)(IMailboxStore *This,BSTR HomeMDBURL);
     END_INTERFACE
   } IMailboxStoreVtbl;
-  interface IMailboxStore {
+  struct IMailboxStore {
     CONST_VTBL struct IMailboxStoreVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/cdonts.h b/mingw-w64-headers/include/cdonts.h
index ea3c072..7a78fc5 100755
--- a/mingw-w64-headers/include/cdonts.h
+++ b/mingw-w64-headers/include/cdonts.h
@@ -24,52 +24,52 @@
 
 #ifndef __INewMail_FWD_DEFINED__
 #define __INewMail_FWD_DEFINED__
-typedef interface INewMail INewMail;
+typedef struct INewMail INewMail;
 #endif
 
 #ifndef __ISession_FWD_DEFINED__
 #define __ISession_FWD_DEFINED__
-typedef interface ISession ISession;
+typedef struct ISession ISession;
 #endif
 
 #ifndef __Folder_FWD_DEFINED__
 #define __Folder_FWD_DEFINED__
-typedef interface Folder Folder;
+typedef struct Folder Folder;
 #endif
 
 #ifndef __Messages_FWD_DEFINED__
 #define __Messages_FWD_DEFINED__
-typedef interface Messages Messages;
+typedef struct Messages Messages;
 #endif
 
 #ifndef __Message_FWD_DEFINED__
 #define __Message_FWD_DEFINED__
-typedef interface Message Message;
+typedef struct Message Message;
 #endif
 
 #ifndef __Recipients_FWD_DEFINED__
 #define __Recipients_FWD_DEFINED__
-typedef interface Recipients Recipients;
+typedef struct Recipients Recipients;
 #endif
 
 #ifndef __Recipient_FWD_DEFINED__
 #define __Recipient_FWD_DEFINED__
-typedef interface Recipient Recipient;
+typedef struct Recipient Recipient;
 #endif
 
 #ifndef __Attachments_FWD_DEFINED__
 #define __Attachments_FWD_DEFINED__
-typedef interface Attachments Attachments;
+typedef struct Attachments Attachments;
 #endif
 
 #ifndef __Attachment_FWD_DEFINED__
 #define __Attachment_FWD_DEFINED__
-typedef interface Attachment Attachment;
+typedef struct Attachment Attachment;
 #endif
 
 #ifndef __AddressEntry_FWD_DEFINED__
 #define __AddressEntry_FWD_DEFINED__
-typedef interface AddressEntry AddressEntry;
+typedef struct AddressEntry AddressEntry;
 #endif
 
 #ifndef __NewMail_FWD_DEFINED__
@@ -92,42 +92,42 @@
 
 #ifndef __AddressEntry_FWD_DEFINED__
 #define __AddressEntry_FWD_DEFINED__
-typedef interface AddressEntry AddressEntry;
+typedef struct AddressEntry AddressEntry;
 #endif
 
 #ifndef __Attachment_FWD_DEFINED__
 #define __Attachment_FWD_DEFINED__
-typedef interface Attachment Attachment;
+typedef struct Attachment Attachment;
 #endif
 
 #ifndef __Attachments_FWD_DEFINED__
 #define __Attachments_FWD_DEFINED__
-typedef interface Attachments Attachments;
+typedef struct Attachments Attachments;
 #endif
 
 #ifndef __Folder_FWD_DEFINED__
 #define __Folder_FWD_DEFINED__
-typedef interface Folder Folder;
+typedef struct Folder Folder;
 #endif
 
 #ifndef __Messages_FWD_DEFINED__
 #define __Messages_FWD_DEFINED__
-typedef interface Messages Messages;
+typedef struct Messages Messages;
 #endif
 
 #ifndef __Message_FWD_DEFINED__
 #define __Message_FWD_DEFINED__
-typedef interface Message Message;
+typedef struct Message Message;
 #endif
 
 #ifndef __Recipient_FWD_DEFINED__
 #define __Recipient_FWD_DEFINED__
-typedef interface Recipient Recipient;
+typedef struct Recipient Recipient;
 #endif
 
 #ifndef __Recipients_FWD_DEFINED__
 #define __Recipients_FWD_DEFINED__
-typedef interface Recipients Recipients;
+typedef struct Recipients Recipients;
 #endif
 
 #include "oaidl.h"
@@ -232,7 +232,7 @@
       HRESULT (WINAPI *get_Version)(INewMail *This,BSTR *Version);
     END_INTERFACE
   } INewMailVtbl;
-  interface INewMail {
+  struct INewMail {
     CONST_VTBL struct INewMailVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -349,7 +349,7 @@
       HRESULT (WINAPI *SetReserved)(ISession *This,VARIANT var1,VARIANT var2);
     END_INTERFACE
   } ISessionVtbl;
-  interface ISession {
+  struct ISession {
     CONST_VTBL struct ISessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -443,7 +443,7 @@
       HRESULT (WINAPI *get_Messages)(Folder *This,VARIANT *varMessages);
     END_INTERFACE
   } FolderVtbl;
-  interface Folder {
+  struct Folder {
     CONST_VTBL struct FolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -521,7 +521,7 @@
       HRESULT (WINAPI *GetPrevious)(Messages *This,VARIANT *pvarResult);
     END_INTERFACE
   } MessagesVtbl;
-  interface Messages {
+  struct Messages {
     CONST_VTBL struct MessagesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -654,7 +654,7 @@
       HRESULT (WINAPI *Send)(Message *This);
     END_INTERFACE
   } MessageVtbl;
-  interface Message {
+  struct Message {
     CONST_VTBL struct MessageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -796,7 +796,7 @@
       HRESULT (WINAPI *Delete)(Recipients *This);
     END_INTERFACE
   } RecipientsVtbl;
-  interface Recipients {
+  struct Recipients {
     CONST_VTBL struct RecipientsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -879,7 +879,7 @@
       HRESULT (WINAPI *Delete)(Recipient *This);
     END_INTERFACE
   } RecipientVtbl;
-  interface Recipient {
+  struct Recipient {
     CONST_VTBL struct RecipientVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -964,7 +964,7 @@
       HRESULT (WINAPI *Delete)(Attachments *This);
     END_INTERFACE
   } AttachmentsVtbl;
-  interface Attachments {
+  struct Attachments {
     CONST_VTBL struct AttachmentsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1057,7 +1057,7 @@
       HRESULT (WINAPI *WriteToFile)(Attachment *This,BSTR FileName);
     END_INTERFACE
   } AttachmentVtbl;
-  interface Attachment {
+  struct Attachment {
     CONST_VTBL struct AttachmentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1153,7 +1153,7 @@
       HRESULT (WINAPI *get_Type)(AddressEntry *This,BSTR *varType);
     END_INTERFACE
   } AddressEntryVtbl;
-  interface AddressEntry {
+  struct AddressEntry {
     CONST_VTBL struct AddressEntryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/cdosys.h b/mingw-w64-headers/include/cdosys.h
index e1a40d7..3547c56 100755
--- a/mingw-w64-headers/include/cdosys.h
+++ b/mingw-w64-headers/include/cdosys.h
@@ -30,97 +30,97 @@
 
 #ifndef __IDataSource_FWD_DEFINED__
 #define __IDataSource_FWD_DEFINED__
-typedef interface IDataSource IDataSource;
+typedef struct IDataSource IDataSource;
 #endif
 
 #ifndef __IMessage_FWD_DEFINED__
 #define __IMessage_FWD_DEFINED__
-typedef interface IMessage IMessage;
+typedef struct IMessage IMessage;
 #endif
 
 #ifndef __IBodyPart_FWD_DEFINED__
 #define __IBodyPart_FWD_DEFINED__
-typedef interface IBodyPart IBodyPart;
+typedef struct IBodyPart IBodyPart;
 #endif
 
 #ifndef __IConfiguration_FWD_DEFINED__
 #define __IConfiguration_FWD_DEFINED__
-typedef interface IConfiguration IConfiguration;
+typedef struct IConfiguration IConfiguration;
 #endif
 
 #ifndef __IMessages_FWD_DEFINED__
 #define __IMessages_FWD_DEFINED__
-typedef interface IMessages IMessages;
+typedef struct IMessages IMessages;
 #endif
 
 #ifndef __IDropDirectory_FWD_DEFINED__
 #define __IDropDirectory_FWD_DEFINED__
-typedef interface IDropDirectory IDropDirectory;
+typedef struct IDropDirectory IDropDirectory;
 #endif
 
 #ifndef __IBodyParts_FWD_DEFINED__
 #define __IBodyParts_FWD_DEFINED__
-typedef interface IBodyParts IBodyParts;
+typedef struct IBodyParts IBodyParts;
 #endif
 
 #ifndef __ISMTPScriptConnector_FWD_DEFINED__
 #define __ISMTPScriptConnector_FWD_DEFINED__
-typedef interface ISMTPScriptConnector ISMTPScriptConnector;
+typedef struct ISMTPScriptConnector ISMTPScriptConnector;
 #endif
 
 #ifndef __INNTPEarlyScriptConnector_FWD_DEFINED__
 #define __INNTPEarlyScriptConnector_FWD_DEFINED__
-typedef interface INNTPEarlyScriptConnector INNTPEarlyScriptConnector;
+typedef struct INNTPEarlyScriptConnector INNTPEarlyScriptConnector;
 #endif
 
 #ifndef __INNTPPostScriptConnector_FWD_DEFINED__
 #define __INNTPPostScriptConnector_FWD_DEFINED__
-typedef interface INNTPPostScriptConnector INNTPPostScriptConnector;
+typedef struct INNTPPostScriptConnector INNTPPostScriptConnector;
 #endif
 
 #ifndef __INNTPFinalScriptConnector_FWD_DEFINED__
 #define __INNTPFinalScriptConnector_FWD_DEFINED__
-typedef interface INNTPFinalScriptConnector INNTPFinalScriptConnector;
+typedef struct INNTPFinalScriptConnector INNTPFinalScriptConnector;
 #endif
 
 #ifndef __ISMTPOnArrival_FWD_DEFINED__
 #define __ISMTPOnArrival_FWD_DEFINED__
-typedef interface ISMTPOnArrival ISMTPOnArrival;
+typedef struct ISMTPOnArrival ISMTPOnArrival;
 #endif
 
 #ifndef __INNTPOnPostEarly_FWD_DEFINED__
 #define __INNTPOnPostEarly_FWD_DEFINED__
-typedef interface INNTPOnPostEarly INNTPOnPostEarly;
+typedef struct INNTPOnPostEarly INNTPOnPostEarly;
 #endif
 
 #ifndef __INNTPOnPost_FWD_DEFINED__
 #define __INNTPOnPost_FWD_DEFINED__
-typedef interface INNTPOnPost INNTPOnPost;
+typedef struct INNTPOnPost INNTPOnPost;
 #endif
 
 #ifndef __INNTPOnPostFinal_FWD_DEFINED__
 #define __INNTPOnPostFinal_FWD_DEFINED__
-typedef interface INNTPOnPostFinal INNTPOnPostFinal;
+typedef struct INNTPOnPostFinal INNTPOnPostFinal;
 #endif
 
 #ifndef __IProxyObject_FWD_DEFINED__
 #define __IProxyObject_FWD_DEFINED__
-typedef interface IProxyObject IProxyObject;
+typedef struct IProxyObject IProxyObject;
 #endif
 
 #ifndef __IGetInterface_FWD_DEFINED__
 #define __IGetInterface_FWD_DEFINED__
-typedef interface IGetInterface IGetInterface;
+typedef struct IGetInterface IGetInterface;
 #endif
 
 #ifndef __IBodyParts_FWD_DEFINED__
 #define __IBodyParts_FWD_DEFINED__
-typedef interface IBodyParts IBodyParts;
+typedef struct IBodyParts IBodyParts;
 #endif
 
 #ifndef __IMessages_FWD_DEFINED__
 #define __IMessages_FWD_DEFINED__
-typedef interface IMessages IMessages;
+typedef struct IMessages IMessages;
 #endif
 
 #ifndef __Message_FWD_DEFINED__
@@ -191,21 +191,21 @@
 #include "ocidl.h"
 
 #ifndef __cplusplus
-typedef interface ADOError ADOError;
-typedef interface ADOErrors ADOErrors;
-typedef interface _ADOCommand _ADOCommand;
-typedef interface _ADOConnection _ADOConnection;
-typedef interface _ADORecord _ADORecord;
-typedef interface IRecADOFields IRecADOFields;
-typedef interface _ADOStream _ADOStream;
-typedef interface _ADORecordset _ADORecordset;
-typedef interface ADOField ADOField;
-typedef interface _ADOField _ADOField;
-typedef interface ADOFields ADOFields;
-typedef interface _ADOParameter _ADOParameter;
-typedef interface ADOParameters ADOParameters;
-typedef interface ADOProperty ADOProperty;
-typedef interface ADOProperties ADOProperties;
+typedef struct ADOError ADOError;
+typedef struct ADOErrors ADOErrors;
+typedef struct _ADOCommand _ADOCommand;
+typedef struct _ADOConnection _ADOConnection;
+typedef struct _ADORecord _ADORecord;
+typedef struct IRecADOFields IRecADOFields;
+typedef struct _ADOStream _ADOStream;
+typedef struct _ADORecordset _ADORecordset;
+typedef struct ADOField ADOField;
+typedef struct _ADOField _ADOField;
+typedef struct ADOFields ADOFields;
+typedef struct _ADOParameter _ADOParameter;
+typedef struct ADOParameters ADOParameters;
+typedef struct ADOProperty ADOProperty;
+typedef struct ADOProperties ADOProperties;
 #endif
 #include "adoint.h"
 
@@ -332,7 +332,7 @@
       HRESULT (WINAPI *SaveToContainer)(IDataSource *This,BSTR ContainerURL,IDispatch *ActiveConnection,ConnectModeEnum Mode,RecordCreateOptionsEnum CreateOptions,RecordOpenOptionsEnum Options,BSTR UserName,BSTR Password);
     END_INTERFACE
   } IDataSourceVtbl;
-  interface IDataSource {
+  struct IDataSource {
     CONST_VTBL struct IDataSourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -516,7 +516,7 @@
       HRESULT (WINAPI *GetInterface)(IMessage *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IMessageVtbl;
-  interface IMessage {
+  struct IMessage {
     CONST_VTBL struct IMessageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -765,7 +765,7 @@
       HRESULT (WINAPI *GetInterface)(IBodyPart *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IBodyPartVtbl;
-  interface IBodyPart {
+  struct IBodyPart {
     CONST_VTBL struct IBodyPartVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -871,7 +871,7 @@
       HRESULT (WINAPI *GetInterface)(IConfiguration *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IConfigurationVtbl;
-  interface IConfiguration {
+  struct IConfiguration {
     CONST_VTBL struct IConfigurationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -926,7 +926,7 @@
       HRESULT (WINAPI *get_Filename)(IMessages *This,VARIANT var,BSTR *Filename);
     END_INTERFACE
   } IMessagesVtbl;
-  interface IMessages {
+  struct IMessages {
     CONST_VTBL struct IMessagesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -980,7 +980,7 @@
       HRESULT (WINAPI *GetMessages)(IDropDirectory *This,BSTR DirName,IMessages **Msgs);
     END_INTERFACE
   } IDropDirectoryVtbl;
-  interface IDropDirectory {
+  struct IDropDirectory {
     CONST_VTBL struct IDropDirectoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1029,7 +1029,7 @@
       HRESULT (WINAPI *Add)(IBodyParts *This,long Index,IBodyPart **ppPart);
     END_INTERFACE
   } IBodyPartsVtbl;
-  interface IBodyParts {
+  struct IBodyParts {
     CONST_VTBL struct IBodyPartsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1081,7 +1081,7 @@
       HRESULT (WINAPI *Invoke)(ISMTPScriptConnector *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } ISMTPScriptConnectorVtbl;
-  interface ISMTPScriptConnector {
+  struct ISMTPScriptConnector {
     CONST_VTBL struct ISMTPScriptConnectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1114,7 +1114,7 @@
       HRESULT (WINAPI *Invoke)(INNTPEarlyScriptConnector *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } INNTPEarlyScriptConnectorVtbl;
-  interface INNTPEarlyScriptConnector {
+  struct INNTPEarlyScriptConnector {
     CONST_VTBL struct INNTPEarlyScriptConnectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1147,7 +1147,7 @@
       HRESULT (WINAPI *Invoke)(INNTPPostScriptConnector *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } INNTPPostScriptConnectorVtbl;
-  interface INNTPPostScriptConnector {
+  struct INNTPPostScriptConnector {
     CONST_VTBL struct INNTPPostScriptConnectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1180,7 +1180,7 @@
       HRESULT (WINAPI *Invoke)(INNTPFinalScriptConnector *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } INNTPFinalScriptConnectorVtbl;
-  interface INNTPFinalScriptConnector {
+  struct INNTPFinalScriptConnector {
     CONST_VTBL struct INNTPFinalScriptConnectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1216,7 +1216,7 @@
       HRESULT (WINAPI *OnArrival)(ISMTPOnArrival *This,IMessage *Msg,CdoEventStatus *EventStatus);
     END_INTERFACE
   } ISMTPOnArrivalVtbl;
-  interface ISMTPOnArrival {
+  struct ISMTPOnArrival {
     CONST_VTBL struct ISMTPOnArrivalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1256,7 +1256,7 @@
       HRESULT (WINAPI *OnPostEarly)(INNTPOnPostEarly *This,IMessage *Msg,CdoEventStatus *EventStatus);
     END_INTERFACE
   } INNTPOnPostEarlyVtbl;
-  interface INNTPOnPostEarly {
+  struct INNTPOnPostEarly {
     CONST_VTBL struct INNTPOnPostEarlyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1295,7 +1295,7 @@
       HRESULT (WINAPI *OnPost)(INNTPOnPost *This,IMessage *Msg,CdoEventStatus *EventStatus);
     END_INTERFACE
   } INNTPOnPostVtbl;
-  interface INNTPOnPost {
+  struct INNTPOnPost {
     CONST_VTBL struct INNTPOnPostVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1334,7 +1334,7 @@
       HRESULT (WINAPI *OnPostFinal)(INNTPOnPostFinal *This,IMessage *Msg,CdoEventStatus *EventStatus);
     END_INTERFACE
   } INNTPOnPostFinalVtbl;
-  interface INNTPOnPostFinal {
+  struct INNTPOnPostFinal {
     CONST_VTBL struct INNTPOnPostFinalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1369,7 +1369,7 @@
       HRESULT (WINAPI *get_Object)(IProxyObject *This,IUnknown **ppParent);
     END_INTERFACE
   } IProxyObjectVtbl;
-  interface IProxyObject {
+  struct IProxyObject {
     CONST_VTBL struct IProxyObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1402,7 +1402,7 @@
       HRESULT (WINAPI *GetInterfaceInner)(IGetInterface *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IGetInterfaceVtbl;
-  interface IGetInterface {
+  struct IGetInterface {
     CONST_VTBL struct IGetInterfaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/certadm.h b/mingw-w64-headers/include/certadm.h
index b1a4d03..5684afd 100755
--- a/mingw-w64-headers/include/certadm.h
+++ b/mingw-w64-headers/include/certadm.h
@@ -24,12 +24,12 @@
 
 #ifndef __ICertAdmin_FWD_DEFINED__
 #define __ICertAdmin_FWD_DEFINED__
-typedef interface ICertAdmin ICertAdmin;
+typedef struct ICertAdmin ICertAdmin;
 #endif
 
 #ifndef __ICertAdmin2_FWD_DEFINED__
 #define __ICertAdmin2_FWD_DEFINED__
-typedef interface ICertAdmin2 ICertAdmin2;
+typedef struct ICertAdmin2 ICertAdmin2;
 #endif
 
 #ifndef __CCertAdmin_FWD_DEFINED__
@@ -127,7 +127,7 @@
       HRESULT (WINAPI *ImportCertificate)(ICertAdmin *This,const BSTR strConfig,const BSTR strCertificate,LONG Flags,LONG *pRequestId);
     END_INTERFACE
   } ICertAdminVtbl;
-  interface ICertAdmin {
+  struct ICertAdmin {
     CONST_VTBL struct ICertAdminVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -235,7 +235,7 @@
       HRESULT (WINAPI *DeleteRow)(ICertAdmin2 *This,const BSTR strConfig,LONG Flags,DATE Date,LONG Table,LONG RowId,LONG *pcDeleted);
     END_INTERFACE
   } ICertAdmin2Vtbl;
-  interface ICertAdmin2 {
+  struct ICertAdmin2 {
     CONST_VTBL struct ICertAdmin2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/certcli.h b/mingw-w64-headers/include/certcli.h
index 95dd536..5c94131 100755
--- a/mingw-w64-headers/include/certcli.h
+++ b/mingw-w64-headers/include/certcli.h
@@ -24,27 +24,27 @@
 
 #ifndef __ICertGetConfig_FWD_DEFINED__
 #define __ICertGetConfig_FWD_DEFINED__
-typedef interface ICertGetConfig ICertGetConfig;
+typedef struct ICertGetConfig ICertGetConfig;
 #endif
 
 #ifndef __ICertConfig_FWD_DEFINED__
 #define __ICertConfig_FWD_DEFINED__
-typedef interface ICertConfig ICertConfig;
+typedef struct ICertConfig ICertConfig;
 #endif
 
 #ifndef __ICertConfig2_FWD_DEFINED__
 #define __ICertConfig2_FWD_DEFINED__
-typedef interface ICertConfig2 ICertConfig2;
+typedef struct ICertConfig2 ICertConfig2;
 #endif
 
 #ifndef __ICertRequest_FWD_DEFINED__
 #define __ICertRequest_FWD_DEFINED__
-typedef interface ICertRequest ICertRequest;
+typedef struct ICertRequest ICertRequest;
 #endif
 
 #ifndef __ICertRequest2_FWD_DEFINED__
 #define __ICertRequest2_FWD_DEFINED__
-typedef interface ICertRequest2 ICertRequest2;
+typedef struct ICertRequest2 ICertRequest2;
 #endif
 
 #ifndef __CCertGetConfig_FWD_DEFINED__
@@ -124,7 +124,7 @@
       HRESULT (WINAPI *GetConfig)(ICertGetConfig *This,LONG Flags,BSTR *pstrOut);
     END_INTERFACE
   } ICertGetConfigVtbl;
-  interface ICertGetConfig {
+  struct ICertGetConfig {
     CONST_VTBL struct ICertGetConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -196,7 +196,7 @@
       HRESULT (WINAPI *GetConfig)(ICertConfig *This,LONG Flags,BSTR *pstrOut);
     END_INTERFACE
   } ICertConfigVtbl;
-  interface ICertConfig {
+  struct ICertConfig {
     CONST_VTBL struct ICertConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -248,7 +248,7 @@
       HRESULT (WINAPI *SetSharedFolder)(ICertConfig2 *This,const BSTR strSharedFolder);
     END_INTERFACE
   } ICertConfig2Vtbl;
-  interface ICertConfig2 {
+  struct ICertConfig2 {
     CONST_VTBL struct ICertConfig2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -408,7 +408,7 @@
       HRESULT (WINAPI *GetCertificate)(ICertRequest *This,LONG Flags,BSTR *pstrCertificate);
     END_INTERFACE
   } ICertRequestVtbl;
-  interface ICertRequest {
+  struct ICertRequest {
     CONST_VTBL struct ICertRequestVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -482,7 +482,7 @@
       HRESULT (WINAPI *GetFullResponseProperty)(ICertRequest2 *This,LONG PropId,LONG PropIndex,LONG PropType,LONG Flags,VARIANT *pvarPropertyValue);
     END_INTERFACE
   } ICertRequest2Vtbl;
-  interface ICertRequest2 {
+  struct ICertRequest2 {
     CONST_VTBL struct ICertRequest2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/certenc.h b/mingw-w64-headers/include/certenc.h
index 5846358..8c55c3a 100755
--- a/mingw-w64-headers/include/certenc.h
+++ b/mingw-w64-headers/include/certenc.h
@@ -24,32 +24,32 @@
 
 #ifndef __ICertEncodeStringArray_FWD_DEFINED__
 #define __ICertEncodeStringArray_FWD_DEFINED__
-typedef interface ICertEncodeStringArray ICertEncodeStringArray;
+typedef struct ICertEncodeStringArray ICertEncodeStringArray;
 #endif
 
 #ifndef __ICertEncodeLongArray_FWD_DEFINED__
 #define __ICertEncodeLongArray_FWD_DEFINED__
-typedef interface ICertEncodeLongArray ICertEncodeLongArray;
+typedef struct ICertEncodeLongArray ICertEncodeLongArray;
 #endif
 
 #ifndef __ICertEncodeDateArray_FWD_DEFINED__
 #define __ICertEncodeDateArray_FWD_DEFINED__
-typedef interface ICertEncodeDateArray ICertEncodeDateArray;
+typedef struct ICertEncodeDateArray ICertEncodeDateArray;
 #endif
 
 #ifndef __ICertEncodeCRLDistInfo_FWD_DEFINED__
 #define __ICertEncodeCRLDistInfo_FWD_DEFINED__
-typedef interface ICertEncodeCRLDistInfo ICertEncodeCRLDistInfo;
+typedef struct ICertEncodeCRLDistInfo ICertEncodeCRLDistInfo;
 #endif
 
 #ifndef __ICertEncodeAltName_FWD_DEFINED__
 #define __ICertEncodeAltName_FWD_DEFINED__
-typedef interface ICertEncodeAltName ICertEncodeAltName;
+typedef struct ICertEncodeAltName ICertEncodeAltName;
 #endif
 
 #ifndef __ICertEncodeBitString_FWD_DEFINED__
 #define __ICertEncodeBitString_FWD_DEFINED__
-typedef interface ICertEncodeBitString ICertEncodeBitString;
+typedef struct ICertEncodeBitString ICertEncodeBitString;
 #endif
 
 #ifndef __CCertEncodeStringArray_FWD_DEFINED__
@@ -150,7 +150,7 @@
       HRESULT (WINAPI *Encode)(ICertEncodeStringArray *This,BSTR *pstrBinary);
     END_INTERFACE
   } ICertEncodeStringArrayVtbl;
-  interface ICertEncodeStringArray {
+  struct ICertEncodeStringArray {
     CONST_VTBL struct ICertEncodeStringArrayVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -217,7 +217,7 @@
       HRESULT (WINAPI *Encode)(ICertEncodeLongArray *This,BSTR *pstrBinary);
     END_INTERFACE
   } ICertEncodeLongArrayVtbl;
-  interface ICertEncodeLongArray {
+  struct ICertEncodeLongArray {
     CONST_VTBL struct ICertEncodeLongArrayVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -281,7 +281,7 @@
       HRESULT (WINAPI *Encode)(ICertEncodeDateArray *This,BSTR *pstrBinary);
     END_INTERFACE
   } ICertEncodeDateArrayVtbl;
-  interface ICertEncodeDateArray {
+  struct ICertEncodeDateArray {
     CONST_VTBL struct ICertEncodeDateArrayVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -351,7 +351,7 @@
       HRESULT (WINAPI *Encode)(ICertEncodeCRLDistInfo *This,BSTR *pstrBinary);
     END_INTERFACE
   } ICertEncodeCRLDistInfoVtbl;
-  interface ICertEncodeCRLDistInfo {
+  struct ICertEncodeCRLDistInfo {
     CONST_VTBL struct ICertEncodeCRLDistInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -431,7 +431,7 @@
       HRESULT (WINAPI *Encode)(ICertEncodeAltName *This,BSTR *pstrBinary);
     END_INTERFACE
   } ICertEncodeAltNameVtbl;
-  interface ICertEncodeAltName {
+  struct ICertEncodeAltName {
     CONST_VTBL struct ICertEncodeAltNameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -494,7 +494,7 @@
       HRESULT (WINAPI *Encode)(ICertEncodeBitString *This,LONG BitCount,BSTR strBitString,BSTR *pstrBinary);
     END_INTERFACE
   } ICertEncodeBitStringVtbl;
-  interface ICertEncodeBitString {
+  struct ICertEncodeBitString {
     CONST_VTBL struct ICertEncodeBitStringVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/certexit.h b/mingw-w64-headers/include/certexit.h
index 5254122..26d8663 100755
--- a/mingw-w64-headers/include/certexit.h
+++ b/mingw-w64-headers/include/certexit.h
@@ -24,12 +24,12 @@
 
 #ifndef __ICertExit_FWD_DEFINED__
 #define __ICertExit_FWD_DEFINED__
-typedef interface ICertExit ICertExit;
+typedef struct ICertExit ICertExit;
 #endif
 
 #ifndef __ICertExit2_FWD_DEFINED__
 #define __ICertExit2_FWD_DEFINED__
-typedef interface ICertExit2 ICertExit2;
+typedef struct ICertExit2 ICertExit2;
 #endif
 
 #include "wtypes.h"
@@ -80,7 +80,7 @@
       HRESULT (WINAPI *GetDescription)(ICertExit *This,BSTR *pstrDescription);
     END_INTERFACE
   } ICertExitVtbl;
-  interface ICertExit {
+  struct ICertExit {
     CONST_VTBL struct ICertExitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -128,7 +128,7 @@
       HRESULT (WINAPI *GetManageModule)(ICertExit2 *This,ICertManageModule **ppManageModule);
     END_INTERFACE
   } ICertExit2Vtbl;
-  interface ICertExit2 {
+  struct ICertExit2 {
     CONST_VTBL struct ICertExit2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/certif.h b/mingw-w64-headers/include/certif.h
index e5506a1..2693626 100755
--- a/mingw-w64-headers/include/certif.h
+++ b/mingw-w64-headers/include/certif.h
@@ -24,12 +24,12 @@
 
 #ifndef __ICertServerPolicy_FWD_DEFINED__
 #define __ICertServerPolicy_FWD_DEFINED__
-typedef interface ICertServerPolicy ICertServerPolicy;
+typedef struct ICertServerPolicy ICertServerPolicy;
 #endif
 
 #ifndef __ICertServerExit_FWD_DEFINED__
 #define __ICertServerExit_FWD_DEFINED__
-typedef interface ICertServerExit ICertServerExit;
+typedef struct ICertServerExit ICertServerExit;
 #endif
 
 #include "wtypes.h"
@@ -94,7 +94,7 @@
       HRESULT (WINAPI *EnumerateAttributesClose)(ICertServerPolicy *This);
     END_INTERFACE
   } ICertServerPolicyVtbl;
-  interface ICertServerPolicy {
+  struct ICertServerPolicy {
     CONST_VTBL struct ICertServerPolicyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -194,7 +194,7 @@
       HRESULT (WINAPI *EnumerateAttributesClose)(ICertServerExit *This);
     END_INTERFACE
   } ICertServerExitVtbl;
-  interface ICertServerExit {
+  struct ICertServerExit {
     CONST_VTBL struct ICertServerExitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/certmod.h b/mingw-w64-headers/include/certmod.h
index 04d5a6f..d8a527a 100755
--- a/mingw-w64-headers/include/certmod.h
+++ b/mingw-w64-headers/include/certmod.h
@@ -24,7 +24,7 @@
 
 #ifndef __ICertManageModule_FWD_DEFINED__
 #define __ICertManageModule_FWD_DEFINED__
-typedef interface ICertManageModule ICertManageModule;
+typedef struct ICertManageModule ICertManageModule;
 #endif
 
 #include "wtypes.h"
@@ -76,7 +76,7 @@
       HRESULT (WINAPI *Configure)(ICertManageModule *This,const BSTR strConfig,BSTR strStorageLocation,LONG Flags);
     END_INTERFACE
   } ICertManageModuleVtbl;
-  interface ICertManageModule {
+  struct ICertManageModule {
     CONST_VTBL struct ICertManageModuleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/certpol.h b/mingw-w64-headers/include/certpol.h
index a0ae79e..f08d3ed 100755
--- a/mingw-w64-headers/include/certpol.h
+++ b/mingw-w64-headers/include/certpol.h
@@ -24,12 +24,12 @@
 
 #ifndef __ICertPolicy_FWD_DEFINED__
 #define __ICertPolicy_FWD_DEFINED__
-typedef interface ICertPolicy ICertPolicy;
+typedef struct ICertPolicy ICertPolicy;
 #endif
 
 #ifndef __ICertPolicy2_FWD_DEFINED__
 #define __ICertPolicy2_FWD_DEFINED__
-typedef interface ICertPolicy2 ICertPolicy2;
+typedef struct ICertPolicy2 ICertPolicy2;
 #endif
 
 #include "wtypes.h"
@@ -69,7 +69,7 @@
       HRESULT (WINAPI *ShutDown)(ICertPolicy *This);
     END_INTERFACE
   } ICertPolicyVtbl;
-  interface ICertPolicy {
+  struct ICertPolicy {
     CONST_VTBL struct ICertPolicyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -121,7 +121,7 @@
       HRESULT (WINAPI *GetManageModule)(ICertPolicy2 *This,ICertManageModule **ppManageModule);
     END_INTERFACE
   } ICertPolicy2Vtbl;
-  interface ICertPolicy2 {
+  struct ICertPolicy2 {
     CONST_VTBL struct ICertPolicy2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/certreqd.h b/mingw-w64-headers/include/certreqd.h
index 8acdaa6..27564ed 100755
--- a/mingw-w64-headers/include/certreqd.h
+++ b/mingw-w64-headers/include/certreqd.h
@@ -24,12 +24,12 @@
 
 #ifndef __ICertRequestD_FWD_DEFINED__
 #define __ICertRequestD_FWD_DEFINED__
-typedef interface ICertRequestD ICertRequestD;
+typedef struct ICertRequestD ICertRequestD;
 #endif
 
 #ifndef __ICertRequestD2_FWD_DEFINED__
 #define __ICertRequestD2_FWD_DEFINED__
-typedef interface ICertRequestD2 ICertRequestD2;
+typedef struct ICertRequestD2 ICertRequestD2;
 #endif
 
 #include "certbase.h"
@@ -63,7 +63,7 @@
       HRESULT (WINAPI *Ping)(ICertRequestD *This,const wchar_t *pwszAuthority);
     END_INTERFACE
   } ICertRequestDVtbl;
-  interface ICertRequestD {
+  struct ICertRequestD {
     CONST_VTBL struct ICertRequestDVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -109,7 +109,7 @@
       HRESULT (WINAPI *Ping2)(ICertRequestD2 *This,const wchar_t *pwszAuthority);
     END_INTERFACE
   } ICertRequestD2Vtbl;
-  interface ICertRequestD2 {
+  struct ICertRequestD2 {
     CONST_VTBL struct ICertRequestD2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/certview.h b/mingw-w64-headers/include/certview.h
index a32c082..e39c8b6 100755
--- a/mingw-w64-headers/include/certview.h
+++ b/mingw-w64-headers/include/certview.h
@@ -24,32 +24,32 @@
 
 #ifndef __IEnumCERTVIEWCOLUMN_FWD_DEFINED__
 #define __IEnumCERTVIEWCOLUMN_FWD_DEFINED__
-typedef interface IEnumCERTVIEWCOLUMN IEnumCERTVIEWCOLUMN;
+typedef struct IEnumCERTVIEWCOLUMN IEnumCERTVIEWCOLUMN;
 #endif
 
 #ifndef __IEnumCERTVIEWATTRIBUTE_FWD_DEFINED__
 #define __IEnumCERTVIEWATTRIBUTE_FWD_DEFINED__
-typedef interface IEnumCERTVIEWATTRIBUTE IEnumCERTVIEWATTRIBUTE;
+typedef struct IEnumCERTVIEWATTRIBUTE IEnumCERTVIEWATTRIBUTE;
 #endif
 
 #ifndef __IEnumCERTVIEWEXTENSION_FWD_DEFINED__
 #define __IEnumCERTVIEWEXTENSION_FWD_DEFINED__
-typedef interface IEnumCERTVIEWEXTENSION IEnumCERTVIEWEXTENSION;
+typedef struct IEnumCERTVIEWEXTENSION IEnumCERTVIEWEXTENSION;
 #endif
 
 #ifndef __IEnumCERTVIEWROW_FWD_DEFINED__
 #define __IEnumCERTVIEWROW_FWD_DEFINED__
-typedef interface IEnumCERTVIEWROW IEnumCERTVIEWROW;
+typedef struct IEnumCERTVIEWROW IEnumCERTVIEWROW;
 #endif
 
 #ifndef __ICertView_FWD_DEFINED__
 #define __ICertView_FWD_DEFINED__
-typedef interface ICertView ICertView;
+typedef struct ICertView ICertView;
 #endif
 
 #ifndef __ICertView2_FWD_DEFINED__
 #define __ICertView2_FWD_DEFINED__
-typedef interface ICertView2 ICertView2;
+typedef struct ICertView2 ICertView2;
 #endif
 
 #include "wtypes.h"
@@ -151,7 +151,7 @@
       HRESULT (WINAPI *Clone)(IEnumCERTVIEWCOLUMN *This,IEnumCERTVIEWCOLUMN **ppenum);
     END_INTERFACE
   } IEnumCERTVIEWCOLUMNVtbl;
-  interface IEnumCERTVIEWCOLUMN {
+  struct IEnumCERTVIEWCOLUMN {
     CONST_VTBL struct IEnumCERTVIEWCOLUMNVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -227,7 +227,7 @@
       HRESULT (WINAPI *Clone)(IEnumCERTVIEWATTRIBUTE *This,IEnumCERTVIEWATTRIBUTE **ppenum);
     END_INTERFACE
   } IEnumCERTVIEWATTRIBUTEVtbl;
-  interface IEnumCERTVIEWATTRIBUTE {
+  struct IEnumCERTVIEWATTRIBUTE {
     CONST_VTBL struct IEnumCERTVIEWATTRIBUTEVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -293,7 +293,7 @@
       HRESULT (WINAPI *Clone)(IEnumCERTVIEWEXTENSION *This,IEnumCERTVIEWEXTENSION **ppenum);
     END_INTERFACE
   } IEnumCERTVIEWEXTENSIONVtbl;
-  interface IEnumCERTVIEWEXTENSION {
+  struct IEnumCERTVIEWEXTENSION {
     CONST_VTBL struct IEnumCERTVIEWEXTENSIONVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -364,7 +364,7 @@
       HRESULT (WINAPI *GetMaxIndex)(IEnumCERTVIEWROW *This,LONG *pIndex);
     END_INTERFACE
   } IEnumCERTVIEWROWVtbl;
-  interface IEnumCERTVIEWROW {
+  struct IEnumCERTVIEWROW {
     CONST_VTBL struct IEnumCERTVIEWROWVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -438,7 +438,7 @@
       HRESULT (WINAPI *OpenView)(ICertView *This,IEnumCERTVIEWROW **ppenum);
     END_INTERFACE
   } ICertViewVtbl;
-  interface ICertView {
+  struct ICertView {
     CONST_VTBL struct ICertViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -506,7 +506,7 @@
       HRESULT (WINAPI *SetTable)(ICertView2 *This,LONG Table);
     END_INTERFACE
   } ICertView2Vtbl;
-  interface ICertView2 {
+  struct ICertView2 {
     CONST_VTBL struct ICertView2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/chanmgr.h b/mingw-w64-headers/include/chanmgr.h
index 4002d32..3c07d59 100755
--- a/mingw-w64-headers/include/chanmgr.h
+++ b/mingw-w64-headers/include/chanmgr.h
@@ -19,12 +19,12 @@
 
 #ifndef __IChannelMgr_FWD_DEFINED__
 #define __IChannelMgr_FWD_DEFINED__
-typedef interface IChannelMgr IChannelMgr;
+typedef struct IChannelMgr IChannelMgr;
 #endif
 
 #ifndef __IEnumChannels_FWD_DEFINED__
 #define __IEnumChannels_FWD_DEFINED__
-typedef interface IEnumChannels IEnumChannels;
+typedef struct IEnumChannels IEnumChannels;
 #endif
 
 #ifndef __ChannelMgr_FWD_DEFINED__
@@ -105,7 +105,7 @@
       HRESULT (WINAPI *EnumChannels)(IChannelMgr *This,DWORD dwEnumFlags,LPCWSTR pszURL,IEnumChannels **pIEnumChannels);
     END_INTERFACE
   } IChannelMgrVtbl;
-  interface IChannelMgr {
+  struct IChannelMgr {
     CONST_VTBL struct IChannelMgrVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -165,7 +165,7 @@
       HRESULT (WINAPI *Clone)(IEnumChannels *This,IEnumChannels **ppenum);
     END_INTERFACE
   } IEnumChannelsVtbl;
-  interface IEnumChannels {
+  struct IEnumChannels {
     CONST_VTBL struct IEnumChannelsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/cluadmex.h b/mingw-w64-headers/include/cluadmex.h
index 7df8532..e7a9ac4 100755
--- a/mingw-w64-headers/include/cluadmex.h
+++ b/mingw-w64-headers/include/cluadmex.h
@@ -24,87 +24,87 @@
 
 #ifndef __IGetClusterUIInfo_FWD_DEFINED__
 #define __IGetClusterUIInfo_FWD_DEFINED__
-typedef interface IGetClusterUIInfo IGetClusterUIInfo;
+typedef struct IGetClusterUIInfo IGetClusterUIInfo;
 #endif
 
 #ifndef __IGetClusterDataInfo_FWD_DEFINED__
 #define __IGetClusterDataInfo_FWD_DEFINED__
-typedef interface IGetClusterDataInfo IGetClusterDataInfo;
+typedef struct IGetClusterDataInfo IGetClusterDataInfo;
 #endif
 
 #ifndef __IGetClusterObjectInfo_FWD_DEFINED__
 #define __IGetClusterObjectInfo_FWD_DEFINED__
-typedef interface IGetClusterObjectInfo IGetClusterObjectInfo;
+typedef struct IGetClusterObjectInfo IGetClusterObjectInfo;
 #endif
 
 #ifndef __IGetClusterNodeInfo_FWD_DEFINED__
 #define __IGetClusterNodeInfo_FWD_DEFINED__
-typedef interface IGetClusterNodeInfo IGetClusterNodeInfo;
+typedef struct IGetClusterNodeInfo IGetClusterNodeInfo;
 #endif
 
 #ifndef __IGetClusterGroupInfo_FWD_DEFINED__
 #define __IGetClusterGroupInfo_FWD_DEFINED__
-typedef interface IGetClusterGroupInfo IGetClusterGroupInfo;
+typedef struct IGetClusterGroupInfo IGetClusterGroupInfo;
 #endif
 
 #ifndef __IGetClusterResourceInfo_FWD_DEFINED__
 #define __IGetClusterResourceInfo_FWD_DEFINED__
-typedef interface IGetClusterResourceInfo IGetClusterResourceInfo;
+typedef struct IGetClusterResourceInfo IGetClusterResourceInfo;
 #endif
 
 #ifndef __IGetClusterNetworkInfo_FWD_DEFINED__
 #define __IGetClusterNetworkInfo_FWD_DEFINED__
-typedef interface IGetClusterNetworkInfo IGetClusterNetworkInfo;
+typedef struct IGetClusterNetworkInfo IGetClusterNetworkInfo;
 #endif
 
 #ifndef __IGetClusterNetInterfaceInfo_FWD_DEFINED__
 #define __IGetClusterNetInterfaceInfo_FWD_DEFINED__
-typedef interface IGetClusterNetInterfaceInfo IGetClusterNetInterfaceInfo;
+typedef struct IGetClusterNetInterfaceInfo IGetClusterNetInterfaceInfo;
 #endif
 
 #ifndef __IWCPropertySheetCallback_FWD_DEFINED__
 #define __IWCPropertySheetCallback_FWD_DEFINED__
-typedef interface IWCPropertySheetCallback IWCPropertySheetCallback;
+typedef struct IWCPropertySheetCallback IWCPropertySheetCallback;
 #endif
 
 #ifndef __IWEExtendPropertySheet_FWD_DEFINED__
 #define __IWEExtendPropertySheet_FWD_DEFINED__
-typedef interface IWEExtendPropertySheet IWEExtendPropertySheet;
+typedef struct IWEExtendPropertySheet IWEExtendPropertySheet;
 #endif
 
 #ifndef __IWCWizardCallback_FWD_DEFINED__
 #define __IWCWizardCallback_FWD_DEFINED__
-typedef interface IWCWizardCallback IWCWizardCallback;
+typedef struct IWCWizardCallback IWCWizardCallback;
 #endif
 
 #ifndef __IWEExtendWizard_FWD_DEFINED__
 #define __IWEExtendWizard_FWD_DEFINED__
-typedef interface IWEExtendWizard IWEExtendWizard;
+typedef struct IWEExtendWizard IWEExtendWizard;
 #endif
 
 #ifndef __IWCContextMenuCallback_FWD_DEFINED__
 #define __IWCContextMenuCallback_FWD_DEFINED__
-typedef interface IWCContextMenuCallback IWCContextMenuCallback;
+typedef struct IWCContextMenuCallback IWCContextMenuCallback;
 #endif
 
 #ifndef __IWEExtendContextMenu_FWD_DEFINED__
 #define __IWEExtendContextMenu_FWD_DEFINED__
-typedef interface IWEExtendContextMenu IWEExtendContextMenu;
+typedef struct IWEExtendContextMenu IWEExtendContextMenu;
 #endif
 
 #ifndef __IWEInvokeCommand_FWD_DEFINED__
 #define __IWEInvokeCommand_FWD_DEFINED__
-typedef interface IWEInvokeCommand IWEInvokeCommand;
+typedef struct IWEInvokeCommand IWEInvokeCommand;
 #endif
 
 #ifndef __IWCWizard97Callback_FWD_DEFINED__
 #define __IWCWizard97Callback_FWD_DEFINED__
-typedef interface IWCWizard97Callback IWCWizard97Callback;
+typedef struct IWCWizard97Callback IWCWizard97Callback;
 #endif
 
 #ifndef __IWEExtendWizard97_FWD_DEFINED__
 #define __IWEExtendWizard97_FWD_DEFINED__
-typedef interface IWEExtendWizard97 IWEExtendWizard97;
+typedef struct IWEExtendWizard97 IWEExtendWizard97;
 #endif
 
 #include "oaidl.h"
@@ -149,7 +149,7 @@
       HICON (WINAPI *GetIcon)(IGetClusterUIInfo *This);
     END_INTERFACE
   } IGetClusterUIInfoVtbl;
-  interface IGetClusterUIInfo {
+  struct IGetClusterUIInfo {
     CONST_VTBL struct IGetClusterUIInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -193,7 +193,7 @@
       LONG (WINAPI *GetObjectCount)(IGetClusterDataInfo *This);
     END_INTERFACE
   } IGetClusterDataInfoVtbl;
-  interface IGetClusterDataInfo {
+  struct IGetClusterDataInfo {
     CONST_VTBL struct IGetClusterDataInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -232,7 +232,7 @@
       CLUADMEX_OBJECT_TYPE (WINAPI *GetObjectType)(IGetClusterObjectInfo *This,LONG lObjIndex);
     END_INTERFACE
   } IGetClusterObjectInfoVtbl;
-  interface IGetClusterObjectInfo {
+  struct IGetClusterObjectInfo {
     CONST_VTBL struct IGetClusterObjectInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -266,7 +266,7 @@
       HNODE (WINAPI *GetNodeHandle)(IGetClusterNodeInfo *This,LONG lObjIndex);
     END_INTERFACE
   } IGetClusterNodeInfoVtbl;
-  interface IGetClusterNodeInfo {
+  struct IGetClusterNodeInfo {
     CONST_VTBL struct IGetClusterNodeInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -297,7 +297,7 @@
       HGROUP (WINAPI *GetGroupHandle)(IGetClusterGroupInfo *This,LONG lObjIndex);
     END_INTERFACE
   } IGetClusterGroupInfoVtbl;
-  interface IGetClusterGroupInfo {
+  struct IGetClusterGroupInfo {
     CONST_VTBL struct IGetClusterGroupInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -332,7 +332,7 @@
       WINBOOL (WINAPI *GetResourceNetworkName)(IGetClusterResourceInfo *This,LONG lObjIndex,BSTR lpszNetName,ULONG *pcchNetName);
     END_INTERFACE
   } IGetClusterResourceInfoVtbl;
-  interface IGetClusterResourceInfo {
+  struct IGetClusterResourceInfo {
     CONST_VTBL struct IGetClusterResourceInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -369,7 +369,7 @@
       HNETWORK (WINAPI *GetNetworkHandle)(IGetClusterNetworkInfo *This,LONG lObjIndex);
     END_INTERFACE
   } IGetClusterNetworkInfoVtbl;
-  interface IGetClusterNetworkInfo {
+  struct IGetClusterNetworkInfo {
     CONST_VTBL struct IGetClusterNetworkInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -400,7 +400,7 @@
       HNETINTERFACE (WINAPI *GetNetInterfaceHandle)(IGetClusterNetInterfaceInfo *This,LONG lObjIndex);
     END_INTERFACE
   } IGetClusterNetInterfaceInfoVtbl;
-  interface IGetClusterNetInterfaceInfo {
+  struct IGetClusterNetInterfaceInfo {
     CONST_VTBL struct IGetClusterNetInterfaceInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -431,7 +431,7 @@
       HRESULT (WINAPI *AddPropertySheetPage)(IWCPropertySheetCallback *This,LONG *hpage);
     END_INTERFACE
   } IWCPropertySheetCallbackVtbl;
-  interface IWCPropertySheetCallback {
+  struct IWCPropertySheetCallback {
     CONST_VTBL struct IWCPropertySheetCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -462,7 +462,7 @@
       HRESULT (WINAPI *CreatePropertySheetPages)(IWEExtendPropertySheet *This,IUnknown *piData,IWCPropertySheetCallback *piCallback);
     END_INTERFACE
   } IWEExtendPropertySheetVtbl;
-  interface IWEExtendPropertySheet {
+  struct IWEExtendPropertySheet {
     CONST_VTBL struct IWEExtendPropertySheetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -495,7 +495,7 @@
       HRESULT (WINAPI *EnableNext)(IWCWizardCallback *This,LONG *hpage,WINBOOL bEnable);
     END_INTERFACE
   } IWCWizardCallbackVtbl;
-  interface IWCWizardCallback {
+  struct IWCWizardCallback {
     CONST_VTBL struct IWCWizardCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -529,7 +529,7 @@
       HRESULT (WINAPI *CreateWizardPages)(IWEExtendWizard *This,IUnknown *piData,IWCWizardCallback *piCallback);
     END_INTERFACE
   } IWEExtendWizardVtbl;
-  interface IWEExtendWizard {
+  struct IWEExtendWizard {
     CONST_VTBL struct IWEExtendWizardVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -560,7 +560,7 @@
       HRESULT (WINAPI *AddExtensionMenuItem)(IWCContextMenuCallback *This,BSTR lpszName,BSTR lpszStatusBarText,ULONG nCommandID,ULONG nSubmenuCommandID,ULONG uFlags);
     END_INTERFACE
   } IWCContextMenuCallbackVtbl;
-  interface IWCContextMenuCallback {
+  struct IWCContextMenuCallback {
     CONST_VTBL struct IWCContextMenuCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -591,7 +591,7 @@
       HRESULT (WINAPI *AddContextMenuItems)(IWEExtendContextMenu *This,IUnknown *piData,IWCContextMenuCallback *piCallback);
     END_INTERFACE
   } IWEExtendContextMenuVtbl;
-  interface IWEExtendContextMenu {
+  struct IWEExtendContextMenu {
     CONST_VTBL struct IWEExtendContextMenuVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -622,7 +622,7 @@
       HRESULT (WINAPI *InvokeCommand)(IWEInvokeCommand *This,ULONG nCommandID,IUnknown *piData);
     END_INTERFACE
   } IWEInvokeCommandVtbl;
-  interface IWEInvokeCommand {
+  struct IWEInvokeCommand {
     CONST_VTBL struct IWEInvokeCommandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -655,7 +655,7 @@
       HRESULT (WINAPI *EnableNext)(IWCWizard97Callback *This,LONG *hpage,WINBOOL bEnable);
     END_INTERFACE
   } IWCWizard97CallbackVtbl;
-  interface IWCWizard97Callback {
+  struct IWCWizard97Callback {
     CONST_VTBL struct IWCWizard97CallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -689,7 +689,7 @@
       HRESULT (WINAPI *CreateWizard97Pages)(IWEExtendWizard97 *This,IUnknown *piData,IWCWizard97Callback *piCallback);
     END_INTERFACE
   } IWEExtendWizard97Vtbl;
-  interface IWEExtendWizard97 {
+  struct IWEExtendWizard97 {
     CONST_VTBL struct IWEExtendWizard97Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/cluscfgserver.h b/mingw-w64-headers/include/cluscfgserver.h
index c0f6734..a3acdc3 100755
--- a/mingw-w64-headers/include/cluscfgserver.h
+++ b/mingw-w64-headers/include/cluscfgserver.h
@@ -24,252 +24,252 @@
 
 #ifndef __IClusCfgNodeInfo_FWD_DEFINED__
 #define __IClusCfgNodeInfo_FWD_DEFINED__
-typedef interface IClusCfgNodeInfo IClusCfgNodeInfo;
+typedef struct IClusCfgNodeInfo IClusCfgNodeInfo;
 #endif
 
 #ifndef __AsyncIClusCfgNodeInfo_FWD_DEFINED__
 #define __AsyncIClusCfgNodeInfo_FWD_DEFINED__
-typedef interface AsyncIClusCfgNodeInfo AsyncIClusCfgNodeInfo;
+typedef struct AsyncIClusCfgNodeInfo AsyncIClusCfgNodeInfo;
 #endif
 
 #ifndef __IEnumClusCfgManagedResources_FWD_DEFINED__
 #define __IEnumClusCfgManagedResources_FWD_DEFINED__
-typedef interface IEnumClusCfgManagedResources IEnumClusCfgManagedResources;
+typedef struct IEnumClusCfgManagedResources IEnumClusCfgManagedResources;
 #endif
 
 #ifndef __AsyncIEnumClusCfgManagedResources_FWD_DEFINED__
 #define __AsyncIEnumClusCfgManagedResources_FWD_DEFINED__
-typedef interface AsyncIEnumClusCfgManagedResources AsyncIEnumClusCfgManagedResources;
+typedef struct AsyncIEnumClusCfgManagedResources AsyncIEnumClusCfgManagedResources;
 #endif
 
 #ifndef __IEnumClusCfgNetworks_FWD_DEFINED__
 #define __IEnumClusCfgNetworks_FWD_DEFINED__
-typedef interface IEnumClusCfgNetworks IEnumClusCfgNetworks;
+typedef struct IEnumClusCfgNetworks IEnumClusCfgNetworks;
 #endif
 
 #ifndef __AsyncIEnumClusCfgNetworks_FWD_DEFINED__
 #define __AsyncIEnumClusCfgNetworks_FWD_DEFINED__
-typedef interface AsyncIEnumClusCfgNetworks AsyncIEnumClusCfgNetworks;
+typedef struct AsyncIEnumClusCfgNetworks AsyncIEnumClusCfgNetworks;
 #endif
 
 #ifndef __IClusCfgManagedResourceInfo_FWD_DEFINED__
 #define __IClusCfgManagedResourceInfo_FWD_DEFINED__
-typedef interface IClusCfgManagedResourceInfo IClusCfgManagedResourceInfo;
+typedef struct IClusCfgManagedResourceInfo IClusCfgManagedResourceInfo;
 #endif
 
 #ifndef __AsyncIClusCfgManagedResourceInfo_FWD_DEFINED__
 #define __AsyncIClusCfgManagedResourceInfo_FWD_DEFINED__
-typedef interface AsyncIClusCfgManagedResourceInfo AsyncIClusCfgManagedResourceInfo;
+typedef struct AsyncIClusCfgManagedResourceInfo AsyncIClusCfgManagedResourceInfo;
 #endif
 
 #ifndef __IEnumClusCfgPartitions_FWD_DEFINED__
 #define __IEnumClusCfgPartitions_FWD_DEFINED__
-typedef interface IEnumClusCfgPartitions IEnumClusCfgPartitions;
+typedef struct IEnumClusCfgPartitions IEnumClusCfgPartitions;
 #endif
 
 #ifndef __AsyncIEnumClusCfgPartitions_FWD_DEFINED__
 #define __AsyncIEnumClusCfgPartitions_FWD_DEFINED__
-typedef interface AsyncIEnumClusCfgPartitions AsyncIEnumClusCfgPartitions;
+typedef struct AsyncIEnumClusCfgPartitions AsyncIEnumClusCfgPartitions;
 #endif
 
 #ifndef __IClusCfgPartitionInfo_FWD_DEFINED__
 #define __IClusCfgPartitionInfo_FWD_DEFINED__
-typedef interface IClusCfgPartitionInfo IClusCfgPartitionInfo;
+typedef struct IClusCfgPartitionInfo IClusCfgPartitionInfo;
 #endif
 
 #ifndef __AsyncIClusCfgPartitionInfo_FWD_DEFINED__
 #define __AsyncIClusCfgPartitionInfo_FWD_DEFINED__
-typedef interface AsyncIClusCfgPartitionInfo AsyncIClusCfgPartitionInfo;
+typedef struct AsyncIClusCfgPartitionInfo AsyncIClusCfgPartitionInfo;
 #endif
 
 #ifndef __IEnumClusCfgIPAddresses_FWD_DEFINED__
 #define __IEnumClusCfgIPAddresses_FWD_DEFINED__
-typedef interface IEnumClusCfgIPAddresses IEnumClusCfgIPAddresses;
+typedef struct IEnumClusCfgIPAddresses IEnumClusCfgIPAddresses;
 #endif
 
 #ifndef __AsyncIEnumClusCfgIPAddresses_FWD_DEFINED__
 #define __AsyncIEnumClusCfgIPAddresses_FWD_DEFINED__
-typedef interface AsyncIEnumClusCfgIPAddresses AsyncIEnumClusCfgIPAddresses;
+typedef struct AsyncIEnumClusCfgIPAddresses AsyncIEnumClusCfgIPAddresses;
 #endif
 
 #ifndef __IClusCfgIPAddressInfo_FWD_DEFINED__
 #define __IClusCfgIPAddressInfo_FWD_DEFINED__
-typedef interface IClusCfgIPAddressInfo IClusCfgIPAddressInfo;
+typedef struct IClusCfgIPAddressInfo IClusCfgIPAddressInfo;
 #endif
 
 #ifndef __AsyncIClusCfgIPAddressInfo_FWD_DEFINED__
 #define __AsyncIClusCfgIPAddressInfo_FWD_DEFINED__
-typedef interface AsyncIClusCfgIPAddressInfo AsyncIClusCfgIPAddressInfo;
+typedef struct AsyncIClusCfgIPAddressInfo AsyncIClusCfgIPAddressInfo;
 #endif
 
 #ifndef __IClusCfgNetworkInfo_FWD_DEFINED__
 #define __IClusCfgNetworkInfo_FWD_DEFINED__
-typedef interface IClusCfgNetworkInfo IClusCfgNetworkInfo;
+typedef struct IClusCfgNetworkInfo IClusCfgNetworkInfo;
 #endif
 
 #ifndef __AsyncIClusCfgNetworkInfo_FWD_DEFINED__
 #define __AsyncIClusCfgNetworkInfo_FWD_DEFINED__
-typedef interface AsyncIClusCfgNetworkInfo AsyncIClusCfgNetworkInfo;
+typedef struct AsyncIClusCfgNetworkInfo AsyncIClusCfgNetworkInfo;
 #endif
 
 #ifndef __IClusCfgClusterInfo_FWD_DEFINED__
 #define __IClusCfgClusterInfo_FWD_DEFINED__
-typedef interface IClusCfgClusterInfo IClusCfgClusterInfo;
+typedef struct IClusCfgClusterInfo IClusCfgClusterInfo;
 #endif
 
 #ifndef __AsyncIClusCfgClusterInfo_FWD_DEFINED__
 #define __AsyncIClusCfgClusterInfo_FWD_DEFINED__
-typedef interface AsyncIClusCfgClusterInfo AsyncIClusCfgClusterInfo;
+typedef struct AsyncIClusCfgClusterInfo AsyncIClusCfgClusterInfo;
 #endif
 
 #ifndef __IClusCfgInitialize_FWD_DEFINED__
 #define __IClusCfgInitialize_FWD_DEFINED__
-typedef interface IClusCfgInitialize IClusCfgInitialize;
+typedef struct IClusCfgInitialize IClusCfgInitialize;
 #endif
 
 #ifndef __AsyncIClusCfgInitialize_FWD_DEFINED__
 #define __AsyncIClusCfgInitialize_FWD_DEFINED__
-typedef interface AsyncIClusCfgInitialize AsyncIClusCfgInitialize;
+typedef struct AsyncIClusCfgInitialize AsyncIClusCfgInitialize;
 #endif
 
 #ifndef __IClusCfgCallback_FWD_DEFINED__
 #define __IClusCfgCallback_FWD_DEFINED__
-typedef interface IClusCfgCallback IClusCfgCallback;
+typedef struct IClusCfgCallback IClusCfgCallback;
 #endif
 
 #ifndef __AsyncIClusCfgCallback_FWD_DEFINED__
 #define __AsyncIClusCfgCallback_FWD_DEFINED__
-typedef interface AsyncIClusCfgCallback AsyncIClusCfgCallback;
+typedef struct AsyncIClusCfgCallback AsyncIClusCfgCallback;
 #endif
 
 #ifndef __IClusCfgCredentials_FWD_DEFINED__
 #define __IClusCfgCredentials_FWD_DEFINED__
-typedef interface IClusCfgCredentials IClusCfgCredentials;
+typedef struct IClusCfgCredentials IClusCfgCredentials;
 #endif
 
 #ifndef __AsyncIClusCfgCredentials_FWD_DEFINED__
 #define __AsyncIClusCfgCredentials_FWD_DEFINED__
-typedef interface AsyncIClusCfgCredentials AsyncIClusCfgCredentials;
+typedef struct AsyncIClusCfgCredentials AsyncIClusCfgCredentials;
 #endif
 
 #ifndef __IClusCfgCapabilities_FWD_DEFINED__
 #define __IClusCfgCapabilities_FWD_DEFINED__
-typedef interface IClusCfgCapabilities IClusCfgCapabilities;
+typedef struct IClusCfgCapabilities IClusCfgCapabilities;
 #endif
 
 #ifndef __IClusCfgManagedResourceCfg_FWD_DEFINED__
 #define __IClusCfgManagedResourceCfg_FWD_DEFINED__
-typedef interface IClusCfgManagedResourceCfg IClusCfgManagedResourceCfg;
+typedef struct IClusCfgManagedResourceCfg IClusCfgManagedResourceCfg;
 #endif
 
 #ifndef __IClusCfgResourcePreCreate_FWD_DEFINED__
 #define __IClusCfgResourcePreCreate_FWD_DEFINED__
-typedef interface IClusCfgResourcePreCreate IClusCfgResourcePreCreate;
+typedef struct IClusCfgResourcePreCreate IClusCfgResourcePreCreate;
 #endif
 
 #ifndef __IClusCfgResourceCreate_FWD_DEFINED__
 #define __IClusCfgResourceCreate_FWD_DEFINED__
-typedef interface IClusCfgResourceCreate IClusCfgResourceCreate;
+typedef struct IClusCfgResourceCreate IClusCfgResourceCreate;
 #endif
 
 #ifndef __IClusCfgResourcePostCreate_FWD_DEFINED__
 #define __IClusCfgResourcePostCreate_FWD_DEFINED__
-typedef interface IClusCfgResourcePostCreate IClusCfgResourcePostCreate;
+typedef struct IClusCfgResourcePostCreate IClusCfgResourcePostCreate;
 #endif
 
 #ifndef __IClusCfgGroupCfg_FWD_DEFINED__
 #define __IClusCfgGroupCfg_FWD_DEFINED__
-typedef interface IClusCfgGroupCfg IClusCfgGroupCfg;
+typedef struct IClusCfgGroupCfg IClusCfgGroupCfg;
 #endif
 
 #ifndef __IClusCfgMemberSetChangeListener_FWD_DEFINED__
 #define __IClusCfgMemberSetChangeListener_FWD_DEFINED__
-typedef interface IClusCfgMemberSetChangeListener IClusCfgMemberSetChangeListener;
+typedef struct IClusCfgMemberSetChangeListener IClusCfgMemberSetChangeListener;
 #endif
 
 #ifndef __AsyncIClusCfgMemberSetChangeListener_FWD_DEFINED__
 #define __AsyncIClusCfgMemberSetChangeListener_FWD_DEFINED__
-typedef interface AsyncIClusCfgMemberSetChangeListener AsyncIClusCfgMemberSetChangeListener;
+typedef struct AsyncIClusCfgMemberSetChangeListener AsyncIClusCfgMemberSetChangeListener;
 #endif
 
 #ifndef __IClusCfgResourceTypeInfo_FWD_DEFINED__
 #define __IClusCfgResourceTypeInfo_FWD_DEFINED__
-typedef interface IClusCfgResourceTypeInfo IClusCfgResourceTypeInfo;
+typedef struct IClusCfgResourceTypeInfo IClusCfgResourceTypeInfo;
 #endif
 
 #ifndef __AsyncIClusCfgResourceTypeInfo_FWD_DEFINED__
 #define __AsyncIClusCfgResourceTypeInfo_FWD_DEFINED__
-typedef interface AsyncIClusCfgResourceTypeInfo AsyncIClusCfgResourceTypeInfo;
+typedef struct AsyncIClusCfgResourceTypeInfo AsyncIClusCfgResourceTypeInfo;
 #endif
 
 #ifndef __IClusCfgResourceTypeCreate_FWD_DEFINED__
 #define __IClusCfgResourceTypeCreate_FWD_DEFINED__
-typedef interface IClusCfgResourceTypeCreate IClusCfgResourceTypeCreate;
+typedef struct IClusCfgResourceTypeCreate IClusCfgResourceTypeCreate;
 #endif
 
 #ifndef __AsyncIClusCfgResourceTypeCreate_FWD_DEFINED__
 #define __AsyncIClusCfgResourceTypeCreate_FWD_DEFINED__
-typedef interface AsyncIClusCfgResourceTypeCreate AsyncIClusCfgResourceTypeCreate;
+typedef struct AsyncIClusCfgResourceTypeCreate AsyncIClusCfgResourceTypeCreate;
 #endif
 
 #ifndef __IClusCfgEvictCleanup_FWD_DEFINED__
 #define __IClusCfgEvictCleanup_FWD_DEFINED__
-typedef interface IClusCfgEvictCleanup IClusCfgEvictCleanup;
+typedef struct IClusCfgEvictCleanup IClusCfgEvictCleanup;
 #endif
 
 #ifndef __AsyncIClusCfgEvictCleanup_FWD_DEFINED__
 #define __AsyncIClusCfgEvictCleanup_FWD_DEFINED__
-typedef interface AsyncIClusCfgEvictCleanup AsyncIClusCfgEvictCleanup;
+typedef struct AsyncIClusCfgEvictCleanup AsyncIClusCfgEvictCleanup;
 #endif
 
 #ifndef __IClusCfgStartupListener_FWD_DEFINED__
 #define __IClusCfgStartupListener_FWD_DEFINED__
-typedef interface IClusCfgStartupListener IClusCfgStartupListener;
+typedef struct IClusCfgStartupListener IClusCfgStartupListener;
 #endif
 
 #ifndef __AsyncIClusCfgStartupListener_FWD_DEFINED__
 #define __AsyncIClusCfgStartupListener_FWD_DEFINED__
-typedef interface AsyncIClusCfgStartupListener AsyncIClusCfgStartupListener;
+typedef struct AsyncIClusCfgStartupListener AsyncIClusCfgStartupListener;
 #endif
 
 #ifndef __IClusCfgStartupNotify_FWD_DEFINED__
 #define __IClusCfgStartupNotify_FWD_DEFINED__
-typedef interface IClusCfgStartupNotify IClusCfgStartupNotify;
+typedef struct IClusCfgStartupNotify IClusCfgStartupNotify;
 #endif
 
 #ifndef __AsyncIClusCfgStartupNotify_FWD_DEFINED__
 #define __AsyncIClusCfgStartupNotify_FWD_DEFINED__
-typedef interface AsyncIClusCfgStartupNotify AsyncIClusCfgStartupNotify;
+typedef struct AsyncIClusCfgStartupNotify AsyncIClusCfgStartupNotify;
 #endif
 
 #ifndef __IClusCfgManagedResourceData_FWD_DEFINED__
 #define __IClusCfgManagedResourceData_FWD_DEFINED__
-typedef interface IClusCfgManagedResourceData IClusCfgManagedResourceData;
+typedef struct IClusCfgManagedResourceData IClusCfgManagedResourceData;
 #endif
 
 #ifndef __IClusCfgVerifyQuorum_FWD_DEFINED__
 #define __IClusCfgVerifyQuorum_FWD_DEFINED__
-typedef interface IClusCfgVerifyQuorum IClusCfgVerifyQuorum;
+typedef struct IClusCfgVerifyQuorum IClusCfgVerifyQuorum;
 #endif
 
 #ifndef __IClusCfgEvictListener_FWD_DEFINED__
 #define __IClusCfgEvictListener_FWD_DEFINED__
-typedef interface IClusCfgEvictListener IClusCfgEvictListener;
+typedef struct IClusCfgEvictListener IClusCfgEvictListener;
 #endif
 
 #ifndef __AsyncIClusCfgEvictListener_FWD_DEFINED__
 #define __AsyncIClusCfgEvictListener_FWD_DEFINED__
-typedef interface AsyncIClusCfgEvictListener AsyncIClusCfgEvictListener;
+typedef struct AsyncIClusCfgEvictListener AsyncIClusCfgEvictListener;
 #endif
 
 #ifndef __IClusCfgEvictNotify_FWD_DEFINED__
 #define __IClusCfgEvictNotify_FWD_DEFINED__
-typedef interface IClusCfgEvictNotify IClusCfgEvictNotify;
+typedef struct IClusCfgEvictNotify IClusCfgEvictNotify;
 #endif
 
 #ifndef __AsyncIClusCfgEvictNotify_FWD_DEFINED__
 #define __AsyncIClusCfgEvictNotify_FWD_DEFINED__
-typedef interface AsyncIClusCfgEvictNotify AsyncIClusCfgEvictNotify;
+typedef struct AsyncIClusCfgEvictNotify AsyncIClusCfgEvictNotify;
 #endif
 
 #include "unknwn.h"
@@ -344,7 +344,7 @@
       HRESULT (WINAPI *GetProcessorInfo)(IClusCfgNodeInfo *This,WORD *pwProcessorArchitectureOut,WORD *pwProcessorLevelOut);
     END_INTERFACE
   } IClusCfgNodeInfoVtbl;
-  interface IClusCfgNodeInfo {
+  struct IClusCfgNodeInfo {
     CONST_VTBL struct IClusCfgNodeInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -433,7 +433,7 @@
       HRESULT (WINAPI *Finish_GetProcessorInfo)(AsyncIClusCfgNodeInfo *This,WORD *pwProcessorArchitectureOut,WORD *pwProcessorLevelOut);
     END_INTERFACE
   } AsyncIClusCfgNodeInfoVtbl;
-  interface AsyncIClusCfgNodeInfo {
+  struct AsyncIClusCfgNodeInfo {
     CONST_VTBL struct AsyncIClusCfgNodeInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -523,7 +523,7 @@
       HRESULT (WINAPI *Count)(IEnumClusCfgManagedResources *This,DWORD *pnCountOut);
     END_INTERFACE
   } IEnumClusCfgManagedResourcesVtbl;
-  interface IEnumClusCfgManagedResources {
+  struct IEnumClusCfgManagedResources {
     CONST_VTBL struct IEnumClusCfgManagedResourcesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -584,7 +584,7 @@
       HRESULT (WINAPI *Finish_Count)(AsyncIEnumClusCfgManagedResources *This,DWORD *pnCountOut);
     END_INTERFACE
   } AsyncIEnumClusCfgManagedResourcesVtbl;
-  interface AsyncIEnumClusCfgManagedResources {
+  struct AsyncIEnumClusCfgManagedResources {
     CONST_VTBL struct AsyncIEnumClusCfgManagedResourcesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -650,7 +650,7 @@
       HRESULT (WINAPI *Count)(IEnumClusCfgNetworks *This,DWORD *pnCountOut);
     END_INTERFACE
   } IEnumClusCfgNetworksVtbl;
-  interface IEnumClusCfgNetworks {
+  struct IEnumClusCfgNetworks {
     CONST_VTBL struct IEnumClusCfgNetworksVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -711,7 +711,7 @@
       HRESULT (WINAPI *Finish_Count)(AsyncIEnumClusCfgNetworks *This,DWORD *pnCountOut);
     END_INTERFACE
   } AsyncIEnumClusCfgNetworksVtbl;
-  interface AsyncIEnumClusCfgNetworks {
+  struct AsyncIEnumClusCfgNetworks {
     CONST_VTBL struct AsyncIEnumClusCfgNetworksVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -793,7 +793,7 @@
       HRESULT (WINAPI *SetManagedByDefault)(IClusCfgManagedResourceInfo *This,WINBOOL fIsManagedByDefaultIn);
     END_INTERFACE
   } IClusCfgManagedResourceInfoVtbl;
-  interface IClusCfgManagedResourceInfo {
+  struct IClusCfgManagedResourceInfo {
     CONST_VTBL struct IClusCfgManagedResourceInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -910,7 +910,7 @@
       HRESULT (WINAPI *Finish_SetManagedByDefault)(AsyncIClusCfgManagedResourceInfo *This);
     END_INTERFACE
   } AsyncIClusCfgManagedResourceInfoVtbl;
-  interface AsyncIClusCfgManagedResourceInfo {
+  struct AsyncIClusCfgManagedResourceInfo {
     CONST_VTBL struct AsyncIClusCfgManagedResourceInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1024,7 +1024,7 @@
       HRESULT (WINAPI *Count)(IEnumClusCfgPartitions *This,DWORD *pnCountOut);
     END_INTERFACE
   } IEnumClusCfgPartitionsVtbl;
-  interface IEnumClusCfgPartitions {
+  struct IEnumClusCfgPartitions {
     CONST_VTBL struct IEnumClusCfgPartitionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1085,7 +1085,7 @@
       HRESULT (WINAPI *Finish_Count)(AsyncIEnumClusCfgPartitions *This,DWORD *pnCountOut);
     END_INTERFACE
   } AsyncIEnumClusCfgPartitionsVtbl;
-  interface AsyncIEnumClusCfgPartitions {
+  struct AsyncIEnumClusCfgPartitions {
     CONST_VTBL struct AsyncIEnumClusCfgPartitionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1157,7 +1157,7 @@
       HRESULT (WINAPI *GetSize)(IClusCfgPartitionInfo *This,ULONG *pcMegaBytes);
     END_INTERFACE
   } IClusCfgPartitionInfoVtbl;
-  interface IClusCfgPartitionInfo {
+  struct IClusCfgPartitionInfo {
     CONST_VTBL struct IClusCfgPartitionInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1239,7 +1239,7 @@
       HRESULT (WINAPI *Finish_GetSize)(AsyncIClusCfgPartitionInfo *This,ULONG *pcMegaBytes);
     END_INTERFACE
   } AsyncIClusCfgPartitionInfoVtbl;
-  interface AsyncIClusCfgPartitionInfo {
+  struct AsyncIClusCfgPartitionInfo {
     CONST_VTBL struct AsyncIClusCfgPartitionInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1323,7 +1323,7 @@
       HRESULT (WINAPI *Count)(IEnumClusCfgIPAddresses *This,DWORD *pnCountOut);
     END_INTERFACE
   } IEnumClusCfgIPAddressesVtbl;
-  interface IEnumClusCfgIPAddresses {
+  struct IEnumClusCfgIPAddresses {
     CONST_VTBL struct IEnumClusCfgIPAddressesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1384,7 +1384,7 @@
       HRESULT (WINAPI *Finish_Count)(AsyncIEnumClusCfgIPAddresses *This,DWORD *pnCountOut);
     END_INTERFACE
   } AsyncIEnumClusCfgIPAddressesVtbl;
-  interface AsyncIEnumClusCfgIPAddresses {
+  struct AsyncIEnumClusCfgIPAddresses {
     CONST_VTBL struct AsyncIEnumClusCfgIPAddressesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1450,7 +1450,7 @@
       HRESULT (WINAPI *SetSubnetMask)(IClusCfgIPAddressInfo *This,ULONG ulDottedQuadIn);
     END_INTERFACE
   } IClusCfgIPAddressInfoVtbl;
-  interface IClusCfgIPAddressInfo {
+  struct IClusCfgIPAddressInfo {
     CONST_VTBL struct IClusCfgIPAddressInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1511,7 +1511,7 @@
       HRESULT (WINAPI *Finish_SetSubnetMask)(AsyncIClusCfgIPAddressInfo *This);
     END_INTERFACE
   } AsyncIClusCfgIPAddressInfoVtbl;
-  interface AsyncIClusCfgIPAddressInfo {
+  struct AsyncIClusCfgIPAddressInfo {
     CONST_VTBL struct AsyncIClusCfgIPAddressInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1589,7 +1589,7 @@
       HRESULT (WINAPI *SetPrivate)(IClusCfgNetworkInfo *This,WINBOOL fIsPrivateIn);
     END_INTERFACE
   } IClusCfgNetworkInfoVtbl;
-  interface IClusCfgNetworkInfo {
+  struct IClusCfgNetworkInfo {
     CONST_VTBL struct IClusCfgNetworkInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1692,7 +1692,7 @@
       HRESULT (WINAPI *Finish_SetPrivate)(AsyncIClusCfgNetworkInfo *This);
     END_INTERFACE
   } AsyncIClusCfgNetworkInfoVtbl;
-  interface AsyncIClusCfgNetworkInfo {
+  struct AsyncIClusCfgNetworkInfo {
     CONST_VTBL struct AsyncIClusCfgNetworkInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1812,7 +1812,7 @@
       HRESULT (WINAPI *GetMaxNodeCount)(IClusCfgClusterInfo *This,DWORD *pcMaxNodesOut);
     END_INTERFACE
   } IClusCfgClusterInfoVtbl;
-  interface IClusCfgClusterInfo {
+  struct IClusCfgClusterInfo {
     CONST_VTBL struct IClusCfgClusterInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1936,7 +1936,7 @@
       HRESULT (WINAPI *Finish_GetMaxNodeCount)(AsyncIClusCfgClusterInfo *This,DWORD *pcMaxNodesOut);
     END_INTERFACE
   } AsyncIClusCfgClusterInfoVtbl;
-  interface AsyncIClusCfgClusterInfo {
+  struct AsyncIClusCfgClusterInfo {
     CONST_VTBL struct AsyncIClusCfgClusterInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2048,7 +2048,7 @@
       HRESULT (WINAPI *Initialize)(IClusCfgInitialize *This,IUnknown *punkCallbackIn,LCID lcidIn);
     END_INTERFACE
   } IClusCfgInitializeVtbl;
-  interface IClusCfgInitialize {
+  struct IClusCfgInitialize {
     CONST_VTBL struct IClusCfgInitializeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2081,7 +2081,7 @@
       HRESULT (WINAPI *Finish_Initialize)(AsyncIClusCfgInitialize *This);
     END_INTERFACE
   } AsyncIClusCfgInitializeVtbl;
-  interface AsyncIClusCfgInitialize {
+  struct AsyncIClusCfgInitialize {
     CONST_VTBL struct AsyncIClusCfgInitializeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2115,7 +2115,7 @@
       HRESULT (WINAPI *SendStatusReport)(IClusCfgCallback *This,LPCWSTR pcszNodeNameIn,CLSID clsidTaskMajorIn,CLSID clsidTaskMinorIn,ULONG ulMinIn,ULONG ulMaxIn,ULONG ulCurrentIn,HRESULT hrStatusIn,LPCWSTR pcszDescriptionIn,FILETIME *pftTimeIn,LPCWSTR pcszReferenceIn);
     END_INTERFACE
   } IClusCfgCallbackVtbl;
-  interface IClusCfgCallback {
+  struct IClusCfgCallback {
     CONST_VTBL struct IClusCfgCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2148,7 +2148,7 @@
       HRESULT (WINAPI *Finish_SendStatusReport)(AsyncIClusCfgCallback *This);
     END_INTERFACE
   } AsyncIClusCfgCallbackVtbl;
-  interface AsyncIClusCfgCallback {
+  struct AsyncIClusCfgCallback {
     CONST_VTBL struct AsyncIClusCfgCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2193,7 +2193,7 @@
       HRESULT (WINAPI *AssignFrom)(IClusCfgCredentials *This,IClusCfgCredentials *picccSourceIn);
     END_INTERFACE
   } IClusCfgCredentialsVtbl;
-  interface IClusCfgCredentials {
+  struct IClusCfgCredentials {
     CONST_VTBL struct IClusCfgCredentialsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2261,7 +2261,7 @@
       HRESULT (WINAPI *Finish_AssignFrom)(AsyncIClusCfgCredentials *This);
     END_INTERFACE
   } AsyncIClusCfgCredentialsVtbl;
-  interface AsyncIClusCfgCredentials {
+  struct AsyncIClusCfgCredentials {
     CONST_VTBL struct AsyncIClusCfgCredentialsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2325,7 +2325,7 @@
       HRESULT (WINAPI *CanNodeBeClustered)(IClusCfgCapabilities *This);
     END_INTERFACE
   } IClusCfgCapabilitiesVtbl;
-  interface IClusCfgCapabilities {
+  struct IClusCfgCapabilities {
     CONST_VTBL struct IClusCfgCapabilitiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2362,7 +2362,7 @@
       HRESULT (WINAPI *Evict)(IClusCfgManagedResourceCfg *This,IUnknown *punkServicesIn);
     END_INTERFACE
   } IClusCfgManagedResourceCfgVtbl;
-  interface IClusCfgManagedResourceCfg {
+  struct IClusCfgManagedResourceCfg {
     CONST_VTBL struct IClusCfgManagedResourceCfgVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2406,7 +2406,7 @@
       HRESULT (WINAPI *SetClassType)(IClusCfgResourcePreCreate *This,CLSID *pclsidIn);
     END_INTERFACE
   } IClusCfgResourcePreCreateVtbl;
-  interface IClusCfgResourcePreCreate {
+  struct IClusCfgResourcePreCreate {
     CONST_VTBL struct IClusCfgResourcePreCreateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2461,7 +2461,7 @@
       HRESULT (WINAPI *SendResourceControl)(IClusCfgResourceCreate *This,DWORD dwControlCodeIn,LPVOID lpBufferIn,DWORD cbBufferSizeIn);
     END_INTERFACE
   } IClusCfgResourceCreateVtbl;
-  interface IClusCfgResourceCreate {
+  struct IClusCfgResourceCreate {
     CONST_VTBL struct IClusCfgResourceCreateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2521,7 +2521,7 @@
       HRESULT (WINAPI *SendResourceControl)(IClusCfgResourcePostCreate *This,DWORD dwControlCodeIn,LPVOID lpBufferIn,DWORD cbBufferSizeIn,LPVOID lBufferInout,DWORD cbOutBufferSizeIn,LPDWORD lpcbBytesReturnedOut);
     END_INTERFACE
   } IClusCfgResourcePostCreateVtbl;
-  interface IClusCfgResourcePostCreate {
+  struct IClusCfgResourcePostCreate {
     CONST_VTBL struct IClusCfgResourcePostCreateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2557,7 +2557,7 @@
       HRESULT (WINAPI *GetName)(IClusCfgGroupCfg *This,BSTR *pbstrNameOut);
     END_INTERFACE
   } IClusCfgGroupCfgVtbl;
-  interface IClusCfgGroupCfg {
+  struct IClusCfgGroupCfg {
     CONST_VTBL struct IClusCfgGroupCfgVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2591,7 +2591,7 @@
       HRESULT (WINAPI *Notify)(IClusCfgMemberSetChangeListener *This,IUnknown *punkClusterInfoIn);
     END_INTERFACE
   } IClusCfgMemberSetChangeListenerVtbl;
-  interface IClusCfgMemberSetChangeListener {
+  struct IClusCfgMemberSetChangeListener {
     CONST_VTBL struct IClusCfgMemberSetChangeListenerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2624,7 +2624,7 @@
       HRESULT (WINAPI *Finish_Notify)(AsyncIClusCfgMemberSetChangeListener *This);
     END_INTERFACE
   } AsyncIClusCfgMemberSetChangeListenerVtbl;
-  interface AsyncIClusCfgMemberSetChangeListener {
+  struct AsyncIClusCfgMemberSetChangeListener {
     CONST_VTBL struct AsyncIClusCfgMemberSetChangeListenerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2662,7 +2662,7 @@
       HRESULT (WINAPI *GetTypeGUID)(IClusCfgResourceTypeInfo *This,GUID *pguidGUIDOut);
     END_INTERFACE
   } IClusCfgResourceTypeInfoVtbl;
-  interface IClusCfgResourceTypeInfo {
+  struct IClusCfgResourceTypeInfo {
     CONST_VTBL struct IClusCfgResourceTypeInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2709,7 +2709,7 @@
       HRESULT (WINAPI *Finish_GetTypeGUID)(AsyncIClusCfgResourceTypeInfo *This,GUID *pguidGUIDOut);
     END_INTERFACE
   } AsyncIClusCfgResourceTypeInfoVtbl;
-  interface AsyncIClusCfgResourceTypeInfo {
+  struct AsyncIClusCfgResourceTypeInfo {
     CONST_VTBL struct AsyncIClusCfgResourceTypeInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2757,7 +2757,7 @@
       HRESULT (WINAPI *RegisterAdminExtensions)(IClusCfgResourceTypeCreate *This,const WCHAR *pcszResTypeNameIn,ULONG cExtClsidCountIn,const CLSID *rgclsidExtClsidsIn);
     END_INTERFACE
   } IClusCfgResourceTypeCreateVtbl;
-  interface IClusCfgResourceTypeCreate {
+  struct IClusCfgResourceTypeCreate {
     CONST_VTBL struct IClusCfgResourceTypeCreateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2797,7 +2797,7 @@
       HRESULT (WINAPI *Finish_RegisterAdminExtensions)(AsyncIClusCfgResourceTypeCreate *This);
     END_INTERFACE
   } AsyncIClusCfgResourceTypeCreateVtbl;
-  interface AsyncIClusCfgResourceTypeCreate {
+  struct AsyncIClusCfgResourceTypeCreate {
     CONST_VTBL struct AsyncIClusCfgResourceTypeCreateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2839,7 +2839,7 @@
       HRESULT (WINAPI *CleanupRemoteNode)(IClusCfgEvictCleanup *This,const WCHAR *pcszEvictedNodeNameIn,DWORD dwDelayIn);
     END_INTERFACE
   } IClusCfgEvictCleanupVtbl;
-  interface IClusCfgEvictCleanup {
+  struct IClusCfgEvictCleanup {
     CONST_VTBL struct IClusCfgEvictCleanupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2879,7 +2879,7 @@
       HRESULT (WINAPI *Finish_CleanupRemoteNode)(AsyncIClusCfgEvictCleanup *This);
     END_INTERFACE
   } AsyncIClusCfgEvictCleanupVtbl;
-  interface AsyncIClusCfgEvictCleanup {
+  struct AsyncIClusCfgEvictCleanup {
     CONST_VTBL struct AsyncIClusCfgEvictCleanupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2919,7 +2919,7 @@
       HRESULT (WINAPI *Notify)(IClusCfgStartupListener *This,IUnknown *punkIn);
     END_INTERFACE
   } IClusCfgStartupListenerVtbl;
-  interface IClusCfgStartupListener {
+  struct IClusCfgStartupListener {
     CONST_VTBL struct IClusCfgStartupListenerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2952,7 +2952,7 @@
       HRESULT (WINAPI *Finish_Notify)(AsyncIClusCfgStartupListener *This);
     END_INTERFACE
   } AsyncIClusCfgStartupListenerVtbl;
-  interface AsyncIClusCfgStartupListener {
+  struct AsyncIClusCfgStartupListener {
     CONST_VTBL struct AsyncIClusCfgStartupListenerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2986,7 +2986,7 @@
       HRESULT (WINAPI *SendNotifications)(IClusCfgStartupNotify *This);
     END_INTERFACE
   } IClusCfgStartupNotifyVtbl;
-  interface IClusCfgStartupNotify {
+  struct IClusCfgStartupNotify {
     CONST_VTBL struct IClusCfgStartupNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3019,7 +3019,7 @@
       HRESULT (WINAPI *Finish_SendNotifications)(AsyncIClusCfgStartupNotify *This);
     END_INTERFACE
   } AsyncIClusCfgStartupNotifyVtbl;
-  interface AsyncIClusCfgStartupNotify {
+  struct AsyncIClusCfgStartupNotify {
     CONST_VTBL struct AsyncIClusCfgStartupNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3055,7 +3055,7 @@
       HRESULT (WINAPI *SetResourcePrivateData)(IClusCfgManagedResourceData *This,const BYTE *pcbBufferIn,DWORD cbBufferIn);
     END_INTERFACE
   } IClusCfgManagedResourceDataVtbl;
-  interface IClusCfgManagedResourceData {
+  struct IClusCfgManagedResourceData {
     CONST_VTBL struct IClusCfgManagedResourceDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3095,7 +3095,7 @@
       HRESULT (WINAPI *SetMultiNodeCapable)(IClusCfgVerifyQuorum *This,WINBOOL fMultiNodeCapableIn);
     END_INTERFACE
   } IClusCfgVerifyQuorumVtbl;
-  interface IClusCfgVerifyQuorum {
+  struct IClusCfgVerifyQuorum {
     CONST_VTBL struct IClusCfgVerifyQuorumVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3135,7 +3135,7 @@
       HRESULT (WINAPI *EvictNotify)(IClusCfgEvictListener *This,LPCWSTR pcszNodeNameIn);
     END_INTERFACE
   } IClusCfgEvictListenerVtbl;
-  interface IClusCfgEvictListener {
+  struct IClusCfgEvictListener {
     CONST_VTBL struct IClusCfgEvictListenerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3168,7 +3168,7 @@
       HRESULT (WINAPI *Finish_EvictNotify)(AsyncIClusCfgEvictListener *This);
     END_INTERFACE
   } AsyncIClusCfgEvictListenerVtbl;
-  interface AsyncIClusCfgEvictListener {
+  struct AsyncIClusCfgEvictListener {
     CONST_VTBL struct AsyncIClusCfgEvictListenerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3202,7 +3202,7 @@
       HRESULT (WINAPI *SendNotifications)(IClusCfgEvictNotify *This,LPCWSTR pcszNodeNameIn);
     END_INTERFACE
   } IClusCfgEvictNotifyVtbl;
-  interface IClusCfgEvictNotify {
+  struct IClusCfgEvictNotify {
     CONST_VTBL struct IClusCfgEvictNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3235,7 +3235,7 @@
       HRESULT (WINAPI *Finish_SendNotifications)(AsyncIClusCfgEvictNotify *This);
     END_INTERFACE
   } AsyncIClusCfgEvictNotifyVtbl;
-  interface AsyncIClusCfgEvictNotify {
+  struct AsyncIClusCfgEvictNotify {
     CONST_VTBL struct AsyncIClusCfgEvictNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/cluscfgwizard.h b/mingw-w64-headers/include/cluscfgwizard.h
index 50aec14..3d5e6d0 100755
--- a/mingw-w64-headers/include/cluscfgwizard.h
+++ b/mingw-w64-headers/include/cluscfgwizard.h
@@ -19,12 +19,12 @@
 
 #ifndef __IClusCfgCreateClusterWizard_FWD_DEFINED__
 #define __IClusCfgCreateClusterWizard_FWD_DEFINED__
-typedef interface IClusCfgCreateClusterWizard IClusCfgCreateClusterWizard;
+typedef struct IClusCfgCreateClusterWizard IClusCfgCreateClusterWizard;
 #endif
 
 #ifndef __IClusCfgAddNodesWizard_FWD_DEFINED__
 #define __IClusCfgAddNodesWizard_FWD_DEFINED__
-typedef interface IClusCfgAddNodesWizard IClusCfgAddNodesWizard;
+typedef struct IClusCfgAddNodesWizard IClusCfgAddNodesWizard;
 #endif
 
 #ifndef __ClusCfgCreateClusterWizard_FWD_DEFINED__
@@ -110,7 +110,7 @@
       HRESULT (WINAPI *ShowWizard)(IClusCfgCreateClusterWizard *This,long lParentWindowHandleIn,VARIANT_BOOL *pfCompletedOut);
     END_INTERFACE
   } IClusCfgCreateClusterWizardVtbl;
-  interface IClusCfgCreateClusterWizard {
+  struct IClusCfgCreateClusterWizard {
     CONST_VTBL struct IClusCfgCreateClusterWizardVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -210,7 +210,7 @@
       HRESULT (WINAPI *ShowWizard)(IClusCfgAddNodesWizard *This,long lParentWindowHandleIn,VARIANT_BOOL *pfCompletedOut);
     END_INTERFACE
   } IClusCfgAddNodesWizardVtbl;
-  interface IClusCfgAddNodesWizard {
+  struct IClusCfgAddNodesWizard {
     CONST_VTBL struct IClusCfgAddNodesWizardVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/cmdtree.h b/mingw-w64-headers/include/cmdtree.h
index eb5afec..9ff5534 100755
--- a/mingw-w64-headers/include/cmdtree.h
+++ b/mingw-w64-headers/include/cmdtree.h
@@ -24,12 +24,12 @@
 
 #ifndef __ICommandTree_FWD_DEFINED__
 #define __ICommandTree_FWD_DEFINED__
-typedef interface ICommandTree ICommandTree;
+typedef struct ICommandTree ICommandTree;
 #endif
 
 #ifndef __IQuery_FWD_DEFINED__
 #define __IQuery_FWD_DEFINED__
-typedef interface IQuery IQuery;
+typedef struct IQuery IQuery;
 #endif
 
 #include "oledb.h"
@@ -371,7 +371,7 @@
       HRESULT (WINAPI *SetCommandTree)(ICommandTree *This,DBCOMMANDTREE **ppRoot,DBCOMMANDREUSE dwCommandReuse,WINBOOL fCopy);
     END_INTERFACE
   } ICommandTreeVtbl;
-  interface ICommandTree {
+  struct ICommandTree {
     CONST_VTBL struct ICommandTreeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -417,7 +417,7 @@
       HRESULT (WINAPI *GetCardinalityEstimate)(IQuery *This,DBORDINAL *pulCardinality);
     END_INTERFACE
   } IQueryVtbl;
-  interface IQuery {
+  struct IQuery {
     CONST_VTBL struct IQueryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/comadmin.h b/mingw-w64-headers/include/comadmin.h
index e8d09f8..dd72832 100755
--- a/mingw-w64-headers/include/comadmin.h
+++ b/mingw-w64-headers/include/comadmin.h
@@ -24,22 +24,22 @@
 
 #ifndef __ICOMAdminCatalog_FWD_DEFINED__
 #define __ICOMAdminCatalog_FWD_DEFINED__
-typedef interface ICOMAdminCatalog ICOMAdminCatalog;
+typedef struct ICOMAdminCatalog ICOMAdminCatalog;
 #endif
 
 #ifndef __ICOMAdminCatalog2_FWD_DEFINED__
 #define __ICOMAdminCatalog2_FWD_DEFINED__
-typedef interface ICOMAdminCatalog2 ICOMAdminCatalog2;
+typedef struct ICOMAdminCatalog2 ICOMAdminCatalog2;
 #endif
 
 #ifndef __ICatalogObject_FWD_DEFINED__
 #define __ICatalogObject_FWD_DEFINED__
-typedef interface ICatalogObject ICatalogObject;
+typedef struct ICatalogObject ICatalogObject;
 #endif
 
 #ifndef __ICatalogCollection_FWD_DEFINED__
 #define __ICatalogCollection_FWD_DEFINED__
-typedef interface ICatalogCollection ICatalogCollection;
+typedef struct ICatalogCollection ICatalogCollection;
 #endif
 
 #ifndef __COMAdminCatalog_FWD_DEFINED__
@@ -155,7 +155,7 @@
       HRESULT (WINAPI *GetEventClassesForIID)(ICOMAdminCatalog *This,BSTR bstrIID,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarProgIDs,SAFEARRAY **ppsaVarDescriptions);
     END_INTERFACE
   } ICOMAdminCatalogVtbl;
-  interface ICOMAdminCatalog {
+  struct ICOMAdminCatalog {
     CONST_VTBL struct ICOMAdminCatalogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -363,7 +363,7 @@
       HRESULT (WINAPI *GetComponentVersionCount)(ICOMAdminCatalog2 *This,BSTR bstrCLSIDOrProgID,long *plVersionCount);
     END_INTERFACE
   } ICOMAdminCatalog2Vtbl;
-  interface ICOMAdminCatalog2 {
+  struct ICOMAdminCatalog2 {
     CONST_VTBL struct ICOMAdminCatalog2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -530,7 +530,7 @@
       HRESULT (WINAPI *IsPropertyWriteOnly)(ICatalogObject *This,BSTR bstrPropName,VARIANT_BOOL *pbRetVal);
     END_INTERFACE
   } ICatalogObjectVtbl;
-  interface ICatalogObject {
+  struct ICatalogObject {
     CONST_VTBL struct ICatalogObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -617,7 +617,7 @@
       HRESULT (WINAPI *PopulateByQuery)(ICatalogCollection *This,BSTR bstrQueryString,long lQueryType);
     END_INTERFACE
   } ICatalogCollectionVtbl;
-  interface ICatalogCollection {
+  struct ICatalogCollection {
     CONST_VTBL struct ICatalogCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/comcat.h b/mingw-w64-headers/include/comcat.h
index 3aed42e..5538208 100755
--- a/mingw-w64-headers/include/comcat.h
+++ b/mingw-w64-headers/include/comcat.h
@@ -24,22 +24,22 @@
 
 #ifndef __IEnumGUID_FWD_DEFINED__
 #define __IEnumGUID_FWD_DEFINED__
-typedef interface IEnumGUID IEnumGUID;
+typedef struct IEnumGUID IEnumGUID;
 #endif
 
 #ifndef __IEnumCATEGORYINFO_FWD_DEFINED__
 #define __IEnumCATEGORYINFO_FWD_DEFINED__
-typedef interface IEnumCATEGORYINFO IEnumCATEGORYINFO;
+typedef struct IEnumCATEGORYINFO IEnumCATEGORYINFO;
 #endif
 
 #ifndef __ICatRegister_FWD_DEFINED__
 #define __ICatRegister_FWD_DEFINED__
-typedef interface ICatRegister ICatRegister;
+typedef struct ICatRegister ICatRegister;
 #endif
 
 #ifndef __ICatInformation_FWD_DEFINED__
 #define __ICatInformation_FWD_DEFINED__
-typedef interface ICatInformation ICatInformation;
+typedef struct ICatInformation ICatInformation;
 #endif
 
 #include "unknwn.h"
@@ -113,7 +113,7 @@
       HRESULT (WINAPI *Clone)(IEnumGUID *This,IEnumGUID **ppenum);
     END_INTERFACE
   } IEnumGUIDVtbl;
-  interface IEnumGUID {
+  struct IEnumGUID {
     CONST_VTBL struct IEnumGUIDVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -173,7 +173,7 @@
       HRESULT (WINAPI *Clone)(IEnumCATEGORYINFO *This,IEnumCATEGORYINFO **ppenum);
     END_INTERFACE
   } IEnumCATEGORYINFOVtbl;
-  interface IEnumCATEGORYINFO {
+  struct IEnumCATEGORYINFO {
     CONST_VTBL struct IEnumCATEGORYINFOVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -229,7 +229,7 @@
       HRESULT (WINAPI *UnRegisterClassReqCategories)(ICatRegister *This,REFCLSID rclsid,ULONG cCategories,CATID rgcatid[]);
     END_INTERFACE
   } ICatRegisterVtbl;
-  interface ICatRegister {
+  struct ICatRegister {
     CONST_VTBL struct ICatRegisterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -291,7 +291,7 @@
       HRESULT (WINAPI *EnumReqCategoriesOfClass)(ICatInformation *This,REFCLSID rclsid,IEnumGUID **ppenumCatid);
     END_INTERFACE
   } ICatInformationVtbl;
-  interface ICatInformation {
+  struct ICatInformation {
     CONST_VTBL struct ICatInformationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/commoncontrols.h b/mingw-w64-headers/include/commoncontrols.h
index 7e870b4c..d2bbf84 100755
--- a/mingw-w64-headers/include/commoncontrols.h
+++ b/mingw-w64-headers/include/commoncontrols.h
@@ -24,7 +24,7 @@
 
 #ifndef __IImageList_FWD_DEFINED__
 #define __IImageList_FWD_DEFINED__
-typedef interface IImageList IImageList;
+typedef struct IImageList IImageList;
 #endif
 
 #ifndef __ImageList_FWD_DEFINED__
@@ -124,7 +124,7 @@
       HRESULT (WINAPI *GetOverlayImage)(IImageList *This,int iOverlay,int *piIndex);
     END_INTERFACE
   } IImageListVtbl;
-  interface IImageList {
+  struct IImageList {
     CONST_VTBL struct IImageListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/comsvcs.h b/mingw-w64-headers/include/comsvcs.h
index b3b1fc1..d3c4ac9 100755
--- a/mingw-w64-headers/include/comsvcs.h
+++ b/mingw-w64-headers/include/comsvcs.h
@@ -25,562 +25,562 @@
 
 #ifndef __ISecurityIdentityColl_FWD_DEFINED__
 #define __ISecurityIdentityColl_FWD_DEFINED__
-typedef interface ISecurityIdentityColl ISecurityIdentityColl;
+typedef struct ISecurityIdentityColl ISecurityIdentityColl;
 #endif
 
 #ifndef __ISecurityCallersColl_FWD_DEFINED__
 #define __ISecurityCallersColl_FWD_DEFINED__
-typedef interface ISecurityCallersColl ISecurityCallersColl;
+typedef struct ISecurityCallersColl ISecurityCallersColl;
 #endif
 
 #ifndef __ISecurityCallContext_FWD_DEFINED__
 #define __ISecurityCallContext_FWD_DEFINED__
-typedef interface ISecurityCallContext ISecurityCallContext;
+typedef struct ISecurityCallContext ISecurityCallContext;
 #endif
 
 #ifndef __IGetSecurityCallContext_FWD_DEFINED__
 #define __IGetSecurityCallContext_FWD_DEFINED__
-typedef interface IGetSecurityCallContext IGetSecurityCallContext;
+typedef struct IGetSecurityCallContext IGetSecurityCallContext;
 #endif
 
 #ifndef __SecurityProperty_FWD_DEFINED__
 #define __SecurityProperty_FWD_DEFINED__
-typedef interface SecurityProperty SecurityProperty;
+typedef struct SecurityProperty SecurityProperty;
 #endif
 
 #ifndef __ContextInfo_FWD_DEFINED__
 #define __ContextInfo_FWD_DEFINED__
-typedef interface ContextInfo ContextInfo;
+typedef struct ContextInfo ContextInfo;
 #endif
 
 #ifndef __ContextInfo2_FWD_DEFINED__
 #define __ContextInfo2_FWD_DEFINED__
-typedef interface ContextInfo2 ContextInfo2;
+typedef struct ContextInfo2 ContextInfo2;
 #endif
 
 #ifndef __ObjectContext_FWD_DEFINED__
 #define __ObjectContext_FWD_DEFINED__
-typedef interface ObjectContext ObjectContext;
+typedef struct ObjectContext ObjectContext;
 #endif
 
 #ifndef __ITransactionContextEx_FWD_DEFINED__
 #define __ITransactionContextEx_FWD_DEFINED__
-typedef interface ITransactionContextEx ITransactionContextEx;
+typedef struct ITransactionContextEx ITransactionContextEx;
 #endif
 
 #ifndef __ITransactionContext_FWD_DEFINED__
 #define __ITransactionContext_FWD_DEFINED__
-typedef interface ITransactionContext ITransactionContext;
+typedef struct ITransactionContext ITransactionContext;
 #endif
 
 #ifndef __ICreateWithTransactionEx_FWD_DEFINED__
 #define __ICreateWithTransactionEx_FWD_DEFINED__
-typedef interface ICreateWithTransactionEx ICreateWithTransactionEx;
+typedef struct ICreateWithTransactionEx ICreateWithTransactionEx;
 #endif
 
 #ifndef __ICreateWithTipTransactionEx_FWD_DEFINED__
 #define __ICreateWithTipTransactionEx_FWD_DEFINED__
-typedef interface ICreateWithTipTransactionEx ICreateWithTipTransactionEx;
+typedef struct ICreateWithTipTransactionEx ICreateWithTipTransactionEx;
 #endif
 
 #ifndef __IComUserEvent_FWD_DEFINED__
 #define __IComUserEvent_FWD_DEFINED__
-typedef interface IComUserEvent IComUserEvent;
+typedef struct IComUserEvent IComUserEvent;
 #endif
 
 #ifndef __IComThreadEvents_FWD_DEFINED__
 #define __IComThreadEvents_FWD_DEFINED__
-typedef interface IComThreadEvents IComThreadEvents;
+typedef struct IComThreadEvents IComThreadEvents;
 #endif
 
 #ifndef __IComAppEvents_FWD_DEFINED__
 #define __IComAppEvents_FWD_DEFINED__
-typedef interface IComAppEvents IComAppEvents;
+typedef struct IComAppEvents IComAppEvents;
 #endif
 
 #ifndef __IComInstanceEvents_FWD_DEFINED__
 #define __IComInstanceEvents_FWD_DEFINED__
-typedef interface IComInstanceEvents IComInstanceEvents;
+typedef struct IComInstanceEvents IComInstanceEvents;
 #endif
 
 #ifndef __IComTransactionEvents_FWD_DEFINED__
 #define __IComTransactionEvents_FWD_DEFINED__
-typedef interface IComTransactionEvents IComTransactionEvents;
+typedef struct IComTransactionEvents IComTransactionEvents;
 #endif
 
 #ifndef __IComMethodEvents_FWD_DEFINED__
 #define __IComMethodEvents_FWD_DEFINED__
-typedef interface IComMethodEvents IComMethodEvents;
+typedef struct IComMethodEvents IComMethodEvents;
 #endif
 
 #ifndef __IComObjectEvents_FWD_DEFINED__
 #define __IComObjectEvents_FWD_DEFINED__
-typedef interface IComObjectEvents IComObjectEvents;
+typedef struct IComObjectEvents IComObjectEvents;
 #endif
 
 #ifndef __IComResourceEvents_FWD_DEFINED__
 #define __IComResourceEvents_FWD_DEFINED__
-typedef interface IComResourceEvents IComResourceEvents;
+typedef struct IComResourceEvents IComResourceEvents;
 #endif
 
 #ifndef __IComSecurityEvents_FWD_DEFINED__
 #define __IComSecurityEvents_FWD_DEFINED__
-typedef interface IComSecurityEvents IComSecurityEvents;
+typedef struct IComSecurityEvents IComSecurityEvents;
 #endif
 
 #ifndef __IComObjectPoolEvents_FWD_DEFINED__
 #define __IComObjectPoolEvents_FWD_DEFINED__
-typedef interface IComObjectPoolEvents IComObjectPoolEvents;
+typedef struct IComObjectPoolEvents IComObjectPoolEvents;
 #endif
 
 #ifndef __IComObjectPoolEvents2_FWD_DEFINED__
 #define __IComObjectPoolEvents2_FWD_DEFINED__
-typedef interface IComObjectPoolEvents2 IComObjectPoolEvents2;
+typedef struct IComObjectPoolEvents2 IComObjectPoolEvents2;
 #endif
 
 #ifndef __IComObjectConstructionEvents_FWD_DEFINED__
 #define __IComObjectConstructionEvents_FWD_DEFINED__
-typedef interface IComObjectConstructionEvents IComObjectConstructionEvents;
+typedef struct IComObjectConstructionEvents IComObjectConstructionEvents;
 #endif
 
 #ifndef __IComActivityEvents_FWD_DEFINED__
 #define __IComActivityEvents_FWD_DEFINED__
-typedef interface IComActivityEvents IComActivityEvents;
+typedef struct IComActivityEvents IComActivityEvents;
 #endif
 
 #ifndef __IComIdentityEvents_FWD_DEFINED__
 #define __IComIdentityEvents_FWD_DEFINED__
-typedef interface IComIdentityEvents IComIdentityEvents;
+typedef struct IComIdentityEvents IComIdentityEvents;
 #endif
 
 #ifndef __IComQCEvents_FWD_DEFINED__
 #define __IComQCEvents_FWD_DEFINED__
-typedef interface IComQCEvents IComQCEvents;
+typedef struct IComQCEvents IComQCEvents;
 #endif
 
 #ifndef __IComExceptionEvents_FWD_DEFINED__
 #define __IComExceptionEvents_FWD_DEFINED__
-typedef interface IComExceptionEvents IComExceptionEvents;
+typedef struct IComExceptionEvents IComExceptionEvents;
 #endif
 
 #ifndef __ILBEvents_FWD_DEFINED__
 #define __ILBEvents_FWD_DEFINED__
-typedef interface ILBEvents ILBEvents;
+typedef struct ILBEvents ILBEvents;
 #endif
 
 #ifndef __IComCRMEvents_FWD_DEFINED__
 #define __IComCRMEvents_FWD_DEFINED__
-typedef interface IComCRMEvents IComCRMEvents;
+typedef struct IComCRMEvents IComCRMEvents;
 #endif
 
 #ifndef __IComMethod2Events_FWD_DEFINED__
 #define __IComMethod2Events_FWD_DEFINED__
-typedef interface IComMethod2Events IComMethod2Events;
+typedef struct IComMethod2Events IComMethod2Events;
 #endif
 
 #ifndef __IComTrackingInfoEvents_FWD_DEFINED__
 #define __IComTrackingInfoEvents_FWD_DEFINED__
-typedef interface IComTrackingInfoEvents IComTrackingInfoEvents;
+typedef struct IComTrackingInfoEvents IComTrackingInfoEvents;
 #endif
 
 #ifndef __IComTrackingInfoCollection_FWD_DEFINED__
 #define __IComTrackingInfoCollection_FWD_DEFINED__
-typedef interface IComTrackingInfoCollection IComTrackingInfoCollection;
+typedef struct IComTrackingInfoCollection IComTrackingInfoCollection;
 #endif
 
 #ifndef __IComTrackingInfoObject_FWD_DEFINED__
 #define __IComTrackingInfoObject_FWD_DEFINED__
-typedef interface IComTrackingInfoObject IComTrackingInfoObject;
+typedef struct IComTrackingInfoObject IComTrackingInfoObject;
 #endif
 
 #ifndef __IComTrackingInfoProperties_FWD_DEFINED__
 #define __IComTrackingInfoProperties_FWD_DEFINED__
-typedef interface IComTrackingInfoProperties IComTrackingInfoProperties;
+typedef struct IComTrackingInfoProperties IComTrackingInfoProperties;
 #endif
 
 #ifndef __IComApp2Events_FWD_DEFINED__
 #define __IComApp2Events_FWD_DEFINED__
-typedef interface IComApp2Events IComApp2Events;
+typedef struct IComApp2Events IComApp2Events;
 #endif
 
 #ifndef __IComTransaction2Events_FWD_DEFINED__
 #define __IComTransaction2Events_FWD_DEFINED__
-typedef interface IComTransaction2Events IComTransaction2Events;
+typedef struct IComTransaction2Events IComTransaction2Events;
 #endif
 
 #ifndef __IComInstance2Events_FWD_DEFINED__
 #define __IComInstance2Events_FWD_DEFINED__
-typedef interface IComInstance2Events IComInstance2Events;
+typedef struct IComInstance2Events IComInstance2Events;
 #endif
 
 #ifndef __IComObjectPool2Events_FWD_DEFINED__
 #define __IComObjectPool2Events_FWD_DEFINED__
-typedef interface IComObjectPool2Events IComObjectPool2Events;
+typedef struct IComObjectPool2Events IComObjectPool2Events;
 #endif
 
 #ifndef __IComObjectConstruction2Events_FWD_DEFINED__
 #define __IComObjectConstruction2Events_FWD_DEFINED__
-typedef interface IComObjectConstruction2Events IComObjectConstruction2Events;
+typedef struct IComObjectConstruction2Events IComObjectConstruction2Events;
 #endif
 
 #ifndef __ISystemAppEventData_FWD_DEFINED__
 #define __ISystemAppEventData_FWD_DEFINED__
-typedef interface ISystemAppEventData ISystemAppEventData;
+typedef struct ISystemAppEventData ISystemAppEventData;
 #endif
 
 #ifndef __IMtsEvents_FWD_DEFINED__
 #define __IMtsEvents_FWD_DEFINED__
-typedef interface IMtsEvents IMtsEvents;
+typedef struct IMtsEvents IMtsEvents;
 #endif
 
 #ifndef __IMtsEventInfo_FWD_DEFINED__
 #define __IMtsEventInfo_FWD_DEFINED__
-typedef interface IMtsEventInfo IMtsEventInfo;
+typedef struct IMtsEventInfo IMtsEventInfo;
 #endif
 
 #ifndef __IMTSLocator_FWD_DEFINED__
 #define __IMTSLocator_FWD_DEFINED__
-typedef interface IMTSLocator IMTSLocator;
+typedef struct IMTSLocator IMTSLocator;
 #endif
 
 #ifndef __IMtsGrp_FWD_DEFINED__
 #define __IMtsGrp_FWD_DEFINED__
-typedef interface IMtsGrp IMtsGrp;
+typedef struct IMtsGrp IMtsGrp;
 #endif
 
 #ifndef __IMessageMover_FWD_DEFINED__
 #define __IMessageMover_FWD_DEFINED__
-typedef interface IMessageMover IMessageMover;
+typedef struct IMessageMover IMessageMover;
 #endif
 
 #ifndef __IEventServerTrace_FWD_DEFINED__
 #define __IEventServerTrace_FWD_DEFINED__
-typedef interface IEventServerTrace IEventServerTrace;
+typedef struct IEventServerTrace IEventServerTrace;
 #endif
 
 #ifndef __IDispenserManager_FWD_DEFINED__
 #define __IDispenserManager_FWD_DEFINED__
-typedef interface IDispenserManager IDispenserManager;
+typedef struct IDispenserManager IDispenserManager;
 #endif
 
 #ifndef __IHolder_FWD_DEFINED__
 #define __IHolder_FWD_DEFINED__
-typedef interface IHolder IHolder;
+typedef struct IHolder IHolder;
 #endif
 
 #ifndef __IDispenserDriver_FWD_DEFINED__
 #define __IDispenserDriver_FWD_DEFINED__
-typedef interface IDispenserDriver IDispenserDriver;
+typedef struct IDispenserDriver IDispenserDriver;
 #endif
 
 #ifndef __IObjectContext_FWD_DEFINED__
 #define __IObjectContext_FWD_DEFINED__
-typedef interface IObjectContext IObjectContext;
+typedef struct IObjectContext IObjectContext;
 #endif
 
 #ifndef __IObjectControl_FWD_DEFINED__
 #define __IObjectControl_FWD_DEFINED__
-typedef interface IObjectControl IObjectControl;
+typedef struct IObjectControl IObjectControl;
 #endif
 
 #ifndef __IEnumNames_FWD_DEFINED__
 #define __IEnumNames_FWD_DEFINED__
-typedef interface IEnumNames IEnumNames;
+typedef struct IEnumNames IEnumNames;
 #endif
 
 #ifndef __ISecurityProperty_FWD_DEFINED__
 #define __ISecurityProperty_FWD_DEFINED__
-typedef interface ISecurityProperty ISecurityProperty;
+typedef struct ISecurityProperty ISecurityProperty;
 #endif
 
 #ifndef __ObjectControl_FWD_DEFINED__
 #define __ObjectControl_FWD_DEFINED__
-typedef interface ObjectControl ObjectControl;
+typedef struct ObjectControl ObjectControl;
 #endif
 
 #ifndef __ISharedProperty_FWD_DEFINED__
 #define __ISharedProperty_FWD_DEFINED__
-typedef interface ISharedProperty ISharedProperty;
+typedef struct ISharedProperty ISharedProperty;
 #endif
 
 #ifndef __ISharedPropertyGroup_FWD_DEFINED__
 #define __ISharedPropertyGroup_FWD_DEFINED__
-typedef interface ISharedPropertyGroup ISharedPropertyGroup;
+typedef struct ISharedPropertyGroup ISharedPropertyGroup;
 #endif
 
 #ifndef __ISharedPropertyGroupManager_FWD_DEFINED__
 #define __ISharedPropertyGroupManager_FWD_DEFINED__
-typedef interface ISharedPropertyGroupManager ISharedPropertyGroupManager;
+typedef struct ISharedPropertyGroupManager ISharedPropertyGroupManager;
 #endif
 
 #ifndef __IObjectConstruct_FWD_DEFINED__
 #define __IObjectConstruct_FWD_DEFINED__
-typedef interface IObjectConstruct IObjectConstruct;
+typedef struct IObjectConstruct IObjectConstruct;
 #endif
 
 #ifndef __IObjectConstructString_FWD_DEFINED__
 #define __IObjectConstructString_FWD_DEFINED__
-typedef interface IObjectConstructString IObjectConstructString;
+typedef struct IObjectConstructString IObjectConstructString;
 #endif
 
 #ifndef __IObjectContextActivity_FWD_DEFINED__
 #define __IObjectContextActivity_FWD_DEFINED__
-typedef interface IObjectContextActivity IObjectContextActivity;
+typedef struct IObjectContextActivity IObjectContextActivity;
 #endif
 
 #ifndef __IObjectContextInfo_FWD_DEFINED__
 #define __IObjectContextInfo_FWD_DEFINED__
-typedef interface IObjectContextInfo IObjectContextInfo;
+typedef struct IObjectContextInfo IObjectContextInfo;
 #endif
 
 #ifndef __IObjectContextInfo2_FWD_DEFINED__
 #define __IObjectContextInfo2_FWD_DEFINED__
-typedef interface IObjectContextInfo2 IObjectContextInfo2;
+typedef struct IObjectContextInfo2 IObjectContextInfo2;
 #endif
 
 #ifndef __ITransactionStatus_FWD_DEFINED__
 #define __ITransactionStatus_FWD_DEFINED__
-typedef interface ITransactionStatus ITransactionStatus;
+typedef struct ITransactionStatus ITransactionStatus;
 #endif
 
 #ifndef __IObjectContextTip_FWD_DEFINED__
 #define __IObjectContextTip_FWD_DEFINED__
-typedef interface IObjectContextTip IObjectContextTip;
+typedef struct IObjectContextTip IObjectContextTip;
 #endif
 
 #ifndef __IPlaybackControl_FWD_DEFINED__
 #define __IPlaybackControl_FWD_DEFINED__
-typedef interface IPlaybackControl IPlaybackControl;
+typedef struct IPlaybackControl IPlaybackControl;
 #endif
 
 #ifndef __IGetContextProperties_FWD_DEFINED__
 #define __IGetContextProperties_FWD_DEFINED__
-typedef interface IGetContextProperties IGetContextProperties;
+typedef struct IGetContextProperties IGetContextProperties;
 #endif
 
 #ifndef __IContextState_FWD_DEFINED__
 #define __IContextState_FWD_DEFINED__
-typedef interface IContextState IContextState;
+typedef struct IContextState IContextState;
 #endif
 
 #ifndef __IPoolManager_FWD_DEFINED__
 #define __IPoolManager_FWD_DEFINED__
-typedef interface IPoolManager IPoolManager;
+typedef struct IPoolManager IPoolManager;
 #endif
 
 #ifndef __ISelectCOMLBServer_FWD_DEFINED__
 #define __ISelectCOMLBServer_FWD_DEFINED__
-typedef interface ISelectCOMLBServer ISelectCOMLBServer;
+typedef struct ISelectCOMLBServer ISelectCOMLBServer;
 #endif
 
 #ifndef __ICOMLBArguments_FWD_DEFINED__
 #define __ICOMLBArguments_FWD_DEFINED__
-typedef interface ICOMLBArguments ICOMLBArguments;
+typedef struct ICOMLBArguments ICOMLBArguments;
 #endif
 
 #ifndef __ICrmLogControl_FWD_DEFINED__
 #define __ICrmLogControl_FWD_DEFINED__
-typedef interface ICrmLogControl ICrmLogControl;
+typedef struct ICrmLogControl ICrmLogControl;
 #endif
 
 #ifndef __ICrmCompensatorVariants_FWD_DEFINED__
 #define __ICrmCompensatorVariants_FWD_DEFINED__
-typedef interface ICrmCompensatorVariants ICrmCompensatorVariants;
+typedef struct ICrmCompensatorVariants ICrmCompensatorVariants;
 #endif
 
 #ifndef __ICrmCompensator_FWD_DEFINED__
 #define __ICrmCompensator_FWD_DEFINED__
-typedef interface ICrmCompensator ICrmCompensator;
+typedef struct ICrmCompensator ICrmCompensator;
 #endif
 
 #ifndef __ICrmMonitorLogRecords_FWD_DEFINED__
 #define __ICrmMonitorLogRecords_FWD_DEFINED__
-typedef interface ICrmMonitorLogRecords ICrmMonitorLogRecords;
+typedef struct ICrmMonitorLogRecords ICrmMonitorLogRecords;
 #endif
 
 #ifndef __ICrmMonitorClerks_FWD_DEFINED__
 #define __ICrmMonitorClerks_FWD_DEFINED__
-typedef interface ICrmMonitorClerks ICrmMonitorClerks;
+typedef struct ICrmMonitorClerks ICrmMonitorClerks;
 #endif
 
 #ifndef __ICrmMonitor_FWD_DEFINED__
 #define __ICrmMonitor_FWD_DEFINED__
-typedef interface ICrmMonitor ICrmMonitor;
+typedef struct ICrmMonitor ICrmMonitor;
 #endif
 
 #ifndef __ICrmFormatLogRecords_FWD_DEFINED__
 #define __ICrmFormatLogRecords_FWD_DEFINED__
-typedef interface ICrmFormatLogRecords ICrmFormatLogRecords;
+typedef struct ICrmFormatLogRecords ICrmFormatLogRecords;
 #endif
 
 #ifndef __IServiceIISIntrinsicsConfig_FWD_DEFINED__
 #define __IServiceIISIntrinsicsConfig_FWD_DEFINED__
-typedef interface IServiceIISIntrinsicsConfig IServiceIISIntrinsicsConfig;
+typedef struct IServiceIISIntrinsicsConfig IServiceIISIntrinsicsConfig;
 #endif
 
 #ifndef __IServiceComTIIntrinsicsConfig_FWD_DEFINED__
 #define __IServiceComTIIntrinsicsConfig_FWD_DEFINED__
-typedef interface IServiceComTIIntrinsicsConfig IServiceComTIIntrinsicsConfig;
+typedef struct IServiceComTIIntrinsicsConfig IServiceComTIIntrinsicsConfig;
 #endif
 
 #ifndef __IServiceSxsConfig_FWD_DEFINED__
 #define __IServiceSxsConfig_FWD_DEFINED__
-typedef interface IServiceSxsConfig IServiceSxsConfig;
+typedef struct IServiceSxsConfig IServiceSxsConfig;
 #endif
 
 #ifndef __ICheckSxsConfig_FWD_DEFINED__
 #define __ICheckSxsConfig_FWD_DEFINED__
-typedef interface ICheckSxsConfig ICheckSxsConfig;
+typedef struct ICheckSxsConfig ICheckSxsConfig;
 #endif
 
 #ifndef __IServiceInheritanceConfig_FWD_DEFINED__
 #define __IServiceInheritanceConfig_FWD_DEFINED__
-typedef interface IServiceInheritanceConfig IServiceInheritanceConfig;
+typedef struct IServiceInheritanceConfig IServiceInheritanceConfig;
 #endif
 
 #ifndef __IServiceThreadPoolConfig_FWD_DEFINED__
 #define __IServiceThreadPoolConfig_FWD_DEFINED__
-typedef interface IServiceThreadPoolConfig IServiceThreadPoolConfig;
+typedef struct IServiceThreadPoolConfig IServiceThreadPoolConfig;
 #endif
 
 #ifndef __IServiceTransactionConfigBase_FWD_DEFINED__
 #define __IServiceTransactionConfigBase_FWD_DEFINED__
-typedef interface IServiceTransactionConfigBase IServiceTransactionConfigBase;
+typedef struct IServiceTransactionConfigBase IServiceTransactionConfigBase;
 #endif
 
 #ifndef __IServiceTransactionConfig_FWD_DEFINED__
 #define __IServiceTransactionConfig_FWD_DEFINED__
-typedef interface IServiceTransactionConfig IServiceTransactionConfig;
+typedef struct IServiceTransactionConfig IServiceTransactionConfig;
 #endif
 
 #ifndef __IServiceSynchronizationConfig_FWD_DEFINED__
 #define __IServiceSynchronizationConfig_FWD_DEFINED__
-typedef interface IServiceSynchronizationConfig IServiceSynchronizationConfig;
+typedef struct IServiceSynchronizationConfig IServiceSynchronizationConfig;
 #endif
 
 #ifndef __IServiceTrackerConfig_FWD_DEFINED__
 #define __IServiceTrackerConfig_FWD_DEFINED__
-typedef interface IServiceTrackerConfig IServiceTrackerConfig;
+typedef struct IServiceTrackerConfig IServiceTrackerConfig;
 #endif
 
 #ifndef __IServicePartitionConfig_FWD_DEFINED__
 #define __IServicePartitionConfig_FWD_DEFINED__
-typedef interface IServicePartitionConfig IServicePartitionConfig;
+typedef struct IServicePartitionConfig IServicePartitionConfig;
 #endif
 
 #ifndef __IServiceCall_FWD_DEFINED__
 #define __IServiceCall_FWD_DEFINED__
-typedef interface IServiceCall IServiceCall;
+typedef struct IServiceCall IServiceCall;
 #endif
 
 #ifndef __IAsyncErrorNotify_FWD_DEFINED__
 #define __IAsyncErrorNotify_FWD_DEFINED__
-typedef interface IAsyncErrorNotify IAsyncErrorNotify;
+typedef struct IAsyncErrorNotify IAsyncErrorNotify;
 #endif
 
 #ifndef __IServiceActivity_FWD_DEFINED__
 #define __IServiceActivity_FWD_DEFINED__
-typedef interface IServiceActivity IServiceActivity;
+typedef struct IServiceActivity IServiceActivity;
 #endif
 
 #ifndef __IThreadPoolKnobs_FWD_DEFINED__
 #define __IThreadPoolKnobs_FWD_DEFINED__
-typedef interface IThreadPoolKnobs IThreadPoolKnobs;
+typedef struct IThreadPoolKnobs IThreadPoolKnobs;
 #endif
 
 #ifndef __IComStaThreadPoolKnobs_FWD_DEFINED__
 #define __IComStaThreadPoolKnobs_FWD_DEFINED__
-typedef interface IComStaThreadPoolKnobs IComStaThreadPoolKnobs;
+typedef struct IComStaThreadPoolKnobs IComStaThreadPoolKnobs;
 #endif
 
 #ifndef __IComMtaThreadPoolKnobs_FWD_DEFINED__
 #define __IComMtaThreadPoolKnobs_FWD_DEFINED__
-typedef interface IComMtaThreadPoolKnobs IComMtaThreadPoolKnobs;
+typedef struct IComMtaThreadPoolKnobs IComMtaThreadPoolKnobs;
 #endif
 
 #ifndef __IComStaThreadPoolKnobs2_FWD_DEFINED__
 #define __IComStaThreadPoolKnobs2_FWD_DEFINED__
-typedef interface IComStaThreadPoolKnobs2 IComStaThreadPoolKnobs2;
+typedef struct IComStaThreadPoolKnobs2 IComStaThreadPoolKnobs2;
 #endif
 
 #ifndef __IProcessInitializer_FWD_DEFINED__
 #define __IProcessInitializer_FWD_DEFINED__
-typedef interface IProcessInitializer IProcessInitializer;
+typedef struct IProcessInitializer IProcessInitializer;
 #endif
 
 #ifndef __IServicePoolConfig_FWD_DEFINED__
 #define __IServicePoolConfig_FWD_DEFINED__
-typedef interface IServicePoolConfig IServicePoolConfig;
+typedef struct IServicePoolConfig IServicePoolConfig;
 #endif
 
 #ifndef __IServicePool_FWD_DEFINED__
 #define __IServicePool_FWD_DEFINED__
-typedef interface IServicePool IServicePool;
+typedef struct IServicePool IServicePool;
 #endif
 
 #ifndef __IManagedPooledObj_FWD_DEFINED__
 #define __IManagedPooledObj_FWD_DEFINED__
-typedef interface IManagedPooledObj IManagedPooledObj;
+typedef struct IManagedPooledObj IManagedPooledObj;
 #endif
 
 #ifndef __IManagedPoolAction_FWD_DEFINED__
 #define __IManagedPoolAction_FWD_DEFINED__
-typedef interface IManagedPoolAction IManagedPoolAction;
+typedef struct IManagedPoolAction IManagedPoolAction;
 #endif
 
 #ifndef __IManagedObjectInfo_FWD_DEFINED__
 #define __IManagedObjectInfo_FWD_DEFINED__
-typedef interface IManagedObjectInfo IManagedObjectInfo;
+typedef struct IManagedObjectInfo IManagedObjectInfo;
 #endif
 
 #ifndef __IAppDomainHelper_FWD_DEFINED__
 #define __IAppDomainHelper_FWD_DEFINED__
-typedef interface IAppDomainHelper IAppDomainHelper;
+typedef struct IAppDomainHelper IAppDomainHelper;
 #endif
 
 #ifndef __IAssemblyLocator_FWD_DEFINED__
 #define __IAssemblyLocator_FWD_DEFINED__
-typedef interface IAssemblyLocator IAssemblyLocator;
+typedef struct IAssemblyLocator IAssemblyLocator;
 #endif
 
 #ifndef __IManagedActivationEvents_FWD_DEFINED__
 #define __IManagedActivationEvents_FWD_DEFINED__
-typedef interface IManagedActivationEvents IManagedActivationEvents;
+typedef struct IManagedActivationEvents IManagedActivationEvents;
 #endif
 
 #ifndef __ISendMethodEvents_FWD_DEFINED__
 #define __ISendMethodEvents_FWD_DEFINED__
-typedef interface ISendMethodEvents ISendMethodEvents;
+typedef struct ISendMethodEvents ISendMethodEvents;
 #endif
 
 #ifndef __ITransactionResourcePool_FWD_DEFINED__
 #define __ITransactionResourcePool_FWD_DEFINED__
-typedef interface ITransactionResourcePool ITransactionResourcePool;
+typedef struct ITransactionResourcePool ITransactionResourcePool;
 #endif
 
 #ifndef __IMTSCall_FWD_DEFINED__
 #define __IMTSCall_FWD_DEFINED__
-typedef interface IMTSCall IMTSCall;
+typedef struct IMTSCall IMTSCall;
 #endif
 
 #ifndef __IContextProperties_FWD_DEFINED__
 #define __IContextProperties_FWD_DEFINED__
-typedef interface IContextProperties IContextProperties;
+typedef struct IContextProperties IContextProperties;
 #endif
 
 #ifndef __IObjPool_FWD_DEFINED__
 #define __IObjPool_FWD_DEFINED__
-typedef interface IObjPool IObjPool;
+typedef struct IObjPool IObjPool;
 #endif
 
 #ifndef __ITransactionProperty_FWD_DEFINED__
 #define __ITransactionProperty_FWD_DEFINED__
-typedef interface ITransactionProperty ITransactionProperty;
+typedef struct ITransactionProperty ITransactionProperty;
 #endif
 
 #ifndef __IMTSActivity_FWD_DEFINED__
 #define __IMTSActivity_FWD_DEFINED__
-typedef interface IMTSActivity IMTSActivity;
+typedef struct IMTSActivity IMTSActivity;
 #endif
 
 #ifndef __SecurityIdentity_FWD_DEFINED__
@@ -621,7 +621,7 @@
 
 #ifndef __IContextState_FWD_DEFINED__
 #define __IContextState_FWD_DEFINED__
-typedef interface IContextState IContextState;
+typedef struct IContextState IContextState;
 #endif
 
 #ifndef __Dummy30040732_FWD_DEFINED__
@@ -635,17 +635,17 @@
 
 #ifndef __ContextInfo_FWD_DEFINED__
 #define __ContextInfo_FWD_DEFINED__
-typedef interface ContextInfo ContextInfo;
+typedef struct ContextInfo ContextInfo;
 #endif
 
 #ifndef __ContextInfo2_FWD_DEFINED__
 #define __ContextInfo2_FWD_DEFINED__
-typedef interface ContextInfo2 ContextInfo2;
+typedef struct ContextInfo2 ContextInfo2;
 #endif
 
 #ifndef __ObjectControl_FWD_DEFINED__
 #define __ObjectControl_FWD_DEFINED__
-typedef interface ObjectControl ObjectControl;
+typedef struct ObjectControl ObjectControl;
 #endif
 
 #ifndef __TransactionContext_FWD_DEFINED__
@@ -898,7 +898,7 @@
       HRESULT (WINAPI *get__NewEnum)(ISecurityIdentityColl *This,IUnknown **ppEnum);
     END_INTERFACE
   } ISecurityIdentityCollVtbl;
-  interface ISecurityIdentityColl {
+  struct ISecurityIdentityColl {
     CONST_VTBL struct ISecurityIdentityCollVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -947,7 +947,7 @@
       HRESULT (WINAPI *get__NewEnum)(ISecurityCallersColl *This,IUnknown **ppEnum);
     END_INTERFACE
   } ISecurityCallersCollVtbl;
-  interface ISecurityCallersColl {
+  struct ISecurityCallersColl {
     CONST_VTBL struct ISecurityCallersCollVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1002,7 +1002,7 @@
       HRESULT (WINAPI *IsUserInRole)(ISecurityCallContext *This,VARIANT *pUser,BSTR bstrRole,VARIANT_BOOL *pfInRole);
     END_INTERFACE
   } ISecurityCallContextVtbl;
-  interface ISecurityCallContext {
+  struct ISecurityCallContext {
     CONST_VTBL struct ISecurityCallContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1056,7 +1056,7 @@
       HRESULT (WINAPI *GetSecurityCallContext)(IGetSecurityCallContext *This,ISecurityCallContext **ppObject);
     END_INTERFACE
   } IGetSecurityCallContextVtbl;
-  interface IGetSecurityCallContext {
+  struct IGetSecurityCallContext {
     CONST_VTBL struct IGetSecurityCallContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1101,7 +1101,7 @@
       HRESULT (WINAPI *GetOriginalCreatorName)(SecurityProperty *This,BSTR *bstrUserName);
     END_INTERFACE
   } SecurityPropertyVtbl;
-  interface SecurityProperty {
+  struct SecurityProperty {
     CONST_VTBL struct SecurityPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1157,7 +1157,7 @@
       HRESULT (WINAPI *GetContextId)(ContextInfo *This,BSTR *pbstrCtxId);
     END_INTERFACE
   } ContextInfoVtbl;
-  interface ContextInfo {
+  struct ContextInfo {
     CONST_VTBL struct ContextInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1217,7 +1217,7 @@
       HRESULT (WINAPI *GetApplicationInstanceId)(ContextInfo2 *This,BSTR *__MIDL_0013);
     END_INTERFACE
   } ContextInfo2Vtbl;
-  interface ContextInfo2 {
+  struct ContextInfo2 {
     CONST_VTBL struct ContextInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1291,7 +1291,7 @@
       HRESULT (WINAPI *get_ContextInfo)(ObjectContext *This,ContextInfo **ppContextInfo);
     END_INTERFACE
   } ObjectContextVtbl;
-  interface ObjectContext {
+  struct ObjectContext {
     CONST_VTBL struct ObjectContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1366,7 +1366,7 @@
       HRESULT (WINAPI *Abort)(ITransactionContextEx *This);
     END_INTERFACE
   } ITransactionContextExVtbl;
-  interface ITransactionContextEx {
+  struct ITransactionContextEx {
     CONST_VTBL struct ITransactionContextExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1411,7 +1411,7 @@
       HRESULT (WINAPI *Abort)(ITransactionContext *This);
     END_INTERFACE
   } ITransactionContextVtbl;
-  interface ITransactionContext {
+  struct ITransactionContext {
     CONST_VTBL struct ITransactionContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1452,7 +1452,7 @@
       HRESULT (WINAPI *CreateInstance)(ICreateWithTransactionEx *This,ITransaction *pTransaction,REFCLSID rclsid,REFIID riid,void **pObject);
     END_INTERFACE
   } ICreateWithTransactionExVtbl;
-  interface ICreateWithTransactionEx {
+  struct ICreateWithTransactionEx {
     CONST_VTBL struct ICreateWithTransactionExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1483,7 +1483,7 @@
       HRESULT (WINAPI *CreateInstance)(ICreateWithTipTransactionEx *This,BSTR bstrTipUrl,REFCLSID rclsid,REFIID riid,void **pObject);
     END_INTERFACE
   } ICreateWithTipTransactionExVtbl;
-  interface ICreateWithTipTransactionEx {
+  struct ICreateWithTipTransactionEx {
     CONST_VTBL struct ICreateWithTipTransactionExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1534,7 +1534,7 @@
       HRESULT (WINAPI *OnUserEvent)(IComUserEvent *This,COMSVCSEVENTINFO *pInfo,VARIANT *pvarEvent);
     END_INTERFACE
   } IComUserEventVtbl;
-  interface IComUserEvent {
+  struct IComUserEvent {
     CONST_VTBL struct IComUserEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1585,7 +1585,7 @@
       HRESULT (WINAPI *OnThreadUnassignApartment)(IComThreadEvents *This,COMSVCSEVENTINFO *pInfo,ULONG64 AptID);
     END_INTERFACE
   } IComThreadEventsVtbl;
-  interface IComThreadEvents {
+  struct IComThreadEvents {
     CONST_VTBL struct IComThreadEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1650,7 +1650,7 @@
       HRESULT (WINAPI *OnAppForceShutdown)(IComAppEvents *This,COMSVCSEVENTINFO *pInfo,GUID guidApp);
     END_INTERFACE
   } IComAppEventsVtbl;
-  interface IComAppEvents {
+  struct IComAppEvents {
     CONST_VTBL struct IComAppEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1689,7 +1689,7 @@
       HRESULT (WINAPI *OnObjectDestroy)(IComInstanceEvents *This,COMSVCSEVENTINFO *pInfo,ULONG64 CtxtID);
     END_INTERFACE
   } IComInstanceEventsVtbl;
-  interface IComInstanceEvents {
+  struct IComInstanceEvents {
     CONST_VTBL struct IComInstanceEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1729,7 +1729,7 @@
       HRESULT (WINAPI *OnTransactionCommit)(IComTransactionEvents *This,COMSVCSEVENTINFO *pInfo,REFGUID guidTx);
     END_INTERFACE
   } IComTransactionEventsVtbl;
-  interface IComTransactionEvents {
+  struct IComTransactionEvents {
     CONST_VTBL struct IComTransactionEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1773,7 +1773,7 @@
       HRESULT (WINAPI *OnMethodException)(IComMethodEvents *This,COMSVCSEVENTINFO *pInfo,ULONG64 oid,REFCLSID guidCid,REFIID guidRid,ULONG iMeth);
     END_INTERFACE
   } IComMethodEventsVtbl;
-  interface IComMethodEvents {
+  struct IComMethodEvents {
     CONST_VTBL struct IComMethodEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1820,7 +1820,7 @@
       HRESULT (WINAPI *OnSetAbort)(IComObjectEvents *This,COMSVCSEVENTINFO *pInfo,ULONG64 CtxtID);
     END_INTERFACE
   } IComObjectEventsVtbl;
-  interface IComObjectEvents {
+  struct IComObjectEvents {
     CONST_VTBL struct IComObjectEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1874,7 +1874,7 @@
       HRESULT (WINAPI *OnResourceTrack)(IComResourceEvents *This,COMSVCSEVENTINFO *pInfo,ULONG64 ObjectID,LPCOLESTR pszType,ULONG64 resId,WINBOOL enlisted);
     END_INTERFACE
   } IComResourceEventsVtbl;
-  interface IComResourceEvents {
+  struct IComResourceEvents {
     CONST_VTBL struct IComResourceEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1919,7 +1919,7 @@
       HRESULT (WINAPI *OnAuthenticateFail)(IComSecurityEvents *This,COMSVCSEVENTINFO *pInfo,REFGUID guidActivity,ULONG64 ObjectID,REFGUID guidIID,ULONG iMeth,ULONG cbByteOrig,BYTE *pSidOriginalUser,ULONG cbByteCur,BYTE *pSidCurrentUser,WINBOOL bCurrentUserInpersonatingInProc);
     END_INTERFACE
   } IComSecurityEventsVtbl;
-  interface IComSecurityEvents {
+  struct IComSecurityEvents {
     CONST_VTBL struct IComSecurityEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1959,7 +1959,7 @@
       HRESULT (WINAPI *OnObjPoolGetFromTx)(IComObjectPoolEvents *This,COMSVCSEVENTINFO *pInfo,REFGUID guidActivity,REFGUID guidObject,REFGUID guidTx,ULONG64 objid);
     END_INTERFACE
   } IComObjectPoolEventsVtbl;
-  interface IComObjectPoolEvents {
+  struct IComObjectPoolEvents {
     CONST_VTBL struct IComObjectPoolEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2007,7 +2007,7 @@
       HRESULT (WINAPI *OnObjPoolCreatePool)(IComObjectPoolEvents2 *This,COMSVCSEVENTINFO *pInfo,REFGUID guidObject,DWORD dwMin,DWORD dwMax,DWORD dwTimeout);
     END_INTERFACE
   } IComObjectPoolEvents2Vtbl;
-  interface IComObjectPoolEvents2 {
+  struct IComObjectPoolEvents2 {
     CONST_VTBL struct IComObjectPoolEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2050,7 +2050,7 @@
       HRESULT (WINAPI *OnObjectConstruct)(IComObjectConstructionEvents *This,COMSVCSEVENTINFO *pInfo,REFGUID guidObject,LPCOLESTR sConstructString,ULONG64 oid);
     END_INTERFACE
   } IComObjectConstructionEventsVtbl;
-  interface IComObjectConstructionEvents {
+  struct IComObjectConstructionEvents {
     CONST_VTBL struct IComObjectConstructionEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2093,7 +2093,7 @@
       HRESULT (WINAPI *OnActivityLeaveSame)(IComActivityEvents *This,COMSVCSEVENTINFO *pInfo,REFGUID guidCurrent,DWORD dwCallDepth);
     END_INTERFACE
   } IComActivityEventsVtbl;
-  interface IComActivityEvents {
+  struct IComActivityEvents {
     CONST_VTBL struct IComActivityEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2142,7 +2142,7 @@
       HRESULT (WINAPI *OnIISRequestInfo)(IComIdentityEvents *This,COMSVCSEVENTINFO *pInfo,ULONG64 ObjId,LPCOLESTR pszClientIP,LPCOLESTR pszServerIP,LPCOLESTR pszURL);
     END_INTERFACE
   } IComIdentityEventsVtbl;
-  interface IComIdentityEvents {
+  struct IComIdentityEvents {
     CONST_VTBL struct IComIdentityEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2185,7 +2185,7 @@
       HRESULT (WINAPI *OnQCPlayback)(IComQCEvents *This,COMSVCSEVENTINFO *pInfo,ULONG64 objid,REFGUID guidMsgId,REFGUID guidWorkFlowId,HRESULT hr);
     END_INTERFACE
   } IComQCEventsVtbl;
-  interface IComQCEvents {
+  struct IComQCEvents {
     CONST_VTBL struct IComQCEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2234,7 +2234,7 @@
       HRESULT (WINAPI *OnExceptionUser)(IComExceptionEvents *This,COMSVCSEVENTINFO *pInfo,ULONG code,ULONG64 address,LPCOLESTR pszStackTrace);
     END_INTERFACE
   } IComExceptionEventsVtbl;
-  interface IComExceptionEvents {
+  struct IComExceptionEvents {
     CONST_VTBL struct IComExceptionEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2269,7 +2269,7 @@
       HRESULT (WINAPI *EngineDefined)(ILBEvents *This,BSTR bstrPropName,VARIANT *varPropValue,BSTR bstrClsidEng);
     END_INTERFACE
   } ILBEventsVtbl;
-  interface ILBEvents {
+  struct ILBEvents {
     CONST_VTBL struct ILBEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2334,7 +2334,7 @@
       HRESULT (WINAPI *OnCRMDeliver)(IComCRMEvents *This,COMSVCSEVENTINFO *pInfo,GUID guidClerkCLSID,WINBOOL fVariants,DWORD dwRecordSize);
     END_INTERFACE
   } IComCRMEventsVtbl;
-  interface IComCRMEvents {
+  struct IComCRMEvents {
     CONST_VTBL struct IComCRMEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2411,7 +2411,7 @@
       HRESULT (WINAPI *OnMethodException2)(IComMethod2Events *This,COMSVCSEVENTINFO *pInfo,ULONG64 oid,REFCLSID guidCid,REFIID guidRid,DWORD dwThread,ULONG iMeth);
     END_INTERFACE
   } IComMethod2EventsVtbl;
-  interface IComMethod2Events {
+  struct IComMethod2Events {
     CONST_VTBL struct IComMethod2EventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2448,7 +2448,7 @@
       HRESULT (WINAPI *OnNewTrackingInfo)(IComTrackingInfoEvents *This,IUnknown *pToplevelCollection);
     END_INTERFACE
   } IComTrackingInfoEventsVtbl;
-  interface IComTrackingInfoEvents {
+  struct IComTrackingInfoEvents {
     CONST_VTBL struct IComTrackingInfoEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2490,7 +2490,7 @@
       HRESULT (WINAPI *Item)(IComTrackingInfoCollection *This,ULONG ulIndex,REFIID riid,void **ppv);
     END_INTERFACE
   } IComTrackingInfoCollectionVtbl;
-  interface IComTrackingInfoCollection {
+  struct IComTrackingInfoCollection {
     CONST_VTBL struct IComTrackingInfoCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2527,7 +2527,7 @@
       HRESULT (WINAPI *GetValue)(IComTrackingInfoObject *This,LPOLESTR szPropertyName,VARIANT *pvarOut);
     END_INTERFACE
   } IComTrackingInfoObjectVtbl;
-  interface IComTrackingInfoObject {
+  struct IComTrackingInfoObject {
     CONST_VTBL struct IComTrackingInfoObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2560,7 +2560,7 @@
       HRESULT (WINAPI *GetPropName)(IComTrackingInfoProperties *This,ULONG ulIndex,LPOLESTR *ppszPropName);
     END_INTERFACE
   } IComTrackingInfoPropertiesVtbl;
-  interface IComTrackingInfoProperties {
+  struct IComTrackingInfoProperties {
     CONST_VTBL struct IComTrackingInfoPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2602,7 +2602,7 @@
       HRESULT (WINAPI *OnAppRecycle2)(IComApp2Events *This,COMSVCSEVENTINFO *pInfo,GUID guidApp,GUID guidProcess,long lReason);
     END_INTERFACE
   } IComApp2EventsVtbl;
-  interface IComApp2Events {
+  struct IComApp2Events {
     CONST_VTBL struct IComApp2EventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2651,7 +2651,7 @@
       HRESULT (WINAPI *OnTransactionCommit2)(IComTransaction2Events *This,COMSVCSEVENTINFO *pInfo,REFGUID guidTx);
     END_INTERFACE
   } IComTransaction2EventsVtbl;
-  interface IComTransaction2Events {
+  struct IComTransaction2Events {
     CONST_VTBL struct IComTransaction2EventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2693,7 +2693,7 @@
       HRESULT (WINAPI *OnObjectDestroy2)(IComInstance2Events *This,COMSVCSEVENTINFO *pInfo,ULONG64 CtxtID);
     END_INTERFACE
   } IComInstance2EventsVtbl;
-  interface IComInstance2Events {
+  struct IComInstance2Events {
     CONST_VTBL struct IComInstance2EventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2733,7 +2733,7 @@
       HRESULT (WINAPI *OnObjPoolGetFromTx2)(IComObjectPool2Events *This,COMSVCSEVENTINFO *pInfo,REFGUID guidActivity,REFGUID guidObject,REFGUID guidTx,ULONG64 objid,REFGUID guidPartition);
     END_INTERFACE
   } IComObjectPool2EventsVtbl;
-  interface IComObjectPool2Events {
+  struct IComObjectPool2Events {
     CONST_VTBL struct IComObjectPool2EventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2773,7 +2773,7 @@
       HRESULT (WINAPI *OnObjectConstruct2)(IComObjectConstruction2Events *This,COMSVCSEVENTINFO *pInfo,REFGUID guidObject,LPCOLESTR sConstructString,ULONG64 oid,REFGUID guidPartition);
     END_INTERFACE
   } IComObjectConstruction2EventsVtbl;
-  interface IComObjectConstruction2Events {
+  struct IComObjectConstruction2Events {
     CONST_VTBL struct IComObjectConstruction2EventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2806,7 +2806,7 @@
       HRESULT (WINAPI *OnDataChanged)(ISystemAppEventData *This,DWORD dwPID,DWORD dwMask,DWORD dwNumberSinks,BSTR bstrDwMethodMask,DWORD dwReason,ULONG64 u64TraceHandle);
     END_INTERFACE
   } ISystemAppEventDataVtbl;
-  interface ISystemAppEventData {
+  struct ISystemAppEventData {
     CONST_VTBL struct ISystemAppEventDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2852,7 +2852,7 @@
       HRESULT (WINAPI *GetProcessID)(IMtsEvents *This,long *id);
     END_INTERFACE
   } IMtsEventsVtbl;
-  interface IMtsEvents {
+  struct IMtsEvents {
     CONST_VTBL struct IMtsEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2911,7 +2911,7 @@
       HRESULT (WINAPI *get_Value)(IMtsEventInfo *This,BSTR sKey,VARIANT *pVal);
     END_INTERFACE
   } IMtsEventInfoVtbl;
-  interface IMtsEventInfo {
+  struct IMtsEventInfo {
     CONST_VTBL struct IMtsEventInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2962,7 +2962,7 @@
       HRESULT (WINAPI *GetEventDispatcher)(IMTSLocator *This,IUnknown **pUnk);
     END_INTERFACE
   } IMTSLocatorVtbl;
-  interface IMTSLocator {
+  struct IMTSLocator {
     CONST_VTBL struct IMTSLocatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3005,7 +3005,7 @@
       HRESULT (WINAPI *Refresh)(IMtsGrp *This);
     END_INTERFACE
   } IMtsGrpVtbl;
-  interface IMtsGrp {
+  struct IMtsGrp {
     CONST_VTBL struct IMtsGrpVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3062,7 +3062,7 @@
       HRESULT (WINAPI *MoveMessages)(IMessageMover *This,long *plMessagesMoved);
     END_INTERFACE
   } IMessageMoverVtbl;
-  interface IMessageMover {
+  struct IMessageMover {
     CONST_VTBL struct IMessageMoverVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3123,7 +3123,7 @@
       HRESULT (WINAPI *EnumTraceGuid)(IEventServerTrace *This,LONG *plCntGuids,BSTR *pbstrGuidList);
     END_INTERFACE
   } IEventServerTraceVtbl;
-  interface IEventServerTrace {
+  struct IEventServerTrace {
     CONST_VTBL struct IEventServerTraceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3239,7 +3239,7 @@
       HRESULT (WINAPI *GetContext)(IDispenserManager *This,INSTID *__MIDL_0016,TRANSID *__MIDL_0017);
     END_INTERFACE
   } IDispenserManagerVtbl;
-  interface IDispenserManager {
+  struct IDispenserManager {
     CONST_VTBL struct IDispenserManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3290,7 +3290,7 @@
       HRESULT (WINAPI *RequestDestroyResource)(IHolder *This,const RESID __MIDL_0027);
     END_INTERFACE
   } IHolderVtbl;
-  interface IHolder {
+  struct IHolder {
     CONST_VTBL struct IHolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3355,7 +3355,7 @@
       HRESULT (WINAPI *DestroyResourceS)(IDispenserDriver *This,constSRESID ResId);
     END_INTERFACE
   } IDispenserDriverVtbl;
-  interface IDispenserDriver {
+  struct IDispenserDriver {
     CONST_VTBL struct IDispenserDriverVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3436,7 +3436,7 @@
       HRESULT (WINAPI *IsCallerInRole)(IObjectContext *This,BSTR bstrRole,WINBOOL *pfIsInRole);
     END_INTERFACE
   } IObjectContextVtbl;
-  interface IObjectContext {
+  struct IObjectContext {
     CONST_VTBL struct IObjectContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3492,7 +3492,7 @@
       WINBOOL (WINAPI *CanBePooled)(IObjectControl *This);
     END_INTERFACE
   } IObjectControlVtbl;
-  interface IObjectControl {
+  struct IObjectControl {
     CONST_VTBL struct IObjectControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3535,7 +3535,7 @@
       HRESULT (WINAPI *Clone)(IEnumNames *This,IEnumNames **ppenum);
     END_INTERFACE
   } IEnumNamesVtbl;
-  interface IEnumNames {
+  struct IEnumNames {
     CONST_VTBL struct IEnumNamesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3583,7 +3583,7 @@
       HRESULT (WINAPI *ReleaseSID)(ISecurityProperty *This,PSID pSID);
     END_INTERFACE
   } ISecurityPropertyVtbl;
-  interface ISecurityProperty {
+  struct ISecurityProperty {
     CONST_VTBL struct ISecurityPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3630,7 +3630,7 @@
       HRESULT (WINAPI *CanBePooled)(ObjectControl *This,VARIANT_BOOL *pbPoolable);
     END_INTERFACE
   } ObjectControlVtbl;
-  interface ObjectControl {
+  struct ObjectControl {
     CONST_VTBL struct ObjectControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3673,7 +3673,7 @@
       HRESULT (WINAPI *put_Value)(ISharedProperty *This,VARIANT val);
     END_INTERFACE
   } ISharedPropertyVtbl;
-  interface ISharedProperty {
+  struct ISharedProperty {
     CONST_VTBL struct ISharedPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3721,7 +3721,7 @@
       HRESULT (WINAPI *get_Property)(ISharedPropertyGroup *This,BSTR Name,ISharedProperty **ppProperty);
     END_INTERFACE
   } ISharedPropertyGroupVtbl;
-  interface ISharedPropertyGroup {
+  struct ISharedPropertyGroup {
     CONST_VTBL struct ISharedPropertyGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3773,7 +3773,7 @@
       HRESULT (WINAPI *get__NewEnum)(ISharedPropertyGroupManager *This,IUnknown **retval);
     END_INTERFACE
   } ISharedPropertyGroupManagerVtbl;
-  interface ISharedPropertyGroupManager {
+  struct ISharedPropertyGroupManager {
     CONST_VTBL struct ISharedPropertyGroupManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3814,7 +3814,7 @@
       HRESULT (WINAPI *Construct)(IObjectConstruct *This,IDispatch *pCtorObj);
     END_INTERFACE
   } IObjectConstructVtbl;
-  interface IObjectConstruct {
+  struct IObjectConstruct {
     CONST_VTBL struct IObjectConstructVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3849,7 +3849,7 @@
       HRESULT (WINAPI *get_ConstructString)(IObjectConstructString *This,BSTR *pVal);
     END_INTERFACE
   } IObjectConstructStringVtbl;
-  interface IObjectConstructString {
+  struct IObjectConstructString {
     CONST_VTBL struct IObjectConstructStringVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3884,7 +3884,7 @@
       HRESULT (WINAPI *GetActivityId)(IObjectContextActivity *This,GUID *pGUID);
     END_INTERFACE
   } IObjectContextActivityVtbl;
-  interface IObjectContextActivity {
+  struct IObjectContextActivity {
     CONST_VTBL struct IObjectContextActivityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3923,7 +3923,7 @@
       HRESULT (WINAPI *GetContextId)(IObjectContextInfo *This,GUID *pGuid);
     END_INTERFACE
   } IObjectContextInfoVtbl;
-  interface IObjectContextInfo {
+  struct IObjectContextInfo {
     CONST_VTBL struct IObjectContextInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3975,7 +3975,7 @@
       HRESULT (WINAPI *GetApplicationInstanceId)(IObjectContextInfo2 *This,GUID *pGuid);
     END_INTERFACE
   } IObjectContextInfo2Vtbl;
-  interface IObjectContextInfo2 {
+  struct IObjectContextInfo2 {
     CONST_VTBL struct IObjectContextInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4019,7 +4019,7 @@
       HRESULT (WINAPI *GetTransactionStatus)(ITransactionStatus *This,HRESULT *pHrStatus);
     END_INTERFACE
   } ITransactionStatusVtbl;
-  interface ITransactionStatus {
+  struct ITransactionStatus {
     CONST_VTBL struct ITransactionStatusVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4053,7 +4053,7 @@
       HRESULT (WINAPI *GetTipUrl)(IObjectContextTip *This,BSTR *pTipUrl);
     END_INTERFACE
   } IObjectContextTipVtbl;
-  interface IObjectContextTip {
+  struct IObjectContextTip {
     CONST_VTBL struct IObjectContextTipVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4086,7 +4086,7 @@
       HRESULT (WINAPI *FinalServerRetry)(IPlaybackControl *This);
     END_INTERFACE
   } IPlaybackControlVtbl;
-  interface IPlaybackControl {
+  struct IPlaybackControl {
     CONST_VTBL struct IPlaybackControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4124,7 +4124,7 @@
       HRESULT (WINAPI *EnumNames)(IGetContextProperties *This,IEnumNames **ppenum);
     END_INTERFACE
   } IGetContextPropertiesVtbl;
-  interface IGetContextProperties {
+  struct IGetContextProperties {
     CONST_VTBL struct IGetContextPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4174,7 +4174,7 @@
       HRESULT (WINAPI *GetMyTransactionVote)(IContextState *This,TransactionVote *ptxVote);
     END_INTERFACE
   } IContextStateVtbl;
-  interface IContextState {
+  struct IContextState {
     CONST_VTBL struct IContextStateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4218,7 +4218,7 @@
       HRESULT (WINAPI *ShutdownPool)(IPoolManager *This,BSTR CLSIDOrProgID);
     END_INTERFACE
   } IPoolManagerVtbl;
-  interface IPoolManager {
+  struct IPoolManager {
     CONST_VTBL struct IPoolManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4255,7 +4255,7 @@
       HRESULT (WINAPI *GetLBServer)(ISelectCOMLBServer *This,IUnknown *pUnk);
     END_INTERFACE
   } ISelectCOMLBServerVtbl;
-  interface ISelectCOMLBServer {
+  struct ISelectCOMLBServer {
     CONST_VTBL struct ISelectCOMLBServerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4295,7 +4295,7 @@
       HRESULT (WINAPI *SetMachineName)(ICOMLBArguments *This,ULONG cchSvr,WCHAR szServerName[]);
     END_INTERFACE
   } ICOMLBArgumentsVtbl;
-  interface ICOMLBArguments {
+  struct ICOMLBArguments {
     CONST_VTBL struct ICOMLBArgumentsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4359,7 +4359,7 @@
       HRESULT (WINAPI *WriteLogRecord)(ICrmLogControl *This,BLOB rgBlob[],ULONG cBlob);
     END_INTERFACE
   } ICrmLogControlVtbl;
-  interface ICrmLogControl {
+  struct ICrmLogControl {
     CONST_VTBL struct ICrmLogControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4426,7 +4426,7 @@
       HRESULT (WINAPI *EndAbortVariants)(ICrmCompensatorVariants *This);
     END_INTERFACE
   } ICrmCompensatorVariantsVtbl;
-  interface ICrmCompensatorVariants {
+  struct ICrmCompensatorVariants {
     CONST_VTBL struct ICrmCompensatorVariantsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4514,7 +4514,7 @@
       HRESULT (WINAPI *EndAbort)(ICrmCompensator *This);
     END_INTERFACE
   } ICrmCompensatorVtbl;
-  interface ICrmCompensator {
+  struct ICrmCompensator {
     CONST_VTBL struct ICrmCompensatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4590,7 +4590,7 @@
       HRESULT (WINAPI *GetLogRecordVariants)(ICrmMonitorLogRecords *This,VARIANT IndexNumber,LPVARIANT pLogRecord);
     END_INTERFACE
   } ICrmMonitorLogRecordsVtbl;
-  interface ICrmMonitorLogRecords {
+  struct ICrmMonitorLogRecords {
     CONST_VTBL struct ICrmMonitorLogRecordsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4649,7 +4649,7 @@
       HRESULT (WINAPI *ActivityId)(ICrmMonitorClerks *This,VARIANT Index,LPVARIANT pItem);
     END_INTERFACE
   } ICrmMonitorClerksVtbl;
-  interface ICrmMonitorClerks {
+  struct ICrmMonitorClerks {
     CONST_VTBL struct ICrmMonitorClerksVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4704,7 +4704,7 @@
       HRESULT (WINAPI *HoldClerk)(ICrmMonitor *This,VARIANT Index,LPVARIANT pItem);
     END_INTERFACE
   } ICrmMonitorVtbl;
-  interface ICrmMonitor {
+  struct ICrmMonitor {
     CONST_VTBL struct ICrmMonitorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4744,7 +4744,7 @@
       HRESULT (WINAPI *GetColumnVariants)(ICrmFormatLogRecords *This,VARIANT LogRecord,LPVARIANT pFormattedLogRecord);
     END_INTERFACE
   } ICrmFormatLogRecordsVtbl;
-  interface ICrmFormatLogRecords {
+  struct ICrmFormatLogRecords {
     CONST_VTBL struct ICrmFormatLogRecordsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4829,7 +4829,7 @@
       HRESULT (WINAPI *IISIntrinsicsConfig)(IServiceIISIntrinsicsConfig *This,CSC_IISIntrinsicsConfig iisIntrinsicsConfig);
     END_INTERFACE
   } IServiceIISIntrinsicsConfigVtbl;
-  interface IServiceIISIntrinsicsConfig {
+  struct IServiceIISIntrinsicsConfig {
     CONST_VTBL struct IServiceIISIntrinsicsConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4860,7 +4860,7 @@
       HRESULT (WINAPI *ComTIIntrinsicsConfig)(IServiceComTIIntrinsicsConfig *This,CSC_COMTIIntrinsicsConfig comtiIntrinsicsConfig);
     END_INTERFACE
   } IServiceComTIIntrinsicsConfigVtbl;
-  interface IServiceComTIIntrinsicsConfig {
+  struct IServiceComTIIntrinsicsConfig {
     CONST_VTBL struct IServiceComTIIntrinsicsConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4895,7 +4895,7 @@
       HRESULT (WINAPI *SxsDirectory)(IServiceSxsConfig *This,LPCWSTR szSxsDirectory);
     END_INTERFACE
   } IServiceSxsConfigVtbl;
-  interface IServiceSxsConfig {
+  struct IServiceSxsConfig {
     CONST_VTBL struct IServiceSxsConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4932,7 +4932,7 @@
       HRESULT (WINAPI *IsSameSxsConfig)(ICheckSxsConfig *This,LPCWSTR wszSxsName,LPCWSTR wszSxsDirectory,LPCWSTR wszSxsAppName);
     END_INTERFACE
   } ICheckSxsConfigVtbl;
-  interface ICheckSxsConfig {
+  struct ICheckSxsConfig {
     CONST_VTBL struct ICheckSxsConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4963,7 +4963,7 @@
       HRESULT (WINAPI *ContainingContextTreatment)(IServiceInheritanceConfig *This,CSC_InheritanceConfig inheritanceConfig);
     END_INTERFACE
   } IServiceInheritanceConfigVtbl;
-  interface IServiceInheritanceConfig {
+  struct IServiceInheritanceConfig {
     CONST_VTBL struct IServiceInheritanceConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4996,7 +4996,7 @@
       HRESULT (WINAPI *SetBindingInfo)(IServiceThreadPoolConfig *This,CSC_Binding binding);
     END_INTERFACE
   } IServiceThreadPoolConfigVtbl;
-  interface IServiceThreadPoolConfig {
+  struct IServiceThreadPoolConfig {
     CONST_VTBL struct IServiceThreadPoolConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5038,7 +5038,7 @@
       HRESULT (WINAPI *NewTransactionDescription)(IServiceTransactionConfigBase *This,LPCWSTR szTxDesc);
     END_INTERFACE
   } IServiceTransactionConfigBaseVtbl;
-  interface IServiceTransactionConfigBase {
+  struct IServiceTransactionConfigBase {
     CONST_VTBL struct IServiceTransactionConfigBaseVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5086,7 +5086,7 @@
       HRESULT (WINAPI *ConfigureBYOT)(IServiceTransactionConfig *This,ITransaction *pITxByot);
     END_INTERFACE
   } IServiceTransactionConfigVtbl;
-  interface IServiceTransactionConfig {
+  struct IServiceTransactionConfig {
     CONST_VTBL struct IServiceTransactionConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5122,7 +5122,7 @@
       HRESULT (WINAPI *ConfigureSynchronization)(IServiceSynchronizationConfig *This,CSC_SynchronizationConfig synchConfig);
     END_INTERFACE
   } IServiceSynchronizationConfigVtbl;
-  interface IServiceSynchronizationConfig {
+  struct IServiceSynchronizationConfig {
     CONST_VTBL struct IServiceSynchronizationConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5153,7 +5153,7 @@
       HRESULT (WINAPI *TrackerConfig)(IServiceTrackerConfig *This,CSC_TrackerConfig trackerConfig,LPCWSTR szTrackerAppName,LPCWSTR szTrackerCtxName);
     END_INTERFACE
   } IServiceTrackerConfigVtbl;
-  interface IServiceTrackerConfig {
+  struct IServiceTrackerConfig {
     CONST_VTBL struct IServiceTrackerConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5186,7 +5186,7 @@
       HRESULT (WINAPI *PartitionID)(IServicePartitionConfig *This,REFGUID guidPartitionID);
     END_INTERFACE
   } IServicePartitionConfigVtbl;
-  interface IServicePartitionConfig {
+  struct IServicePartitionConfig {
     CONST_VTBL struct IServicePartitionConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5220,7 +5220,7 @@
       HRESULT (WINAPI *OnCall)(IServiceCall *This);
     END_INTERFACE
   } IServiceCallVtbl;
-  interface IServiceCall {
+  struct IServiceCall {
     CONST_VTBL struct IServiceCallVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5251,7 +5251,7 @@
       HRESULT (WINAPI *OnError)(IAsyncErrorNotify *This,HRESULT hr);
     END_INTERFACE
   } IAsyncErrorNotifyVtbl;
-  interface IAsyncErrorNotify {
+  struct IAsyncErrorNotify {
     CONST_VTBL struct IAsyncErrorNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5288,7 +5288,7 @@
       HRESULT (WINAPI *UnbindFromThread)(IServiceActivity *This);
     END_INTERFACE
   } IServiceActivityVtbl;
-  interface IServiceActivity {
+  struct IServiceActivity {
     CONST_VTBL struct IServiceActivityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5346,7 +5346,7 @@
       HRESULT (WINAPI *SetQueueDepth)(IThreadPoolKnobs *This,long lcQueueDepth);
     END_INTERFACE
   } IThreadPoolKnobsVtbl;
-  interface IThreadPoolKnobs {
+  struct IThreadPoolKnobs {
     CONST_VTBL struct IThreadPoolKnobsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5424,7 +5424,7 @@
       HRESULT (WINAPI *SetQueueDepth)(IComStaThreadPoolKnobs *This,long dwQDepth);
     END_INTERFACE
   } IComStaThreadPoolKnobsVtbl;
-  interface IComStaThreadPoolKnobs {
+  struct IComStaThreadPoolKnobs {
     CONST_VTBL struct IComStaThreadPoolKnobsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5491,7 +5491,7 @@
       HRESULT (WINAPI *MTAGetThrottleValue)(IComMtaThreadPoolKnobs *This,DWORD *pdwThrottle);
     END_INTERFACE
   } IComMtaThreadPoolKnobsVtbl;
-  interface IComMtaThreadPoolKnobs {
+  struct IComMtaThreadPoolKnobs {
     CONST_VTBL struct IComMtaThreadPoolKnobsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5560,7 +5560,7 @@
       HRESULT (WINAPI *SetWaitTimeForThreadCleanup)(IComStaThreadPoolKnobs2 *This,long dwThreadCleanupWaitTime);
     END_INTERFACE
   } IComStaThreadPoolKnobs2Vtbl;
-  interface IComStaThreadPoolKnobs2 {
+  struct IComStaThreadPoolKnobs2 {
     CONST_VTBL struct IComStaThreadPoolKnobs2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5631,7 +5631,7 @@
       HRESULT (WINAPI *Shutdown)(IProcessInitializer *This);
     END_INTERFACE
   } IProcessInitializerVtbl;
-  interface IProcessInitializer {
+  struct IProcessInitializer {
     CONST_VTBL struct IProcessInitializerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5683,7 +5683,7 @@
       HRESULT (WINAPI *get_ClassFactory)(IServicePoolConfig *This,IClassFactory **pFactory);
     END_INTERFACE
   } IServicePoolConfigVtbl;
-  interface IServicePoolConfig {
+  struct IServicePoolConfig {
     CONST_VTBL struct IServicePoolConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5745,7 +5745,7 @@
       HRESULT (WINAPI *Shutdown)(IServicePool *This);
     END_INTERFACE
   } IServicePoolVtbl;
-  interface IServicePool {
+  struct IServicePool {
     CONST_VTBL struct IServicePoolVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5782,7 +5782,7 @@
       HRESULT (WINAPI *SetHeld)(IManagedPooledObj *This,WINBOOL m_bHeld);
     END_INTERFACE
   } IManagedPooledObjVtbl;
-  interface IManagedPooledObj {
+  struct IManagedPooledObj {
     CONST_VTBL struct IManagedPooledObjVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5813,7 +5813,7 @@
       HRESULT (WINAPI *LastRelease)(IManagedPoolAction *This);
     END_INTERFACE
   } IManagedPoolActionVtbl;
-  interface IManagedPoolAction {
+  struct IManagedPoolAction {
     CONST_VTBL struct IManagedPoolActionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5850,7 +5850,7 @@
       HRESULT (WINAPI *SetWrapperStrength)(IManagedObjectInfo *This,WINBOOL bStrong);
     END_INTERFACE
   } IManagedObjectInfoVtbl;
-  interface IManagedObjectInfo {
+  struct IManagedObjectInfo {
     CONST_VTBL struct IManagedObjectInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5896,7 +5896,7 @@
       HRESULT (WINAPI *DoCallback)(IAppDomainHelper *This,IUnknown *pUnkAD,HRESULT (WINAPI __MIDL_0029)(void *pv),void *pPool);
     END_INTERFACE
   } IAppDomainHelperVtbl;
-  interface IAppDomainHelper {
+  struct IAppDomainHelper {
     CONST_VTBL struct IAppDomainHelperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5938,7 +5938,7 @@
       HRESULT (WINAPI *GetModules)(IAssemblyLocator *This,BSTR applicationDir,BSTR applicationName,BSTR assemblyName,SAFEARRAY **pModules);
     END_INTERFACE
   } IAssemblyLocatorVtbl;
-  interface IAssemblyLocator {
+  struct IAssemblyLocator {
     CONST_VTBL struct IAssemblyLocatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5975,7 +5975,7 @@
       HRESULT (WINAPI *DestroyManagedStub)(IManagedActivationEvents *This,IManagedObjectInfo *pInfo);
     END_INTERFACE
   } IManagedActivationEventsVtbl;
-  interface IManagedActivationEvents {
+  struct IManagedActivationEvents {
     CONST_VTBL struct IManagedActivationEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6011,7 +6011,7 @@
       HRESULT (WINAPI *SendMethodReturn)(ISendMethodEvents *This,const void *pIdentity,REFIID riid,DWORD dwMeth,HRESULT hrCall,HRESULT hrServer);
     END_INTERFACE
   } ISendMethodEventsVtbl;
-  interface ISendMethodEvents {
+  struct ISendMethodEvents {
     CONST_VTBL struct ISendMethodEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6050,7 +6050,7 @@
       HRESULT (WINAPI *GetResource)(ITransactionResourcePool *This,IObjPool *pPool,IUnknown **ppUnk);
     END_INTERFACE
   } ITransactionResourcePoolVtbl;
-  interface ITransactionResourcePool {
+  struct ITransactionResourcePool {
     CONST_VTBL struct ITransactionResourcePoolVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6089,7 +6089,7 @@
       HRESULT (WINAPI *OnCall)(IMTSCall *This);
     END_INTERFACE
   } IMTSCallVtbl;
-  interface IMTSCall {
+  struct IMTSCall {
     CONST_VTBL struct IMTSCallVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6128,7 +6128,7 @@
       HRESULT (WINAPI *RemoveProperty)(IContextProperties *This,BSTR name);
     END_INTERFACE
   } IContextPropertiesVtbl;
-  interface IContextProperties {
+  struct IContextProperties {
     CONST_VTBL struct IContextPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6183,7 +6183,7 @@
       void (WINAPI *Reserved6)(IObjPool *This);
     END_INTERFACE
   } IObjPoolVtbl;
-  interface IObjPool {
+  struct IObjPool {
     CONST_VTBL struct IObjPoolVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6266,7 +6266,7 @@
       void (WINAPI *Reserved17)(ITransactionProperty *This);
     END_INTERFACE
   } ITransactionPropertyVtbl;
-  interface ITransactionProperty {
+  struct ITransactionProperty {
     CONST_VTBL struct ITransactionPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6356,7 +6356,7 @@
       HRESULT (WINAPI *UnbindFromThread)(IMTSActivity *This);
     END_INTERFACE
   } IMTSActivityVtbl;
-  interface IMTSActivity {
+  struct IMTSActivity {
     CONST_VTBL struct IMTSActivityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/confpriv.h b/mingw-w64-headers/include/confpriv.h
index 3ab1b25..999c549 100755
--- a/mingw-w64-headers/include/confpriv.h
+++ b/mingw-w64-headers/include/confpriv.h
@@ -24,37 +24,37 @@
 
 #ifndef __IDummy_FWD_DEFINED__
 #define __IDummy_FWD_DEFINED__
-typedef interface IDummy IDummy;
+typedef struct IDummy IDummy;
 #endif
 
 #ifndef __ITLocalParticipant_FWD_DEFINED__
 #define __ITLocalParticipant_FWD_DEFINED__
-typedef interface ITLocalParticipant ITLocalParticipant;
+typedef struct ITLocalParticipant ITLocalParticipant;
 #endif
 
 #ifndef __IEnumParticipant_FWD_DEFINED__
 #define __IEnumParticipant_FWD_DEFINED__
-typedef interface IEnumParticipant IEnumParticipant;
+typedef struct IEnumParticipant IEnumParticipant;
 #endif
 
 #ifndef __ITParticipantControl_FWD_DEFINED__
 #define __ITParticipantControl_FWD_DEFINED__
-typedef interface ITParticipantControl ITParticipantControl;
+typedef struct ITParticipantControl ITParticipantControl;
 #endif
 
 #ifndef __ITParticipantSubStreamControl_FWD_DEFINED__
 #define __ITParticipantSubStreamControl_FWD_DEFINED__
-typedef interface ITParticipantSubStreamControl ITParticipantSubStreamControl;
+typedef struct ITParticipantSubStreamControl ITParticipantSubStreamControl;
 #endif
 
 #ifndef __ITParticipantEvent_FWD_DEFINED__
 #define __ITParticipantEvent_FWD_DEFINED__
-typedef interface ITParticipantEvent ITParticipantEvent;
+typedef struct ITParticipantEvent ITParticipantEvent;
 #endif
 
 #ifndef __IMulticastControl_FWD_DEFINED__
 #define __IMulticastControl_FWD_DEFINED__
-typedef interface IMulticastControl IMulticastControl;
+typedef struct IMulticastControl IMulticastControl;
 #endif
 
 #include "ipmsp.h"
@@ -88,7 +88,7 @@
       ULONG (WINAPI *Release)(IDummy *This);
     END_INTERFACE
   } IDummyVtbl;
-  interface IDummy {
+  struct IDummy {
     CONST_VTBL struct IDummyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -122,7 +122,7 @@
       HRESULT (WINAPI *put_LocalParticipantTypedInfo)(ITLocalParticipant *This,PARTICIPANT_TYPED_INFO InfoType,BSTR pInfo);
     END_INTERFACE
   } ITLocalParticipantVtbl;
-  interface ITLocalParticipant {
+  struct ITLocalParticipant {
     CONST_VTBL struct ITLocalParticipantVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -166,7 +166,7 @@
       HRESULT (WINAPI *Clone)(IEnumParticipant *This,IEnumParticipant **ppEnum);
     END_INTERFACE
   } IEnumParticipantVtbl;
-  interface IEnumParticipant {
+  struct IEnumParticipant {
     CONST_VTBL struct IEnumParticipantVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -212,7 +212,7 @@
       HRESULT (WINAPI *get_Participants)(ITParticipantControl *This,VARIANT *pVariant);
     END_INTERFACE
   } ITParticipantControlVtbl;
-  interface ITParticipantControl {
+  struct ITParticipantControl {
     CONST_VTBL struct ITParticipantControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -258,7 +258,7 @@
       HRESULT (WINAPI *SwitchTerminalToSubStream)(ITParticipantSubStreamControl *This,ITTerminal *pITTerminal,ITSubStream *pITSubStream);
     END_INTERFACE
   } ITParticipantSubStreamControlVtbl;
-  interface ITParticipantSubStreamControl {
+  struct ITParticipantSubStreamControl {
     CONST_VTBL struct ITParticipantSubStreamControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -307,7 +307,7 @@
       HRESULT (WINAPI *get_SubStream)(ITParticipantEvent *This,ITSubStream **ppSubStream);
     END_INTERFACE
   } ITParticipantEventVtbl;
-  interface ITParticipantEvent {
+  struct ITParticipantEvent {
     CONST_VTBL struct ITParticipantEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -354,7 +354,7 @@
       HRESULT (WINAPI *put_LoopbackMode)(IMulticastControl *This,MULTICAST_LOOPBACK_MODE mode);
     END_INTERFACE
   } IMulticastControlVtbl;
-  interface IMulticastControl {
+  struct IMulticastControl {
     CONST_VTBL struct IMulticastControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/control.h b/mingw-w64-headers/include/control.h
index 50c0f09..b6c711c 100755
--- a/mingw-w64-headers/include/control.h
+++ b/mingw-w64-headers/include/control.h
@@ -19,57 +19,57 @@
 
 #ifndef __IAMCollection_FWD_DEFINED__
 #define __IAMCollection_FWD_DEFINED__
-typedef interface IAMCollection IAMCollection;
+typedef struct IAMCollection IAMCollection;
 #endif
 
 #ifndef __IMediaControl_FWD_DEFINED__
 #define __IMediaControl_FWD_DEFINED__
-typedef interface IMediaControl IMediaControl;
+typedef struct IMediaControl IMediaControl;
 #endif
 
 #ifndef __IMediaEvent_FWD_DEFINED__
 #define __IMediaEvent_FWD_DEFINED__
-typedef interface IMediaEvent IMediaEvent;
+typedef struct IMediaEvent IMediaEvent;
 #endif
 
 #ifndef __IMediaEventEx_FWD_DEFINED__
 #define __IMediaEventEx_FWD_DEFINED__
-typedef interface IMediaEventEx IMediaEventEx;
+typedef struct IMediaEventEx IMediaEventEx;
 #endif
 
 #ifndef __IMediaPosition_FWD_DEFINED__
 #define __IMediaPosition_FWD_DEFINED__
-typedef interface IMediaPosition IMediaPosition;
+typedef struct IMediaPosition IMediaPosition;
 #endif
 
 #ifndef __IBasicAudio_FWD_DEFINED__
 #define __IBasicAudio_FWD_DEFINED__
-typedef interface IBasicAudio IBasicAudio;
+typedef struct IBasicAudio IBasicAudio;
 #endif
 
 #ifndef __IVideoWindow_FWD_DEFINED__
 #define __IVideoWindow_FWD_DEFINED__
-typedef interface IVideoWindow IVideoWindow;
+typedef struct IVideoWindow IVideoWindow;
 #endif
 
 #ifndef __IBasicVideo_FWD_DEFINED__
 #define __IBasicVideo_FWD_DEFINED__
-typedef interface IBasicVideo IBasicVideo;
+typedef struct IBasicVideo IBasicVideo;
 #endif
 
 #ifndef __IBasicVideo2_FWD_DEFINED__
 #define __IBasicVideo2_FWD_DEFINED__
-typedef interface IBasicVideo2 IBasicVideo2;
+typedef struct IBasicVideo2 IBasicVideo2;
 #endif
 
 #ifndef __IDeferredCommand_FWD_DEFINED__
 #define __IDeferredCommand_FWD_DEFINED__
-typedef interface IDeferredCommand IDeferredCommand;
+typedef struct IDeferredCommand IDeferredCommand;
 #endif
 
 #ifndef __IQueueCommand_FWD_DEFINED__
 #define __IQueueCommand_FWD_DEFINED__
-typedef interface IQueueCommand IQueueCommand;
+typedef struct IQueueCommand IQueueCommand;
 #endif
 
 #ifndef __FilgraphManager_FWD_DEFINED__
@@ -84,27 +84,27 @@
 
 #ifndef __IFilterInfo_FWD_DEFINED__
 #define __IFilterInfo_FWD_DEFINED__
-typedef interface IFilterInfo IFilterInfo;
+typedef struct IFilterInfo IFilterInfo;
 #endif
 
 #ifndef __IRegFilterInfo_FWD_DEFINED__
 #define __IRegFilterInfo_FWD_DEFINED__
-typedef interface IRegFilterInfo IRegFilterInfo;
+typedef struct IRegFilterInfo IRegFilterInfo;
 #endif
 
 #ifndef __IMediaTypeInfo_FWD_DEFINED__
 #define __IMediaTypeInfo_FWD_DEFINED__
-typedef interface IMediaTypeInfo IMediaTypeInfo;
+typedef struct IMediaTypeInfo IMediaTypeInfo;
 #endif
 
 #ifndef __IPinInfo_FWD_DEFINED__
 #define __IPinInfo_FWD_DEFINED__
-typedef interface IPinInfo IPinInfo;
+typedef struct IPinInfo IPinInfo;
 #endif
 
 #ifndef __IAMStats_FWD_DEFINED__
 #define __IAMStats_FWD_DEFINED__
-typedef interface IAMStats IAMStats;
+typedef struct IAMStats IAMStats;
 #endif
 
 #ifdef __cplusplus
@@ -147,7 +147,7 @@
       HRESULT (WINAPI *get__NewEnum)(IAMCollection *This,IUnknown **ppUnk);
     END_INTERFACE
   } IAMCollectionVtbl;
-  interface IAMCollection {
+  struct IAMCollection {
     CONST_VTBL struct IAMCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -208,7 +208,7 @@
       HRESULT (WINAPI *StopWhenReady)(IMediaControl *This);
     END_INTERFACE
   } IMediaControlVtbl;
-  interface IMediaControl {
+  struct IMediaControl {
     CONST_VTBL struct IMediaControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -281,7 +281,7 @@
       HRESULT (WINAPI *FreeEventParams)(IMediaEvent *This,long lEvCode,LONG_PTR lParam1,LONG_PTR lParam2);
     END_INTERFACE
   } IMediaEventVtbl;
-  interface IMediaEvent {
+  struct IMediaEvent {
     CONST_VTBL struct IMediaEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -345,7 +345,7 @@
       HRESULT (WINAPI *GetNotifyFlags)(IMediaEventEx *This,long *lplNoNotifyFlags);
     END_INTERFACE
   } IMediaEventExVtbl;
-  interface IMediaEventEx {
+  struct IMediaEventEx {
     CONST_VTBL struct IMediaEventExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -416,7 +416,7 @@
       HRESULT (WINAPI *CanSeekBackward)(IMediaPosition *This,LONG *pCanSeekBackward);
     END_INTERFACE
   } IMediaPositionVtbl;
-  interface IMediaPosition {
+  struct IMediaPosition {
     CONST_VTBL struct IMediaPositionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -491,7 +491,7 @@
       HRESULT (WINAPI *get_Balance)(IBasicAudio *This,long *plBalance);
     END_INTERFACE
   } IBasicAudioVtbl;
-  interface IBasicAudio {
+  struct IBasicAudio {
     CONST_VTBL struct IBasicAudioVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -615,7 +615,7 @@
       HRESULT (WINAPI *IsCursorHidden)(IVideoWindow *This,long *CursorHidden);
     END_INTERFACE
   } IVideoWindowVtbl;
-  interface IVideoWindow {
+  struct IVideoWindow {
     CONST_VTBL struct IVideoWindowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -830,7 +830,7 @@
       HRESULT (WINAPI *IsUsingDefaultDestination)(IBasicVideo *This);
     END_INTERFACE
   } IBasicVideoVtbl;
-  interface IBasicVideo {
+  struct IBasicVideo {
     CONST_VTBL struct IBasicVideoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -994,7 +994,7 @@
       HRESULT (WINAPI *GetPreferredAspectRatio)(IBasicVideo2 *This,long *plAspectX,long *plAspectY);
     END_INTERFACE
   } IBasicVideo2Vtbl;
-  interface IBasicVideo2 {
+  struct IBasicVideo2 {
     CONST_VTBL struct IBasicVideo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1067,7 +1067,7 @@
       HRESULT (WINAPI *GetHResult)(IDeferredCommand *This,HRESULT *phrResult);
     END_INTERFACE
   } IDeferredCommandVtbl;
-  interface IDeferredCommand {
+  struct IDeferredCommand {
     CONST_VTBL struct IDeferredCommandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1109,7 +1109,7 @@
       HRESULT (WINAPI *InvokeAtPresentationTime)(IQueueCommand *This,IDeferredCommand **pCmd,REFTIME time,GUID *iid,long dispidMethod,short wFlags,long cArgs,VARIANT *pDispParams,VARIANT *pvarResult,short *puArgErr);
     END_INTERFACE
   } IQueueCommandVtbl;
-  interface IQueueCommand {
+  struct IQueueCommand {
     CONST_VTBL struct IQueueCommandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1166,7 +1166,7 @@
       HRESULT (WINAPI *put_Filename)(IFilterInfo *This,BSTR strFilename);
     END_INTERFACE
   } IFilterInfoVtbl;
-  interface IFilterInfo {
+  struct IFilterInfo {
     CONST_VTBL struct IFilterInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1228,7 +1228,7 @@
       HRESULT (WINAPI *Filter)(IRegFilterInfo *This,IDispatch **ppUnk);
     END_INTERFACE
   } IRegFilterInfoVtbl;
-  interface IRegFilterInfo {
+  struct IRegFilterInfo {
     CONST_VTBL struct IRegFilterInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1272,7 +1272,7 @@
       HRESULT (WINAPI *get_Subtype)(IMediaTypeInfo *This,BSTR *strType);
     END_INTERFACE
   } IMediaTypeInfoVtbl;
-  interface IMediaTypeInfo {
+  struct IMediaTypeInfo {
     CONST_VTBL struct IMediaTypeInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1338,7 +1338,7 @@
       HRESULT (WINAPI *Render)(IPinInfo *This);
     END_INTERFACE
   } IPinInfoVtbl;
-  interface IPinInfo {
+  struct IPinInfo {
     CONST_VTBL struct IPinInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1423,7 +1423,7 @@
       HRESULT (WINAPI *AddValue)(IAMStats *This,long lIndex,double dValue);
     END_INTERFACE
   } IAMStatsVtbl;
-  interface IAMStats {
+  struct IAMStats {
     CONST_VTBL struct IAMStatsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/correg.h b/mingw-w64-headers/include/correg.h
index f2918c4..39c2127 100755
--- a/mingw-w64-headers/include/correg.h
+++ b/mingw-w64-headers/include/correg.h
@@ -152,9 +152,9 @@
   extern const GUID DECLSPEC_SELECT_ANY IID_IMetaDataInternal = { 0x2d601bb,0xc5b9,0x11d1,{0x93,0xf9,0x0,0x0,0xf8,0x8,0x34,0x60 } };
   extern const GUID DECLSPEC_SELECT_ANY IID_IMetaDataEmitTemp = { 0xad93d71d,0xe1f2,0x11d1,{0x94,0x9,0x0,0x0,0xf8,0x8,0x34,0x60 } };
 
-  interface IMetaDataRegEmit;
-  interface IMetaDataRegImport;
-  interface IMetaDataDispenser;
+  struct IMetaDataRegEmit;
+  struct IMetaDataRegImport;
+  struct IMetaDataDispenser;
 
   extern const GUID DECLSPEC_SELECT_ANY IID_IMemory = { 0x6a3ea8a,0x225,0x11d1,{0xbf,0x72,0x0,0xc0,0x4f,0xc3,0x1e,0x12 } };
 
diff --git a/mingw-w64-headers/include/ctxtcall.h b/mingw-w64-headers/include/ctxtcall.h
index b30fb97..7607d8f 100755
--- a/mingw-w64-headers/include/ctxtcall.h
+++ b/mingw-w64-headers/include/ctxtcall.h
@@ -24,7 +24,7 @@
 
 #ifndef __IContextCallback_FWD_DEFINED__
 #define __IContextCallback_FWD_DEFINED__
-typedef interface IContextCallback IContextCallback;
+typedef struct IContextCallback IContextCallback;
 #endif
 
 #include "wtypes.h"
@@ -63,7 +63,7 @@
       HRESULT (WINAPI *ContextCallback)(IContextCallback *This,PFNCONTEXTCALL pfnCallback,ComCallData *pParam,REFIID riid,int iMethod,IUnknown *pUnk);
     END_INTERFACE
   } IContextCallbackVtbl;
-  interface IContextCallback {
+  struct IContextCallback {
     CONST_VTBL struct IContextCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/datapath.h b/mingw-w64-headers/include/datapath.h
index 31e0bb2..b2c7cfb 100755
--- a/mingw-w64-headers/include/datapath.h
+++ b/mingw-w64-headers/include/datapath.h
@@ -19,17 +19,17 @@
 
 #ifndef __IObjectWithSite_FWD_DEFINED__
 #define __IObjectWithSite_FWD_DEFINED__
-  typedef interface IObjectWithSite IObjectWithSite;
+  typedef struct IObjectWithSite IObjectWithSite;
 #endif
 
 #ifndef __IDataPathBrowser_FWD_DEFINED__
 #define __IDataPathBrowser_FWD_DEFINED__
-  typedef interface IDataPathBrowser IDataPathBrowser;
+  typedef struct IDataPathBrowser IDataPathBrowser;
 #endif
 
 #ifndef __IProvideClassInfo3_FWD_DEFINED__
 #define __IProvideClassInfo3_FWD_DEFINED__
-  typedef interface IProvideClassInfo3 IProvideClassInfo3;
+  typedef struct IProvideClassInfo3 IProvideClassInfo3;
 #endif
 
 #include "objidl.h"
@@ -94,7 +94,7 @@
   typedef IObjectWithSite *LPOBJECTWITHSITE;
   EXTERN_C const IID IID_IObjectWithSite;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IObjectWithSite : public IUnknown {
+  struct IObjectWithSite : public IUnknown {
 public:
   virtual HRESULT WINAPI SetSite(IUnknown *pUnkSite) = 0;
   virtual HRESULT WINAPI GetSite(REFIID riid,void **ppvSite) = 0;
@@ -109,7 +109,7 @@
       HRESULT (WINAPI *GetSite)(IObjectWithSite *This,REFIID riid,void **ppvSite);
     END_INTERFACE
   } IObjectWithSiteVtbl;
-  interface IObjectWithSite {
+  struct IObjectWithSite {
     CONST_VTBL struct IObjectWithSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -135,7 +135,7 @@
 #define __IDataPathBrowser_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IDataPathBrowser;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IDataPathBrowser : public IUnknown {
+  struct IDataPathBrowser : public IUnknown {
   public:
     virtual HRESULT WINAPI BrowseType(REFGUID rguidPathType,LPOLESTR pszDefaultPath,ULONG cchPath,LPOLESTR pszPath,HWND hWnd) = 0;
   };
@@ -148,7 +148,7 @@
       HRESULT (WINAPI *BrowseType)(IDataPathBrowser *This,REFGUID rguidPathType,LPOLESTR pszDefaultPath,ULONG cchPath,LPOLESTR pszPath,HWND hWnd);
     END_INTERFACE
   } IDataPathBrowserVtbl;
-  interface IDataPathBrowser {
+  struct IDataPathBrowser {
     CONST_VTBL struct IDataPathBrowserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -175,7 +175,7 @@
   };
   EXTERN_C const IID IID_IProvideClassInfo3;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IProvideClassInfo3 : public IProvideClassInfo2 {
+  struct IProvideClassInfo3 : public IProvideClassInfo2 {
   public:
     virtual HRESULT WINAPI GetGUIDDwordArrays(REFGUID rguidArray,CAUUID *pcaUUID,CADWORD *pcadw) = 0;
     virtual HRESULT WINAPI GetClassInfoLocale(ITypeInfo **ppITypeInfo,LCID lcid) = 0;
@@ -194,7 +194,7 @@
       HRESULT (WINAPI *GetFlags)(IProvideClassInfo3 *This,REFGUID guidGroup,DWORD *pdwFlags);
     END_INTERFACE
   } IProvideClassInfo3Vtbl;
-  interface IProvideClassInfo3 {
+  struct IProvideClassInfo3 {
     CONST_VTBL struct IProvideClassInfo3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/dbdaoint.h b/mingw-w64-headers/include/dbdaoint.h
index e210991..c691e22 100755
--- a/mingw-w64-headers/include/dbdaoint.h
+++ b/mingw-w64-headers/include/dbdaoint.h
@@ -10,52 +10,52 @@
 #include <tchar.h>
 #endif
 
-interface _DAODBEngine;
+struct _DAODBEngine;
 #define DAODBEngine _DAODBEngine
-interface DAOError;
-interface _DAOCollection;
+struct DAOError;
+struct _DAOCollection;
 #define DAOCollection _DAOCollection
-interface DAOErrors;
-interface DAOProperty;
-interface _DAODynaCollection;
+struct DAOErrors;
+struct DAOProperty;
+struct _DAODynaCollection;
 #define DAODynaCollection _DAODynaCollection
-interface DAOProperties;
-interface DAOWorkspace;
-interface DAOWorkspaces;
-interface DAOConnection;
-interface DAOConnections;
-interface DAODatabase;
-interface DAODatabases;
-interface _DAOTableDef;
+struct DAOProperties;
+struct DAOWorkspace;
+struct DAOWorkspaces;
+struct DAOConnection;
+struct DAOConnections;
+struct DAODatabase;
+struct DAODatabases;
+struct _DAOTableDef;
 #define DAOTableDef _DAOTableDef
-interface DAOTableDefs;
-interface _DAOQueryDef;
+struct DAOTableDefs;
+struct _DAOQueryDef;
 #define DAOQueryDef _DAOQueryDef
-interface DAOQueryDefs;
-interface DAORecordset;
-interface DAORecordsets;
-interface _DAOField;
+struct DAOQueryDefs;
+struct DAORecordset;
+struct DAORecordsets;
+struct _DAOField;
 #define DAOField _DAOField
-interface DAOFields;
-interface _DAOIndex;
+struct DAOFields;
+struct _DAOIndex;
 #define DAOIndex _DAOIndex
-interface DAOIndexes;
-interface DAOParameter;
-interface DAOParameters;
-interface _DAOUser;
+struct DAOIndexes;
+struct DAOParameter;
+struct DAOParameters;
+struct _DAOUser;
 #define DAOUser _DAOUser
-interface DAOUsers;
-interface _DAOGroup;
+struct DAOUsers;
+struct _DAOGroup;
 #define DAOGroup _DAOGroup
-interface DAOGroups;
-interface _DAORelation;
+struct DAOGroups;
+struct _DAORelation;
 #define DAORelation _DAORelation
-interface DAORelations;
-interface DAOContainer;
-interface DAOContainers;
-interface DAODocument;
-interface DAODocuments;
-interface DAOIndexFields;
+struct DAORelations;
+struct DAOContainer;
+struct DAOContainers;
+struct DAODocument;
+struct DAODocuments;
+struct DAOIndexFields;
 
 typedef enum RecordsetTypeEnum {
   dbOpenTable = 1,dbOpenDynaset = 2,dbOpenSnapshot = 4,dbOpenForwardOnly = 8,dbOpenDynamic = 16
diff --git a/mingw-w64-headers/include/dbgautoattach.h b/mingw-w64-headers/include/dbgautoattach.h
index ad148ac..4c88e03 100755
--- a/mingw-w64-headers/include/dbgautoattach.h
+++ b/mingw-w64-headers/include/dbgautoattach.h
@@ -24,7 +24,7 @@
 
 #ifndef __IDebugAutoAttach_FWD_DEFINED__
 #define __IDebugAutoAttach_FWD_DEFINED__
-typedef interface IDebugAutoAttach IDebugAutoAttach;
+typedef struct IDebugAutoAttach IDebugAutoAttach;
 #endif
 
 #include "ocidl.h"
@@ -62,7 +62,7 @@
       HRESULT (WINAPI *AutoAttach)(IDebugAutoAttach *This,REFGUID guidPort,DWORD dwPid,AUTOATTACH_PROGRAM_TYPE dwProgramType,DWORD dwProgramId,LPCWSTR pszSessionId);
     END_INTERFACE
   } IDebugAutoAttachVtbl;
-  interface IDebugAutoAttach {
+  struct IDebugAutoAttach {
     CONST_VTBL struct IDebugAutoAttachVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/dbgeng.h b/mingw-w64-headers/include/dbgeng.h
index d6ad32a..c04b1bf 100755
--- a/mingw-w64-headers/include/dbgeng.h
+++ b/mingw-w64-headers/include/dbgeng.h
@@ -45,28 +45,28 @@
   DEFINE_GUID(IID_IDebugSystemObjects2,0x0ae9f5ff,0x1852,0x4679,0xb0,0x55,0x49,0x4b,0xee,0x64,0x07,0xee);
   DEFINE_GUID(IID_IDebugSystemObjects3,0xe9676e2f,0xe286,0x4ea3,0xb0,0xf9,0xdf,0xe5,0xd9,0xfc,0x33,0x0e);
 
-  typedef interface IDebugAdvanced *PDEBUG_ADVANCED;
-  typedef interface IDebugBreakpoint *PDEBUG_BREAKPOINT;
-  typedef interface IDebugClient *PDEBUG_CLIENT;
-  typedef interface IDebugClient2 *PDEBUG_CLIENT2;
-  typedef interface IDebugClient3 *PDEBUG_CLIENT3;
-  typedef interface IDebugClient4 *PDEBUG_CLIENT4;
-  typedef interface IDebugControl *PDEBUG_CONTROL;
-  typedef interface IDebugControl2 *PDEBUG_CONTROL2;
-  typedef interface IDebugControl3 *PDEBUG_CONTROL3;
-  typedef interface IDebugDataSpaces *PDEBUG_DATA_SPACES;
-  typedef interface IDebugDataSpaces2 *PDEBUG_DATA_SPACES2;
-  typedef interface IDebugDataSpaces3 *PDEBUG_DATA_SPACES3;
-  typedef interface IDebugEventCallbacks *PDEBUG_EVENT_CALLBACKS;
-  typedef interface IDebugInputCallbacks *PDEBUG_INPUT_CALLBACKS;
-  typedef interface IDebugOutputCallbacks *PDEBUG_OUTPUT_CALLBACKS;
-  typedef interface IDebugRegisters *PDEBUG_REGISTERS;
-  typedef interface IDebugSymbolGroup *PDEBUG_SYMBOL_GROUP;
-  typedef interface IDebugSymbols *PDEBUG_SYMBOLS;
-  typedef interface IDebugSymbols2 *PDEBUG_SYMBOLS2;
-  typedef interface IDebugSystemObjects *PDEBUG_SYSTEM_OBJECTS;
-  typedef interface IDebugSystemObjects2 *PDEBUG_SYSTEM_OBJECTS2;
-  typedef interface IDebugSystemObjects3 *PDEBUG_SYSTEM_OBJECTS3;
+  typedef struct IDebugAdvanced *PDEBUG_ADVANCED;
+  typedef struct IDebugBreakpoint *PDEBUG_BREAKPOINT;
+  typedef struct IDebugClient *PDEBUG_CLIENT;
+  typedef struct IDebugClient2 *PDEBUG_CLIENT2;
+  typedef struct IDebugClient3 *PDEBUG_CLIENT3;
+  typedef struct IDebugClient4 *PDEBUG_CLIENT4;
+  typedef struct IDebugControl *PDEBUG_CONTROL;
+  typedef struct IDebugControl2 *PDEBUG_CONTROL2;
+  typedef struct IDebugControl3 *PDEBUG_CONTROL3;
+  typedef struct IDebugDataSpaces *PDEBUG_DATA_SPACES;
+  typedef struct IDebugDataSpaces2 *PDEBUG_DATA_SPACES2;
+  typedef struct IDebugDataSpaces3 *PDEBUG_DATA_SPACES3;
+  typedef struct IDebugEventCallbacks *PDEBUG_EVENT_CALLBACKS;
+  typedef struct IDebugInputCallbacks *PDEBUG_INPUT_CALLBACKS;
+  typedef struct IDebugOutputCallbacks *PDEBUG_OUTPUT_CALLBACKS;
+  typedef struct IDebugRegisters *PDEBUG_REGISTERS;
+  typedef struct IDebugSymbolGroup *PDEBUG_SYMBOL_GROUP;
+  typedef struct IDebugSymbols *PDEBUG_SYMBOLS;
+  typedef struct IDebugSymbols2 *PDEBUG_SYMBOLS2;
+  typedef struct IDebugSystemObjects *PDEBUG_SYSTEM_OBJECTS;
+  typedef struct IDebugSystemObjects2 *PDEBUG_SYSTEM_OBJECTS2;
+  typedef struct IDebugSystemObjects3 *PDEBUG_SYSTEM_OBJECTS3;
 
 #define DEBUG_EXTEND64(Addr) ((ULONG64)(LONG64)(LONG)(Addr))
 
diff --git a/mingw-w64-headers/include/dbgprop.h b/mingw-w64-headers/include/dbgprop.h
index a6be47e..7582890 100755
--- a/mingw-w64-headers/include/dbgprop.h
+++ b/mingw-w64-headers/include/dbgprop.h
@@ -24,52 +24,52 @@
 
 #ifndef __IDebugProperty_FWD_DEFINED__
 #define __IDebugProperty_FWD_DEFINED__
-typedef interface IDebugProperty IDebugProperty;
+typedef struct IDebugProperty IDebugProperty;
 #endif
 
 #ifndef __IEnumDebugPropertyInfo_FWD_DEFINED__
 #define __IEnumDebugPropertyInfo_FWD_DEFINED__
-typedef interface IEnumDebugPropertyInfo IEnumDebugPropertyInfo;
+typedef struct IEnumDebugPropertyInfo IEnumDebugPropertyInfo;
 #endif
 
 #ifndef __IDebugExtendedProperty_FWD_DEFINED__
 #define __IDebugExtendedProperty_FWD_DEFINED__
-typedef interface IDebugExtendedProperty IDebugExtendedProperty;
+typedef struct IDebugExtendedProperty IDebugExtendedProperty;
 #endif
 
 #ifndef __IEnumDebugExtendedPropertyInfo_FWD_DEFINED__
 #define __IEnumDebugExtendedPropertyInfo_FWD_DEFINED__
-typedef interface IEnumDebugExtendedPropertyInfo IEnumDebugExtendedPropertyInfo;
+typedef struct IEnumDebugExtendedPropertyInfo IEnumDebugExtendedPropertyInfo;
 #endif
 
 #ifndef __IPerPropertyBrowsing2_FWD_DEFINED__
 #define __IPerPropertyBrowsing2_FWD_DEFINED__
-typedef interface IPerPropertyBrowsing2 IPerPropertyBrowsing2;
+typedef struct IPerPropertyBrowsing2 IPerPropertyBrowsing2;
 #endif
 
 #ifndef __IDebugPropertyEnumType_All_FWD_DEFINED__
 #define __IDebugPropertyEnumType_All_FWD_DEFINED__
-typedef interface IDebugPropertyEnumType_All IDebugPropertyEnumType_All;
+typedef struct IDebugPropertyEnumType_All IDebugPropertyEnumType_All;
 #endif
 
 #ifndef __IDebugPropertyEnumType_Locals_FWD_DEFINED__
 #define __IDebugPropertyEnumType_Locals_FWD_DEFINED__
-typedef interface IDebugPropertyEnumType_Locals IDebugPropertyEnumType_Locals;
+typedef struct IDebugPropertyEnumType_Locals IDebugPropertyEnumType_Locals;
 #endif
 
 #ifndef __IDebugPropertyEnumType_Arguments_FWD_DEFINED__
 #define __IDebugPropertyEnumType_Arguments_FWD_DEFINED__
-typedef interface IDebugPropertyEnumType_Arguments IDebugPropertyEnumType_Arguments;
+typedef struct IDebugPropertyEnumType_Arguments IDebugPropertyEnumType_Arguments;
 #endif
 
 #ifndef __IDebugPropertyEnumType_LocalsPlusArgs_FWD_DEFINED__
 #define __IDebugPropertyEnumType_LocalsPlusArgs_FWD_DEFINED__
-typedef interface IDebugPropertyEnumType_LocalsPlusArgs IDebugPropertyEnumType_LocalsPlusArgs;
+typedef struct IDebugPropertyEnumType_LocalsPlusArgs IDebugPropertyEnumType_LocalsPlusArgs;
 #endif
 
 #ifndef __IDebugPropertyEnumType_Registers_FWD_DEFINED__
 #define __IDebugPropertyEnumType_Registers_FWD_DEFINED__
-typedef interface IDebugPropertyEnumType_Registers IDebugPropertyEnumType_Registers;
+typedef struct IDebugPropertyEnumType_Registers IDebugPropertyEnumType_Registers;
 #endif
 
 #include "ocidl.h"
@@ -162,7 +162,7 @@
       HRESULT (WINAPI *GetParent)(IDebugProperty *This,IDebugProperty **ppDebugProp);
     END_INTERFACE
   } IDebugPropertyVtbl;
-  interface IDebugProperty {
+  struct IDebugProperty {
     CONST_VTBL struct IDebugPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -213,7 +213,7 @@
       HRESULT (WINAPI *GetCount)(IEnumDebugPropertyInfo *This,ULONG *pcelt);
     END_INTERFACE
   } IEnumDebugPropertyInfoVtbl;
-  interface IEnumDebugPropertyInfo {
+  struct IEnumDebugPropertyInfo {
     CONST_VTBL struct IEnumDebugPropertyInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -263,7 +263,7 @@
       HRESULT (WINAPI *EnumExtendedMembers)(IDebugExtendedProperty *This,DWORD dwFieldSpec,UINT nRadix,IEnumDebugExtendedPropertyInfo **ppeepi);
     END_INTERFACE
   } IDebugExtendedPropertyVtbl;
-  interface IDebugExtendedProperty {
+  struct IDebugExtendedProperty {
     CONST_VTBL struct IDebugExtendedPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -310,7 +310,7 @@
       HRESULT (WINAPI *GetCount)(IEnumDebugExtendedPropertyInfo *This,ULONG *pcelt);
     END_INTERFACE
   } IEnumDebugExtendedPropertyInfoVtbl;
-  interface IEnumDebugExtendedPropertyInfo {
+  struct IEnumDebugExtendedPropertyInfo {
     CONST_VTBL struct IEnumDebugExtendedPropertyInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -359,7 +359,7 @@
       HRESULT (WINAPI *SetPredefinedValue)(IPerPropertyBrowsing2 *This,DISPID dispid,DWORD dwCookie);
     END_INTERFACE
   } IPerPropertyBrowsing2Vtbl;
-  interface IPerPropertyBrowsing2 {
+  struct IPerPropertyBrowsing2 {
     CONST_VTBL struct IPerPropertyBrowsing2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -399,7 +399,7 @@
       HRESULT (WINAPI *GetName)(IDebugPropertyEnumType_All *This,BSTR *__MIDL_0011);
     END_INTERFACE
   } IDebugPropertyEnumType_AllVtbl;
-  interface IDebugPropertyEnumType_All {
+  struct IDebugPropertyEnumType_All {
     CONST_VTBL struct IDebugPropertyEnumType_AllVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -429,7 +429,7 @@
       HRESULT (WINAPI *GetName)(IDebugPropertyEnumType_Locals *This,BSTR *__MIDL_0011);
     END_INTERFACE
   } IDebugPropertyEnumType_LocalsVtbl;
-  interface IDebugPropertyEnumType_Locals {
+  struct IDebugPropertyEnumType_Locals {
     CONST_VTBL struct IDebugPropertyEnumType_LocalsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -457,7 +457,7 @@
       HRESULT (WINAPI *GetName)(IDebugPropertyEnumType_Arguments *This,BSTR *__MIDL_0011);
     END_INTERFACE
   } IDebugPropertyEnumType_ArgumentsVtbl;
-  interface IDebugPropertyEnumType_Arguments {
+  struct IDebugPropertyEnumType_Arguments {
     CONST_VTBL struct IDebugPropertyEnumType_ArgumentsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -485,7 +485,7 @@
       HRESULT (WINAPI *GetName)(IDebugPropertyEnumType_LocalsPlusArgs *This,BSTR *__MIDL_0011);
     END_INTERFACE
   } IDebugPropertyEnumType_LocalsPlusArgsVtbl;
-  interface IDebugPropertyEnumType_LocalsPlusArgs {
+  struct IDebugPropertyEnumType_LocalsPlusArgs {
     CONST_VTBL struct IDebugPropertyEnumType_LocalsPlusArgsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -512,7 +512,7 @@
       HRESULT (WINAPI *GetName)(IDebugPropertyEnumType_Registers *This,BSTR *__MIDL_0011);
     END_INTERFACE
   } IDebugPropertyEnumType_RegistersVtbl;
-  interface IDebugPropertyEnumType_Registers {
+  struct IDebugPropertyEnumType_Registers {
     CONST_VTBL struct IDebugPropertyEnumType_RegistersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/dhtmled.h b/mingw-w64-headers/include/dhtmled.h
index 3ef55af..a00cb98 100755
--- a/mingw-w64-headers/include/dhtmled.h
+++ b/mingw-w64-headers/include/dhtmled.h
@@ -19,32 +19,32 @@
 
 #ifndef __IDEGetBlockFmtNamesParam_FWD_DEFINED__
 #define __IDEGetBlockFmtNamesParam_FWD_DEFINED__
-  typedef interface IDEGetBlockFmtNamesParam IDEGetBlockFmtNamesParam;
+  typedef struct IDEGetBlockFmtNamesParam IDEGetBlockFmtNamesParam;
 #endif
 
 #ifndef __IDHTMLSafe_FWD_DEFINED__
 #define __IDHTMLSafe_FWD_DEFINED__
-  typedef interface IDHTMLSafe IDHTMLSafe;
+  typedef struct IDHTMLSafe IDHTMLSafe;
 #endif
 
 #ifndef __IDHTMLEdit_FWD_DEFINED__
 #define __IDHTMLEdit_FWD_DEFINED__
-  typedef interface IDHTMLEdit IDHTMLEdit;
+  typedef struct IDHTMLEdit IDHTMLEdit;
 #endif
 
 #ifndef __IDEInsertTableParam_FWD_DEFINED__
 #define __IDEInsertTableParam_FWD_DEFINED__
-  typedef interface IDEInsertTableParam IDEInsertTableParam;
+  typedef struct IDEInsertTableParam IDEInsertTableParam;
 #endif
 
 #ifndef ___DHTMLSafeEvents_FWD_DEFINED__
 #define ___DHTMLSafeEvents_FWD_DEFINED__
-  typedef interface _DHTMLSafeEvents _DHTMLSafeEvents;
+  typedef struct _DHTMLSafeEvents _DHTMLSafeEvents;
 #endif
 
 #ifndef ___DHTMLEditEvents_FWD_DEFINED__
 #define ___DHTMLEditEvents_FWD_DEFINED__
-  typedef interface _DHTMLEditEvents _DHTMLEditEvents;
+  typedef struct _DHTMLEditEvents _DHTMLEditEvents;
 #endif
 
 #ifndef __DHTMLEdit_FWD_DEFINED__
@@ -182,7 +182,7 @@
       HRESULT (WINAPI *put_Names)(IDEGetBlockFmtNamesParam *This,VARIANT *newVal);
     END_INTERFACE
   } IDEGetBlockFmtNamesParamVtbl;
-  interface IDEGetBlockFmtNamesParam {
+  struct IDEGetBlockFmtNamesParam {
     CONST_VTBL struct IDEGetBlockFmtNamesParamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -310,7 +310,7 @@
       HRESULT (WINAPI *get_Busy)(IDHTMLSafe *This,VARIANT_BOOL *pVal);
     END_INTERFACE
   } IDHTMLSafeVtbl;
-  interface IDHTMLSafe {
+  struct IDHTMLSafe {
     CONST_VTBL struct IDHTMLSafeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -530,7 +530,7 @@
       HRESULT (WINAPI *put_BrowseMode)(IDHTMLEdit *This,VARIANT_BOOL newVal);
     END_INTERFACE
   } IDHTMLEditVtbl;
-  interface IDHTMLEdit {
+  struct IDHTMLEdit {
     CONST_VTBL struct IDHTMLEditVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -643,7 +643,7 @@
       HRESULT (WINAPI *put_Caption)(IDEInsertTableParam *This,BSTR newVal);
     END_INTERFACE
   } IDEInsertTableParamVtbl;
-  interface IDEInsertTableParam {
+  struct IDEInsertTableParam {
     CONST_VTBL struct IDEInsertTableParamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -706,7 +706,7 @@
       HRESULT (WINAPI *Invoke)(_DHTMLSafeEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } _DHTMLSafeEventsVtbl;
-  interface _DHTMLSafeEvents {
+  struct _DHTMLSafeEvents {
     CONST_VTBL struct _DHTMLSafeEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -739,7 +739,7 @@
       HRESULT (WINAPI *Invoke)(_DHTMLEditEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } _DHTMLEditEventsVtbl;
-  interface _DHTMLEditEvents {
+  struct _DHTMLEditEvents {
     CONST_VTBL struct _DHTMLEditEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/dimm.h b/mingw-w64-headers/include/dimm.h
index f7317d8..cb9d3c1 100755
--- a/mingw-w64-headers/include/dimm.h
+++ b/mingw-w64-headers/include/dimm.h
@@ -15,47 +15,47 @@
 
 #ifndef __IEnumRegisterWordA_FWD_DEFINED__
 #define __IEnumRegisterWordA_FWD_DEFINED__
-typedef interface IEnumRegisterWordA IEnumRegisterWordA;
+typedef struct IEnumRegisterWordA IEnumRegisterWordA;
 #endif
 
 #ifndef __IEnumRegisterWordW_FWD_DEFINED__
 #define __IEnumRegisterWordW_FWD_DEFINED__
-typedef interface IEnumRegisterWordW IEnumRegisterWordW;
+typedef struct IEnumRegisterWordW IEnumRegisterWordW;
 #endif
 
 #ifndef __IEnumInputContext_FWD_DEFINED__
 #define __IEnumInputContext_FWD_DEFINED__
-typedef interface IEnumInputContext IEnumInputContext;
+typedef struct IEnumInputContext IEnumInputContext;
 #endif
 
 #ifndef __IActiveIMMRegistrar_FWD_DEFINED__
 #define __IActiveIMMRegistrar_FWD_DEFINED__
-typedef interface IActiveIMMRegistrar IActiveIMMRegistrar;
+typedef struct IActiveIMMRegistrar IActiveIMMRegistrar;
 #endif
 
 #ifndef __IActiveIMMMessagePumpOwner_FWD_DEFINED__
 #define __IActiveIMMMessagePumpOwner_FWD_DEFINED__
-typedef interface IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner;
+typedef struct IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner;
 #endif
 
 #ifndef __IActiveIMMApp_FWD_DEFINED__
 #define __IActiveIMMApp_FWD_DEFINED__
-typedef interface IActiveIMMApp IActiveIMMApp;
+typedef struct IActiveIMMApp IActiveIMMApp;
 #endif
 
 #ifndef __IActiveIMMIME_FWD_DEFINED__
 #define __IActiveIMMIME_FWD_DEFINED__
-typedef interface IActiveIMMIME IActiveIMMIME;
+typedef struct IActiveIMMIME IActiveIMMIME;
 #endif
 
 #ifndef __IActiveIME_FWD_DEFINED__
 #define __IActiveIME_FWD_DEFINED__
-typedef interface IActiveIME IActiveIME;
+typedef struct IActiveIME IActiveIME;
 #endif
 
 #ifndef __IActiveIME2_FWD_DEFINED__
 #define __IActiveIME2_FWD_DEFINED__
-typedef interface IActiveIME2 IActiveIME2;
+typedef struct IActiveIME2 IActiveIME2;
 #endif
 
 #ifndef __CActiveIMM_FWD_DEFINED__
@@ -143,7 +143,7 @@
       HRESULT (WINAPI *Skip)(IEnumRegisterWordA *This,ULONG ulCount);
     END_INTERFACE
   } IEnumRegisterWordAVtbl;
-  interface IEnumRegisterWordA {
+  struct IEnumRegisterWordA {
     CONST_VTBL struct IEnumRegisterWordAVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -189,7 +189,7 @@
       HRESULT (WINAPI *Skip)(IEnumRegisterWordW *This,ULONG ulCount);
     END_INTERFACE
   } IEnumRegisterWordWVtbl;
-  interface IEnumRegisterWordW {
+  struct IEnumRegisterWordW {
     CONST_VTBL struct IEnumRegisterWordWVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -235,7 +235,7 @@
       HRESULT (WINAPI *Skip)(IEnumInputContext *This,ULONG ulCount);
     END_INTERFACE
   } IEnumInputContextVtbl;
-  interface IEnumInputContext {
+  struct IEnumInputContext {
     CONST_VTBL struct IEnumInputContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -277,7 +277,7 @@
       HRESULT (WINAPI *UnregisterIME)(IActiveIMMRegistrar *This,REFCLSID rclsid);
     END_INTERFACE
   } IActiveIMMRegistrarVtbl;
-  interface IActiveIMMRegistrar {
+  struct IActiveIMMRegistrar {
     CONST_VTBL struct IActiveIMMRegistrarVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -319,7 +319,7 @@
       HRESULT (WINAPI *Resume)(IActiveIMMMessagePumpOwner *This,DWORD dwCookie);
     END_INTERFACE
   } IActiveIMMMessagePumpOwnerVtbl;
-  interface IActiveIMMMessagePumpOwner {
+  struct IActiveIMMMessagePumpOwner {
     CONST_VTBL struct IActiveIMMMessagePumpOwnerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -496,7 +496,7 @@
       HRESULT (WINAPI *EnumInputContext)(IActiveIMMApp *This,DWORD idThread,IEnumInputContext **ppEnum);
     END_INTERFACE
   } IActiveIMMAppVtbl;
-  interface IActiveIMMApp {
+  struct IActiveIMMApp {
     CONST_VTBL struct IActiveIMMAppVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -902,7 +902,7 @@
       HRESULT (WINAPI *IsSleeping)(IActiveIMMIME *This);
     END_INTERFACE
   } IActiveIMMIMEVtbl;
-  interface IActiveIMMIME {
+  struct IActiveIMMIME {
     CONST_VTBL struct IActiveIMMIMEVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1226,7 +1226,7 @@
       HRESULT (WINAPI *GetLangId)(IActiveIME *This,LANGID *plid);
     END_INTERFACE
   } IActiveIMEVtbl;
-  interface IActiveIME {
+  struct IActiveIME {
     CONST_VTBL struct IActiveIMEVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1324,7 +1324,7 @@
       HRESULT (WINAPI *Unsleep)(IActiveIME2 *This,WINBOOL fDead);
     END_INTERFACE
   } IActiveIME2Vtbl;
-  interface IActiveIME2 {
+  struct IActiveIME2 {
     CONST_VTBL struct IActiveIME2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/dispex.h b/mingw-w64-headers/include/dispex.h
index 6dd0a4b..34cfbf4 100755
--- a/mingw-w64-headers/include/dispex.h
+++ b/mingw-w64-headers/include/dispex.h
@@ -24,27 +24,27 @@
 
 #ifndef __IDispatchEx_FWD_DEFINED__
 #define __IDispatchEx_FWD_DEFINED__
-typedef interface IDispatchEx IDispatchEx;
+typedef struct IDispatchEx IDispatchEx;
 #endif
 
 #ifndef __IDispError_FWD_DEFINED__
 #define __IDispError_FWD_DEFINED__
-typedef interface IDispError IDispError;
+typedef struct IDispError IDispError;
 #endif
 
 #ifndef __IVariantChangeType_FWD_DEFINED__
 #define __IVariantChangeType_FWD_DEFINED__
-typedef interface IVariantChangeType IVariantChangeType;
+typedef struct IVariantChangeType IVariantChangeType;
 #endif
 
 #ifndef __IObjectIdentity_FWD_DEFINED__
 #define __IObjectIdentity_FWD_DEFINED__
-typedef interface IObjectIdentity IObjectIdentity;
+typedef struct IObjectIdentity IObjectIdentity;
 #endif
 
 #ifndef __IProvideRuntimeContext_FWD_DEFINED__
 #define __IProvideRuntimeContext_FWD_DEFINED__
-typedef interface IProvideRuntimeContext IProvideRuntimeContext;
+typedef struct IProvideRuntimeContext IProvideRuntimeContext;
 #endif
 
 #include "ocidl.h"
@@ -149,7 +149,7 @@
       HRESULT (WINAPI *GetNameSpaceParent)(IDispatchEx *This,IUnknown **ppunk);
     END_INTERFACE
   } IDispatchExVtbl;
-  interface IDispatchEx {
+  struct IDispatchEx {
     CONST_VTBL struct IDispatchExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -215,7 +215,7 @@
       HRESULT (WINAPI *GetDescription)(IDispError *This,BSTR *pbstrDescription);
     END_INTERFACE
   } IDispErrorVtbl;
-  interface IDispError {
+  struct IDispError {
     CONST_VTBL struct IDispErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -261,7 +261,7 @@
       HRESULT (WINAPI *ChangeType)(IVariantChangeType *This,VARIANT *pvarDst,VARIANT *pvarSrc,LCID lcid,VARTYPE vtNew);
     END_INTERFACE
   } IVariantChangeTypeVtbl;
-  interface IVariantChangeType {
+  struct IVariantChangeType {
     CONST_VTBL struct IVariantChangeTypeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -292,7 +292,7 @@
       HRESULT (WINAPI *IsEqualObject)(IObjectIdentity *This,IUnknown *punk);
     END_INTERFACE
   } IObjectIdentityVtbl;
-  interface IObjectIdentity {
+  struct IObjectIdentity {
     CONST_VTBL struct IObjectIdentityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -323,7 +323,7 @@
       HRESULT (WINAPI *GetCurrentSourceContext)(IProvideRuntimeContext *This,DWORD_PTR *pdwContext,VARIANT_BOOL *pfExecutingGlobalCode);
     END_INTERFACE
   } IProvideRuntimeContextVtbl;
-  interface IProvideRuntimeContext {
+  struct IProvideRuntimeContext {
     CONST_VTBL struct IProvideRuntimeContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/docobj.h b/mingw-w64-headers/include/docobj.h
index e643c7b..faa8b22 100755
--- a/mingw-w64-headers/include/docobj.h
+++ b/mingw-w64-headers/include/docobj.h
@@ -24,37 +24,37 @@
 
 #ifndef __IOleDocument_FWD_DEFINED__
 #define __IOleDocument_FWD_DEFINED__
-typedef interface IOleDocument IOleDocument;
+typedef struct IOleDocument IOleDocument;
 #endif
 
 #ifndef __IOleDocumentSite_FWD_DEFINED__
 #define __IOleDocumentSite_FWD_DEFINED__
-typedef interface IOleDocumentSite IOleDocumentSite;
+typedef struct IOleDocumentSite IOleDocumentSite;
 #endif
 
 #ifndef __IOleDocumentView_FWD_DEFINED__
 #define __IOleDocumentView_FWD_DEFINED__
-typedef interface IOleDocumentView IOleDocumentView;
+typedef struct IOleDocumentView IOleDocumentView;
 #endif
 
 #ifndef __IEnumOleDocumentViews_FWD_DEFINED__
 #define __IEnumOleDocumentViews_FWD_DEFINED__
-typedef interface IEnumOleDocumentViews IEnumOleDocumentViews;
+typedef struct IEnumOleDocumentViews IEnumOleDocumentViews;
 #endif
 
 #ifndef __IContinueCallback_FWD_DEFINED__
 #define __IContinueCallback_FWD_DEFINED__
-typedef interface IContinueCallback IContinueCallback;
+typedef struct IContinueCallback IContinueCallback;
 #endif
 
 #ifndef __IPrint_FWD_DEFINED__
 #define __IPrint_FWD_DEFINED__
-typedef interface IPrint IPrint;
+typedef struct IPrint IPrint;
 #endif
 
 #ifndef __IOleCommandTarget_FWD_DEFINED__
 #define __IOleCommandTarget_FWD_DEFINED__
-typedef interface IOleCommandTarget IOleCommandTarget;
+typedef struct IOleCommandTarget IOleCommandTarget;
 #endif
 
 #include "ocidl.h"
@@ -98,7 +98,7 @@
       HRESULT (WINAPI *EnumViews)(IOleDocument *This,IEnumOleDocumentViews **ppEnum,IOleDocumentView **ppView);
     END_INTERFACE
   } IOleDocumentVtbl;
-  interface IOleDocument {
+  struct IOleDocument {
     CONST_VTBL struct IOleDocumentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -141,7 +141,7 @@
       HRESULT (WINAPI *ActivateMe)(IOleDocumentSite *This,IOleDocumentView *pViewToActivate);
     END_INTERFACE
   } IOleDocumentSiteVtbl;
-  interface IOleDocumentSite {
+  struct IOleDocumentSite {
     CONST_VTBL struct IOleDocumentSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -203,7 +203,7 @@
       HRESULT (WINAPI *Clone)(IOleDocumentView *This,IOleInPlaceSite *pIPSiteNew,IOleDocumentView **ppViewNew);
     END_INTERFACE
   } IOleDocumentViewVtbl;
-  interface IOleDocumentView {
+  struct IOleDocumentView {
     CONST_VTBL struct IOleDocumentViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -282,7 +282,7 @@
       HRESULT (WINAPI *Clone)(IEnumOleDocumentViews *This,IEnumOleDocumentViews **ppEnum);
     END_INTERFACE
   } IEnumOleDocumentViewsVtbl;
-  interface IEnumOleDocumentViews {
+  struct IEnumOleDocumentViews {
     CONST_VTBL struct IEnumOleDocumentViewsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -330,7 +330,7 @@
       HRESULT (WINAPI *FContinuePrinting)(IContinueCallback *This,LONG nCntPrinted,LONG nCurPage,wchar_t *pwszPrintStatus);
     END_INTERFACE
   } IContinueCallbackVtbl;
-  interface IContinueCallback {
+  struct IContinueCallback {
     CONST_VTBL struct IContinueCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -392,7 +392,7 @@
       HRESULT (WINAPI *Print)(IPrint *This,DWORD grfFlags,DVTARGETDEVICE **pptd,PAGESET **ppPageSet,STGMEDIUM *pstgmOptions,IContinueCallback *pcallback,LONG nFirstPage,LONG *pcPagesPrinted,LONG *pnLastPage);
     END_INTERFACE
   } IPrintVtbl;
-  interface IPrint {
+  struct IPrint {
     CONST_VTBL struct IPrintVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -488,7 +488,7 @@
       HRESULT (WINAPI *Exec)(IOleCommandTarget *This,const GUID *pguidCmdGroup,DWORD nCmdID,DWORD nCmdexecopt,VARIANT *pvaIn,VARIANT *pvaOut);
     END_INTERFACE
   } IOleCommandTargetVtbl;
-  interface IOleCommandTarget {
+  struct IOleCommandTarget {
     CONST_VTBL struct IOleCommandTargetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/emostore.h b/mingw-w64-headers/include/emostore.h
index 01fa10d..0e3ae78 100755
--- a/mingw-w64-headers/include/emostore.h
+++ b/mingw-w64-headers/include/emostore.h
@@ -24,32 +24,32 @@
 
 #ifndef __IExchangeServer_FWD_DEFINED__
 #define __IExchangeServer_FWD_DEFINED__
-typedef interface IExchangeServer IExchangeServer;
+typedef struct IExchangeServer IExchangeServer;
 #endif
 
 #ifndef __IStorageGroup_FWD_DEFINED__
 #define __IStorageGroup_FWD_DEFINED__
-typedef interface IStorageGroup IStorageGroup;
+typedef struct IStorageGroup IStorageGroup;
 #endif
 
 #ifndef __IPublicStoreDB_FWD_DEFINED__
 #define __IPublicStoreDB_FWD_DEFINED__
-typedef interface IPublicStoreDB IPublicStoreDB;
+typedef struct IPublicStoreDB IPublicStoreDB;
 #endif
 
 #ifndef __IMailboxStoreDB_FWD_DEFINED__
 #define __IMailboxStoreDB_FWD_DEFINED__
-typedef interface IMailboxStoreDB IMailboxStoreDB;
+typedef struct IMailboxStoreDB IMailboxStoreDB;
 #endif
 
 #ifndef __IFolderTree_FWD_DEFINED__
 #define __IFolderTree_FWD_DEFINED__
-typedef interface IFolderTree IFolderTree;
+typedef struct IFolderTree IFolderTree;
 #endif
 
 #ifndef __IDataSource2_FWD_DEFINED__
 #define __IDataSource2_FWD_DEFINED__
-typedef interface IDataSource2 IDataSource2;
+typedef struct IDataSource2 IDataSource2;
 #endif
 
 #include "oaidl.h"
@@ -128,7 +128,7 @@
       HRESULT (WINAPI *GetInterface)(IExchangeServer *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IExchangeServerVtbl;
-  interface IExchangeServer {
+  struct IExchangeServer {
     CONST_VTBL struct IExchangeServerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -237,7 +237,7 @@
       HRESULT (WINAPI *MoveSystemFiles)(IStorageGroup *This,BSTR SystemFilePath,long Flags);
     END_INTERFACE
   } IStorageGroupVtbl;
-  interface IStorageGroup {
+  struct IStorageGroup {
     CONST_VTBL struct IStorageGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -370,7 +370,7 @@
       HRESULT (WINAPI *Dismount)(IPublicStoreDB *This,long Timeout);
     END_INTERFACE
   } IPublicStoreDBVtbl;
-  interface IPublicStoreDB {
+  struct IPublicStoreDB {
     CONST_VTBL struct IPublicStoreDBVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -543,7 +543,7 @@
       HRESULT (WINAPI *Dismount)(IMailboxStoreDB *This,long Timeout);
     END_INTERFACE
   } IMailboxStoreDBVtbl;
-  interface IMailboxStoreDB {
+  struct IMailboxStoreDB {
     CONST_VTBL struct IMailboxStoreDBVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -680,7 +680,7 @@
       HRESULT (WINAPI *GetInterface)(IFolderTree *This,BSTR Interface,IDispatch **ppUnknown);
     END_INTERFACE
   } IFolderTreeVtbl;
-  interface IFolderTree {
+  struct IFolderTree {
     CONST_VTBL struct IFolderTreeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -754,7 +754,7 @@
       HRESULT (WINAPI *MoveToContainer)(IDataSource2 *This,BSTR ContainerURL);
     END_INTERFACE
   } IDataSource2Vtbl;
-  interface IDataSource2 {
+  struct IDataSource2 {
     CONST_VTBL struct IDataSource2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/emptyvc.h b/mingw-w64-headers/include/emptyvc.h
index 86fd28a..28b8816 100755
--- a/mingw-w64-headers/include/emptyvc.h
+++ b/mingw-w64-headers/include/emptyvc.h
@@ -24,17 +24,17 @@
 
 #ifndef __IEmptyVolumeCacheCallBack_FWD_DEFINED__
 #define __IEmptyVolumeCacheCallBack_FWD_DEFINED__
-typedef interface IEmptyVolumeCacheCallBack IEmptyVolumeCacheCallBack;
+typedef struct IEmptyVolumeCacheCallBack IEmptyVolumeCacheCallBack;
 #endif
 
 #ifndef __IEmptyVolumeCache_FWD_DEFINED__
 #define __IEmptyVolumeCache_FWD_DEFINED__
-typedef interface IEmptyVolumeCache IEmptyVolumeCache;
+typedef struct IEmptyVolumeCache IEmptyVolumeCache;
 #endif
 
 #ifndef __IEmptyVolumeCache2_FWD_DEFINED__
 #define __IEmptyVolumeCache2_FWD_DEFINED__
-typedef interface IEmptyVolumeCache2 IEmptyVolumeCache2;
+typedef struct IEmptyVolumeCache2 IEmptyVolumeCache2;
 #endif
 
 #include "objidl.h"
@@ -84,7 +84,7 @@
       HRESULT (WINAPI *PurgeProgress)(IEmptyVolumeCacheCallBack *This,DWORDLONG dwlSpaceFreed,DWORDLONG dwlSpaceToFree,DWORD dwFlags,LPCWSTR pcwszStatus);
     END_INTERFACE
   } IEmptyVolumeCacheCallBackVtbl;
-  interface IEmptyVolumeCacheCallBack {
+  struct IEmptyVolumeCacheCallBack {
     CONST_VTBL struct IEmptyVolumeCacheCallBackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -132,7 +132,7 @@
       HRESULT (WINAPI *Deactivate)(IEmptyVolumeCache *This,DWORD *pdwFlags);
     END_INTERFACE
   } IEmptyVolumeCacheVtbl;
-  interface IEmptyVolumeCache {
+  struct IEmptyVolumeCache {
     CONST_VTBL struct IEmptyVolumeCacheVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -186,7 +186,7 @@
       HRESULT (WINAPI *InitializeEx)(IEmptyVolumeCache2 *This,HKEY hkRegKey,LPCWSTR pcwszVolume,LPCWSTR pcwszKeyName,LPWSTR *ppwszDisplayName,LPWSTR *ppwszDescription,LPWSTR *ppwszBtnText,DWORD *pdwFlags);
     END_INTERFACE
   } IEmptyVolumeCache2Vtbl;
-  interface IEmptyVolumeCache2 {
+  struct IEmptyVolumeCache2 {
     CONST_VTBL struct IEmptyVolumeCache2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/eventsys.h b/mingw-w64-headers/include/eventsys.h
index bc9a099..39cecf3 100755
--- a/mingw-w64-headers/include/eventsys.h
+++ b/mingw-w64-headers/include/eventsys.h
@@ -24,77 +24,77 @@
 
 #ifndef __IEventSystem_FWD_DEFINED__
 #define __IEventSystem_FWD_DEFINED__
-typedef interface IEventSystem IEventSystem;
+typedef struct IEventSystem IEventSystem;
 #endif
 
 #ifndef __IEventPublisher_FWD_DEFINED__
 #define __IEventPublisher_FWD_DEFINED__
-typedef interface IEventPublisher IEventPublisher;
+typedef struct IEventPublisher IEventPublisher;
 #endif
 
 #ifndef __IEventClass_FWD_DEFINED__
 #define __IEventClass_FWD_DEFINED__
-typedef interface IEventClass IEventClass;
+typedef struct IEventClass IEventClass;
 #endif
 
 #ifndef __IEventClass2_FWD_DEFINED__
 #define __IEventClass2_FWD_DEFINED__
-typedef interface IEventClass2 IEventClass2;
+typedef struct IEventClass2 IEventClass2;
 #endif
 
 #ifndef __IEventSubscription_FWD_DEFINED__
 #define __IEventSubscription_FWD_DEFINED__
-typedef interface IEventSubscription IEventSubscription;
+typedef struct IEventSubscription IEventSubscription;
 #endif
 
 #ifndef __IFiringControl_FWD_DEFINED__
 #define __IFiringControl_FWD_DEFINED__
-typedef interface IFiringControl IFiringControl;
+typedef struct IFiringControl IFiringControl;
 #endif
 
 #ifndef __IPublisherFilter_FWD_DEFINED__
 #define __IPublisherFilter_FWD_DEFINED__
-typedef interface IPublisherFilter IPublisherFilter;
+typedef struct IPublisherFilter IPublisherFilter;
 #endif
 
 #ifndef __IMultiInterfacePublisherFilter_FWD_DEFINED__
 #define __IMultiInterfacePublisherFilter_FWD_DEFINED__
-typedef interface IMultiInterfacePublisherFilter IMultiInterfacePublisherFilter;
+typedef struct IMultiInterfacePublisherFilter IMultiInterfacePublisherFilter;
 #endif
 
 #ifndef __IEventObjectChange_FWD_DEFINED__
 #define __IEventObjectChange_FWD_DEFINED__
-typedef interface IEventObjectChange IEventObjectChange;
+typedef struct IEventObjectChange IEventObjectChange;
 #endif
 
 #ifndef __IEventObjectChange2_FWD_DEFINED__
 #define __IEventObjectChange2_FWD_DEFINED__
-typedef interface IEventObjectChange2 IEventObjectChange2;
+typedef struct IEventObjectChange2 IEventObjectChange2;
 #endif
 
 #ifndef __IEnumEventObject_FWD_DEFINED__
 #define __IEnumEventObject_FWD_DEFINED__
-typedef interface IEnumEventObject IEnumEventObject;
+typedef struct IEnumEventObject IEnumEventObject;
 #endif
 
 #ifndef __IEventObjectCollection_FWD_DEFINED__
 #define __IEventObjectCollection_FWD_DEFINED__
-typedef interface IEventObjectCollection IEventObjectCollection;
+typedef struct IEventObjectCollection IEventObjectCollection;
 #endif
 
 #ifndef __IEventProperty_FWD_DEFINED__
 #define __IEventProperty_FWD_DEFINED__
-typedef interface IEventProperty IEventProperty;
+typedef struct IEventProperty IEventProperty;
 #endif
 
 #ifndef __IEventControl_FWD_DEFINED__
 #define __IEventControl_FWD_DEFINED__
-typedef interface IEventControl IEventControl;
+typedef struct IEventControl IEventControl;
 #endif
 
 #ifndef __IMultiInterfaceEventControl_FWD_DEFINED__
 #define __IMultiInterfaceEventControl_FWD_DEFINED__
-typedef interface IMultiInterfaceEventControl IMultiInterfaceEventControl;
+typedef struct IMultiInterfaceEventControl IMultiInterfaceEventControl;
 #endif
 
 #ifndef __CEventSystem_FWD_DEFINED__
@@ -206,7 +206,7 @@
       HRESULT (WINAPI *RemoveS)(IEventSystem *This,BSTR progID,BSTR queryCriteria);
     END_INTERFACE
   } IEventSystemVtbl;
-  interface IEventSystem {
+  struct IEventSystem {
     CONST_VTBL struct IEventSystemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -286,7 +286,7 @@
       HRESULT (WINAPI *GetDefaultPropertyCollection)(IEventPublisher *This,IEventObjectCollection **collection);
     END_INTERFACE
   } IEventPublisherVtbl;
-  interface IEventPublisher {
+  struct IEventPublisher {
     CONST_VTBL struct IEventPublisherVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -390,7 +390,7 @@
       HRESULT (WINAPI *put_TypeLib)(IEventClass *This,BSTR bstrTypeLib);
     END_INTERFACE
   } IEventClassVtbl;
-  interface IEventClass {
+  struct IEventClass {
     CONST_VTBL struct IEventClassVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -496,7 +496,7 @@
       HRESULT (WINAPI *put_FireInParallel)(IEventClass2 *This,WINBOOL fFireInParallel);
     END_INTERFACE
   } IEventClass2Vtbl;
-  interface IEventClass2 {
+  struct IEventClass2 {
     CONST_VTBL struct IEventClass2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -636,7 +636,7 @@
       HRESULT (WINAPI *put_InterfaceID)(IEventSubscription *This,BSTR bstrInterfaceID);
     END_INTERFACE
   } IEventSubscriptionVtbl;
-  interface IEventSubscription {
+  struct IEventSubscription {
     CONST_VTBL struct IEventSubscriptionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -774,7 +774,7 @@
       HRESULT (WINAPI *FireSubscription)(IFiringControl *This,IEventSubscription *subscription);
     END_INTERFACE
   } IFiringControlVtbl;
-  interface IFiringControl {
+  struct IFiringControl {
     CONST_VTBL struct IFiringControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -811,7 +811,7 @@
       HRESULT (WINAPI *PrepareToFire)(IPublisherFilter *This,BSTR methodName,IFiringControl *firingControl);
     END_INTERFACE
   } IPublisherFilterVtbl;
-  interface IPublisherFilter {
+  struct IPublisherFilter {
     CONST_VTBL struct IPublisherFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -847,7 +847,7 @@
       HRESULT (WINAPI *PrepareToFire)(IMultiInterfacePublisherFilter *This,REFIID iid,BSTR methodName,IFiringControl *firingControl);
     END_INTERFACE
   } IMultiInterfacePublisherFilterVtbl;
-  interface IMultiInterfacePublisherFilter {
+  struct IMultiInterfacePublisherFilter {
     CONST_VTBL struct IMultiInterfacePublisherFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -889,7 +889,7 @@
       HRESULT (WINAPI *ChangedPublisher)(IEventObjectChange *This,EOC_ChangeType changeType,BSTR bstrPublisherID);
     END_INTERFACE
   } IEventObjectChangeVtbl;
-  interface IEventObjectChange {
+  struct IEventObjectChange {
     CONST_VTBL struct IEventObjectChangeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -942,7 +942,7 @@
       HRESULT (WINAPI *ChangedEventClass)(IEventObjectChange2 *This,COMEVENTSYSCHANGEINFO *pInfo);
     END_INTERFACE
   } IEventObjectChange2Vtbl;
-  interface IEventObjectChange2 {
+  struct IEventObjectChange2 {
     CONST_VTBL struct IEventObjectChange2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -982,7 +982,7 @@
       HRESULT (WINAPI *Skip)(IEnumEventObject *This,ULONG cSkipElem);
     END_INTERFACE
   } IEnumEventObjectVtbl;
-  interface IEnumEventObject {
+  struct IEnumEventObject {
     CONST_VTBL struct IEnumEventObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1036,7 +1036,7 @@
       HRESULT (WINAPI *Remove)(IEventObjectCollection *This,BSTR objectID);
     END_INTERFACE
   } IEventObjectCollectionVtbl;
-  interface IEventObjectCollection {
+  struct IEventObjectCollection {
     CONST_VTBL struct IEventObjectCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1096,7 +1096,7 @@
       HRESULT (WINAPI *put_Value)(IEventProperty *This,VARIANT *propertyValue);
     END_INTERFACE
   } IEventPropertyVtbl;
-  interface IEventProperty {
+  struct IEventProperty {
     CONST_VTBL struct IEventPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1152,7 +1152,7 @@
       HRESULT (WINAPI *SetDefaultQuery)(IEventControl *This,BSTR methodName,BSTR criteria,int *errorIndex);
     END_INTERFACE
   } IEventControlVtbl;
-  interface IEventControl {
+  struct IEventControl {
     CONST_VTBL struct IEventControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1211,7 +1211,7 @@
       HRESULT (WINAPI *put_FireInParallel)(IMultiInterfaceEventControl *This,WINBOOL fFireInParallel);
     END_INTERFACE
   } IMultiInterfaceEventControlVtbl;
-  interface IMultiInterfaceEventControl {
+  struct IMultiInterfaceEventControl {
     CONST_VTBL struct IMultiInterfaceEventControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/exdisp.h b/mingw-w64-headers/include/exdisp.h
index 82ad6e4..517739a 100755
--- a/mingw-w64-headers/include/exdisp.h
+++ b/mingw-w64-headers/include/exdisp.h
@@ -15,27 +15,27 @@
 
 #ifndef __IWebBrowser_FWD_DEFINED__
 #define __IWebBrowser_FWD_DEFINED__
-typedef interface IWebBrowser IWebBrowser;
+typedef struct IWebBrowser IWebBrowser;
 #endif
 
 #ifndef __DWebBrowserEvents_FWD_DEFINED__
 #define __DWebBrowserEvents_FWD_DEFINED__
-typedef interface DWebBrowserEvents DWebBrowserEvents;
+typedef struct DWebBrowserEvents DWebBrowserEvents;
 #endif
 
 #ifndef __IWebBrowserApp_FWD_DEFINED__
 #define __IWebBrowserApp_FWD_DEFINED__
-typedef interface IWebBrowserApp IWebBrowserApp;
+typedef struct IWebBrowserApp IWebBrowserApp;
 #endif
 
 #ifndef __IWebBrowser2_FWD_DEFINED__
 #define __IWebBrowser2_FWD_DEFINED__
-typedef interface IWebBrowser2 IWebBrowser2;
+typedef struct IWebBrowser2 IWebBrowser2;
 #endif
 
 #ifndef __DWebBrowserEvents2_FWD_DEFINED__
 #define __DWebBrowserEvents2_FWD_DEFINED__
-typedef interface DWebBrowserEvents2 DWebBrowserEvents2;
+typedef struct DWebBrowserEvents2 DWebBrowserEvents2;
 #endif
 
 #ifndef __WebBrowser_V1_FWD_DEFINED__
@@ -79,12 +79,12 @@
 
 #ifndef __DShellWindowsEvents_FWD_DEFINED__
 #define __DShellWindowsEvents_FWD_DEFINED__
-typedef interface DShellWindowsEvents DShellWindowsEvents;
+typedef struct DShellWindowsEvents DShellWindowsEvents;
 #endif
 
 #ifndef __IShellWindows_FWD_DEFINED__
 #define __IShellWindows_FWD_DEFINED__
-typedef interface IShellWindows IShellWindows;
+typedef struct IShellWindows IShellWindows;
 #endif
 
 #ifndef __ShellWindows_FWD_DEFINED__
@@ -98,7 +98,7 @@
 
 #ifndef __IShellUIHelper_FWD_DEFINED__
 #define __IShellUIHelper_FWD_DEFINED__
-typedef interface IShellUIHelper IShellUIHelper;
+typedef struct IShellUIHelper IShellUIHelper;
 #endif
 
 #ifndef __ShellUIHelper_FWD_DEFINED__
@@ -112,17 +112,17 @@
 
 #ifndef __DShellNameSpaceEvents_FWD_DEFINED__
 #define __DShellNameSpaceEvents_FWD_DEFINED__
-typedef interface DShellNameSpaceEvents DShellNameSpaceEvents;
+typedef struct DShellNameSpaceEvents DShellNameSpaceEvents;
 #endif
 
 #ifndef __IShellFavoritesNameSpace_FWD_DEFINED__
 #define __IShellFavoritesNameSpace_FWD_DEFINED__
-typedef interface IShellFavoritesNameSpace IShellFavoritesNameSpace;
+typedef struct IShellFavoritesNameSpace IShellFavoritesNameSpace;
 #endif
 
 #ifndef __IShellNameSpace_FWD_DEFINED__
 #define __IShellNameSpace_FWD_DEFINED__
-typedef interface IShellNameSpace IShellNameSpace;
+typedef struct IShellNameSpace IShellNameSpace;
 #endif
 
 #ifndef __ShellNameSpace_FWD_DEFINED__
@@ -137,7 +137,7 @@
 
 #ifndef __IScriptErrorList_FWD_DEFINED__
 #define __IScriptErrorList_FWD_DEFINED__
-typedef interface IScriptErrorList IScriptErrorList;
+typedef struct IScriptErrorList IScriptErrorList;
 #endif
 
 #ifndef __CScriptErrorList_FWD_DEFINED__
@@ -151,32 +151,32 @@
 
 #ifndef __ISearch_FWD_DEFINED__
 #define __ISearch_FWD_DEFINED__
-typedef interface ISearch ISearch;
+typedef struct ISearch ISearch;
 #endif
 
 #ifndef __ISearches_FWD_DEFINED__
 #define __ISearches_FWD_DEFINED__
-typedef interface ISearches ISearches;
+typedef struct ISearches ISearches;
 #endif
 
 #ifndef __ISearchAssistantOC_FWD_DEFINED__
 #define __ISearchAssistantOC_FWD_DEFINED__
-typedef interface ISearchAssistantOC ISearchAssistantOC;
+typedef struct ISearchAssistantOC ISearchAssistantOC;
 #endif
 
 #ifndef __ISearchAssistantOC2_FWD_DEFINED__
 #define __ISearchAssistantOC2_FWD_DEFINED__
-typedef interface ISearchAssistantOC2 ISearchAssistantOC2;
+typedef struct ISearchAssistantOC2 ISearchAssistantOC2;
 #endif
 
 #ifndef __ISearchAssistantOC3_FWD_DEFINED__
 #define __ISearchAssistantOC3_FWD_DEFINED__
-typedef interface ISearchAssistantOC3 ISearchAssistantOC3;
+typedef struct ISearchAssistantOC3 ISearchAssistantOC3;
 #endif
 
 #ifndef ___SearchAssistantEvents_FWD_DEFINED__
 #define ___SearchAssistantEvents_FWD_DEFINED__
-typedef interface _SearchAssistantEvents _SearchAssistantEvents;
+typedef struct _SearchAssistantEvents _SearchAssistantEvents;
 #endif
 
 #ifndef __SearchAssistantOC_FWD_DEFINED__
@@ -299,7 +299,7 @@
       HRESULT (WINAPI *get_Busy)(IWebBrowser *This,VARIANT_BOOL *pBool);
     END_INTERFACE
   } IWebBrowserVtbl;
-  interface IWebBrowser {
+  struct IWebBrowser {
     CONST_VTBL struct IWebBrowserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -407,7 +407,7 @@
       HRESULT (WINAPI *Invoke)(DWebBrowserEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DWebBrowserEventsVtbl;
-  interface DWebBrowserEvents {
+  struct DWebBrowserEvents {
     CONST_VTBL struct DWebBrowserEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -506,7 +506,7 @@
       HRESULT (WINAPI *put_FullScreen)(IWebBrowserApp *This,VARIANT_BOOL bFullScreen);
     END_INTERFACE
   } IWebBrowserAppVtbl;
-  interface IWebBrowserApp {
+  struct IWebBrowserApp {
     CONST_VTBL struct IWebBrowserAppVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -708,7 +708,7 @@
       HRESULT (WINAPI *put_Resizable)(IWebBrowser2 *This,VARIANT_BOOL Value);
     END_INTERFACE
   } IWebBrowser2Vtbl;
-  interface IWebBrowser2 {
+  struct IWebBrowser2 {
     CONST_VTBL struct IWebBrowser2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -843,7 +843,7 @@
       HRESULT (WINAPI *Invoke)(DWebBrowserEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DWebBrowserEvents2Vtbl;
-  interface DWebBrowserEvents2 {
+  struct DWebBrowserEvents2 {
     CONST_VTBL struct DWebBrowserEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -893,7 +893,7 @@
       HRESULT (WINAPI *Invoke)(DShellWindowsEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DShellWindowsEventsVtbl;
-  interface DShellWindowsEvents {
+  struct DShellWindowsEvents {
     CONST_VTBL struct DShellWindowsEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -949,7 +949,7 @@
       HRESULT (WINAPI *ProcessAttachDetach)(IShellWindows *This,VARIANT_BOOL fAttach);
     END_INTERFACE
   } IShellWindowsVtbl;
-  interface IShellWindows {
+  struct IShellWindows {
     CONST_VTBL struct IShellWindowsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1047,7 +1047,7 @@
       HRESULT (WINAPI *ShowBrowserUI)(IShellUIHelper *This,BSTR bstrName,VARIANT *pvarIn,VARIANT *pvarOut);
     END_INTERFACE
   } IShellUIHelperVtbl;
-  interface IShellUIHelper {
+  struct IShellUIHelper {
     CONST_VTBL struct IShellUIHelperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1124,7 +1124,7 @@
       HRESULT (WINAPI *Invoke)(DShellNameSpaceEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DShellNameSpaceEventsVtbl;
-  interface DShellNameSpaceEvents {
+  struct DShellNameSpaceEvents {
     CONST_VTBL struct DShellNameSpaceEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1184,7 +1184,7 @@
       HRESULT (WINAPI *SetRoot)(IShellFavoritesNameSpace *This,BSTR bstrFullPath);
     END_INTERFACE
   } IShellFavoritesNameSpaceVtbl;
-  interface IShellFavoritesNameSpace {
+  struct IShellFavoritesNameSpace {
     CONST_VTBL struct IShellFavoritesNameSpaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1312,7 +1312,7 @@
       HRESULT (WINAPI *UnselectAll)(IShellNameSpace *This);
     END_INTERFACE
   } IShellNameSpaceVtbl;
-  interface IShellNameSpace {
+  struct IShellNameSpace {
     CONST_VTBL struct IShellNameSpaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1455,7 +1455,7 @@
       HRESULT (WINAPI *setPerErrorDisplay)(IScriptErrorList *This,WINBOOL fPerErrorDisplay);
     END_INTERFACE
   } IScriptErrorListVtbl;
-  interface IScriptErrorList {
+  struct IScriptErrorList {
     CONST_VTBL struct IScriptErrorListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1542,7 +1542,7 @@
       HRESULT (WINAPI *get_Url)(ISearch *This,BSTR *pbstrUrl);
     END_INTERFACE
   } ISearchVtbl;
-  interface ISearch {
+  struct ISearch {
     CONST_VTBL struct ISearchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1593,7 +1593,7 @@
       HRESULT (WINAPI *_NewEnum)(ISearches *This,IUnknown **ppunk);
     END_INTERFACE
   } ISearchesVtbl;
-  interface ISearches {
+  struct ISearches {
     CONST_VTBL struct ISearchesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1693,7 +1693,7 @@
       HRESULT (WINAPI *EncodeString)(ISearchAssistantOC *This,BSTR bstrValue,BSTR bstrCharSet,VARIANT_BOOL bUseUTF8,BSTR *pbstrResult);
     END_INTERFACE
   } ISearchAssistantOCVtbl;
-  interface ISearchAssistantOC {
+  struct ISearchAssistantOC {
     CONST_VTBL struct ISearchAssistantOCVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1837,7 +1837,7 @@
       HRESULT (WINAPI *get_ShowFindPrinter)(ISearchAssistantOC2 *This,VARIANT_BOOL *pbShowFindPrinter);
     END_INTERFACE
   } ISearchAssistantOC2Vtbl;
-  interface ISearchAssistantOC2 {
+  struct ISearchAssistantOC2 {
     CONST_VTBL struct ISearchAssistantOC2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1935,7 +1935,7 @@
       HRESULT (WINAPI *get_UseSearchCompanion)(ISearchAssistantOC3 *This,VARIANT_BOOL *pbUseSC);
     END_INTERFACE
   } ISearchAssistantOC3Vtbl;
-  interface ISearchAssistantOC3 {
+  struct ISearchAssistantOC3 {
     CONST_VTBL struct ISearchAssistantOC3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2005,7 +2005,7 @@
       HRESULT (WINAPI *Invoke)(_SearchAssistantEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } _SearchAssistantEventsVtbl;
-  interface _SearchAssistantEvents {
+  struct _SearchAssistantEvents {
     CONST_VTBL struct _SearchAssistantEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/filter.h b/mingw-w64-headers/include/filter.h
index b493ede..089323f 100755
--- a/mingw-w64-headers/include/filter.h
+++ b/mingw-w64-headers/include/filter.h
@@ -24,7 +24,7 @@
 
 #ifndef __IFilter_FWD_DEFINED__
 #define __IFilter_FWD_DEFINED__
-typedef interface IFilter IFilter;
+typedef struct IFilter IFilter;
 #endif
 
 #include "unknwn.h"
@@ -134,7 +134,7 @@
       SCODE (WINAPI *BindRegion)(IFilter *This,FILTERREGION origPos,REFIID riid,void **ppunk);
     END_INTERFACE
   } IFilterVtbl;
-  interface IFilter {
+  struct IFilter {
     CONST_VTBL struct IFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/gpmgmt.h b/mingw-w64-headers/include/gpmgmt.h
index 8ae5bcf..a0fe32b 100755
--- a/mingw-w64-headers/include/gpmgmt.h
+++ b/mingw-w64-headers/include/gpmgmt.h
@@ -24,152 +24,152 @@
 
 #ifndef __IGPM_FWD_DEFINED__
 #define __IGPM_FWD_DEFINED__
-typedef interface IGPM IGPM;
+typedef struct IGPM IGPM;
 #endif
 
 #ifndef __IGPMDomain_FWD_DEFINED__
 #define __IGPMDomain_FWD_DEFINED__
-typedef interface IGPMDomain IGPMDomain;
+typedef struct IGPMDomain IGPMDomain;
 #endif
 
 #ifndef __IGPMBackupDir_FWD_DEFINED__
 #define __IGPMBackupDir_FWD_DEFINED__
-typedef interface IGPMBackupDir IGPMBackupDir;
+typedef struct IGPMBackupDir IGPMBackupDir;
 #endif
 
 #ifndef __IGPMSitesContainer_FWD_DEFINED__
 #define __IGPMSitesContainer_FWD_DEFINED__
-typedef interface IGPMSitesContainer IGPMSitesContainer;
+typedef struct IGPMSitesContainer IGPMSitesContainer;
 #endif
 
 #ifndef __IGPMSearchCriteria_FWD_DEFINED__
 #define __IGPMSearchCriteria_FWD_DEFINED__
-typedef interface IGPMSearchCriteria IGPMSearchCriteria;
+typedef struct IGPMSearchCriteria IGPMSearchCriteria;
 #endif
 
 #ifndef __IGPMTrustee_FWD_DEFINED__
 #define __IGPMTrustee_FWD_DEFINED__
-typedef interface IGPMTrustee IGPMTrustee;
+typedef struct IGPMTrustee IGPMTrustee;
 #endif
 
 #ifndef __IGPMPermission_FWD_DEFINED__
 #define __IGPMPermission_FWD_DEFINED__
-typedef interface IGPMPermission IGPMPermission;
+typedef struct IGPMPermission IGPMPermission;
 #endif
 
 #ifndef __IGPMSecurityInfo_FWD_DEFINED__
 #define __IGPMSecurityInfo_FWD_DEFINED__
-typedef interface IGPMSecurityInfo IGPMSecurityInfo;
+typedef struct IGPMSecurityInfo IGPMSecurityInfo;
 #endif
 
 #ifndef __IGPMBackup_FWD_DEFINED__
 #define __IGPMBackup_FWD_DEFINED__
-typedef interface IGPMBackup IGPMBackup;
+typedef struct IGPMBackup IGPMBackup;
 #endif
 
 #ifndef __IGPMBackupCollection_FWD_DEFINED__
 #define __IGPMBackupCollection_FWD_DEFINED__
-typedef interface IGPMBackupCollection IGPMBackupCollection;
+typedef struct IGPMBackupCollection IGPMBackupCollection;
 #endif
 
 #ifndef __IGPMSOM_FWD_DEFINED__
 #define __IGPMSOM_FWD_DEFINED__
-typedef interface IGPMSOM IGPMSOM;
+typedef struct IGPMSOM IGPMSOM;
 #endif
 
 #ifndef __IGPMSOMCollection_FWD_DEFINED__
 #define __IGPMSOMCollection_FWD_DEFINED__
-typedef interface IGPMSOMCollection IGPMSOMCollection;
+typedef struct IGPMSOMCollection IGPMSOMCollection;
 #endif
 
 #ifndef __IGPMWMIFilter_FWD_DEFINED__
 #define __IGPMWMIFilter_FWD_DEFINED__
-typedef interface IGPMWMIFilter IGPMWMIFilter;
+typedef struct IGPMWMIFilter IGPMWMIFilter;
 #endif
 
 #ifndef __IGPMWMIFilterCollection_FWD_DEFINED__
 #define __IGPMWMIFilterCollection_FWD_DEFINED__
-typedef interface IGPMWMIFilterCollection IGPMWMIFilterCollection;
+typedef struct IGPMWMIFilterCollection IGPMWMIFilterCollection;
 #endif
 
 #ifndef __IGPMRSOP_FWD_DEFINED__
 #define __IGPMRSOP_FWD_DEFINED__
-typedef interface IGPMRSOP IGPMRSOP;
+typedef struct IGPMRSOP IGPMRSOP;
 #endif
 
 #ifndef __IGPMGPO_FWD_DEFINED__
 #define __IGPMGPO_FWD_DEFINED__
-typedef interface IGPMGPO IGPMGPO;
+typedef struct IGPMGPO IGPMGPO;
 #endif
 
 #ifndef __IGPMGPOCollection_FWD_DEFINED__
 #define __IGPMGPOCollection_FWD_DEFINED__
-typedef interface IGPMGPOCollection IGPMGPOCollection;
+typedef struct IGPMGPOCollection IGPMGPOCollection;
 #endif
 
 #ifndef __IGPMGPOLink_FWD_DEFINED__
 #define __IGPMGPOLink_FWD_DEFINED__
-typedef interface IGPMGPOLink IGPMGPOLink;
+typedef struct IGPMGPOLink IGPMGPOLink;
 #endif
 
 #ifndef __IGPMGPOLinksCollection_FWD_DEFINED__
 #define __IGPMGPOLinksCollection_FWD_DEFINED__
-typedef interface IGPMGPOLinksCollection IGPMGPOLinksCollection;
+typedef struct IGPMGPOLinksCollection IGPMGPOLinksCollection;
 #endif
 
 #ifndef __IGPMCSECollection_FWD_DEFINED__
 #define __IGPMCSECollection_FWD_DEFINED__
-typedef interface IGPMCSECollection IGPMCSECollection;
+typedef struct IGPMCSECollection IGPMCSECollection;
 #endif
 
 #ifndef __IGPMClientSideExtension_FWD_DEFINED__
 #define __IGPMClientSideExtension_FWD_DEFINED__
-typedef interface IGPMClientSideExtension IGPMClientSideExtension;
+typedef struct IGPMClientSideExtension IGPMClientSideExtension;
 #endif
 
 #ifndef __IGPMAsyncCancel_FWD_DEFINED__
 #define __IGPMAsyncCancel_FWD_DEFINED__
-typedef interface IGPMAsyncCancel IGPMAsyncCancel;
+typedef struct IGPMAsyncCancel IGPMAsyncCancel;
 #endif
 
 #ifndef __IGPMAsyncProgress_FWD_DEFINED__
 #define __IGPMAsyncProgress_FWD_DEFINED__
-typedef interface IGPMAsyncProgress IGPMAsyncProgress;
+typedef struct IGPMAsyncProgress IGPMAsyncProgress;
 #endif
 
 #ifndef __IGPMStatusMsgCollection_FWD_DEFINED__
 #define __IGPMStatusMsgCollection_FWD_DEFINED__
-typedef interface IGPMStatusMsgCollection IGPMStatusMsgCollection;
+typedef struct IGPMStatusMsgCollection IGPMStatusMsgCollection;
 #endif
 
 #ifndef __IGPMStatusMessage_FWD_DEFINED__
 #define __IGPMStatusMessage_FWD_DEFINED__
-typedef interface IGPMStatusMessage IGPMStatusMessage;
+typedef struct IGPMStatusMessage IGPMStatusMessage;
 #endif
 
 #ifndef __IGPMConstants_FWD_DEFINED__
 #define __IGPMConstants_FWD_DEFINED__
-typedef interface IGPMConstants IGPMConstants;
+typedef struct IGPMConstants IGPMConstants;
 #endif
 
 #ifndef __IGPMResult_FWD_DEFINED__
 #define __IGPMResult_FWD_DEFINED__
-typedef interface IGPMResult IGPMResult;
+typedef struct IGPMResult IGPMResult;
 #endif
 
 #ifndef __IGPMMapEntryCollection_FWD_DEFINED__
 #define __IGPMMapEntryCollection_FWD_DEFINED__
-typedef interface IGPMMapEntryCollection IGPMMapEntryCollection;
+typedef struct IGPMMapEntryCollection IGPMMapEntryCollection;
 #endif
 
 #ifndef __IGPMMapEntry_FWD_DEFINED__
 #define __IGPMMapEntry_FWD_DEFINED__
-typedef interface IGPMMapEntry IGPMMapEntry;
+typedef struct IGPMMapEntry IGPMMapEntry;
 #endif
 
 #ifndef __IGPMMigrationTable_FWD_DEFINED__
 #define __IGPMMigrationTable_FWD_DEFINED__
-typedef interface IGPMMigrationTable IGPMMigrationTable;
+typedef struct IGPMMigrationTable IGPMMigrationTable;
 #endif
 
 #ifndef __GPM_FWD_DEFINED__
@@ -558,7 +558,7 @@
       HRESULT (WINAPI *InitializeReporting)(IGPM *This,BSTR bstrAdmPath);
     END_INTERFACE
   } IGPMVtbl;
-  interface IGPM {
+  struct IGPM {
     CONST_VTBL struct IGPMVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -648,7 +648,7 @@
       HRESULT (WINAPI *SearchWMIFilters)(IGPMDomain *This,IGPMSearchCriteria *pIGPMSearchCriteria,IGPMWMIFilterCollection **ppIGPMWMIFilterCollection);
     END_INTERFACE
   } IGPMDomainVtbl;
-  interface IGPMDomain {
+  struct IGPMDomain {
     CONST_VTBL struct IGPMDomainVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -718,7 +718,7 @@
       HRESULT (WINAPI *SearchBackups)(IGPMBackupDir *This,IGPMSearchCriteria *pIGPMSearchCriteria,IGPMBackupCollection **ppIGPMBackupCollection);
     END_INTERFACE
   } IGPMBackupDirVtbl;
-  interface IGPMBackupDir {
+  struct IGPMBackupDir {
     CONST_VTBL struct IGPMBackupDirVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -771,7 +771,7 @@
       HRESULT (WINAPI *SearchSites)(IGPMSitesContainer *This,IGPMSearchCriteria *pIGPMSearchCriteria,IGPMSOMCollection **ppIGPMSOMCollection);
     END_INTERFACE
   } IGPMSitesContainerVtbl;
-  interface IGPMSitesContainer {
+  struct IGPMSitesContainer {
     CONST_VTBL struct IGPMSitesContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -822,7 +822,7 @@
       HRESULT (WINAPI *Add)(IGPMSearchCriteria *This,GPMSearchProperty searchProperty,GPMSearchOperation searchOperation,VARIANT varValue);
     END_INTERFACE
   } IGPMSearchCriteriaVtbl;
-  interface IGPMSearchCriteria {
+  struct IGPMSearchCriteria {
     CONST_VTBL struct IGPMSearchCriteriaVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -869,7 +869,7 @@
       HRESULT (WINAPI *get_TrusteeType)(IGPMTrustee *This,long *lVal);
     END_INTERFACE
   } IGPMTrusteeVtbl;
-  interface IGPMTrustee {
+  struct IGPMTrustee {
     CONST_VTBL struct IGPMTrusteeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -928,7 +928,7 @@
       HRESULT (WINAPI *get_Trustee)(IGPMPermission *This,IGPMTrustee **ppIGPMTrustee);
     END_INTERFACE
   } IGPMPermissionVtbl;
-  interface IGPMPermission {
+  struct IGPMPermission {
     CONST_VTBL struct IGPMPermissionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -989,7 +989,7 @@
       HRESULT (WINAPI *RemoveTrustee)(IGPMSecurityInfo *This,BSTR bstrTrustee);
     END_INTERFACE
   } IGPMSecurityInfoVtbl;
-  interface IGPMSecurityInfo {
+  struct IGPMSecurityInfo {
     CONST_VTBL struct IGPMSecurityInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1061,7 +1061,7 @@
       HRESULT (WINAPI *GenerateReportToFile)(IGPMBackup *This,GPMReportType gpmReportType,BSTR bstrTargetFilePath,IGPMResult **ppIGPMResult);
     END_INTERFACE
   } IGPMBackupVtbl;
-  interface IGPMBackup {
+  struct IGPMBackup {
     CONST_VTBL struct IGPMBackupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1131,7 +1131,7 @@
       HRESULT (WINAPI *get__NewEnum)(IGPMBackupCollection *This,IEnumVARIANT **ppIGPMBackup);
     END_INTERFACE
   } IGPMBackupCollectionVtbl;
-  interface IGPMBackupCollection {
+  struct IGPMBackupCollection {
     CONST_VTBL struct IGPMBackupCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1198,7 +1198,7 @@
       HRESULT (WINAPI *SetSecurityInfo)(IGPMSOM *This,IGPMSecurityInfo *pSecurityInfo);
     END_INTERFACE
   } IGPMSOMVtbl;
-  interface IGPMSOM {
+  struct IGPMSOM {
     CONST_VTBL struct IGPMSOMVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1268,7 +1268,7 @@
       HRESULT (WINAPI *get__NewEnum)(IGPMSOMCollection *This,IEnumVARIANT **ppIGPMSOM);
     END_INTERFACE
   } IGPMSOMCollectionVtbl;
-  interface IGPMSOMCollection {
+  struct IGPMSOMCollection {
     CONST_VTBL struct IGPMSOMCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1327,7 +1327,7 @@
       HRESULT (WINAPI *SetSecurityInfo)(IGPMWMIFilter *This,IGPMSecurityInfo *pSecurityInfo);
     END_INTERFACE
   } IGPMWMIFilterVtbl;
-  interface IGPMWMIFilter {
+  struct IGPMWMIFilter {
     CONST_VTBL struct IGPMWMIFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1391,7 +1391,7 @@
       HRESULT (WINAPI *get__NewEnum)(IGPMWMIFilterCollection *This,IEnumVARIANT **pVal);
     END_INTERFACE
   } IGPMWMIFilterCollectionVtbl;
-  interface IGPMWMIFilterCollection {
+  struct IGPMWMIFilterCollection {
     CONST_VTBL struct IGPMWMIFilterCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1504,7 +1504,7 @@
       HRESULT (WINAPI *GenerateReportToFile)(IGPMRSOP *This,GPMReportType gpmReportType,BSTR bstrTargetFilePath,IGPMResult **ppIGPMResult);
     END_INTERFACE
   } IGPMRSOPVtbl;
-  interface IGPMRSOP {
+  struct IGPMRSOP {
     CONST_VTBL struct IGPMRSOPVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1701,7 +1701,7 @@
       HRESULT (WINAPI *MakeACLConsistent)(IGPMGPO *This);
     END_INTERFACE
   } IGPMGPOVtbl;
-  interface IGPMGPO {
+  struct IGPMGPO {
     CONST_VTBL struct IGPMGPOVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1828,7 +1828,7 @@
       HRESULT (WINAPI *get__NewEnum)(IGPMGPOCollection *This,IEnumVARIANT **ppIGPMGPOs);
     END_INTERFACE
   } IGPMGPOCollectionVtbl;
-  interface IGPMGPOCollection {
+  struct IGPMGPOCollection {
     CONST_VTBL struct IGPMGPOCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1889,7 +1889,7 @@
       HRESULT (WINAPI *Delete)(IGPMGPOLink *This);
     END_INTERFACE
   } IGPMGPOLinkVtbl;
-  interface IGPMGPOLink {
+  struct IGPMGPOLink {
     CONST_VTBL struct IGPMGPOLinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1956,7 +1956,7 @@
       HRESULT (WINAPI *get__NewEnum)(IGPMGPOLinksCollection *This,IEnumVARIANT **ppIGPMLinks);
     END_INTERFACE
   } IGPMGPOLinksCollectionVtbl;
-  interface IGPMGPOLinksCollection {
+  struct IGPMGPOLinksCollection {
     CONST_VTBL struct IGPMGPOLinksCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2005,7 +2005,7 @@
       HRESULT (WINAPI *get__NewEnum)(IGPMCSECollection *This,IEnumVARIANT **ppIGPMCSEs);
     END_INTERFACE
   } IGPMCSECollectionVtbl;
-  interface IGPMCSECollection {
+  struct IGPMCSECollection {
     CONST_VTBL struct IGPMCSECollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2056,7 +2056,7 @@
       HRESULT (WINAPI *IsComputerEnabled)(IGPMClientSideExtension *This,VARIANT_BOOL *pvbEnabled);
     END_INTERFACE
   } IGPMClientSideExtensionVtbl;
-  interface IGPMClientSideExtension {
+  struct IGPMClientSideExtension {
     CONST_VTBL struct IGPMClientSideExtensionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2104,7 +2104,7 @@
       HRESULT (WINAPI *Cancel)(IGPMAsyncCancel *This);
     END_INTERFACE
   } IGPMAsyncCancelVtbl;
-  interface IGPMAsyncCancel {
+  struct IGPMAsyncCancel {
     CONST_VTBL struct IGPMAsyncCancelVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2143,7 +2143,7 @@
       HRESULT (WINAPI *Status)(IGPMAsyncProgress *This,long lProgressNumerator,long lProgressDenominator,HRESULT hrStatus,VARIANT *pResult,IGPMStatusMsgCollection *ppIGPMStatusMsgCollection);
     END_INTERFACE
   } IGPMAsyncProgressVtbl;
-  interface IGPMAsyncProgress {
+  struct IGPMAsyncProgress {
     CONST_VTBL struct IGPMAsyncProgressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2186,7 +2186,7 @@
       HRESULT (WINAPI *get__NewEnum)(IGPMStatusMsgCollection *This,IEnumVARIANT **pVal);
     END_INTERFACE
   } IGPMStatusMsgCollectionVtbl;
-  interface IGPMStatusMsgCollection {
+  struct IGPMStatusMsgCollection {
     CONST_VTBL struct IGPMStatusMsgCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2241,7 +2241,7 @@
       HRESULT (WINAPI *get_Message)(IGPMStatusMessage *This,BSTR *pVal);
     END_INTERFACE
   } IGPMStatusMessageVtbl;
-  interface IGPMStatusMessage {
+  struct IGPMStatusMessage {
     CONST_VTBL struct IGPMStatusMessageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2413,7 +2413,7 @@
       HRESULT (WINAPI *get_RsopPlanningAssumeCompWQLFilterTrue)(IGPMConstants *This,long *pVal);
     END_INTERFACE
   } IGPMConstantsVtbl;
-  interface IGPMConstants {
+  struct IGPMConstants {
     CONST_VTBL struct IGPMConstantsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2633,7 +2633,7 @@
       HRESULT (WINAPI *OverallStatus)(IGPMResult *This);
     END_INTERFACE
   } IGPMResultVtbl;
-  interface IGPMResult {
+  struct IGPMResult {
     CONST_VTBL struct IGPMResultVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2682,7 +2682,7 @@
       HRESULT (WINAPI *get__NewEnum)(IGPMMapEntryCollection *This,IEnumVARIANT **pVal);
     END_INTERFACE
   } IGPMMapEntryCollectionVtbl;
-  interface IGPMMapEntryCollection {
+  struct IGPMMapEntryCollection {
     CONST_VTBL struct IGPMMapEntryCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2734,7 +2734,7 @@
       HRESULT (WINAPI *get_EntryType)(IGPMMapEntry *This,GPMEntryType *pgpmEntryType);
     END_INTERFACE
   } IGPMMapEntryVtbl;
-  interface IGPMMapEntry {
+  struct IGPMMapEntry {
     CONST_VTBL struct IGPMMapEntryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2796,7 +2796,7 @@
       HRESULT (WINAPI *GetEntries)(IGPMMigrationTable *This,IGPMMapEntryCollection **ppEntries);
     END_INTERFACE
   } IGPMMigrationTableVtbl;
-  interface IGPMMigrationTable {
+  struct IGPMMigrationTable {
     CONST_VTBL struct IGPMMigrationTableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/h323priv.h b/mingw-w64-headers/include/h323priv.h
index 755ae54..ad80900 100755
--- a/mingw-w64-headers/include/h323priv.h
+++ b/mingw-w64-headers/include/h323priv.h
@@ -24,12 +24,12 @@
 
 #ifndef __IH323LineEx_FWD_DEFINED__
 #define __IH323LineEx_FWD_DEFINED__
-typedef interface IH323LineEx IH323LineEx;
+typedef struct IH323LineEx IH323LineEx;
 #endif
 
 #ifndef __IKeyFrameControl_FWD_DEFINED__
 #define __IKeyFrameControl_FWD_DEFINED__
-typedef interface IKeyFrameControl IKeyFrameControl;
+typedef struct IKeyFrameControl IKeyFrameControl;
 #endif
 
 #include "ipmsp.h"
@@ -69,7 +69,7 @@
       HRESULT (WINAPI *SetAlias)(IH323LineEx *This,WCHAR *strAlias,DWORD dwLength);
     END_INTERFACE
   } IH323LineExVtbl;
-  interface IH323LineEx {
+  struct IH323LineEx {
     CONST_VTBL struct IH323LineExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -108,7 +108,7 @@
       HRESULT (WINAPI *PeriodicUpdatePicture)(IKeyFrameControl *This,WINBOOL fEnable,DWORD dwInterval);
     END_INTERFACE
   } IKeyFrameControlVtbl;
-  interface IKeyFrameControl {
+  struct IKeyFrameControl {
     CONST_VTBL struct IKeyFrameControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/hlink.h b/mingw-w64-headers/include/hlink.h
index 912aac5..f3645bc 100755
--- a/mingw-w64-headers/include/hlink.h
+++ b/mingw-w64-headers/include/hlink.h
@@ -24,37 +24,37 @@
 
 #ifndef __IHlink_FWD_DEFINED__
 #define __IHlink_FWD_DEFINED__
-typedef interface IHlink IHlink;
+typedef struct IHlink IHlink;
 #endif
 
 #ifndef __IHlinkSite_FWD_DEFINED__
 #define __IHlinkSite_FWD_DEFINED__
-typedef interface IHlinkSite IHlinkSite;
+typedef struct IHlinkSite IHlinkSite;
 #endif
 
 #ifndef __IHlinkTarget_FWD_DEFINED__
 #define __IHlinkTarget_FWD_DEFINED__
-typedef interface IHlinkTarget IHlinkTarget;
+typedef struct IHlinkTarget IHlinkTarget;
 #endif
 
 #ifndef __IHlinkFrame_FWD_DEFINED__
 #define __IHlinkFrame_FWD_DEFINED__
-typedef interface IHlinkFrame IHlinkFrame;
+typedef struct IHlinkFrame IHlinkFrame;
 #endif
 
 #ifndef __IEnumHLITEM_FWD_DEFINED__
 #define __IEnumHLITEM_FWD_DEFINED__
-typedef interface IEnumHLITEM IEnumHLITEM;
+typedef struct IEnumHLITEM IEnumHLITEM;
 #endif
 
 #ifndef __IHlinkBrowseContext_FWD_DEFINED__
 #define __IHlinkBrowseContext_FWD_DEFINED__
-typedef interface IHlinkBrowseContext IHlinkBrowseContext;
+typedef struct IHlinkBrowseContext IHlinkBrowseContext;
 #endif
 
 #ifndef __IExtensionServices_FWD_DEFINED__
 #define __IExtensionServices_FWD_DEFINED__
-typedef interface IExtensionServices IExtensionServices;
+typedef struct IExtensionServices IExtensionServices;
 #endif
 
 #include "urlmon.h"
@@ -199,7 +199,7 @@
       HRESULT (WINAPI *GetAdditionalParams)(IHlink *This,LPWSTR *ppwzAdditionalParams);
     END_INTERFACE
   } IHlinkVtbl;
-  interface IHlink {
+  struct IHlink {
     CONST_VTBL struct IHlinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -287,7 +287,7 @@
       HRESULT (WINAPI *OnNavigationComplete)(IHlinkSite *This,DWORD dwSiteData,DWORD dwreserved,HRESULT hrError,LPCWSTR pwzError);
     END_INTERFACE
   } IHlinkSiteVtbl;
-  interface IHlinkSite {
+  struct IHlinkSite {
     CONST_VTBL struct IHlinkSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -341,7 +341,7 @@
       HRESULT (WINAPI *GetFriendlyName)(IHlinkTarget *This,LPCWSTR pwzLocation,LPWSTR *ppwzFriendlyName);
     END_INTERFACE
   } IHlinkTargetVtbl;
-  interface IHlinkTarget {
+  struct IHlinkTarget {
     CONST_VTBL struct IHlinkTargetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -400,7 +400,7 @@
       HRESULT (WINAPI *UpdateHlink)(IHlinkFrame *This,ULONG uHLID,IMoniker *pimkTarget,LPCWSTR pwzLocation,LPCWSTR pwzFriendlyName);
     END_INTERFACE
   } IHlinkFrameVtbl;
-  interface IHlinkFrame {
+  struct IHlinkFrame {
     CONST_VTBL struct IHlinkFrameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -462,7 +462,7 @@
       HRESULT (WINAPI *Clone)(IEnumHLITEM *This,IEnumHLITEM **ppienumhlitem);
     END_INTERFACE
   } IEnumHLITEMVtbl;
-  interface IEnumHLITEM {
+  struct IEnumHLITEM {
     CONST_VTBL struct IEnumHLITEMVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -566,7 +566,7 @@
       HRESULT (WINAPI *Close)(IHlinkBrowseContext *This,DWORD reserved);
     END_INTERFACE
   } IHlinkBrowseContextVtbl;
-  interface IHlinkBrowseContext {
+  struct IHlinkBrowseContext {
     CONST_VTBL struct IHlinkBrowseContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -646,7 +646,7 @@
       HRESULT (WINAPI *SetAuthenticateData)(IExtensionServices *This,HWND phwnd,LPCWSTR pwzUsername,LPCWSTR pwzPassword);
     END_INTERFACE
   } IExtensionServicesVtbl;
-  interface IExtensionServices {
+  struct IExtensionServices {
     CONST_VTBL struct IExtensionServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/htiface.h b/mingw-w64-headers/include/htiface.h
index 18d83d3..005c5f7 100755
--- a/mingw-w64-headers/include/htiface.h
+++ b/mingw-w64-headers/include/htiface.h
@@ -24,17 +24,17 @@
 
 #ifndef __ITargetFrame_FWD_DEFINED__
 #define __ITargetFrame_FWD_DEFINED__
-typedef interface ITargetFrame ITargetFrame;
+typedef struct ITargetFrame ITargetFrame;
 #endif
 
 #ifndef __ITargetEmbedding_FWD_DEFINED__
 #define __ITargetEmbedding_FWD_DEFINED__
-typedef interface ITargetEmbedding ITargetEmbedding;
+typedef struct ITargetEmbedding ITargetEmbedding;
 #endif
 
 #ifndef __ITargetFramePriv_FWD_DEFINED__
 #define __ITargetFramePriv_FWD_DEFINED__
-typedef interface ITargetFramePriv ITargetFramePriv;
+typedef struct ITargetFramePriv ITargetFramePriv;
 #endif
 
 #include "objidl.h"
@@ -119,7 +119,7 @@
       HRESULT (WINAPI *OnChildFrameDeactivate)(ITargetFrame *This,IUnknown *pUnkChildFrame);
     END_INTERFACE
   } ITargetFrameVtbl;
-  interface ITargetFrame {
+  struct ITargetFrame {
     CONST_VTBL struct ITargetFrameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -191,7 +191,7 @@
       HRESULT (WINAPI *GetTargetFrame)(ITargetEmbedding *This,ITargetFrame **ppTargetFrame);
     END_INTERFACE
   } ITargetEmbeddingVtbl;
-  interface ITargetEmbedding {
+  struct ITargetEmbedding {
     CONST_VTBL struct ITargetEmbeddingVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -235,7 +235,7 @@
       HRESULT (WINAPI *FindBrowserByIndex)(ITargetFramePriv *This,DWORD dwID,IUnknown **ppunkBrowser);
     END_INTERFACE
   } ITargetFramePrivVtbl;
-  interface ITargetFramePriv {
+  struct ITargetFramePriv {
     CONST_VTBL struct ITargetFramePrivVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/htiframe.h b/mingw-w64-headers/include/htiframe.h
index 2304e9b..a11ec77 100755
--- a/mingw-w64-headers/include/htiframe.h
+++ b/mingw-w64-headers/include/htiframe.h
@@ -24,22 +24,22 @@
 
 #ifndef __ITargetNotify_FWD_DEFINED__
 #define __ITargetNotify_FWD_DEFINED__
-typedef interface ITargetNotify ITargetNotify;
+typedef struct ITargetNotify ITargetNotify;
 #endif
 
 #ifndef __ITargetNotify2_FWD_DEFINED__
 #define __ITargetNotify2_FWD_DEFINED__
-typedef interface ITargetNotify2 ITargetNotify2;
+typedef struct ITargetNotify2 ITargetNotify2;
 #endif
 
 #ifndef __ITargetFrame2_FWD_DEFINED__
 #define __ITargetFrame2_FWD_DEFINED__
-typedef interface ITargetFrame2 ITargetFrame2;
+typedef struct ITargetFrame2 ITargetFrame2;
 #endif
 
 #ifndef __ITargetContainer_FWD_DEFINED__
 #define __ITargetContainer_FWD_DEFINED__
-typedef interface ITargetContainer ITargetContainer;
+typedef struct ITargetContainer ITargetContainer;
 #endif
 
 #include "objidl.h"
@@ -84,7 +84,7 @@
       HRESULT (WINAPI *OnReuse)(ITargetNotify *This,IUnknown *pUnkDestination);
     END_INTERFACE
   } ITargetNotifyVtbl;
-  interface ITargetNotify {
+  struct ITargetNotify {
     CONST_VTBL struct ITargetNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -122,7 +122,7 @@
       HRESULT (WINAPI *GetOptionString)(ITargetNotify2 *This,BSTR *pbstrOptions);
     END_INTERFACE
   } ITargetNotify2Vtbl;
-  interface ITargetNotify2 {
+  struct ITargetNotify2 {
     CONST_VTBL struct ITargetNotify2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -188,7 +188,7 @@
       HRESULT (WINAPI *GetTargetAlias)(ITargetFrame2 *This,LPCWSTR pszTargetName,LPWSTR *ppszTargetAlias);
     END_INTERFACE
   } ITargetFrame2Vtbl;
-  interface ITargetFrame2 {
+  struct ITargetFrame2 {
     CONST_VTBL struct ITargetFrame2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -256,7 +256,7 @@
       HRESULT (WINAPI *GetFramesContainer)(ITargetContainer *This,IOleContainer **ppContainer);
     END_INTERFACE
   } ITargetContainerVtbl;
-  interface ITargetContainer {
+  struct ITargetContainer {
     CONST_VTBL struct ITargetContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/iaccess.h b/mingw-w64-headers/include/iaccess.h
index 3e2840b..a3a54c8 100755
--- a/mingw-w64-headers/include/iaccess.h
+++ b/mingw-w64-headers/include/iaccess.h
@@ -24,12 +24,12 @@
 
 #ifndef __IAccessControl_FWD_DEFINED__
 #define __IAccessControl_FWD_DEFINED__
-typedef interface IAccessControl IAccessControl;
+typedef struct IAccessControl IAccessControl;
 #endif
 
 #ifndef __IAuditControl_FWD_DEFINED__
 #define __IAuditControl_FWD_DEFINED__
-typedef interface IAuditControl IAuditControl;
+typedef struct IAuditControl IAuditControl;
 #endif
 
 #include "unknwn.h"
@@ -74,7 +74,7 @@
       HRESULT (WINAPI *IsAccessAllowed)(IAccessControl *This,PTRUSTEEW pTrustee,LPWSTR lpProperty,ACCESS_RIGHTS AccessRights,WINBOOL *pfAccessAllowed);
     END_INTERFACE
   } IAccessControlVtbl;
-  interface IAccessControl {
+  struct IAccessControl {
     CONST_VTBL struct IAccessControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -132,7 +132,7 @@
       HRESULT (WINAPI *IsAccessAudited)(IAuditControl *This,PTRUSTEEW pTrustee,ACCESS_RIGHTS AuditRights,WINBOOL *pfAccessAudited);
     END_INTERFACE
   } IAuditControlVtbl;
-  interface IAuditControl {
+  struct IAuditControl {
     CONST_VTBL struct IAuditControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/iadmext.h b/mingw-w64-headers/include/iadmext.h
index 222ea5a..5276f47 100755
--- a/mingw-w64-headers/include/iadmext.h
+++ b/mingw-w64-headers/include/iadmext.h
@@ -33,7 +33,7 @@
 #define __IADMEXT_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IADMEXT;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IADMEXT : public IUnknown {
+  struct IADMEXT : public IUnknown {
 public:
   virtual HRESULT WINAPI Initialize(void) = 0;
   virtual HRESULT WINAPI EnumDcomCLSIDs(CLSID *pclsidDcom,DWORD dwEnumIndex) = 0;
diff --git a/mingw-w64-headers/include/iadmw.h b/mingw-w64-headers/include/iadmw.h
index 293295a..243dca3 100755
--- a/mingw-w64-headers/include/iadmw.h
+++ b/mingw-w64-headers/include/iadmw.h
@@ -24,32 +24,32 @@
 
 #ifndef __IMSAdminBaseW_FWD_DEFINED__
 #define __IMSAdminBaseW_FWD_DEFINED__
-typedef interface IMSAdminBaseW IMSAdminBaseW;
+typedef struct IMSAdminBaseW IMSAdminBaseW;
 #endif
 
 #ifndef __IMSAdminBase2W_FWD_DEFINED__
 #define __IMSAdminBase2W_FWD_DEFINED__
-typedef interface IMSAdminBase2W IMSAdminBase2W;
+typedef struct IMSAdminBase2W IMSAdminBase2W;
 #endif
 
 #ifndef __IMSAdminBase3W_FWD_DEFINED__
 #define __IMSAdminBase3W_FWD_DEFINED__
-typedef interface IMSAdminBase3W IMSAdminBase3W;
+typedef struct IMSAdminBase3W IMSAdminBase3W;
 #endif
 
 #ifndef __IMSImpExpHelpW_FWD_DEFINED__
 #define __IMSImpExpHelpW_FWD_DEFINED__
-typedef interface IMSImpExpHelpW IMSImpExpHelpW;
+typedef struct IMSImpExpHelpW IMSImpExpHelpW;
 #endif
 
 #ifndef __IMSAdminBaseSinkW_FWD_DEFINED__
 #define __IMSAdminBaseSinkW_FWD_DEFINED__
-typedef interface IMSAdminBaseSinkW IMSAdminBaseSinkW;
+typedef struct IMSAdminBaseSinkW IMSAdminBaseSinkW;
 #endif
 
 #ifndef __AsyncIMSAdminBaseSinkW_FWD_DEFINED__
 #define __AsyncIMSAdminBaseSinkW_FWD_DEFINED__
-typedef interface AsyncIMSAdminBaseSinkW AsyncIMSAdminBaseSinkW;
+typedef struct AsyncIMSAdminBaseSinkW AsyncIMSAdminBaseSinkW;
 #endif
 
 #include "mddefw.h"
@@ -175,7 +175,7 @@
       HRESULT (WINAPI *GetServerGuid)(IMSAdminBaseW *This);
     END_INTERFACE
   } IMSAdminBaseWVtbl;
-  interface IMSAdminBaseW {
+  struct IMSAdminBaseW {
     CONST_VTBL struct IMSAdminBaseWVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -337,7 +337,7 @@
       HRESULT (WINAPI *EnumHistory)(IMSAdminBase2W *This,LPWSTR pszMDHistoryLocation,DWORD *pdwMDMajorVersion,DWORD *pdwMDMinorVersion,PFILETIME pftMDHistoryTime,DWORD dwMDEnumIndex);
     END_INTERFACE
   } IMSAdminBase2WVtbl;
-  interface IMSAdminBase2W {
+  struct IMSAdminBase2W {
     CONST_VTBL struct IMSAdminBase2WVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -452,7 +452,7 @@
       HRESULT (WINAPI *GetChildPaths)(IMSAdminBase3W *This,METADATA_HANDLE hMDHandle,LPCWSTR pszMDPath,DWORD cchMDBufferSize,WCHAR *pszBuffer,DWORD *pcchMDRequiredBufferSize);
     END_INTERFACE
   } IMSAdminBase3WVtbl;
-  interface IMSAdminBase3W {
+  struct IMSAdminBase3W {
     CONST_VTBL struct IMSAdminBase3WVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -520,7 +520,7 @@
       HRESULT (WINAPI *EnumeratePathsInFile)(IMSImpExpHelpW *This,LPCWSTR pszFileName,LPCWSTR pszKeyType,DWORD dwMDBufferSize,WCHAR *pszBuffer,DWORD *pdwMDRequiredBufferSize);
     END_INTERFACE
   } IMSImpExpHelpWVtbl;
-  interface IMSImpExpHelpW {
+  struct IMSImpExpHelpW {
     CONST_VTBL struct IMSImpExpHelpWVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -553,7 +553,7 @@
       HRESULT (WINAPI *ShutdownNotify)(IMSAdminBaseSinkW *This);
     END_INTERFACE
   } IMSAdminBaseSinkWVtbl;
-  interface IMSAdminBaseSinkW {
+  struct IMSAdminBaseSinkW {
     CONST_VTBL struct IMSAdminBaseSinkWVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -593,7 +593,7 @@
       HRESULT (WINAPI *Finish_ShutdownNotify)(AsyncIMSAdminBaseSinkW *This);
     END_INTERFACE
   } AsyncIMSAdminBaseSinkWVtbl;
-  interface AsyncIMSAdminBaseSinkW {
+  struct AsyncIMSAdminBaseSinkW {
     CONST_VTBL struct AsyncIMSAdminBaseSinkWVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/iads.h b/mingw-w64-headers/include/iads.h
index 9f246d3..08a54ee 100755
--- a/mingw-w64-headers/include/iads.h
+++ b/mingw-w64-headers/include/iads.h
@@ -19,32 +19,32 @@
 
 #ifndef __IADs_FWD_DEFINED__
 #define __IADs_FWD_DEFINED__
-typedef interface IADs IADs;
+typedef struct IADs IADs;
 #endif
 
 #ifndef __IADsContainer_FWD_DEFINED__
 #define __IADsContainer_FWD_DEFINED__
-typedef interface IADsContainer IADsContainer;
+typedef struct IADsContainer IADsContainer;
 #endif
 
 #ifndef __IADsCollection_FWD_DEFINED__
 #define __IADsCollection_FWD_DEFINED__
-typedef interface IADsCollection IADsCollection;
+typedef struct IADsCollection IADsCollection;
 #endif
 
 #ifndef __IADsMembers_FWD_DEFINED__
 #define __IADsMembers_FWD_DEFINED__
-typedef interface IADsMembers IADsMembers;
+typedef struct IADsMembers IADsMembers;
 #endif
 
 #ifndef __IADsPropertyList_FWD_DEFINED__
 #define __IADsPropertyList_FWD_DEFINED__
-typedef interface IADsPropertyList IADsPropertyList;
+typedef struct IADsPropertyList IADsPropertyList;
 #endif
 
 #ifndef __IADsPropertyEntry_FWD_DEFINED__
 #define __IADsPropertyEntry_FWD_DEFINED__
-typedef interface IADsPropertyEntry IADsPropertyEntry;
+typedef struct IADsPropertyEntry IADsPropertyEntry;
 #endif
 
 #ifndef __PropertyEntry_FWD_DEFINED__
@@ -58,12 +58,12 @@
 
 #ifndef __IADsPropertyValue_FWD_DEFINED__
 #define __IADsPropertyValue_FWD_DEFINED__
-typedef interface IADsPropertyValue IADsPropertyValue;
+typedef struct IADsPropertyValue IADsPropertyValue;
 #endif
 
 #ifndef __IADsPropertyValue2_FWD_DEFINED__
 #define __IADsPropertyValue2_FWD_DEFINED__
-typedef interface IADsPropertyValue2 IADsPropertyValue2;
+typedef struct IADsPropertyValue2 IADsPropertyValue2;
 #endif
 
 #ifndef __PropertyValue_FWD_DEFINED__
@@ -77,172 +77,172 @@
 
 #ifndef __IPrivateDispatch_FWD_DEFINED__
 #define __IPrivateDispatch_FWD_DEFINED__
-typedef interface IPrivateDispatch IPrivateDispatch;
+typedef struct IPrivateDispatch IPrivateDispatch;
 #endif
 
 #ifndef __IPrivateUnknown_FWD_DEFINED__
 #define __IPrivateUnknown_FWD_DEFINED__
-typedef interface IPrivateUnknown IPrivateUnknown;
+typedef struct IPrivateUnknown IPrivateUnknown;
 #endif
 
 #ifndef __IADsExtension_FWD_DEFINED__
 #define __IADsExtension_FWD_DEFINED__
-typedef interface IADsExtension IADsExtension;
+typedef struct IADsExtension IADsExtension;
 #endif
 
 #ifndef __IADsDeleteOps_FWD_DEFINED__
 #define __IADsDeleteOps_FWD_DEFINED__
-typedef interface IADsDeleteOps IADsDeleteOps;
+typedef struct IADsDeleteOps IADsDeleteOps;
 #endif
 
 #ifndef __IADsNamespaces_FWD_DEFINED__
 #define __IADsNamespaces_FWD_DEFINED__
-typedef interface IADsNamespaces IADsNamespaces;
+typedef struct IADsNamespaces IADsNamespaces;
 #endif
 
 #ifndef __IADsClass_FWD_DEFINED__
 #define __IADsClass_FWD_DEFINED__
-typedef interface IADsClass IADsClass;
+typedef struct IADsClass IADsClass;
 #endif
 
 #ifndef __IADsProperty_FWD_DEFINED__
 #define __IADsProperty_FWD_DEFINED__
-typedef interface IADsProperty IADsProperty;
+typedef struct IADsProperty IADsProperty;
 #endif
 
 #ifndef __IADsSyntax_FWD_DEFINED__
 #define __IADsSyntax_FWD_DEFINED__
-typedef interface IADsSyntax IADsSyntax;
+typedef struct IADsSyntax IADsSyntax;
 #endif
 
 #ifndef __IADsLocality_FWD_DEFINED__
 #define __IADsLocality_FWD_DEFINED__
-typedef interface IADsLocality IADsLocality;
+typedef struct IADsLocality IADsLocality;
 #endif
 
 #ifndef __IADsO_FWD_DEFINED__
 #define __IADsO_FWD_DEFINED__
-typedef interface IADsO IADsO;
+typedef struct IADsO IADsO;
 #endif
 
 #ifndef __IADsOU_FWD_DEFINED__
 #define __IADsOU_FWD_DEFINED__
-typedef interface IADsOU IADsOU;
+typedef struct IADsOU IADsOU;
 #endif
 
 #ifndef __IADsDomain_FWD_DEFINED__
 #define __IADsDomain_FWD_DEFINED__
-typedef interface IADsDomain IADsDomain;
+typedef struct IADsDomain IADsDomain;
 #endif
 
 #ifndef __IADsComputer_FWD_DEFINED__
 #define __IADsComputer_FWD_DEFINED__
-typedef interface IADsComputer IADsComputer;
+typedef struct IADsComputer IADsComputer;
 #endif
 
 #ifndef __IADsComputerOperations_FWD_DEFINED__
 #define __IADsComputerOperations_FWD_DEFINED__
-typedef interface IADsComputerOperations IADsComputerOperations;
+typedef struct IADsComputerOperations IADsComputerOperations;
 #endif
 
 #ifndef __IADsGroup_FWD_DEFINED__
 #define __IADsGroup_FWD_DEFINED__
-typedef interface IADsGroup IADsGroup;
+typedef struct IADsGroup IADsGroup;
 #endif
 
 #ifndef __IADsUser_FWD_DEFINED__
 #define __IADsUser_FWD_DEFINED__
-typedef interface IADsUser IADsUser;
+typedef struct IADsUser IADsUser;
 #endif
 
 #ifndef __IADsPrintQueue_FWD_DEFINED__
 #define __IADsPrintQueue_FWD_DEFINED__
-typedef interface IADsPrintQueue IADsPrintQueue;
+typedef struct IADsPrintQueue IADsPrintQueue;
 #endif
 
 #ifndef __IADsPrintQueueOperations_FWD_DEFINED__
 #define __IADsPrintQueueOperations_FWD_DEFINED__
-typedef interface IADsPrintQueueOperations IADsPrintQueueOperations;
+typedef struct IADsPrintQueueOperations IADsPrintQueueOperations;
 #endif
 
 #ifndef __IADsPrintJob_FWD_DEFINED__
 #define __IADsPrintJob_FWD_DEFINED__
-typedef interface IADsPrintJob IADsPrintJob;
+typedef struct IADsPrintJob IADsPrintJob;
 #endif
 
 #ifndef __IADsPrintJobOperations_FWD_DEFINED__
 #define __IADsPrintJobOperations_FWD_DEFINED__
-typedef interface IADsPrintJobOperations IADsPrintJobOperations;
+typedef struct IADsPrintJobOperations IADsPrintJobOperations;
 #endif
 
 #ifndef __IADsService_FWD_DEFINED__
 #define __IADsService_FWD_DEFINED__
-typedef interface IADsService IADsService;
+typedef struct IADsService IADsService;
 #endif
 
 #ifndef __IADsServiceOperations_FWD_DEFINED__
 #define __IADsServiceOperations_FWD_DEFINED__
-typedef interface IADsServiceOperations IADsServiceOperations;
+typedef struct IADsServiceOperations IADsServiceOperations;
 #endif
 
 #ifndef __IADsFileService_FWD_DEFINED__
 #define __IADsFileService_FWD_DEFINED__
-typedef interface IADsFileService IADsFileService;
+typedef struct IADsFileService IADsFileService;
 #endif
 
 #ifndef __IADsFileServiceOperations_FWD_DEFINED__
 #define __IADsFileServiceOperations_FWD_DEFINED__
-typedef interface IADsFileServiceOperations IADsFileServiceOperations;
+typedef struct IADsFileServiceOperations IADsFileServiceOperations;
 #endif
 
 #ifndef __IADsFileShare_FWD_DEFINED__
 #define __IADsFileShare_FWD_DEFINED__
-typedef interface IADsFileShare IADsFileShare;
+typedef struct IADsFileShare IADsFileShare;
 #endif
 
 #ifndef __IADsSession_FWD_DEFINED__
 #define __IADsSession_FWD_DEFINED__
-typedef interface IADsSession IADsSession;
+typedef struct IADsSession IADsSession;
 #endif
 
 #ifndef __IADsResource_FWD_DEFINED__
 #define __IADsResource_FWD_DEFINED__
-typedef interface IADsResource IADsResource;
+typedef struct IADsResource IADsResource;
 #endif
 
 #ifndef __IADsOpenDSObject_FWD_DEFINED__
 #define __IADsOpenDSObject_FWD_DEFINED__
-typedef interface IADsOpenDSObject IADsOpenDSObject;
+typedef struct IADsOpenDSObject IADsOpenDSObject;
 #endif
 
 #ifndef __IDirectoryObject_FWD_DEFINED__
 #define __IDirectoryObject_FWD_DEFINED__
-typedef interface IDirectoryObject IDirectoryObject;
+typedef struct IDirectoryObject IDirectoryObject;
 #endif
 
 #ifndef __IDirectorySearch_FWD_DEFINED__
 #define __IDirectorySearch_FWD_DEFINED__
-typedef interface IDirectorySearch IDirectorySearch;
+typedef struct IDirectorySearch IDirectorySearch;
 #endif
 
 #ifndef __IDirectorySchemaMgmt_FWD_DEFINED__
 #define __IDirectorySchemaMgmt_FWD_DEFINED__
-typedef interface IDirectorySchemaMgmt IDirectorySchemaMgmt;
+typedef struct IDirectorySchemaMgmt IDirectorySchemaMgmt;
 #endif
 
 #ifndef __IADsAggregatee_FWD_DEFINED__
 #define __IADsAggregatee_FWD_DEFINED__
-typedef interface IADsAggregatee IADsAggregatee;
+typedef struct IADsAggregatee IADsAggregatee;
 #endif
 
 #ifndef __IADsAggregator_FWD_DEFINED__
 #define __IADsAggregator_FWD_DEFINED__
-typedef interface IADsAggregator IADsAggregator;
+typedef struct IADsAggregator IADsAggregator;
 #endif
 
 #ifndef __IADsAccessControlEntry_FWD_DEFINED__
 #define __IADsAccessControlEntry_FWD_DEFINED__
-typedef interface IADsAccessControlEntry IADsAccessControlEntry;
+typedef struct IADsAccessControlEntry IADsAccessControlEntry;
 #endif
 
 #ifndef __AccessControlEntry_FWD_DEFINED__
@@ -256,7 +256,7 @@
 
 #ifndef __IADsAccessControlList_FWD_DEFINED__
 #define __IADsAccessControlList_FWD_DEFINED__
-typedef interface IADsAccessControlList IADsAccessControlList;
+typedef struct IADsAccessControlList IADsAccessControlList;
 #endif
 
 #ifndef __AccessControlList_FWD_DEFINED__
@@ -270,7 +270,7 @@
 
 #ifndef __IADsSecurityDescriptor_FWD_DEFINED__
 #define __IADsSecurityDescriptor_FWD_DEFINED__
-typedef interface IADsSecurityDescriptor IADsSecurityDescriptor;
+typedef struct IADsSecurityDescriptor IADsSecurityDescriptor;
 #endif
 
 #ifndef __SecurityDescriptor_FWD_DEFINED__
@@ -284,7 +284,7 @@
 
 #ifndef __IADsLargeInteger_FWD_DEFINED__
 #define __IADsLargeInteger_FWD_DEFINED__
-typedef interface IADsLargeInteger IADsLargeInteger;
+typedef struct IADsLargeInteger IADsLargeInteger;
 #endif
 
 #ifndef __LargeInteger_FWD_DEFINED__
@@ -298,7 +298,7 @@
 
 #ifndef __IADsNameTranslate_FWD_DEFINED__
 #define __IADsNameTranslate_FWD_DEFINED__
-typedef interface IADsNameTranslate IADsNameTranslate;
+typedef struct IADsNameTranslate IADsNameTranslate;
 #endif
 
 #ifndef __NameTranslate_FWD_DEFINED__
@@ -312,7 +312,7 @@
 
 #ifndef __IADsCaseIgnoreList_FWD_DEFINED__
 #define __IADsCaseIgnoreList_FWD_DEFINED__
-typedef interface IADsCaseIgnoreList IADsCaseIgnoreList;
+typedef struct IADsCaseIgnoreList IADsCaseIgnoreList;
 #endif
 
 #ifndef __CaseIgnoreList_FWD_DEFINED__
@@ -326,7 +326,7 @@
 
 #ifndef __IADsFaxNumber_FWD_DEFINED__
 #define __IADsFaxNumber_FWD_DEFINED__
-typedef interface IADsFaxNumber IADsFaxNumber;
+typedef struct IADsFaxNumber IADsFaxNumber;
 #endif
 
 #ifndef __FaxNumber_FWD_DEFINED__
@@ -340,7 +340,7 @@
 
 #ifndef __IADsNetAddress_FWD_DEFINED__
 #define __IADsNetAddress_FWD_DEFINED__
-typedef interface IADsNetAddress IADsNetAddress;
+typedef struct IADsNetAddress IADsNetAddress;
 #endif
 
 #ifndef __NetAddress_FWD_DEFINED__
@@ -354,7 +354,7 @@
 
 #ifndef __IADsOctetList_FWD_DEFINED__
 #define __IADsOctetList_FWD_DEFINED__
-typedef interface IADsOctetList IADsOctetList;
+typedef struct IADsOctetList IADsOctetList;
 #endif
 
 #ifndef __OctetList_FWD_DEFINED__
@@ -368,7 +368,7 @@
 
 #ifndef __IADsEmail_FWD_DEFINED__
 #define __IADsEmail_FWD_DEFINED__
-typedef interface IADsEmail IADsEmail;
+typedef struct IADsEmail IADsEmail;
 #endif
 
 #ifndef __Email_FWD_DEFINED__
@@ -382,7 +382,7 @@
 
 #ifndef __IADsPath_FWD_DEFINED__
 #define __IADsPath_FWD_DEFINED__
-typedef interface IADsPath IADsPath;
+typedef struct IADsPath IADsPath;
 #endif
 
 #ifndef __Path_FWD_DEFINED__
@@ -396,7 +396,7 @@
 
 #ifndef __IADsReplicaPointer_FWD_DEFINED__
 #define __IADsReplicaPointer_FWD_DEFINED__
-typedef interface IADsReplicaPointer IADsReplicaPointer;
+typedef struct IADsReplicaPointer IADsReplicaPointer;
 #endif
 
 #ifndef __ReplicaPointer_FWD_DEFINED__
@@ -410,12 +410,12 @@
 
 #ifndef __IADsAcl_FWD_DEFINED__
 #define __IADsAcl_FWD_DEFINED__
-typedef interface IADsAcl IADsAcl;
+typedef struct IADsAcl IADsAcl;
 #endif
 
 #ifndef __IADsTimestamp_FWD_DEFINED__
 #define __IADsTimestamp_FWD_DEFINED__
-typedef interface IADsTimestamp IADsTimestamp;
+typedef struct IADsTimestamp IADsTimestamp;
 #endif
 
 #ifndef __Timestamp_FWD_DEFINED__
@@ -430,7 +430,7 @@
 
 #ifndef __IADsPostalAddress_FWD_DEFINED__
 #define __IADsPostalAddress_FWD_DEFINED__
-typedef interface IADsPostalAddress IADsPostalAddress;
+typedef struct IADsPostalAddress IADsPostalAddress;
 #endif
 
 #ifndef __PostalAddress_FWD_DEFINED__
@@ -444,7 +444,7 @@
 
 #ifndef __IADsBackLink_FWD_DEFINED__
 #define __IADsBackLink_FWD_DEFINED__
-typedef interface IADsBackLink IADsBackLink;
+typedef struct IADsBackLink IADsBackLink;
 #endif
 
 #ifndef __BackLink_FWD_DEFINED__
@@ -458,7 +458,7 @@
 
 #ifndef __IADsTypedName_FWD_DEFINED__
 #define __IADsTypedName_FWD_DEFINED__
-typedef interface IADsTypedName IADsTypedName;
+typedef struct IADsTypedName IADsTypedName;
 #endif
 
 #ifndef __TypedName_FWD_DEFINED__
@@ -472,7 +472,7 @@
 
 #ifndef __IADsHold_FWD_DEFINED__
 #define __IADsHold_FWD_DEFINED__
-typedef interface IADsHold IADsHold;
+typedef struct IADsHold IADsHold;
 #endif
 
 #ifndef __Hold_FWD_DEFINED__
@@ -486,12 +486,12 @@
 
 #ifndef __IADsObjectOptions_FWD_DEFINED__
 #define __IADsObjectOptions_FWD_DEFINED__
-typedef interface IADsObjectOptions IADsObjectOptions;
+typedef struct IADsObjectOptions IADsObjectOptions;
 #endif
 
 #ifndef __IADsPathname_FWD_DEFINED__
 #define __IADsPathname_FWD_DEFINED__
-typedef interface IADsPathname IADsPathname;
+typedef struct IADsPathname IADsPathname;
 #endif
 
 #ifndef __Pathname_FWD_DEFINED__
@@ -505,7 +505,7 @@
 
 #ifndef __IADsADSystemInfo_FWD_DEFINED__
 #define __IADsADSystemInfo_FWD_DEFINED__
-typedef interface IADsADSystemInfo IADsADSystemInfo;
+typedef struct IADsADSystemInfo IADsADSystemInfo;
 #endif
 
 #ifndef __ADSystemInfo_FWD_DEFINED__
@@ -519,7 +519,7 @@
 
 #ifndef __IADsWinNTSystemInfo_FWD_DEFINED__
 #define __IADsWinNTSystemInfo_FWD_DEFINED__
-typedef interface IADsWinNTSystemInfo IADsWinNTSystemInfo;
+typedef struct IADsWinNTSystemInfo IADsWinNTSystemInfo;
 #endif
 
 #ifndef __WinNTSystemInfo_FWD_DEFINED__
@@ -533,7 +533,7 @@
 
 #ifndef __IADsDNWithBinary_FWD_DEFINED__
 #define __IADsDNWithBinary_FWD_DEFINED__
-typedef interface IADsDNWithBinary IADsDNWithBinary;
+typedef struct IADsDNWithBinary IADsDNWithBinary;
 #endif
 
 #ifndef __DNWithBinary_FWD_DEFINED__
@@ -547,7 +547,7 @@
 
 #ifndef __IADsDNWithString_FWD_DEFINED__
 #define __IADsDNWithString_FWD_DEFINED__
-typedef interface IADsDNWithString IADsDNWithString;
+typedef struct IADsDNWithString IADsDNWithString;
 #endif
 
 #ifndef __DNWithString_FWD_DEFINED__
@@ -561,7 +561,7 @@
 
 #ifndef __IADsSecurityUtility_FWD_DEFINED__
 #define __IADsSecurityUtility_FWD_DEFINED__
-typedef interface IADsSecurityUtility IADsSecurityUtility;
+typedef struct IADsSecurityUtility IADsSecurityUtility;
 #endif
 
 #ifndef __ADsSecurityUtility_FWD_DEFINED__
@@ -1081,7 +1081,7 @@
       HRESULT (WINAPI *GetInfoEx)(IADs *This,VARIANT vProperties,long lnReserved);
     END_INTERFACE
   } IADsVtbl;
-  interface IADs {
+  struct IADs {
     CONST_VTBL struct IADsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1176,7 +1176,7 @@
       HRESULT (WINAPI *MoveHere)(IADsContainer *This,BSTR SourceName,BSTR NewName,IDispatch **ppObject);
     END_INTERFACE
   } IADsContainerVtbl;
-  interface IADsContainer {
+  struct IADsContainer {
     CONST_VTBL struct IADsContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1251,7 +1251,7 @@
       HRESULT (WINAPI *GetObject)(IADsCollection *This,BSTR bstrName,VARIANT *pvItem);
     END_INTERFACE
   } IADsCollectionVtbl;
-  interface IADsCollection {
+  struct IADsCollection {
     CONST_VTBL struct IADsCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1305,7 +1305,7 @@
       HRESULT (WINAPI *put_Filter)(IADsMembers *This,VARIANT pvFilter);
     END_INTERFACE
   } IADsMembersVtbl;
-  interface IADsMembers {
+  struct IADsMembers {
     CONST_VTBL struct IADsMembersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1369,7 +1369,7 @@
       HRESULT (WINAPI *PurgePropertyList)(IADsPropertyList *This);
     END_INTERFACE
   } IADsPropertyListVtbl;
-  interface IADsPropertyList {
+  struct IADsPropertyList {
     CONST_VTBL struct IADsPropertyListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1448,7 +1448,7 @@
       HRESULT (WINAPI *put_Values)(IADsPropertyEntry *This,VARIANT vValues);
     END_INTERFACE
   } IADsPropertyEntryVtbl;
-  interface IADsPropertyEntry {
+  struct IADsPropertyEntry {
     CONST_VTBL struct IADsPropertyEntryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1564,7 +1564,7 @@
       HRESULT (WINAPI *put_UTCTime)(IADsPropertyValue *This,DATE daUTCTime);
     END_INTERFACE
   } IADsPropertyValueVtbl;
-  interface IADsPropertyValue {
+  struct IADsPropertyValue {
     CONST_VTBL struct IADsPropertyValueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1677,7 +1677,7 @@
       HRESULT (WINAPI *PutObjectProperty)(IADsPropertyValue2 *This,long lnADsType,VARIANT vProp);
     END_INTERFACE
   } IADsPropertyValue2Vtbl;
-  interface IADsPropertyValue2 {
+  struct IADsPropertyValue2 {
     CONST_VTBL struct IADsPropertyValue2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1728,7 +1728,7 @@
       HRESULT (WINAPI *ADSIInvoke)(IPrivateDispatch *This,DISPID dispidMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pdispparams,VARIANT *pvarResult,EXCEPINFO *pexcepinfo,UINT *puArgErr);
     END_INTERFACE
   } IPrivateDispatchVtbl;
-  interface IPrivateDispatch {
+  struct IPrivateDispatch {
     CONST_VTBL struct IPrivateDispatchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1773,7 +1773,7 @@
       HRESULT (WINAPI *ADSIReleaseObject)(IPrivateUnknown *This);
     END_INTERFACE
   } IPrivateUnknownVtbl;
-  interface IPrivateUnknown {
+  struct IPrivateUnknown {
     CONST_VTBL struct IPrivateUnknownVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1811,7 +1811,7 @@
       HRESULT (WINAPI *PrivateInvoke)(IADsExtension *This,DISPID dispidMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pdispparams,VARIANT *pvarResult,EXCEPINFO *pexcepinfo,unsigned int *puArgErr);
     END_INTERFACE
   } IADsExtensionVtbl;
-  interface IADsExtension {
+  struct IADsExtension {
     CONST_VTBL struct IADsExtensionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1852,7 +1852,7 @@
       HRESULT (WINAPI *DeleteObject)(IADsDeleteOps *This,long lnFlags);
     END_INTERFACE
   } IADsDeleteOpsVtbl;
-  interface IADsDeleteOps {
+  struct IADsDeleteOps {
     CONST_VTBL struct IADsDeleteOpsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1906,7 +1906,7 @@
       HRESULT (WINAPI *put_DefaultContainer)(IADsNamespaces *This,BSTR bstrDefaultContainer);
     END_INTERFACE
   } IADsNamespacesVtbl;
-  interface IADsNamespaces {
+  struct IADsNamespaces {
     CONST_VTBL struct IADsNamespacesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2032,7 +2032,7 @@
       HRESULT (WINAPI *Qualifiers)(IADsClass *This,IADsCollection **ppQualifiers);
     END_INTERFACE
   } IADsClassVtbl;
-  interface IADsClass {
+  struct IADsClass {
     CONST_VTBL struct IADsClassVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2204,7 +2204,7 @@
       HRESULT (WINAPI *Qualifiers)(IADsProperty *This,IADsCollection **ppQualifiers);
     END_INTERFACE
   } IADsPropertyVtbl;
-  interface IADsProperty {
+  struct IADsProperty {
     CONST_VTBL struct IADsPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2301,7 +2301,7 @@
       HRESULT (WINAPI *put_OleAutoDataType)(IADsSyntax *This,long lnOleAutoDataType);
     END_INTERFACE
   } IADsSyntaxVtbl;
-  interface IADsSyntax {
+  struct IADsSyntax {
     CONST_VTBL struct IADsSyntaxVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2383,7 +2383,7 @@
       HRESULT (WINAPI *put_SeeAlso)(IADsLocality *This,VARIANT vSeeAlso);
     END_INTERFACE
   } IADsLocalityVtbl;
-  interface IADsLocality {
+  struct IADsLocality {
     CONST_VTBL struct IADsLocalityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2491,7 +2491,7 @@
       HRESULT (WINAPI *put_SeeAlso)(IADsO *This,VARIANT vSeeAlso);
     END_INTERFACE
   } IADsOVtbl;
-  interface IADsO {
+  struct IADsO {
     CONST_VTBL struct IADsOVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2615,7 +2615,7 @@
       HRESULT (WINAPI *put_BusinessCategory)(IADsOU *This,BSTR bstrBusinessCategory);
     END_INTERFACE
   } IADsOUVtbl;
-  interface IADsOU {
+  struct IADsOU {
     CONST_VTBL struct IADsOUVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2751,7 +2751,7 @@
       HRESULT (WINAPI *put_LockoutObservationInterval)(IADsDomain *This,long lnLockoutObservationInterval);
     END_INTERFACE
   } IADsDomainVtbl;
-  interface IADsDomain {
+  struct IADsDomain {
     CONST_VTBL struct IADsDomainVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2926,7 +2926,7 @@
       HRESULT (WINAPI *put_NetAddresses)(IADsComputer *This,VARIANT vNetAddresses);
     END_INTERFACE
   } IADsComputerVtbl;
-  interface IADsComputer {
+  struct IADsComputer {
     CONST_VTBL struct IADsComputerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3086,7 +3086,7 @@
       HRESULT (WINAPI *Shutdown)(IADsComputerOperations *This,VARIANT_BOOL bReboot);
     END_INTERFACE
   } IADsComputerOperationsVtbl;
-  interface IADsComputerOperations {
+  struct IADsComputerOperations {
     CONST_VTBL struct IADsComputerOperationsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3164,7 +3164,7 @@
       HRESULT (WINAPI *Remove)(IADsGroup *This,BSTR bstrItemToBeRemoved);
     END_INTERFACE
   } IADsGroupVtbl;
-  interface IADsGroup {
+  struct IADsGroup {
     CONST_VTBL struct IADsGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3424,7 +3424,7 @@
       HRESULT (WINAPI *ChangePassword)(IADsUser *This,BSTR bstrOldPassword,BSTR bstrNewPassword);
     END_INTERFACE
   } IADsUserVtbl;
-  interface IADsUser {
+  struct IADsUser {
     CONST_VTBL struct IADsUserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3809,7 +3809,7 @@
       HRESULT (WINAPI *put_NetAddresses)(IADsPrintQueue *This,VARIANT vNetAddresses);
     END_INTERFACE
   } IADsPrintQueueVtbl;
-  interface IADsPrintQueue {
+  struct IADsPrintQueue {
     CONST_VTBL struct IADsPrintQueueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3957,7 +3957,7 @@
       HRESULT (WINAPI *Purge)(IADsPrintQueueOperations *This);
     END_INTERFACE
   } IADsPrintQueueOperationsVtbl;
-  interface IADsPrintQueueOperations {
+  struct IADsPrintQueueOperations {
     CONST_VTBL struct IADsPrintQueueOperationsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4068,7 +4068,7 @@
       HRESULT (WINAPI *put_NotifyPath)(IADsPrintJob *This,BSTR bstrNotifyPath);
     END_INTERFACE
   } IADsPrintJobVtbl;
-  interface IADsPrintJob {
+  struct IADsPrintJob {
     CONST_VTBL struct IADsPrintJobVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4196,7 +4196,7 @@
       HRESULT (WINAPI *Resume)(IADsPrintJobOperations *This);
     END_INTERFACE
   } IADsPrintJobOperationsVtbl;
-  interface IADsPrintJobOperations {
+  struct IADsPrintJobOperations {
     CONST_VTBL struct IADsPrintJobOperationsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4325,7 +4325,7 @@
       HRESULT (WINAPI *put_Dependencies)(IADsService *This,VARIANT vDependencies);
     END_INTERFACE
   } IADsServiceVtbl;
-  interface IADsService {
+  struct IADsService {
     CONST_VTBL struct IADsServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4469,7 +4469,7 @@
       HRESULT (WINAPI *SetPassword)(IADsServiceOperations *This,BSTR bstrNewPassword);
     END_INTERFACE
   } IADsServiceOperationsVtbl;
-  interface IADsServiceOperations {
+  struct IADsServiceOperations {
     CONST_VTBL struct IADsServiceOperationsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4579,7 +4579,7 @@
       HRESULT (WINAPI *put_MaxUserCount)(IADsFileService *This,long lnMaxUserCount);
     END_INTERFACE
   } IADsFileServiceVtbl;
-  interface IADsFileService {
+  struct IADsFileService {
     CONST_VTBL struct IADsFileServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4685,7 +4685,7 @@
       HRESULT (WINAPI *Resources)(IADsFileServiceOperations *This,IADsCollection **ppResources);
     END_INTERFACE
   } IADsFileServiceOperationsVtbl;
-  interface IADsFileServiceOperations {
+  struct IADsFileServiceOperations {
     CONST_VTBL struct IADsFileServiceOperationsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4775,7 +4775,7 @@
       HRESULT (WINAPI *put_MaxUserCount)(IADsFileShare *This,long lnMaxUserCount);
     END_INTERFACE
   } IADsFileShareVtbl;
-  interface IADsFileShare {
+  struct IADsFileShare {
     CONST_VTBL struct IADsFileShareVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4874,7 +4874,7 @@
       HRESULT (WINAPI *get_IdleTime)(IADsSession *This,long *retval);
     END_INTERFACE
   } IADsSessionVtbl;
-  interface IADsSession {
+  struct IADsSession {
     CONST_VTBL struct IADsSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4960,7 +4960,7 @@
       HRESULT (WINAPI *get_LockCount)(IADsResource *This,long *retval);
     END_INTERFACE
   } IADsResourceVtbl;
-  interface IADsResource {
+  struct IADsResource {
     CONST_VTBL struct IADsResourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5021,7 +5021,7 @@
       HRESULT (WINAPI *OpenDSObject)(IADsOpenDSObject *This,BSTR lpszDNName,BSTR lpszUserName,BSTR lpszPassword,long lnReserved,IDispatch **ppOleDsObj);
     END_INTERFACE
   } IADsOpenDSObjectVtbl;
-  interface IADsOpenDSObject {
+  struct IADsOpenDSObject {
     CONST_VTBL struct IADsOpenDSObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5065,7 +5065,7 @@
       HRESULT (WINAPI *DeleteDSObject)(IDirectoryObject *This,LPWSTR pszRDNName);
     END_INTERFACE
   } IDirectoryObjectVtbl;
-  interface IDirectoryObject {
+  struct IDirectoryObject {
     CONST_VTBL struct IDirectoryObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5126,7 +5126,7 @@
       HRESULT (WINAPI *CloseSearchHandle)(IDirectorySearch *This,ADS_SEARCH_HANDLE hSearchResult);
     END_INTERFACE
   } IDirectorySearchVtbl;
-  interface IDirectorySearch {
+  struct IDirectorySearch {
     CONST_VTBL struct IDirectorySearchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5198,7 +5198,7 @@
       HRESULT (WINAPI *DeleteClassDefinition)(IDirectorySchemaMgmt *This,LPWSTR pszClassName);
     END_INTERFACE
   } IDirectorySchemaMgmtVtbl;
-  interface IDirectorySchemaMgmt {
+  struct IDirectorySchemaMgmt {
     CONST_VTBL struct IDirectorySchemaMgmtVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5256,7 +5256,7 @@
       HRESULT (WINAPI *RestoreInterface)(IADsAggregatee *This,REFIID riid);
     END_INTERFACE
   } IADsAggregateeVtbl;
-  interface IADsAggregatee {
+  struct IADsAggregatee {
     CONST_VTBL struct IADsAggregateeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5298,7 +5298,7 @@
       HRESULT (WINAPI *DisconnectAsAggregator)(IADsAggregator *This);
     END_INTERFACE
   } IADsAggregatorVtbl;
-  interface IADsAggregator {
+  struct IADsAggregator {
     CONST_VTBL struct IADsAggregatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5362,7 +5362,7 @@
       HRESULT (WINAPI *put_Trustee)(IADsAccessControlEntry *This,BSTR bstrTrustee);
     END_INTERFACE
   } IADsAccessControlEntryVtbl;
-  interface IADsAccessControlEntry {
+  struct IADsAccessControlEntry {
     CONST_VTBL struct IADsAccessControlEntryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5459,7 +5459,7 @@
       HRESULT (WINAPI *get__NewEnum)(IADsAccessControlList *This,IUnknown **retval);
     END_INTERFACE
   } IADsAccessControlListVtbl;
-  interface IADsAccessControlList {
+  struct IADsAccessControlList {
     CONST_VTBL struct IADsAccessControlListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5564,7 +5564,7 @@
       HRESULT (WINAPI *CopySecurityDescriptor)(IADsSecurityDescriptor *This,IDispatch **ppSecurityDescriptor);
     END_INTERFACE
   } IADsSecurityDescriptorVtbl;
-  interface IADsSecurityDescriptor {
+  struct IADsSecurityDescriptor {
     CONST_VTBL struct IADsSecurityDescriptorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5674,7 +5674,7 @@
       HRESULT (WINAPI *put_LowPart)(IADsLargeInteger *This,long lnLowPart);
     END_INTERFACE
   } IADsLargeIntegerVtbl;
-  interface IADsLargeInteger {
+  struct IADsLargeInteger {
     CONST_VTBL struct IADsLargeIntegerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5739,7 +5739,7 @@
       HRESULT (WINAPI *GetEx)(IADsNameTranslate *This,long lnFormatType,VARIANT *pvar);
     END_INTERFACE
   } IADsNameTranslateVtbl;
-  interface IADsNameTranslate {
+  struct IADsNameTranslate {
     CONST_VTBL struct IADsNameTranslateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5803,7 +5803,7 @@
       HRESULT (WINAPI *put_CaseIgnoreList)(IADsCaseIgnoreList *This,VARIANT vCaseIgnoreList);
     END_INTERFACE
   } IADsCaseIgnoreListVtbl;
-  interface IADsCaseIgnoreList {
+  struct IADsCaseIgnoreList {
     CONST_VTBL struct IADsCaseIgnoreListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5856,7 +5856,7 @@
       HRESULT (WINAPI *put_Parameters)(IADsFaxNumber *This,VARIANT vParameters);
     END_INTERFACE
   } IADsFaxNumberVtbl;
-  interface IADsFaxNumber {
+  struct IADsFaxNumber {
     CONST_VTBL struct IADsFaxNumberVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5915,7 +5915,7 @@
       HRESULT (WINAPI *put_Address)(IADsNetAddress *This,VARIANT vAddress);
     END_INTERFACE
   } IADsNetAddressVtbl;
-  interface IADsNetAddress {
+  struct IADsNetAddress {
     CONST_VTBL struct IADsNetAddressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5970,7 +5970,7 @@
       HRESULT (WINAPI *put_OctetList)(IADsOctetList *This,VARIANT vOctetList);
     END_INTERFACE
   } IADsOctetListVtbl;
-  interface IADsOctetList {
+  struct IADsOctetList {
     CONST_VTBL struct IADsOctetListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6023,7 +6023,7 @@
       HRESULT (WINAPI *put_Address)(IADsEmail *This,BSTR bstrAddress);
     END_INTERFACE
   } IADsEmailVtbl;
-  interface IADsEmail {
+  struct IADsEmail {
     CONST_VTBL struct IADsEmailVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6086,7 +6086,7 @@
       HRESULT (WINAPI *put_Path)(IADsPath *This,BSTR bstrPath);
     END_INTERFACE
   } IADsPathVtbl;
-  interface IADsPath {
+  struct IADsPath {
     CONST_VTBL struct IADsPathVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6163,7 +6163,7 @@
       HRESULT (WINAPI *put_ReplicaAddressHints)(IADsReplicaPointer *This,VARIANT vReplicaAddressHints);
     END_INTERFACE
   } IADsReplicaPointerVtbl;
-  interface IADsReplicaPointer {
+  struct IADsReplicaPointer {
     CONST_VTBL struct IADsReplicaPointerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6246,7 +6246,7 @@
       HRESULT (WINAPI *CopyAcl)(IADsAcl *This,IDispatch **ppAcl);
     END_INTERFACE
   } IADsAclVtbl;
-  interface IADsAcl {
+  struct IADsAcl {
     CONST_VTBL struct IADsAclVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6309,7 +6309,7 @@
       HRESULT (WINAPI *put_EventID)(IADsTimestamp *This,long lnEventID);
     END_INTERFACE
   } IADsTimestampVtbl;
-  interface IADsTimestamp {
+  struct IADsTimestamp {
     CONST_VTBL struct IADsTimestampVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6364,7 +6364,7 @@
       HRESULT (WINAPI *put_PostalAddress)(IADsPostalAddress *This,VARIANT vPostalAddress);
     END_INTERFACE
   } IADsPostalAddressVtbl;
-  interface IADsPostalAddress {
+  struct IADsPostalAddress {
     CONST_VTBL struct IADsPostalAddressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6417,7 +6417,7 @@
       HRESULT (WINAPI *put_ObjectName)(IADsBackLink *This,BSTR bstrObjectName);
     END_INTERFACE
   } IADsBackLinkVtbl;
-  interface IADsBackLink {
+  struct IADsBackLink {
     CONST_VTBL struct IADsBackLinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6480,7 +6480,7 @@
       HRESULT (WINAPI *put_Interval)(IADsTypedName *This,long lnInterval);
     END_INTERFACE
   } IADsTypedNameVtbl;
-  interface IADsTypedName {
+  struct IADsTypedName {
     CONST_VTBL struct IADsTypedNameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6545,7 +6545,7 @@
       HRESULT (WINAPI *put_Amount)(IADsHold *This,long lnAmount);
     END_INTERFACE
   } IADsHoldVtbl;
-  interface IADsHold {
+  struct IADsHold {
     CONST_VTBL struct IADsHoldVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6600,7 +6600,7 @@
       HRESULT (WINAPI *SetOption)(IADsObjectOptions *This,long lnOption,VARIANT vValue);
     END_INTERFACE
   } IADsObjectOptionsVtbl;
-  interface IADsObjectOptions {
+  struct IADsObjectOptions {
     CONST_VTBL struct IADsObjectOptionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6662,7 +6662,7 @@
       HRESULT (WINAPI *put_EscapedMode)(IADsPathname *This,long lnEscapedMode);
     END_INTERFACE
   } IADsPathnameVtbl;
-  interface IADsPathname {
+  struct IADsPathname {
     CONST_VTBL struct IADsPathnameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6760,7 +6760,7 @@
       HRESULT (WINAPI *GetTrees)(IADsADSystemInfo *This,VARIANT *pvTrees);
     END_INTERFACE
   } IADsADSystemInfoVtbl;
-  interface IADsADSystemInfo {
+  struct IADsADSystemInfo {
     CONST_VTBL struct IADsADSystemInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6846,7 +6846,7 @@
       HRESULT (WINAPI *get_PDC)(IADsWinNTSystemInfo *This,BSTR *retval);
     END_INTERFACE
   } IADsWinNTSystemInfoVtbl;
-  interface IADsWinNTSystemInfo {
+  struct IADsWinNTSystemInfo {
     CONST_VTBL struct IADsWinNTSystemInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6905,7 +6905,7 @@
       HRESULT (WINAPI *put_DNString)(IADsDNWithBinary *This,BSTR bstrDNString);
     END_INTERFACE
   } IADsDNWithBinaryVtbl;
-  interface IADsDNWithBinary {
+  struct IADsDNWithBinary {
     CONST_VTBL struct IADsDNWithBinaryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6964,7 +6964,7 @@
       HRESULT (WINAPI *put_DNString)(IADsDNWithString *This,BSTR bstrDNString);
     END_INTERFACE
   } IADsDNWithStringVtbl;
-  interface IADsDNWithString {
+  struct IADsDNWithString {
     CONST_VTBL struct IADsDNWithStringVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7025,7 +7025,7 @@
       HRESULT (WINAPI *put_SecurityMask)(IADsSecurityUtility *This,long lnSecurityMask);
     END_INTERFACE
   } IADsSecurityUtilityVtbl;
-  interface IADsSecurityUtility {
+  struct IADsSecurityUtility {
     CONST_VTBL struct IADsSecurityUtilityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/iedial.h b/mingw-w64-headers/include/iedial.h
index e8e3a24..5454cab 100755
--- a/mingw-w64-headers/include/iedial.h
+++ b/mingw-w64-headers/include/iedial.h
@@ -24,17 +24,17 @@
 
 #ifndef __IDialEventSink_FWD_DEFINED__
 #define __IDialEventSink_FWD_DEFINED__
-typedef interface IDialEventSink IDialEventSink;
+typedef struct IDialEventSink IDialEventSink;
 #endif
 
 #ifndef __IDialEngine_FWD_DEFINED__
 #define __IDialEngine_FWD_DEFINED__
-typedef interface IDialEngine IDialEngine;
+typedef struct IDialEngine IDialEngine;
 #endif
 
 #ifndef __IDialBranding_FWD_DEFINED__
 #define __IDialBranding_FWD_DEFINED__
-typedef interface IDialBranding IDialBranding;
+typedef struct IDialBranding IDialBranding;
 #endif
 
 #include "unknwn.h"
@@ -66,7 +66,7 @@
       HRESULT (WINAPI *OnEvent)(IDialEventSink *This,DWORD dwEvent,DWORD dwStatus);
     END_INTERFACE
   } IDialEventSinkVtbl;
-  interface IDialEventSink {
+  struct IDialEventSink {
     CONST_VTBL struct IDialEventSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -109,7 +109,7 @@
       HRESULT (WINAPI *GetConnectHandle)(IDialEngine *This,DWORD_PTR *pdwHandle);
     END_INTERFACE
   } IDialEngineVtbl;
-  interface IDialEngine {
+  struct IDialEngine {
     CONST_VTBL struct IDialEngineVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -160,7 +160,7 @@
       HRESULT (WINAPI *GetBitmap)(IDialBranding *This,DWORD dwIndex,HBITMAP *phBitmap);
     END_INTERFACE
   } IDialBrandingVtbl;
-  interface IDialBranding {
+  struct IDialBranding {
     CONST_VTBL struct IDialBrandingVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/iiis.h b/mingw-w64-headers/include/iiis.h
index a7d9103..71d6225 100755
--- a/mingw-w64-headers/include/iiis.h
+++ b/mingw-w64-headers/include/iiis.h
@@ -15,7 +15,7 @@
 
 #ifndef __IISMimeType_FWD_DEFINED__
 #define __IISMimeType_FWD_DEFINED__
-typedef interface IISMimeType IISMimeType;
+typedef struct IISMimeType IISMimeType;
 #endif
 
 #ifndef __MimeMap_FWD_DEFINED__
@@ -29,7 +29,7 @@
 
 #ifndef __IISIPSecurity_FWD_DEFINED__
 #define __IISIPSecurity_FWD_DEFINED__
-typedef interface IISIPSecurity IISIPSecurity;
+typedef struct IISIPSecurity IISIPSecurity;
 #endif
 
 #ifndef __IPSecurity_FWD_DEFINED__
@@ -61,17 +61,17 @@
 
 #ifndef __IISBaseObject_FWD_DEFINED__
 #define __IISBaseObject_FWD_DEFINED__
-typedef interface IISBaseObject IISBaseObject;
+typedef struct IISBaseObject IISBaseObject;
 #endif
 
 #ifndef __IISSchemaObject_FWD_DEFINED__
 #define __IISSchemaObject_FWD_DEFINED__
-typedef interface IISSchemaObject IISSchemaObject;
+typedef struct IISSchemaObject IISSchemaObject;
 #endif
 
 #ifndef __IISPropertyAttribute_FWD_DEFINED__
 #define __IISPropertyAttribute_FWD_DEFINED__
-typedef interface IISPropertyAttribute IISPropertyAttribute;
+typedef struct IISPropertyAttribute IISPropertyAttribute;
 #endif
 
 #ifndef __PropertyAttribute_FWD_DEFINED__
@@ -126,7 +126,7 @@
       HRESULT (WINAPI *put_Extension)(IISMimeType *This,BSTR bstrExtension);
     END_INTERFACE
   } IISMimeTypeVtbl;
-  interface IISMimeType {
+  struct IISMimeType {
     CONST_VTBL struct IISMimeTypeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -197,7 +197,7 @@
       HRESULT (WINAPI *put_GrantByDefault)(IISIPSecurity *This,VARIANT_BOOL fGrantByDefault);
     END_INTERFACE
   } IISIPSecurityVtbl;
-  interface IISIPSecurity {
+  struct IISIPSecurity {
     CONST_VTBL struct IISIPSecurityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -279,7 +279,7 @@
       HRESULT (WINAPI *GetPropertyAttribObj)(IISBaseObject *This,BSTR bstrName,IDispatch **ppObject);
     END_INTERFACE
   } IISBaseObjectVtbl;
-  interface IISBaseObject {
+  struct IISBaseObject {
     CONST_VTBL struct IISBaseObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -323,7 +323,7 @@
       HRESULT (WINAPI *PutSchemaPropertyAttributes)(IISSchemaObject *This,IDispatch *pObject);
     END_INTERFACE
   } IISSchemaObjectVtbl;
-  interface IISSchemaObject {
+  struct IISSchemaObject {
     CONST_VTBL struct IISSchemaObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -397,7 +397,7 @@
       HRESULT (WINAPI *put_Default)(IISPropertyAttribute *This,VARIANT vDefault);
     END_INTERFACE
   } IISPropertyAttributeVtbl;
-  interface IISPropertyAttribute {
+  struct IISPropertyAttribute {
     CONST_VTBL struct IISPropertyAttributeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/iiisext.h b/mingw-w64-headers/include/iiisext.h
index bcb926e..51eab19 100755
--- a/mingw-w64-headers/include/iiisext.h
+++ b/mingw-w64-headers/include/iiisext.h
@@ -19,47 +19,47 @@
 
 #ifndef __IISApplicationPool_FWD_DEFINED__
 #define __IISApplicationPool_FWD_DEFINED__
-typedef interface IISApplicationPool IISApplicationPool;
+typedef struct IISApplicationPool IISApplicationPool;
 #endif
 
 #ifndef __IISApplicationPools_FWD_DEFINED__
 #define __IISApplicationPools_FWD_DEFINED__
-typedef interface IISApplicationPools IISApplicationPools;
+typedef struct IISApplicationPools IISApplicationPools;
 #endif
 
 #ifndef __IISWebService_FWD_DEFINED__
 #define __IISWebService_FWD_DEFINED__
-typedef interface IISWebService IISWebService;
+typedef struct IISWebService IISWebService;
 #endif
 
 #ifndef __IISDsCrMap_FWD_DEFINED__
 #define __IISDsCrMap_FWD_DEFINED__
-typedef interface IISDsCrMap IISDsCrMap;
+typedef struct IISDsCrMap IISDsCrMap;
 #endif
 
 #ifndef __IISApp_FWD_DEFINED__
 #define __IISApp_FWD_DEFINED__
-typedef interface IISApp IISApp;
+typedef struct IISApp IISApp;
 #endif
 
 #ifndef __IISApp2_FWD_DEFINED__
 #define __IISApp2_FWD_DEFINED__
-typedef interface IISApp2 IISApp2;
+typedef struct IISApp2 IISApp2;
 #endif
 
 #ifndef __IISApp3_FWD_DEFINED__
 #define __IISApp3_FWD_DEFINED__
-typedef interface IISApp3 IISApp3;
+typedef struct IISApp3 IISApp3;
 #endif
 
 #ifndef __IISComputer_FWD_DEFINED__
 #define __IISComputer_FWD_DEFINED__
-typedef interface IISComputer IISComputer;
+typedef struct IISComputer IISComputer;
 #endif
 
 #ifndef __IISComputer2_FWD_DEFINED__
 #define __IISComputer2_FWD_DEFINED__
-typedef interface IISComputer2 IISComputer2;
+typedef struct IISComputer2 IISComputer2;
 #endif
 
 #ifndef __IISExtComputer_FWD_DEFINED__
@@ -175,7 +175,7 @@
       HRESULT (WINAPI *Stop)(IISApplicationPool *This);
     END_INTERFACE
   } IISApplicationPoolVtbl;
-  interface IISApplicationPool {
+  struct IISApplicationPool {
     CONST_VTBL struct IISApplicationPoolVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -246,7 +246,7 @@
       HRESULT (WINAPI *GetInfoEx)(IISApplicationPools *This,VARIANT vProperties,signed long lnReserved,void *retval);
     END_INTERFACE
   } IISApplicationPoolsVtbl;
-  interface IISApplicationPools {
+  struct IISApplicationPools {
     CONST_VTBL struct IISApplicationPoolsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -338,7 +338,7 @@
       HRESULT (WINAPI *QueryGroupIDStatus)(IISWebService *This,BSTR bstrGroupID,VARIANT *bstrBuffer);
     END_INTERFACE
   } IISWebServiceVtbl;
-  interface IISWebService {
+  struct IISWebService {
     CONST_VTBL struct IISWebServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -460,7 +460,7 @@
       HRESULT (WINAPI *SetAcct)(IISDsCrMap *This,LONG lMethod,VARIANT vKey,BSTR bstrAcct);
     END_INTERFACE
   } IISDsCrMapVtbl;
-  interface IISDsCrMap {
+  struct IISDsCrMap {
     CONST_VTBL struct IISDsCrMapVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -563,7 +563,7 @@
       HRESULT (WINAPI *AspAppRestart)(IISApp *This);
     END_INTERFACE
   } IISAppVtbl;
-  interface IISApp {
+  struct IISApp {
     CONST_VTBL struct IISAppVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -671,7 +671,7 @@
       HRESULT (WINAPI *AppGetStatus2)(IISApp2 *This,LONG *lpStatus);
     END_INTERFACE
   } IISApp2Vtbl;
-  interface IISApp2 {
+  struct IISApp2 {
     CONST_VTBL struct IISApp2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -763,7 +763,7 @@
       HRESULT (WINAPI *AppCreate3)(IISApp3 *This,LONG lAppMode,VARIANT bstrAppPooI,VARIANT bCreatePool);
     END_INTERFACE
   } IISApp3Vtbl;
-  interface IISApp3 {
+  struct IISApp3 {
     CONST_VTBL struct IISApp3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -847,7 +847,7 @@
       HRESULT (WINAPI *DeleteBackup)(IISComputer *This,BSTR bstrLocation,LONG lVersion);
     END_INTERFACE
   } IISComputerVtbl;
-  interface IISComputer {
+  struct IISComputer {
     CONST_VTBL struct IISComputerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -933,7 +933,7 @@
       HRESULT (WINAPI *SaveData)(IISComputer2 *This);
     END_INTERFACE
   } IISComputer2Vtbl;
-  interface IISComputer2 {
+  struct IISComputer2 {
     CONST_VTBL struct IISComputer2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/iisrsta.h b/mingw-w64-headers/include/iisrsta.h
index f960ea4..3376548 100755
--- a/mingw-w64-headers/include/iisrsta.h
+++ b/mingw-w64-headers/include/iisrsta.h
@@ -24,7 +24,7 @@
 
 #ifndef __IIisServiceControl_FWD_DEFINED__
 #define __IIisServiceControl_FWD_DEFINED__
-typedef interface IIisServiceControl IIisServiceControl;
+typedef struct IIisServiceControl IIisServiceControl;
 #endif
 
 #ifndef __IisServiceControl_FWD_DEFINED__
@@ -82,7 +82,7 @@
       HRESULT (WINAPI *Kill)(IIisServiceControl *This);
     END_INTERFACE
   } IIisServiceControlVtbl;
-  interface IIisServiceControl {
+  struct IIisServiceControl {
     CONST_VTBL struct IIisServiceControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/indexsrv.h b/mingw-w64-headers/include/indexsrv.h
index 9149956..8ad8de5 100755
--- a/mingw-w64-headers/include/indexsrv.h
+++ b/mingw-w64-headers/include/indexsrv.h
@@ -24,42 +24,42 @@
 
 #ifndef __IPhraseSink_FWD_DEFINED__
 #define __IPhraseSink_FWD_DEFINED__
-typedef interface IPhraseSink IPhraseSink;
+typedef struct IPhraseSink IPhraseSink;
 #endif
 
 #ifndef __IWordSink_FWD_DEFINED__
 #define __IWordSink_FWD_DEFINED__
-typedef interface IWordSink IWordSink;
+typedef struct IWordSink IWordSink;
 #endif
 
 #ifndef __IWordBreaker_FWD_DEFINED__
 #define __IWordBreaker_FWD_DEFINED__
-typedef interface IWordBreaker IWordBreaker;
+typedef struct IWordBreaker IWordBreaker;
 #endif
 
 #ifndef __IWordFormSink_FWD_DEFINED__
 #define __IWordFormSink_FWD_DEFINED__
-typedef interface IWordFormSink IWordFormSink;
+typedef struct IWordFormSink IWordFormSink;
 #endif
 
 #ifndef __IStemmer_FWD_DEFINED__
 #define __IStemmer_FWD_DEFINED__
-typedef interface IStemmer IStemmer;
+typedef struct IStemmer IStemmer;
 #endif
 
 #ifndef __ISimpleCommandCreator_FWD_DEFINED__
 #define __ISimpleCommandCreator_FWD_DEFINED__
-typedef interface ISimpleCommandCreator ISimpleCommandCreator;
+typedef struct ISimpleCommandCreator ISimpleCommandCreator;
 #endif
 
 #ifndef __IColumnMapper_FWD_DEFINED__
 #define __IColumnMapper_FWD_DEFINED__
-typedef interface IColumnMapper IColumnMapper;
+typedef struct IColumnMapper IColumnMapper;
 #endif
 
 #ifndef __IColumnMapperCreator_FWD_DEFINED__
 #define __IColumnMapperCreator_FWD_DEFINED__
-typedef interface IColumnMapperCreator IColumnMapperCreator;
+typedef struct IColumnMapperCreator IColumnMapperCreator;
 #endif
 
 #include "oaidl.h"
@@ -93,7 +93,7 @@
       HRESULT (WINAPI *PutPhrase)(IPhraseSink *This,const WCHAR *pwcPhrase,ULONG cwcPhrase);
     END_INTERFACE
   } IPhraseSinkVtbl;
-  interface IPhraseSink {
+  struct IPhraseSink {
     CONST_VTBL struct IPhraseSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -143,7 +143,7 @@
       HRESULT (WINAPI *PutBreak)(IWordSink *This,WORDREP_BREAK_TYPE breakType);
     END_INTERFACE
   } IWordSinkVtbl;
-  interface IWordSink {
+  struct IWordSink {
     CONST_VTBL struct IWordSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -207,7 +207,7 @@
       HRESULT (WINAPI *GetLicenseToUse)(IWordBreaker *This,const WCHAR **ppwcsLicense);
     END_INTERFACE
   } IWordBreakerVtbl;
-  interface IWordBreaker {
+  struct IWordBreaker {
     CONST_VTBL struct IWordBreakerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -249,7 +249,7 @@
       HRESULT (WINAPI *PutWord)(IWordFormSink *This,const WCHAR *pwcInBuf,ULONG cwc);
     END_INTERFACE
   } IWordFormSinkVtbl;
-  interface IWordFormSink {
+  struct IWordFormSink {
     CONST_VTBL struct IWordFormSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -287,7 +287,7 @@
       HRESULT (WINAPI *GetLicenseToUse)(IStemmer *This,const WCHAR **ppwcsLicense);
     END_INTERFACE
   } IStemmerVtbl;
-  interface IStemmer {
+  struct IStemmer {
     CONST_VTBL struct IStemmerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -331,7 +331,7 @@
       HRESULT (WINAPI *GetDefaultCatalog)(ISimpleCommandCreator *This,WCHAR *pwszCatalogName,ULONG cwcIn,ULONG *pcwcOut);
     END_INTERFACE
   } ISimpleCommandCreatorVtbl;
-  interface ISimpleCommandCreator {
+  struct ISimpleCommandCreator {
     CONST_VTBL struct ISimpleCommandCreatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -381,7 +381,7 @@
       HRESULT (WINAPI *IsMapUpToDate)(IColumnMapper *This);
     END_INTERFACE
   } IColumnMapperVtbl;
-  interface IColumnMapper {
+  struct IColumnMapper {
     CONST_VTBL struct IColumnMapperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -428,7 +428,7 @@
       HRESULT (WINAPI *GetColumnMapper)(IColumnMapperCreator *This,const WCHAR *wcsMachineName,const WCHAR *wcsCatalogName,IColumnMapper **ppColumnMapper);
     END_INTERFACE
   } IColumnMapperCreatorVtbl;
-  interface IColumnMapperCreator {
+  struct IColumnMapperCreator {
     CONST_VTBL struct IColumnMapperCreatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/inputscope.h b/mingw-w64-headers/include/inputscope.h
index 9b31c30..04ceed1 100755
--- a/mingw-w64-headers/include/inputscope.h
+++ b/mingw-w64-headers/include/inputscope.h
@@ -24,7 +24,7 @@
 
 #ifndef __ITfInputScope_FWD_DEFINED__
 #define __ITfInputScope_FWD_DEFINED__
-typedef interface ITfInputScope ITfInputScope;
+typedef struct ITfInputScope ITfInputScope;
 #endif
 
 #include "oaidl.h"
@@ -98,7 +98,7 @@
       HRESULT (WINAPI *GetXML)(ITfInputScope *This,BSTR *pbstrXML);
     END_INTERFACE
   } ITfInputScopeVtbl;
-  interface ITfInputScope {
+  struct ITfInputScope {
     CONST_VTBL struct ITfInputScopeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/io.h b/mingw-w64-headers/include/io.h
index cb2e371..49f5073 100755
--- a/mingw-w64-headers/include/io.h
+++ b/mingw-w64-headers/include/io.h
@@ -304,10 +304,10 @@
 
 #if _INTEGRAL_MAX_BITS >= 64
   _CRTIMP intptr_t __cdecl _wfindfirst32i64(const wchar_t *_Filename,struct _wfinddata32i64_t *_FindData);
-  _CRTIMP intptr_t __cdecl _wfindfirst64i32(const wchar_t *_Filename,struct _wfinddata64i32_t *_FindData);
+  intptr_t __cdecl _wfindfirst64i32(const wchar_t *_Filename,struct _wfinddata64i32_t *_FindData);
   _CRTIMP intptr_t __cdecl _wfindfirst64(const wchar_t *_Filename,struct _wfinddata64_t *_FindData);
   _CRTIMP int __cdecl _wfindnext32i64(intptr_t _FindHandle,struct _wfinddata32i64_t *_FindData);
-  _CRTIMP int __cdecl _wfindnext64i32(intptr_t _FindHandle,struct _wfinddata64i32_t *_FindData);
+  int __cdecl _wfindnext64i32(intptr_t _FindHandle,struct _wfinddata64i32_t *_FindData);
   _CRTIMP int __cdecl _wfindnext64(intptr_t _FindHandle,struct _wfinddata64_t *_FindData);
 #endif
 
diff --git a/mingw-w64-headers/include/ipmsp.h b/mingw-w64-headers/include/ipmsp.h
index cfe4c07..640e061 100755
--- a/mingw-w64-headers/include/ipmsp.h
+++ b/mingw-w64-headers/include/ipmsp.h
@@ -24,37 +24,37 @@
 
 #ifndef __ITParticipant_FWD_DEFINED__
 #define __ITParticipant_FWD_DEFINED__
-typedef interface ITParticipant ITParticipant;
+typedef struct ITParticipant ITParticipant;
 #endif
 
 #ifndef __ITFormatControl_FWD_DEFINED__
 #define __ITFormatControl_FWD_DEFINED__
-typedef interface ITFormatControl ITFormatControl;
+typedef struct ITFormatControl ITFormatControl;
 #endif
 
 #ifndef __ITStreamQualityControl_FWD_DEFINED__
 #define __ITStreamQualityControl_FWD_DEFINED__
-typedef interface ITStreamQualityControl ITStreamQualityControl;
+typedef struct ITStreamQualityControl ITStreamQualityControl;
 #endif
 
 #ifndef __ITCallQualityControl_FWD_DEFINED__
 #define __ITCallQualityControl_FWD_DEFINED__
-typedef interface ITCallQualityControl ITCallQualityControl;
+typedef struct ITCallQualityControl ITCallQualityControl;
 #endif
 
 #ifndef __ITAudioDeviceControl_FWD_DEFINED__
 #define __ITAudioDeviceControl_FWD_DEFINED__
-typedef interface ITAudioDeviceControl ITAudioDeviceControl;
+typedef struct ITAudioDeviceControl ITAudioDeviceControl;
 #endif
 
 #ifndef __ITAudioSettings_FWD_DEFINED__
 #define __ITAudioSettings_FWD_DEFINED__
-typedef interface ITAudioSettings ITAudioSettings;
+typedef struct ITAudioSettings ITAudioSettings;
 #endif
 
 #ifndef __ITQOSApplicationID_FWD_DEFINED__
 #define __ITQOSApplicationID_FWD_DEFINED__
-typedef interface ITQOSApplicationID ITQOSApplicationID;
+typedef struct ITQOSApplicationID ITQOSApplicationID;
 #endif
 
 #include "tapi3if.h"
@@ -117,7 +117,7 @@
       HRESULT (WINAPI *EnumerateStreams)(ITParticipant *This,IEnumStream **ppEnumStream);
     END_INTERFACE
   } ITParticipantVtbl;
-  interface ITParticipant {
+  struct ITParticipant {
     CONST_VTBL struct ITParticipantVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -243,7 +243,7 @@
       HRESULT (WINAPI *ReOrderCapabilities)(ITFormatControl *This,DWORD *pdwIndices,WINBOOL *pfEnabled,WINBOOL *pfPublicize,DWORD dwNumIndices);
     END_INTERFACE
   } ITFormatControlVtbl;
-  interface ITFormatControl {
+  struct ITFormatControl {
     CONST_VTBL struct ITFormatControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -298,7 +298,7 @@
       HRESULT (WINAPI *Set)(ITStreamQualityControl *This,StreamQualityProperty Property,long lValue,TAPIControlFlags lFlags);
     END_INTERFACE
   } ITStreamQualityControlVtbl;
-  interface ITStreamQualityControl {
+  struct ITStreamQualityControl {
     CONST_VTBL struct ITStreamQualityControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -349,7 +349,7 @@
       HRESULT (WINAPI *Set)(ITCallQualityControl *This,CallQualityProperty Property,long lValue,TAPIControlFlags lFlags);
     END_INTERFACE
   } ITCallQualityControlVtbl;
-  interface ITCallQualityControl {
+  struct ITCallQualityControl {
     CONST_VTBL struct ITCallQualityControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -398,7 +398,7 @@
       HRESULT (WINAPI *Set)(ITAudioDeviceControl *This,AudioDeviceProperty Property,long lValue,TAPIControlFlags lFlags);
     END_INTERFACE
   } ITAudioDeviceControlVtbl;
-  interface ITAudioDeviceControl {
+  struct ITAudioDeviceControl {
     CONST_VTBL struct ITAudioDeviceControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -449,7 +449,7 @@
       HRESULT (WINAPI *Set)(ITAudioSettings *This,AudioSettingsProperty Property,long lValue,TAPIControlFlags lFlags);
     END_INTERFACE
   } ITAudioSettingsVtbl;
-  interface ITAudioSettings {
+  struct ITAudioSettings {
     CONST_VTBL struct ITAudioSettingsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -490,7 +490,7 @@
       HRESULT (WINAPI *SetQOSApplicationID)(ITQOSApplicationID *This,BSTR pApplicationID,BSTR pApplicationGUID,BSTR pSubIDs);
     END_INTERFACE
   } ITQOSApplicationIDVtbl;
-  interface ITQOSApplicationID {
+  struct ITQOSApplicationID {
     CONST_VTBL struct ITQOSApplicationIDVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/iwamreg.h b/mingw-w64-headers/include/iwamreg.h
index f108206..e75e0ad 100755
--- a/mingw-w64-headers/include/iwamreg.h
+++ b/mingw-w64-headers/include/iwamreg.h
@@ -24,17 +24,17 @@
 
 #ifndef __IWamAdmin_FWD_DEFINED__
 #define __IWamAdmin_FWD_DEFINED__
-typedef interface IWamAdmin IWamAdmin;
+typedef struct IWamAdmin IWamAdmin;
 #endif
 
 #ifndef __IWamAdmin2_FWD_DEFINED__
 #define __IWamAdmin2_FWD_DEFINED__
-typedef interface IWamAdmin2 IWamAdmin2;
+typedef struct IWamAdmin2 IWamAdmin2;
 #endif
 
 #ifndef __IIISApplicationAdmin_FWD_DEFINED__
 #define __IIISApplicationAdmin_FWD_DEFINED__
-typedef interface IIISApplicationAdmin IIISApplicationAdmin;
+typedef struct IIISApplicationAdmin IIISApplicationAdmin;
 #endif
 
 #ifndef __WamAdmin_FWD_DEFINED__
@@ -102,7 +102,7 @@
       HRESULT (WINAPI *AppRecover)(IWamAdmin *This,LPCWSTR szMDPath,WINBOOL fRecursive);
     END_INTERFACE
   } IWamAdminVtbl;
-  interface IWamAdmin {
+  struct IWamAdmin {
     CONST_VTBL struct IWamAdminVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -154,7 +154,7 @@
       HRESULT (WINAPI *AppCreate2)(IWamAdmin2 *This,LPCWSTR szMDPath,DWORD dwAppMode);
     END_INTERFACE
   } IWamAdmin2Vtbl;
-  interface IWamAdmin2 {
+  struct IWamAdmin2 {
     CONST_VTBL struct IWamAdmin2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -203,7 +203,7 @@
       HRESULT (WINAPI *GetProcessMode)(IIISApplicationAdmin *This,DWORD *pdwMode);
     END_INTERFACE
   } IIISApplicationAdminVtbl;
-  interface IIISApplicationAdmin {
+  struct IIISApplicationAdmin {
     CONST_VTBL struct IIISApplicationAdminVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/ks.h b/mingw-w64-headers/include/ks.h
index aac5ec0..09850a3 100755
--- a/mingw-w64-headers/include/ks.h
+++ b/mingw-w64-headers/include/ks.h
@@ -578,7 +578,7 @@
 } KSPIN_PHYSICALCONNECTION,*PKSPIN_PHYSICALCONNECTION;
 
 #define DEFINE_KSPIN_INTERFACE_TABLE(tablename) const KSPIN_INTERFACE tablename[] =
-#define DEFINE_KSPIN_INTERFACE_ITEM(guid,interface) { STATICGUIDOF(guid),(interface),0 }
+#define DEFINE_KSPIN_INTERFACE_ITEM(guid,INTERFACE) { STATICGUIDOF(guid),(INTERFACE),0 }
 #define DEFINE_KSPIN_MEDIUM_TABLE(tablename) const KSPIN_MEDIUM tablename[] =
 #define DEFINE_KSPIN_MEDIUM_ITEM(guid,medium) DEFINE_KSPIN_INTERFACE_ITEM(guid,medium)
 #define DEFINE_KSPROPERTY_ITEM_PIN_CINSTANCES(Handler) DEFINE_KSPROPERTY_ITEM(KSPROPERTY_PIN_CINSTANCES,(Handler),sizeof(KSP_PIN),sizeof(KSPIN_CINSTANCES),NULL,NULL,0,NULL,NULL,0)
@@ -1309,7 +1309,7 @@
 #ifndef _IKsControl_
 #define _IKsControl_
 
-typedef interface IKsControl *PIKSCONTROL;
+typedef struct IKsControl *PIKSCONTROL;
 
 #ifndef DEFINE_ABSTRACT_UNKNOWN
 #define DEFINE_ABSTRACT_UNKNOWN() STDMETHOD_(NTSTATUS,QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE;
@@ -1323,7 +1323,7 @@
   STDMETHOD_(NTSTATUS,KsMethod)(THIS_ PKSMETHOD Method,ULONG MethodLength,PVOID MethodData,ULONG DataLength,ULONG *BytesReturned) PURE;
   STDMETHOD_(NTSTATUS,KsEvent)(THIS_ PKSEVENT Event,ULONG EventLength,PVOID EventData,ULONG DataLength,ULONG *BytesReturned) PURE;
 };
-typedef interface IKsReferenceClock *PIKSREFERENCECLOCK;
+typedef struct IKsReferenceClock *PIKSREFERENCECLOCK;
 
 #undef INTERFACE
 #define INTERFACE IKsReferenceClock
diff --git a/mingw-w64-headers/include/ksproxy.h b/mingw-w64-headers/include/ksproxy.h
index 7f1058a..caaab0c 100755
--- a/mingw-w64-headers/include/ksproxy.h
+++ b/mingw-w64-headers/include/ksproxy.h
@@ -172,7 +172,7 @@
     STDMETHOD(KsGetState)(THIS_ KSSTATE *State) PURE;
   };
 
-  interface IKsAllocator;
+  struct IKsAllocator;
 #undef INTERFACE
 #define INTERFACE IKsAllocator
   DECLARE_INTERFACE_(IKsAllocator,IUnknown) {
@@ -182,7 +182,7 @@
     STDMETHOD_(VOID,KsSetAllocatorMode)(THIS_ KSALLOCATORMODE Mode) PURE;
   };
 
-  interface IKsAllocatorEx;
+  struct IKsAllocatorEx;
 #undef INTERFACE
 #define INTERFACE IKsAllocatorEx
   DECLARE_INTERFACE_(IKsAllocatorEx,IKsAllocator) {
@@ -197,7 +197,7 @@
   } KSPEEKOPERATION;
 
   typedef struct _KSSTREAM_SEGMENT *PKSSTREAM_SEGMENT;
-  interface IKsPin;
+  struct IKsPin;
 
 #undef INTERFACE
 #define INTERFACE IKsPin
@@ -217,14 +217,14 @@
     STDMETHOD(KsQualityNotify)(THIS_ ULONG Proportion,REFERENCE_TIME TimeDelta) PURE;
   };
 
-  interface IKsPinEx;
+  struct IKsPinEx;
 #undef INTERFACE
 #define INTERFACE IKsPinEx
   DECLARE_INTERFACE_(IKsPinEx,IKsPin) {
     STDMETHOD_(VOID,KsNotifyError)(THIS_ IMediaSample *Sample,HRESULT hr) PURE;
   };
 
-  interface IKsPinPipe;
+  struct IKsPinPipe;
 #undef INTERFACE
 #define INTERFACE IKsPinPipe
   DECLARE_INTERFACE_(IKsPinPipe,IUnknown) {
@@ -241,7 +241,7 @@
     STDMETHOD_(PWCHAR,KsGetFilterName)(THIS) PURE;
   };
 
-  interface IKsPinFactory;
+  struct IKsPinFactory;
 #undef INTERFACE
 #define INTERFACE IKsPinFactory
   DECLARE_INTERFACE_(IKsPinFactory,IUnknown) {
@@ -252,7 +252,7 @@
     KsIoOperation_Write,KsIoOperation_Read
   } KSIOOPERATION;
 
-  interface IKsDataTypeHandler;
+  struct IKsDataTypeHandler;
 #undef INTERFACE
 #define INTERFACE IKsDataTypeHandler
   DECLARE_INTERFACE_(IKsDataTypeHandler,IUnknown) {
@@ -263,14 +263,14 @@
     STDMETHOD(KsSetMediaType)(THIS_ const AM_MEDIA_TYPE *AmMediaType) PURE;
   };
 
-  interface IKsDataTypeCompletion;
+  struct IKsDataTypeCompletion;
 #undef INTERFACE
 #define INTERFACE IKsDataTypeCompletion
   DECLARE_INTERFACE_(IKsDataTypeCompletion,IUnknown) {
     STDMETHOD(KsCompleteMediaType)(THIS_ HANDLE FilterHandle,ULONG PinFactoryId,AM_MEDIA_TYPE *AmMediaType) PURE;
   };
 
-  interface IKsInterfaceHandler;
+  struct IKsInterfaceHandler;
 #undef INTERFACE
 #define INTERFACE IKsInterfaceHandler
   DECLARE_INTERFACE_(IKsInterfaceHandler,IUnknown) {
@@ -286,21 +286,21 @@
     HANDLE CompletionEvent;
   } KSSTREAM_SEGMENT;
 
-  interface IKsObject;
+  struct IKsObject;
 #undef INTERFACE
 #define INTERFACE IKsObject
   DECLARE_INTERFACE_(IKsObject,IUnknown) {
     STDMETHOD_(HANDLE,KsGetObjectHandle)(THIS) PURE;
   };
 
-  interface IKsQualityForwarder;
+  struct IKsQualityForwarder;
 #undef INTERFACE
 #define INTERFACE IKsQualityForwarder
   DECLARE_INTERFACE_(IKsQualityForwarder,IKsObject) {
     STDMETHOD_(VOID,KsFlushClient)(THIS_ IKsPin *Pin) PURE;
   };
 
-  interface IKsNotifyEvent;
+  struct IKsNotifyEvent;
 #undef INTERFACE
 #define INTERFACE IKsNotifyEvent
   DECLARE_INTERFACE_(IKsNotifyEvent,IUnknown) {
@@ -343,7 +343,7 @@
 #define KSPROPERTY_SUPPORT_SET 2
 
 #ifdef DECLARE_INTERFACE_
-  interface IKsPropertySet;
+  struct IKsPropertySet;
 #undef INTERFACE
 #define INTERFACE IKsPropertySet
   DECLARE_INTERFACE_(IKsPropertySet,IUnknown) {
@@ -357,7 +357,7 @@
 #ifndef _IKsControl_
 #define _IKsControl_
 #ifdef DECLARE_INTERFACE_
-  interface IKsControl;
+  struct IKsControl;
 #undef INTERFACE
 #define INTERFACE IKsControl
   DECLARE_INTERFACE_(IKsControl,IUnknown) {
@@ -369,7 +369,7 @@
 #endif
 
 #ifdef DECLARE_INTERFACE_
-  interface IKsAggregateControl;
+  struct IKsAggregateControl;
 #undef INTERFACE
 #define INTERFACE IKsAggregateControl
   DECLARE_INTERFACE_(IKsAggregateControl,IUnknown) {
@@ -381,7 +381,7 @@
 #ifndef _IKsTopology_
 #define _IKsTopology_
 #ifdef DECLARE_INTERFACE_
-  interface IKsTopology;
+  struct IKsTopology;
 #undef INTERFACE
 #define INTERFACE IKsTopology
   DECLARE_INTERFACE_(IKsTopology,IUnknown) {
diff --git a/mingw-w64-headers/include/mapidefs.h b/mingw-w64-headers/include/mapidefs.h
index 57db341..c9c2ce1 100755
--- a/mingw-w64-headers/include/mapidefs.h
+++ b/mingw-w64-headers/include/mapidefs.h
@@ -437,9 +437,9 @@
 #define DECLARE_MAPI_INTERFACE(iface) DECLARE_INTERFACE(iface)
 #define DECLARE_MAPI_INTERFACE_(iface,baseiface) DECLARE_INTERFACE_(iface,baseiface)
 #ifdef __cplusplus
-#define DECLARE_MAPI_INTERFACE_PTR(iface,piface) interface iface; typedef iface *piface
+#define DECLARE_MAPI_INTERFACE_PTR(iface,piface) struct iface; typedef iface *piface
 #else
-#define DECLARE_MAPI_INTERFACE_PTR(iface,piface) typedef interface iface iface,*piface
+#define DECLARE_MAPI_INTERFACE_PTR(iface,piface) typedef struct iface iface,*piface
 #endif
 #endif
 
diff --git a/mingw-w64-headers/include/mdhcp.h b/mingw-w64-headers/include/mdhcp.h
index 0bb2a18..5099fa7 100755
--- a/mingw-w64-headers/include/mdhcp.h
+++ b/mingw-w64-headers/include/mdhcp.h
@@ -24,42 +24,42 @@
 
 #ifndef __IMcastScope_FWD_DEFINED__
 #define __IMcastScope_FWD_DEFINED__
-typedef interface IMcastScope IMcastScope;
+typedef struct IMcastScope IMcastScope;
 #endif
 
 #ifndef __IMcastLeaseInfo_FWD_DEFINED__
 #define __IMcastLeaseInfo_FWD_DEFINED__
-typedef interface IMcastLeaseInfo IMcastLeaseInfo;
+typedef struct IMcastLeaseInfo IMcastLeaseInfo;
 #endif
 
 #ifndef __IEnumMcastScope_FWD_DEFINED__
 #define __IEnumMcastScope_FWD_DEFINED__
-typedef interface IEnumMcastScope IEnumMcastScope;
+typedef struct IEnumMcastScope IEnumMcastScope;
 #endif
 
 #ifndef __IMcastAddressAllocation_FWD_DEFINED__
 #define __IMcastAddressAllocation_FWD_DEFINED__
-typedef interface IMcastAddressAllocation IMcastAddressAllocation;
+typedef struct IMcastAddressAllocation IMcastAddressAllocation;
 #endif
 
 #ifndef __IMcastScope_FWD_DEFINED__
 #define __IMcastScope_FWD_DEFINED__
-typedef interface IMcastScope IMcastScope;
+typedef struct IMcastScope IMcastScope;
 #endif
 
 #ifndef __IMcastLeaseInfo_FWD_DEFINED__
 #define __IMcastLeaseInfo_FWD_DEFINED__
-typedef interface IMcastLeaseInfo IMcastLeaseInfo;
+typedef struct IMcastLeaseInfo IMcastLeaseInfo;
 #endif
 
 #ifndef __IEnumMcastScope_FWD_DEFINED__
 #define __IEnumMcastScope_FWD_DEFINED__
-typedef interface IEnumMcastScope IEnumMcastScope;
+typedef struct IEnumMcastScope IEnumMcastScope;
 #endif
 
 #ifndef __IMcastAddressAllocation_FWD_DEFINED__
 #define __IMcastAddressAllocation_FWD_DEFINED__
-typedef interface IMcastAddressAllocation IMcastAddressAllocation;
+typedef struct IMcastAddressAllocation IMcastAddressAllocation;
 #endif
 
 #ifndef __McastAddressAllocation_FWD_DEFINED__
@@ -114,7 +114,7 @@
       HRESULT (WINAPI *get_TTL)(IMcastScope *This,long *pTTL);
     END_INTERFACE
   } IMcastScopeVtbl;
-  interface IMcastScope {
+  struct IMcastScope {
     CONST_VTBL struct IMcastScopeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -183,7 +183,7 @@
       HRESULT (WINAPI *EnumerateAddresses)(IMcastLeaseInfo *This,IEnumBstr **ppEnumAddresses);
     END_INTERFACE
   } IMcastLeaseInfoVtbl;
-  interface IMcastLeaseInfo {
+  struct IMcastLeaseInfo {
     CONST_VTBL struct IMcastLeaseInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -251,7 +251,7 @@
       HRESULT (WINAPI *Clone)(IEnumMcastScope *This,IEnumMcastScope **ppEnum);
     END_INTERFACE
   } IEnumMcastScopeVtbl;
-  interface IEnumMcastScope {
+  struct IEnumMcastScope {
     CONST_VTBL struct IEnumMcastScopeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -307,7 +307,7 @@
       HRESULT (WINAPI *CreateLeaseInfoFromVariant)(IMcastAddressAllocation *This,DATE LeaseStartTime,DATE LeaseStopTime,VARIANT vAddresses,BSTR pRequestID,BSTR pServerAddress,IMcastLeaseInfo **ppReleaseRequest);
     END_INTERFACE
   } IMcastAddressAllocationVtbl;
-  interface IMcastAddressAllocation {
+  struct IMcastAddressAllocation {
     CONST_VTBL struct IMcastAddressAllocationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mergemod.h b/mingw-w64-headers/include/mergemod.h
index 559459d..d495b0c 100755
--- a/mingw-w64-headers/include/mergemod.h
+++ b/mingw-w64-headers/include/mergemod.h
@@ -23,109 +23,109 @@
 
 #ifndef __IEnumMsmString_FWD_DEFINED__
 #define __IEnumMsmString_FWD_DEFINED__
-  typedef interface IEnumMsmString IEnumMsmString;
+  typedef struct IEnumMsmString IEnumMsmString;
 #endif
 
 #ifndef __IMsmStrings_FWD_DEFINED__
 #define __IMsmStrings_FWD_DEFINED__
-  typedef interface IMsmStrings IMsmStrings;
+  typedef struct IMsmStrings IMsmStrings;
 #endif
 
 #ifndef __IMsmError_FWD_DEFINED__
 #define __IMsmError_FWD_DEFINED__
-  typedef interface IMsmError IMsmError;
+  typedef struct IMsmError IMsmError;
 #endif
 
 #ifndef __IEnumMsmError_FWD_DEFINED__
 #define __IEnumMsmError_FWD_DEFINED__
-  typedef interface IEnumMsmError IEnumMsmError;
+  typedef struct IEnumMsmError IEnumMsmError;
 #endif
 
 #ifndef __IMsmErrors_FWD_DEFINED__
 #define __IMsmErrors_FWD_DEFINED__
-  typedef interface IMsmErrors IMsmErrors;
+  typedef struct IMsmErrors IMsmErrors;
 #endif
 
 #ifndef __IMsmDependency_FWD_DEFINED__
 #define __IMsmDependency_FWD_DEFINED__
-  typedef interface IMsmDependency IMsmDependency;
+  typedef struct IMsmDependency IMsmDependency;
 #endif
 
 #ifndef __IEnumMsmDependency_FWD_DEFINED__
 #define __IEnumMsmDependency_FWD_DEFINED__
-  typedef interface IEnumMsmDependency IEnumMsmDependency;
+  typedef struct IEnumMsmDependency IEnumMsmDependency;
 #endif
 
 #ifndef __IMsmDependencies_FWD_DEFINED__
 #define __IMsmDependencies_FWD_DEFINED__
-  typedef interface IMsmDependencies IMsmDependencies;
+  typedef struct IMsmDependencies IMsmDependencies;
 #endif
 
 #ifndef __IMsmMerge_FWD_DEFINED__
 #define __IMsmMerge_FWD_DEFINED__
-  typedef interface IMsmMerge IMsmMerge;
+  typedef struct IMsmMerge IMsmMerge;
 #endif
 
 #ifndef __IMsmGetFiles_FWD_DEFINED__
 #define __IMsmGetFiles_FWD_DEFINED__
-  typedef interface IMsmGetFiles IMsmGetFiles;
+  typedef struct IMsmGetFiles IMsmGetFiles;
 #endif
 
 #ifndef __IMsmStrings_FWD_DEFINED__
 #define __IMsmStrings_FWD_DEFINED__
-  typedef interface IMsmStrings IMsmStrings;
+  typedef struct IMsmStrings IMsmStrings;
 #endif
 
 #ifndef __IMsmError_FWD_DEFINED__
 #define __IMsmError_FWD_DEFINED__
-  typedef interface IMsmError IMsmError;
+  typedef struct IMsmError IMsmError;
 #endif
 
 #ifndef __IMsmErrors_FWD_DEFINED__
 #define __IMsmErrors_FWD_DEFINED__
-  typedef interface IMsmErrors IMsmErrors;
+  typedef struct IMsmErrors IMsmErrors;
 #endif
 
 #ifndef __IMsmDependency_FWD_DEFINED__
 #define __IMsmDependency_FWD_DEFINED__
-  typedef interface IMsmDependency IMsmDependency;
+  typedef struct IMsmDependency IMsmDependency;
 #endif
 
 #ifndef __IMsmDependencies_FWD_DEFINED__
 #define __IMsmDependencies_FWD_DEFINED__
-  typedef interface IMsmDependencies IMsmDependencies;
+  typedef struct IMsmDependencies IMsmDependencies;
 #endif
 
 #ifndef __IMsmGetFiles_FWD_DEFINED__
 #define __IMsmGetFiles_FWD_DEFINED__
-  typedef interface IMsmGetFiles IMsmGetFiles;
+  typedef struct IMsmGetFiles IMsmGetFiles;
 #endif
 
 #if (_WIN32_MSM >= 150)
 
 #ifndef __IMsmConfigurableItem_FWD_DEFINED__
 #define __IMsmConfigurableItem_FWD_DEFINED__
-  typedef interface IMsmConfigurableItem IMsmConfigurableItem;
+  typedef struct IMsmConfigurableItem IMsmConfigurableItem;
 #endif
 
 #ifndef __IEnumMsmConfigurableItem_FWD_DEFINED__
 #define __IEnumMsmConfigurableItem_FWD_DEFINED__
-  typedef interface IEnumMsmConfigurableItem IEnumMsmConfigurableItem;
+  typedef struct IEnumMsmConfigurableItem IEnumMsmConfigurableItem;
 #endif
 
 #ifndef __IMsmConfigurableItems_FWD_DEFINED__
 #define __IMsmConfigurableItems_FWD_DEFINED__
-  typedef interface IMsmConfigurableItems IMsmConfigurableItems;
+  typedef struct IMsmConfigurableItems IMsmConfigurableItems;
 #endif
 
 #ifndef __IMsmMerge2_FWD_DEFINED__
 #define __IMsmMerge2_FWD_DEFINED__
-  typedef interface IMsmMerge2 IMsmMerge2;
+  typedef struct IMsmMerge2 IMsmMerge2;
 #endif
 
 #ifndef __IMsmConfigureModule_FWD_DEFINED__
 #define __IMsmConfigureModule_FWD_DEFINED__
-  typedef interface IMsmConfigureModule IMsmConfigureModule;
+  typedef struct IMsmConfigureModule IMsmConfigureModule;
 #endif
 
 #ifndef __MsmMerge2_FWD_DEFINED__
@@ -181,7 +181,7 @@
 #ifndef __IEnumMsmString_INTERFACE_DEFINED__
 #define __IEnumMsmString_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IEnumMsmString : public IUnknown {
+  struct IEnumMsmString : public IUnknown {
   public:
     virtual HRESULT WINAPI Next(unsigned long cFetch,BSTR *rgbstrStrings,unsigned long *pcFetched) = 0;
     virtual HRESULT WINAPI Skip(unsigned long cSkip) = 0;
@@ -200,7 +200,7 @@
       HRESULT (WINAPI *Clone)(IEnumMsmString *This,IEnumMsmString **pemsmStrings);
     END_INTERFACE
   } IEnumMsmStringVtbl;
-  interface IEnumMsmString {
+  struct IEnumMsmString {
     CONST_VTBL struct IEnumMsmStringVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -226,7 +226,7 @@
 #ifndef __IMsmStrings_INTERFACE_DEFINED__
 #define __IMsmStrings_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IMsmStrings : public IDispatch {
+  struct IMsmStrings : public IDispatch {
   public:
     virtual HRESULT WINAPI get_Item(long Item,BSTR *Return) = 0;
     virtual HRESULT WINAPI get_Count(long *Count) = 0;
@@ -247,7 +247,7 @@
       HRESULT (WINAPI *get__NewEnum)(IMsmStrings *This,IUnknown **NewEnum);
     END_INTERFACE
   } IMsmStringsVtbl;
-  interface IMsmStrings {
+  struct IMsmStrings {
     CONST_VTBL struct IMsmStringsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -274,7 +274,7 @@
 #ifndef __IMsmError_INTERFACE_DEFINED__
 #define __IMsmError_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IMsmError : public IDispatch {
+  struct IMsmError : public IDispatch {
   public:
     virtual HRESULT WINAPI get_Type(msmErrorType *ErrorType) = 0;
     virtual HRESULT WINAPI get_Path(BSTR *ErrorPath) = 0;
@@ -303,7 +303,7 @@
       HRESULT (WINAPI *get_ModuleKeys)(IMsmError *This,IMsmStrings **ErrorKeys);
     END_INTERFACE
   } IMsmErrorVtbl;
-  interface IMsmError {
+  struct IMsmError {
     CONST_VTBL struct IMsmErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -342,7 +342,7 @@
 #ifndef __IEnumMsmError_INTERFACE_DEFINED__
 #define __IEnumMsmError_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IEnumMsmError : public IUnknown {
+  struct IEnumMsmError : public IUnknown {
   public:
     virtual HRESULT WINAPI Next(unsigned long cFetch,IMsmError **rgmsmErrors,unsigned long *pcFetched) = 0;
     virtual HRESULT WINAPI Skip(unsigned long cSkip) = 0;
@@ -361,7 +361,7 @@
       HRESULT (WINAPI *Clone)(IEnumMsmError *This,IEnumMsmError **pemsmErrors);
     END_INTERFACE
   } IEnumMsmErrorVtbl;
-  interface IEnumMsmError {
+  struct IEnumMsmError {
     CONST_VTBL struct IEnumMsmErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -388,7 +388,7 @@
 #define __IMsmErrors_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
 
-  interface IMsmErrors : public IDispatch {
+  struct IMsmErrors : public IDispatch {
   public:
     virtual HRESULT WINAPI get_Item(long Item,IMsmError **Return) = 0;
     virtual HRESULT WINAPI get_Count(long *Count) = 0;
@@ -409,7 +409,7 @@
       HRESULT (WINAPI *get__NewEnum)(IMsmErrors *This,IUnknown **NewEnum);
     END_INTERFACE
   } IMsmErrorsVtbl;
-  interface IMsmErrors {
+  struct IMsmErrors {
     CONST_VTBL struct IMsmErrorsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -436,7 +436,7 @@
 #ifndef __IMsmDependency_INTERFACE_DEFINED__
 #define __IMsmDependency_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IMsmDependency : public IDispatch {
+  struct IMsmDependency : public IDispatch {
   public:
     virtual HRESULT WINAPI get_Module(BSTR *Module) = 0;
     virtual HRESULT WINAPI get_Language(short *Language) = 0;
@@ -457,7 +457,7 @@
       HRESULT (WINAPI *get_Version)(IMsmDependency *This,BSTR *Version);
     END_INTERFACE
   } IMsmDependencyVtbl;
-  interface IMsmDependency {
+  struct IMsmDependency {
     CONST_VTBL struct IMsmDependencyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -484,7 +484,7 @@
 #ifndef __IEnumMsmDependency_INTERFACE_DEFINED__
 #define __IEnumMsmDependency_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IEnumMsmDependency : public IUnknown {
+  struct IEnumMsmDependency : public IUnknown {
   public:
     virtual HRESULT WINAPI Next(unsigned long cFetch,IMsmDependency **rgmsmDependencies,unsigned long *pcFetched) = 0;
     virtual HRESULT WINAPI Skip(unsigned long cSkip) = 0;
@@ -503,7 +503,7 @@
       HRESULT (WINAPI *Clone)(IEnumMsmDependency *This,IEnumMsmDependency **pemsmDependencies);
     END_INTERFACE
   } IEnumMsmDependencyVtbl;
-  interface IEnumMsmDependency {
+  struct IEnumMsmDependency {
     CONST_VTBL struct IEnumMsmDependencyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -529,7 +529,7 @@
 #ifndef __IMsmDependencies_INTERFACE_DEFINED__
 #define __IMsmDependencies_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IMsmDependencies : public IDispatch {
+  struct IMsmDependencies : public IDispatch {
   public:
     virtual HRESULT WINAPI get_Item(long Item,IMsmDependency **Return) = 0;
     virtual HRESULT WINAPI get_Count(long *Count) = 0;
@@ -550,7 +550,7 @@
       HRESULT (WINAPI *get__NewEnum)(IMsmDependencies *This,IUnknown **NewEnum);
     END_INTERFACE
   } IMsmDependenciesVtbl;
-  interface IMsmDependencies {
+  struct IMsmDependencies {
     CONST_VTBL struct IMsmDependenciesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -613,7 +613,7 @@
       HRESULT (WINAPI *get_HelpKeyword)(IMsmConfigurableItem *This,BSTR *HelpKeyword);
     END_INTERFACE
   } IMsmConfigurableItemVtbl;
-  interface IMsmConfigurableItem {
+  struct IMsmConfigurableItem {
     CONST_VTBL struct IMsmConfigurableItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -661,7 +661,7 @@
 #ifndef __IEnumMsmConfigurableItem_INTERFACE_DEFINED__
 #define __IEnumMsmConfigurableItem_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IEnumMsmConfigurableItem : public IUnknown {
+  struct IEnumMsmConfigurableItem : public IUnknown {
   public:
     virtual HRESULT WINAPI Next(unsigned long cFetch,IMsmConfigurableItem **rgmsmItems,unsigned long *pcFetched) = 0;
     virtual HRESULT WINAPI Skip(unsigned long cSkip) = 0;
@@ -680,7 +680,7 @@
       HRESULT (WINAPI *Clone)(IEnumMsmConfigurableItem *This,IEnumMsmConfigurableItem **pemsmConfigurableItem);
     END_INTERFACE
   } IEnumMsmConfigurableItemVtbl;
-  interface IEnumMsmConfigurableItem {
+  struct IEnumMsmConfigurableItem {
     CONST_VTBL struct IEnumMsmConfigurableItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -727,7 +727,7 @@
       HRESULT (WINAPI *get__NewEnum)(IMsmConfigurableItems *This,IUnknown **NewEnum);
     END_INTERFACE
   } IMsmConfigurableItemsVtbl;
-  interface IMsmConfigurableItems {
+  struct IMsmConfigurableItems {
     CONST_VTBL struct IMsmConfigurableItemsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -773,7 +773,7 @@
       HRESULT (WINAPI *ProvideIntegerData)(IMsmConfigureModule *This,const BSTR Name,long *ConfigData);
     END_INTERFACE
   } IMsmConfigureModuleVtbl;
-  interface IMsmConfigureModule {
+  struct IMsmConfigureModule {
     CONST_VTBL struct IMsmConfigureModuleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -798,7 +798,7 @@
 #ifndef __IMsmMerge_INTERFACE_DEFINED__
 #define __IMsmMerge_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IMsmMerge : public IDispatch {
+  struct IMsmMerge : public IDispatch {
   public:
     virtual HRESULT WINAPI OpenDatabase(const BSTR Path) = 0;
     virtual HRESULT WINAPI OpenModule(const BSTR Path,const short Language) = 0;
@@ -839,7 +839,7 @@
       HRESULT (WINAPI *ExtractFiles)(IMsmMerge *This,const BSTR Path);
     END_INTERFACE
   } IMsmMergeVtbl;
-  interface IMsmMerge {
+  struct IMsmMerge {
     CONST_VTBL struct IMsmMergeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -896,7 +896,7 @@
 #ifndef __IMsmGetFiles_INTERFACE_DEFINED__
 #define __IMsmGetFiles_INTERFACE_DEFINED__
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IMsmGetFiles : public IDispatch {
+  struct IMsmGetFiles : public IDispatch {
   public:
     virtual HRESULT WINAPI get_ModuleFiles(IMsmStrings **Files) = 0;
   };
@@ -913,7 +913,7 @@
       HRESULT (WINAPI *get_ModuleFiles)(IMsmGetFiles *This,IMsmStrings **Files);
     END_INTERFACE
   } IMsmGetFilesVtbl;
-  interface IMsmGetFiles {
+  struct IMsmGetFiles {
     CONST_VTBL struct IMsmGetFilesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -986,7 +986,7 @@
       HRESULT (WINAPI *get_ModuleFiles)(IMsmMerge2 *This,IMsmStrings **Files);
     END_INTERFACE
   } IMsmMerge2Vtbl;
-  interface IMsmMerge2 {
+  struct IMsmMerge2 {
     CONST_VTBL struct IMsmMerge2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mimeinfo.h b/mingw-w64-headers/include/mimeinfo.h
index e539ef8..20c5b87 100755
--- a/mingw-w64-headers/include/mimeinfo.h
+++ b/mingw-w64-headers/include/mimeinfo.h
@@ -24,7 +24,7 @@
 
 #ifndef __IMimeInfo_FWD_DEFINED__
 #define __IMimeInfo_FWD_DEFINED__
-typedef interface IMimeInfo IMimeInfo;
+typedef struct IMimeInfo IMimeInfo;
 #endif
 
 #include "objidl.h"
@@ -59,7 +59,7 @@
       HRESULT (WINAPI *GetMimeCLSIDMapping)(IMimeInfo *This,UINT *pcTypes,LPCSTR **ppszTypes,CLSID **ppclsID);
     END_INTERFACE
   } IMimeInfoVtbl;
-  interface IMimeInfo {
+  struct IMimeInfo {
     CONST_VTBL struct IMimeInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mlang.h b/mingw-w64-headers/include/mlang.h
index 20d91b0..a18bf1e 100755
--- a/mingw-w64-headers/include/mlang.h
+++ b/mingw-w64-headers/include/mlang.h
@@ -19,27 +19,27 @@
 
 #ifndef __IMLangStringBufW_FWD_DEFINED__
 #define __IMLangStringBufW_FWD_DEFINED__
-typedef interface IMLangStringBufW IMLangStringBufW;
+typedef struct IMLangStringBufW IMLangStringBufW;
 #endif
 
 #ifndef __IMLangStringBufA_FWD_DEFINED__
 #define __IMLangStringBufA_FWD_DEFINED__
-typedef interface IMLangStringBufA IMLangStringBufA;
+typedef struct IMLangStringBufA IMLangStringBufA;
 #endif
 
 #ifndef __IMLangString_FWD_DEFINED__
 #define __IMLangString_FWD_DEFINED__
-typedef interface IMLangString IMLangString;
+typedef struct IMLangString IMLangString;
 #endif
 
 #ifndef __IMLangStringWStr_FWD_DEFINED__
 #define __IMLangStringWStr_FWD_DEFINED__
-typedef interface IMLangStringWStr IMLangStringWStr;
+typedef struct IMLangStringWStr IMLangStringWStr;
 #endif
 
 #ifndef __IMLangStringAStr_FWD_DEFINED__
 #define __IMLangStringAStr_FWD_DEFINED__
-typedef interface IMLangStringAStr IMLangStringAStr;
+typedef struct IMLangStringAStr IMLangStringAStr;
 #endif
 
 #ifndef __CMLangString_FWD_DEFINED__
@@ -54,27 +54,27 @@
 
 #ifndef __IMLangLineBreakConsole_FWD_DEFINED__
 #define __IMLangLineBreakConsole_FWD_DEFINED__
-typedef interface IMLangLineBreakConsole IMLangLineBreakConsole;
+typedef struct IMLangLineBreakConsole IMLangLineBreakConsole;
 #endif
 
 #ifndef __IEnumCodePage_FWD_DEFINED__
 #define __IEnumCodePage_FWD_DEFINED__
-typedef interface IEnumCodePage IEnumCodePage;
+typedef struct IEnumCodePage IEnumCodePage;
 #endif
 
 #ifndef __IEnumRfc1766_FWD_DEFINED__
 #define __IEnumRfc1766_FWD_DEFINED__
-typedef interface IEnumRfc1766 IEnumRfc1766;
+typedef struct IEnumRfc1766 IEnumRfc1766;
 #endif
 
 #ifndef __IEnumScript_FWD_DEFINED__
 #define __IEnumScript_FWD_DEFINED__
-typedef interface IEnumScript IEnumScript;
+typedef struct IEnumScript IEnumScript;
 #endif
 
 #ifndef __IMLangConvertCharset_FWD_DEFINED__
 #define __IMLangConvertCharset_FWD_DEFINED__
-typedef interface IMLangConvertCharset IMLangConvertCharset;
+typedef struct IMLangConvertCharset IMLangConvertCharset;
 #endif
 
 #ifndef __CMLangConvertCharset_FWD_DEFINED__
@@ -88,32 +88,32 @@
 
 #ifndef __IMultiLanguage_FWD_DEFINED__
 #define __IMultiLanguage_FWD_DEFINED__
-typedef interface IMultiLanguage IMultiLanguage;
+typedef struct IMultiLanguage IMultiLanguage;
 #endif
 
 #ifndef __IMultiLanguage2_FWD_DEFINED__
 #define __IMultiLanguage2_FWD_DEFINED__
-typedef interface IMultiLanguage2 IMultiLanguage2;
+typedef struct IMultiLanguage2 IMultiLanguage2;
 #endif
 
 #ifndef __IMLangCodePages_FWD_DEFINED__
 #define __IMLangCodePages_FWD_DEFINED__
-typedef interface IMLangCodePages IMLangCodePages;
+typedef struct IMLangCodePages IMLangCodePages;
 #endif
 
 #ifndef __IMLangFontLink_FWD_DEFINED__
 #define __IMLangFontLink_FWD_DEFINED__
-typedef interface IMLangFontLink IMLangFontLink;
+typedef struct IMLangFontLink IMLangFontLink;
 #endif
 
 #ifndef __IMLangFontLink2_FWD_DEFINED__
 #define __IMLangFontLink2_FWD_DEFINED__
-typedef interface IMLangFontLink2 IMLangFontLink2;
+typedef struct IMLangFontLink2 IMLangFontLink2;
 #endif
 
 #ifndef __IMultiLanguage3_FWD_DEFINED__
 #define __IMultiLanguage3_FWD_DEFINED__
-typedef interface IMultiLanguage3 IMultiLanguage3;
+typedef struct IMultiLanguage3 IMultiLanguage3;
 #endif
 
 #ifndef __CMultiLanguage_FWD_DEFINED__
@@ -175,7 +175,7 @@
       HRESULT (WINAPI *Delete)(IMLangStringBufW *This,long cchOffset,long cchDelete);
     END_INTERFACE
   } IMLangStringBufWVtbl;
-  interface IMLangStringBufW {
+  struct IMLangStringBufW {
     CONST_VTBL struct IMLangStringBufWVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -226,7 +226,7 @@
       HRESULT (WINAPI *Delete)(IMLangStringBufA *This,long cchOffset,long cchDelete);
     END_INTERFACE
   } IMLangStringBufAVtbl;
-  interface IMLangStringBufA {
+  struct IMLangStringBufA {
     CONST_VTBL struct IMLangStringBufAVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -275,7 +275,7 @@
       HRESULT (WINAPI *GetMLStr)(IMLangString *This,long lSrcPos,long lSrcLen,IUnknown *pUnkOuter,DWORD dwClsContext,const IID *piid,IUnknown **ppDestMLStr,long *plDestPos,long *plDestLen);
     END_INTERFACE
   } IMLangStringVtbl;
-  interface IMLangString {
+  struct IMLangString {
     CONST_VTBL struct IMLangStringVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -333,7 +333,7 @@
       HRESULT (WINAPI *GetLocale)(IMLangStringWStr *This,long lSrcPos,long lSrcMaxLen,LCID *plocale,long *plLocalePos,long *plLocaleLen);
     END_INTERFACE
   } IMLangStringWStrVtbl;
-  interface IMLangStringWStr {
+  struct IMLangStringWStr {
     CONST_VTBL struct IMLangStringWStrVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -407,7 +407,7 @@
       HRESULT (WINAPI *GetLocale)(IMLangStringAStr *This,long lSrcPos,long lSrcMaxLen,LCID *plocale,long *plLocalePos,long *plLocaleLen);
     END_INTERFACE
   } IMLangStringAStrVtbl;
-  interface IMLangStringAStr {
+  struct IMLangStringAStr {
     CONST_VTBL struct IMLangStringAStrVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -472,7 +472,7 @@
       HRESULT (WINAPI *BreakLineA)(IMLangLineBreakConsole *This,LCID locale,UINT uCodePage,const CHAR *pszSrc,long cchSrc,long cMaxColumns,long *pcchLine,long *pcchSkip);
     END_INTERFACE
   } IMLangLineBreakConsoleVtbl;
-  interface IMLangLineBreakConsole {
+  struct IMLangLineBreakConsole {
     CONST_VTBL struct IMLangLineBreakConsoleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -549,7 +549,7 @@
       HRESULT (WINAPI *Skip)(IEnumCodePage *This,ULONG celt);
     END_INTERFACE
   } IEnumCodePageVtbl;
-  interface IEnumCodePage {
+  struct IEnumCodePage {
     CONST_VTBL struct IEnumCodePageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -607,7 +607,7 @@
       HRESULT (WINAPI *Skip)(IEnumRfc1766 *This,ULONG celt);
     END_INTERFACE
   } IEnumRfc1766Vtbl;
-  interface IEnumRfc1766 {
+  struct IEnumRfc1766 {
     CONST_VTBL struct IEnumRfc1766Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -681,7 +681,7 @@
       HRESULT (WINAPI *Skip)(IEnumScript *This,ULONG celt);
     END_INTERFACE
   } IEnumScriptVtbl;
-  interface IEnumScript {
+  struct IEnumScript {
     CONST_VTBL struct IEnumScriptVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -745,7 +745,7 @@
       HRESULT (WINAPI *DoConversionFromUnicode)(IMLangConvertCharset *This,WCHAR *pSrcStr,UINT *pcSrcSize,CHAR *pDstStr,UINT *pcDstSize);
     END_INTERFACE
   } IMLangConvertCharsetVtbl;
-  interface IMLangConvertCharset {
+  struct IMLangConvertCharset {
     CONST_VTBL struct IMLangConvertCharsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -829,7 +829,7 @@
       HRESULT (WINAPI *CreateConvertCharset)(IMultiLanguage *This,UINT uiSrcCodePage,UINT uiDstCodePage,DWORD dwProperty,IMLangConvertCharset **ppMLangConvertCharset);
     END_INTERFACE
   } IMultiLanguageVtbl;
-  interface IMultiLanguage {
+  struct IMultiLanguage {
     CONST_VTBL struct IMultiLanguageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -981,7 +981,7 @@
       HRESULT (WINAPI *ValidateCodePageEx)(IMultiLanguage2 *This,UINT uiCodePage,HWND hwnd,DWORD dwfIODControl);
     END_INTERFACE
   } IMultiLanguage2Vtbl;
-  interface IMultiLanguage2 {
+  struct IMultiLanguage2 {
     CONST_VTBL struct IMultiLanguage2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1098,7 +1098,7 @@
       HRESULT (WINAPI *CodePagesToCodePage)(IMLangCodePages *This,DWORD dwCodePages,UINT uDefaultCodePage,UINT *puCodePage);
     END_INTERFACE
   } IMLangCodePagesVtbl;
-  interface IMLangCodePages {
+  struct IMLangCodePages {
     CONST_VTBL struct IMLangCodePagesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1150,7 +1150,7 @@
       HRESULT (WINAPI *ResetFontMapping)(IMLangFontLink *This);
     END_INTERFACE
   } IMLangFontLinkVtbl;
-  interface IMLangFontLink {
+  struct IMLangFontLink {
     CONST_VTBL struct IMLangFontLinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1217,7 +1217,7 @@
       HRESULT (WINAPI *CodePageToScriptID)(IMLangFontLink2 *This,UINT uiCodePage,SCRIPT_ID *pSid);
     END_INTERFACE
   } IMLangFontLink2Vtbl;
-  interface IMLangFontLink2 {
+  struct IMLangFontLink2 {
     CONST_VTBL struct IMLangFontLink2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1301,7 +1301,7 @@
       HRESULT (WINAPI *DetectOutboundCodePageInIStream)(IMultiLanguage3 *This,DWORD dwFlags,IStream *pStrIn,UINT *puiPreferredCodePages,UINT nPreferredCodePages,UINT *puiDetectedCodePages,UINT *pnDetectedCodePages,WCHAR *lpSpecialChar);
     END_INTERFACE
   } IMultiLanguage3Vtbl;
-  interface IMultiLanguage3 {
+  struct IMultiLanguage3 {
     CONST_VTBL struct IMultiLanguage3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mmc.h b/mingw-w64-headers/include/mmc.h
index 5a51937..5a403cc 100755
--- a/mingw-w64-headers/include/mmc.h
+++ b/mingw-w64-headers/include/mmc.h
@@ -24,197 +24,197 @@
 
 #ifndef __IComponentData_FWD_DEFINED__
 #define __IComponentData_FWD_DEFINED__
-typedef interface IComponentData IComponentData;
+typedef struct IComponentData IComponentData;
 #endif
 
 #ifndef __IComponent_FWD_DEFINED__
 #define __IComponent_FWD_DEFINED__
-typedef interface IComponent IComponent;
+typedef struct IComponent IComponent;
 #endif
 
 #ifndef __IResultDataCompare_FWD_DEFINED__
 #define __IResultDataCompare_FWD_DEFINED__
-typedef interface IResultDataCompare IResultDataCompare;
+typedef struct IResultDataCompare IResultDataCompare;
 #endif
 
 #ifndef __IResultOwnerData_FWD_DEFINED__
 #define __IResultOwnerData_FWD_DEFINED__
-typedef interface IResultOwnerData IResultOwnerData;
+typedef struct IResultOwnerData IResultOwnerData;
 #endif
 
 #ifndef __IConsole_FWD_DEFINED__
 #define __IConsole_FWD_DEFINED__
-typedef interface IConsole IConsole;
+typedef struct IConsole IConsole;
 #endif
 
 #ifndef __IHeaderCtrl_FWD_DEFINED__
 #define __IHeaderCtrl_FWD_DEFINED__
-typedef interface IHeaderCtrl IHeaderCtrl;
+typedef struct IHeaderCtrl IHeaderCtrl;
 #endif
 
 #ifndef __IContextMenuCallback_FWD_DEFINED__
 #define __IContextMenuCallback_FWD_DEFINED__
-typedef interface IContextMenuCallback IContextMenuCallback;
+typedef struct IContextMenuCallback IContextMenuCallback;
 #endif
 
 #ifndef __IContextMenuProvider_FWD_DEFINED__
 #define __IContextMenuProvider_FWD_DEFINED__
-typedef interface IContextMenuProvider IContextMenuProvider;
+typedef struct IContextMenuProvider IContextMenuProvider;
 #endif
 
 #ifndef __IExtendContextMenu_FWD_DEFINED__
 #define __IExtendContextMenu_FWD_DEFINED__
-typedef interface IExtendContextMenu IExtendContextMenu;
+typedef struct IExtendContextMenu IExtendContextMenu;
 #endif
 
 #ifndef __IImageList_FWD_DEFINED__
 #define __IImageList_FWD_DEFINED__
-typedef interface IImageList IImageList;
+typedef struct IImageList IImageList;
 #endif
 
 #ifndef __IResultData_FWD_DEFINED__
 #define __IResultData_FWD_DEFINED__
-typedef interface IResultData IResultData;
+typedef struct IResultData IResultData;
 #endif
 
 #ifndef __IConsoleNameSpace_FWD_DEFINED__
 #define __IConsoleNameSpace_FWD_DEFINED__
-typedef interface IConsoleNameSpace IConsoleNameSpace;
+typedef struct IConsoleNameSpace IConsoleNameSpace;
 #endif
 
 #ifndef __IConsoleNameSpace2_FWD_DEFINED__
 #define __IConsoleNameSpace2_FWD_DEFINED__
-typedef interface IConsoleNameSpace2 IConsoleNameSpace2;
+typedef struct IConsoleNameSpace2 IConsoleNameSpace2;
 #endif
 
 #ifndef __IPropertySheetCallback_FWD_DEFINED__
 #define __IPropertySheetCallback_FWD_DEFINED__
-typedef interface IPropertySheetCallback IPropertySheetCallback;
+typedef struct IPropertySheetCallback IPropertySheetCallback;
 #endif
 
 #ifndef __IPropertySheetProvider_FWD_DEFINED__
 #define __IPropertySheetProvider_FWD_DEFINED__
-typedef interface IPropertySheetProvider IPropertySheetProvider;
+typedef struct IPropertySheetProvider IPropertySheetProvider;
 #endif
 
 #ifndef __IExtendPropertySheet_FWD_DEFINED__
 #define __IExtendPropertySheet_FWD_DEFINED__
-typedef interface IExtendPropertySheet IExtendPropertySheet;
+typedef struct IExtendPropertySheet IExtendPropertySheet;
 #endif
 
 #ifndef __IControlbar_FWD_DEFINED__
 #define __IControlbar_FWD_DEFINED__
-typedef interface IControlbar IControlbar;
+typedef struct IControlbar IControlbar;
 #endif
 
 #ifndef __IExtendControlbar_FWD_DEFINED__
 #define __IExtendControlbar_FWD_DEFINED__
-typedef interface IExtendControlbar IExtendControlbar;
+typedef struct IExtendControlbar IExtendControlbar;
 #endif
 
 #ifndef __IToolbar_FWD_DEFINED__
 #define __IToolbar_FWD_DEFINED__
-typedef interface IToolbar IToolbar;
+typedef struct IToolbar IToolbar;
 #endif
 
 #ifndef __IConsoleVerb_FWD_DEFINED__
 #define __IConsoleVerb_FWD_DEFINED__
-typedef interface IConsoleVerb IConsoleVerb;
+typedef struct IConsoleVerb IConsoleVerb;
 #endif
 
 #ifndef __ISnapinAbout_FWD_DEFINED__
 #define __ISnapinAbout_FWD_DEFINED__
-typedef interface ISnapinAbout ISnapinAbout;
+typedef struct ISnapinAbout ISnapinAbout;
 #endif
 
 #ifndef __IMenuButton_FWD_DEFINED__
 #define __IMenuButton_FWD_DEFINED__
-typedef interface IMenuButton IMenuButton;
+typedef struct IMenuButton IMenuButton;
 #endif
 
 #ifndef __ISnapinHelp_FWD_DEFINED__
 #define __ISnapinHelp_FWD_DEFINED__
-typedef interface ISnapinHelp ISnapinHelp;
+typedef struct ISnapinHelp ISnapinHelp;
 #endif
 
 #ifndef __IExtendPropertySheet2_FWD_DEFINED__
 #define __IExtendPropertySheet2_FWD_DEFINED__
-typedef interface IExtendPropertySheet2 IExtendPropertySheet2;
+typedef struct IExtendPropertySheet2 IExtendPropertySheet2;
 #endif
 
 #ifndef __IHeaderCtrl2_FWD_DEFINED__
 #define __IHeaderCtrl2_FWD_DEFINED__
-typedef interface IHeaderCtrl2 IHeaderCtrl2;
+typedef struct IHeaderCtrl2 IHeaderCtrl2;
 #endif
 
 #ifndef __ISnapinHelp2_FWD_DEFINED__
 #define __ISnapinHelp2_FWD_DEFINED__
-typedef interface ISnapinHelp2 ISnapinHelp2;
+typedef struct ISnapinHelp2 ISnapinHelp2;
 #endif
 
 #ifndef __IEnumTASK_FWD_DEFINED__
 #define __IEnumTASK_FWD_DEFINED__
-typedef interface IEnumTASK IEnumTASK;
+typedef struct IEnumTASK IEnumTASK;
 #endif
 
 #ifndef __IExtendTaskPad_FWD_DEFINED__
 #define __IExtendTaskPad_FWD_DEFINED__
-typedef interface IExtendTaskPad IExtendTaskPad;
+typedef struct IExtendTaskPad IExtendTaskPad;
 #endif
 
 #ifndef __IConsole2_FWD_DEFINED__
 #define __IConsole2_FWD_DEFINED__
-typedef interface IConsole2 IConsole2;
+typedef struct IConsole2 IConsole2;
 #endif
 
 #ifndef __IDisplayHelp_FWD_DEFINED__
 #define __IDisplayHelp_FWD_DEFINED__
-typedef interface IDisplayHelp IDisplayHelp;
+typedef struct IDisplayHelp IDisplayHelp;
 #endif
 
 #ifndef __IRequiredExtensions_FWD_DEFINED__
 #define __IRequiredExtensions_FWD_DEFINED__
-typedef interface IRequiredExtensions IRequiredExtensions;
+typedef struct IRequiredExtensions IRequiredExtensions;
 #endif
 
 #ifndef __IStringTable_FWD_DEFINED__
 #define __IStringTable_FWD_DEFINED__
-typedef interface IStringTable IStringTable;
+typedef struct IStringTable IStringTable;
 #endif
 
 #ifndef __IColumnData_FWD_DEFINED__
 #define __IColumnData_FWD_DEFINED__
-typedef interface IColumnData IColumnData;
+typedef struct IColumnData IColumnData;
 #endif
 
 #ifndef __IMessageView_FWD_DEFINED__
 #define __IMessageView_FWD_DEFINED__
-typedef interface IMessageView IMessageView;
+typedef struct IMessageView IMessageView;
 #endif
 
 #ifndef __IResultDataCompareEx_FWD_DEFINED__
 #define __IResultDataCompareEx_FWD_DEFINED__
-typedef interface IResultDataCompareEx IResultDataCompareEx;
+typedef struct IResultDataCompareEx IResultDataCompareEx;
 #endif
 
 #ifndef __IComponentData2_FWD_DEFINED__
 #define __IComponentData2_FWD_DEFINED__
-typedef interface IComponentData2 IComponentData2;
+typedef struct IComponentData2 IComponentData2;
 #endif
 
 #ifndef __IComponent2_FWD_DEFINED__
 #define __IComponent2_FWD_DEFINED__
-typedef interface IComponent2 IComponent2;
+typedef struct IComponent2 IComponent2;
 #endif
 
 #ifndef __IContextMenuCallback2_FWD_DEFINED__
 #define __IContextMenuCallback2_FWD_DEFINED__
-typedef interface IContextMenuCallback2 IContextMenuCallback2;
+typedef struct IContextMenuCallback2 IContextMenuCallback2;
 #endif
 
 #ifndef __IMMCVersionInfo_FWD_DEFINED__
 #define __IMMCVersionInfo_FWD_DEFINED__
-typedef interface IMMCVersionInfo IMMCVersionInfo;
+typedef struct IMMCVersionInfo IMMCVersionInfo;
 #endif
 
 #ifndef __MMCVersionInfo_FWD_DEFINED__
@@ -237,37 +237,37 @@
 
 #ifndef __IExtendView_FWD_DEFINED__
 #define __IExtendView_FWD_DEFINED__
-typedef interface IExtendView IExtendView;
+typedef struct IExtendView IExtendView;
 #endif
 
 #ifndef __IViewExtensionCallback_FWD_DEFINED__
 #define __IViewExtensionCallback_FWD_DEFINED__
-typedef interface IViewExtensionCallback IViewExtensionCallback;
+typedef struct IViewExtensionCallback IViewExtensionCallback;
 #endif
 
 #ifndef __IConsolePower_FWD_DEFINED__
 #define __IConsolePower_FWD_DEFINED__
-typedef interface IConsolePower IConsolePower;
+typedef struct IConsolePower IConsolePower;
 #endif
 
 #ifndef __IConsolePowerSink_FWD_DEFINED__
 #define __IConsolePowerSink_FWD_DEFINED__
-typedef interface IConsolePowerSink IConsolePowerSink;
+typedef struct IConsolePowerSink IConsolePowerSink;
 #endif
 
 #ifndef __INodeProperties_FWD_DEFINED__
 #define __INodeProperties_FWD_DEFINED__
-typedef interface INodeProperties INodeProperties;
+typedef struct INodeProperties INodeProperties;
 #endif
 
 #ifndef __IConsole3_FWD_DEFINED__
 #define __IConsole3_FWD_DEFINED__
-typedef interface IConsole3 IConsole3;
+typedef struct IConsole3 IConsole3;
 #endif
 
 #ifndef __IResultData2_FWD_DEFINED__
 #define __IResultData2_FWD_DEFINED__
-typedef interface IResultData2 IResultData2;
+typedef struct IResultData2 IResultData2;
 #endif
 
 #include "basetsd.h"
@@ -691,7 +691,7 @@
       HRESULT (WINAPI *CompareObjects)(IComponentData *This,LPDATAOBJECT lpDataObjectA,LPDATAOBJECT lpDataObjectB);
     END_INTERFACE
   } IComponentDataVtbl;
-  interface IComponentData {
+  struct IComponentData {
     CONST_VTBL struct IComponentDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -752,7 +752,7 @@
       HRESULT (WINAPI *CompareObjects)(IComponent *This,LPDATAOBJECT lpDataObjectA,LPDATAOBJECT lpDataObjectB);
     END_INTERFACE
   } IComponentVtbl;
-  interface IComponent {
+  struct IComponent {
     CONST_VTBL struct IComponentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -801,7 +801,7 @@
       HRESULT (WINAPI *Compare)(IResultDataCompare *This,LPARAM lUserParam,MMC_COOKIE cookieA,MMC_COOKIE cookieB,int *pnResult);
     END_INTERFACE
   } IResultDataCompareVtbl;
-  interface IResultDataCompare {
+  struct IResultDataCompare {
     CONST_VTBL struct IResultDataCompareVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -836,7 +836,7 @@
       HRESULT (WINAPI *SortItems)(IResultOwnerData *This,int nColumn,DWORD dwSortOptions,LPARAM lUserParam);
     END_INTERFACE
   } IResultOwnerDataVtbl;
-  interface IResultOwnerData {
+  struct IResultOwnerData {
     CONST_VTBL struct IResultOwnerDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -893,7 +893,7 @@
       HRESULT (WINAPI *NewWindow)(IConsole *This,HSCOPEITEM hScopeItem,unsigned long lOptions);
     END_INTERFACE
   } IConsoleVtbl;
-  interface IConsole {
+  struct IConsole {
     CONST_VTBL struct IConsoleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -968,7 +968,7 @@
       HRESULT (WINAPI *GetColumnWidth)(IHeaderCtrl *This,int nCol,int *pWidth);
     END_INTERFACE
   } IHeaderCtrlVtbl;
-  interface IHeaderCtrl {
+  struct IHeaderCtrl {
     CONST_VTBL struct IHeaderCtrlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1041,7 +1041,7 @@
       HRESULT (WINAPI *AddItem)(IContextMenuCallback *This,CONTEXTMENUITEM *pItem);
     END_INTERFACE
   } IContextMenuCallbackVtbl;
-  interface IContextMenuCallback {
+  struct IContextMenuCallback {
     CONST_VTBL struct IContextMenuCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1079,7 +1079,7 @@
       HRESULT (WINAPI *ShowContextMenu)(IContextMenuProvider *This,HWND hwndParent,long xPos,long yPos,long *plSelected);
     END_INTERFACE
   } IContextMenuProviderVtbl;
-  interface IContextMenuProvider {
+  struct IContextMenuProvider {
     CONST_VTBL struct IContextMenuProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1122,7 +1122,7 @@
       HRESULT (WINAPI *Command)(IExtendContextMenu *This,long lCommandID,LPDATAOBJECT piDataObject);
     END_INTERFACE
   } IExtendContextMenuVtbl;
-  interface IExtendContextMenu {
+  struct IExtendContextMenu {
     CONST_VTBL struct IExtendContextMenuVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1168,7 +1168,7 @@
       HRESULT (WINAPI *ImageListSetStrip)(IImageList *This,LONG_PTR *pBMapSm,LONG_PTR *pBMapLg,long nStartLoc,COLORREF cMask);
     END_INTERFACE
   } IImageListVtbl;
-  interface IImageList {
+  struct IImageList {
     CONST_VTBL struct IImageListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1230,7 +1230,7 @@
       HRESULT (WINAPI *SetItemCount)(IResultData *This,int nItemCount,DWORD dwOptions);
     END_INTERFACE
   } IResultDataVtbl;
-  interface IResultData {
+  struct IResultData {
     CONST_VTBL struct IResultDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1315,7 +1315,7 @@
       HRESULT (WINAPI *GetParentItem)(IConsoleNameSpace *This,HSCOPEITEM item,HSCOPEITEM *pItemParent,MMC_COOKIE *pCookie);
     END_INTERFACE
   } IConsoleNameSpaceVtbl;
-  interface IConsoleNameSpace {
+  struct IConsoleNameSpace {
     CONST_VTBL struct IConsoleNameSpaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1373,7 +1373,7 @@
       HRESULT (WINAPI *AddExtension)(IConsoleNameSpace2 *This,HSCOPEITEM hItem,LPCLSID lpClsid);
     END_INTERFACE
   } IConsoleNameSpace2Vtbl;
-  interface IConsoleNameSpace2 {
+  struct IConsoleNameSpace2 {
     CONST_VTBL struct IConsoleNameSpace2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1420,7 +1420,7 @@
       HRESULT (WINAPI *RemovePage)(IPropertySheetCallback *This,HPROPSHEETPAGE hPage);
     END_INTERFACE
   } IPropertySheetCallbackVtbl;
-  interface IPropertySheetCallback {
+  struct IPropertySheetCallback {
     CONST_VTBL struct IPropertySheetCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1462,7 +1462,7 @@
       HRESULT (WINAPI *Show)(IPropertySheetProvider *This,LONG_PTR window,int page);
     END_INTERFACE
   } IPropertySheetProviderVtbl;
-  interface IPropertySheetProvider {
+  struct IPropertySheetProvider {
     CONST_VTBL struct IPropertySheetProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1507,7 +1507,7 @@
       HRESULT (WINAPI *QueryPagesFor)(IExtendPropertySheet *This,LPDATAOBJECT lpDataObject);
     END_INTERFACE
   } IExtendPropertySheetVtbl;
-  interface IExtendPropertySheet {
+  struct IExtendPropertySheet {
     CONST_VTBL struct IExtendPropertySheetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1545,7 +1545,7 @@
       HRESULT (WINAPI *Detach)(IControlbar *This,LPUNKNOWN lpUnknown);
     END_INTERFACE
   } IControlbarVtbl;
-  interface IControlbar {
+  struct IControlbar {
     CONST_VTBL struct IControlbarVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1584,7 +1584,7 @@
       HRESULT (WINAPI *ControlbarNotify)(IExtendControlbar *This,MMC_NOTIFY_TYPE event,LPARAM arg,LPARAM param);
     END_INTERFACE
   } IExtendControlbarVtbl;
-  interface IExtendControlbar {
+  struct IExtendControlbar {
     CONST_VTBL struct IExtendControlbarVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1628,7 +1628,7 @@
       HRESULT (WINAPI *SetButtonState)(IToolbar *This,int idCommand,MMC_BUTTON_STATE nState,WINBOOL bState);
     END_INTERFACE
   } IToolbarVtbl;
-  interface IToolbar {
+  struct IToolbar {
     CONST_VTBL struct IToolbarVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1680,7 +1680,7 @@
       HRESULT (WINAPI *GetDefaultVerb)(IConsoleVerb *This,MMC_CONSOLE_VERB *peCmdID);
     END_INTERFACE
   } IConsoleVerbVtbl;
-  interface IConsoleVerb {
+  struct IConsoleVerb {
     CONST_VTBL struct IConsoleVerbVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1728,7 +1728,7 @@
       HRESULT (WINAPI *GetStaticFolderImage)(ISnapinAbout *This,HBITMAP *hSmallImage,HBITMAP *hSmallImageOpen,HBITMAP *hLargeImage,COLORREF *cMask);
     END_INTERFACE
   } ISnapinAboutVtbl;
-  interface ISnapinAbout {
+  struct ISnapinAbout {
     CONST_VTBL struct ISnapinAboutVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1775,7 +1775,7 @@
       HRESULT (WINAPI *SetButtonState)(IMenuButton *This,int idCommand,MMC_BUTTON_STATE nState,WINBOOL bState);
     END_INTERFACE
   } IMenuButtonVtbl;
-  interface IMenuButton {
+  struct IMenuButton {
     CONST_VTBL struct IMenuButtonVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1812,7 +1812,7 @@
       HRESULT (WINAPI *GetHelpTopic)(ISnapinHelp *This,LPOLESTR *lpCompiledHelpFile);
     END_INTERFACE
   } ISnapinHelpVtbl;
-  interface ISnapinHelp {
+  struct ISnapinHelp {
     CONST_VTBL struct ISnapinHelpVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1848,7 +1848,7 @@
       HRESULT (WINAPI *GetWatermarks)(IExtendPropertySheet2 *This,LPDATAOBJECT lpIDataObject,HBITMAP *lphWatermark,HBITMAP *lphHeader,HPALETTE *lphPalette,WINBOOL *bStretch);
     END_INTERFACE
   } IExtendPropertySheet2Vtbl;
-  interface IExtendPropertySheet2 {
+  struct IExtendPropertySheet2 {
     CONST_VTBL struct IExtendPropertySheet2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1891,7 +1891,7 @@
       HRESULT (WINAPI *GetColumnFilter)(IHeaderCtrl2 *This,UINT nColumn,LPDWORD pdwType,MMC_FILTERDATA *pFilterData);
     END_INTERFACE
   } IHeaderCtrl2Vtbl;
-  interface IHeaderCtrl2 {
+  struct IHeaderCtrl2 {
     CONST_VTBL struct IHeaderCtrl2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1935,7 +1935,7 @@
       HRESULT (WINAPI *GetLinkedTopics)(ISnapinHelp2 *This,LPOLESTR *lpCompiledHelpFiles);
     END_INTERFACE
   } ISnapinHelp2Vtbl;
-  interface ISnapinHelp2 {
+  struct ISnapinHelp2 {
     CONST_VTBL struct ISnapinHelp2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2026,7 +2026,7 @@
       HRESULT (WINAPI *Clone)(IEnumTASK *This,IEnumTASK **ppenum);
     END_INTERFACE
   } IEnumTASKVtbl;
-  interface IEnumTASK {
+  struct IEnumTASK {
     CONST_VTBL struct IEnumTASKVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2076,7 +2076,7 @@
       HRESULT (WINAPI *GetListPadInfo)(IExtendTaskPad *This,LPOLESTR pszGroup,MMC_LISTPAD_INFO *lpListPadInfo);
     END_INTERFACE
   } IExtendTaskPadVtbl;
-  interface IExtendTaskPad {
+  struct IExtendTaskPad {
     CONST_VTBL struct IExtendTaskPadVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2137,7 +2137,7 @@
       HRESULT (WINAPI *SetStatusText)(IConsole2 *This,LPOLESTR pszStatusText);
     END_INTERFACE
   } IConsole2Vtbl;
-  interface IConsole2 {
+  struct IConsole2 {
     CONST_VTBL struct IConsole2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2185,7 +2185,7 @@
       HRESULT (WINAPI *ShowTopic)(IDisplayHelp *This,LPOLESTR pszHelpTopic);
     END_INTERFACE
   } IDisplayHelpVtbl;
-  interface IDisplayHelp {
+  struct IDisplayHelp {
     CONST_VTBL struct IDisplayHelpVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2220,7 +2220,7 @@
       HRESULT (WINAPI *GetNextExtension)(IRequiredExtensions *This,LPCLSID pExtCLSID);
     END_INTERFACE
   } IRequiredExtensionsVtbl;
-  interface IRequiredExtensions {
+  struct IRequiredExtensions {
     CONST_VTBL struct IRequiredExtensionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2269,7 +2269,7 @@
       HRESULT (WINAPI *Enumerate)(IStringTable *This,IEnumString **ppEnum);
     END_INTERFACE
   } IStringTableVtbl;
-  interface IStringTable {
+  struct IStringTable {
     CONST_VTBL struct IStringTableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2355,7 +2355,7 @@
       HRESULT (WINAPI *GetColumnSortData)(IColumnData *This,SColumnSetID *pColID,MMC_SORT_SET_DATA **ppColSortData);
     END_INTERFACE
   } IColumnDataVtbl;
-  interface IColumnData {
+  struct IColumnData {
     CONST_VTBL struct IColumnDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2406,7 +2406,7 @@
       HRESULT (WINAPI *Clear)(IMessageView *This);
     END_INTERFACE
   } IMessageViewVtbl;
-  interface IMessageView {
+  struct IMessageView {
     CONST_VTBL struct IMessageViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2466,7 +2466,7 @@
       HRESULT (WINAPI *Compare)(IResultDataCompareEx *This,RDCOMPARE *prdc,int *pnResult);
     END_INTERFACE
   } IResultDataCompareExVtbl;
-  interface IResultDataCompareEx {
+  struct IResultDataCompareEx {
     CONST_VTBL struct IResultDataCompareExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2574,7 +2574,7 @@
       HRESULT (WINAPI *QueryDispatch)(IComponentData2 *This,MMC_COOKIE cookie,DATA_OBJECT_TYPES type,LPDISPATCH *ppDispatch);
     END_INTERFACE
   } IComponentData2Vtbl;
-  interface IComponentData2 {
+  struct IComponentData2 {
     CONST_VTBL struct IComponentData2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2623,7 +2623,7 @@
       HRESULT (WINAPI *RestoreResultView)(IComponent2 *This,MMC_COOKIE cookie,PRESULT_VIEW_TYPE_INFO pResultViewType);
     END_INTERFACE
   } IComponent2Vtbl;
-  interface IComponent2 {
+  struct IComponent2 {
     CONST_VTBL struct IComponent2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2667,7 +2667,7 @@
       HRESULT (WINAPI *AddItem)(IContextMenuCallback2 *This,CONTEXTMENUITEM2 *pItem);
     END_INTERFACE
   } IContextMenuCallback2Vtbl;
-  interface IContextMenuCallback2 {
+  struct IContextMenuCallback2 {
     CONST_VTBL struct IContextMenuCallback2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2698,7 +2698,7 @@
       HRESULT (WINAPI *GetMMCVersion)(IMMCVersionInfo *This,long *pVersionMajor,long *pVersionMinor);
     END_INTERFACE
   } IMMCVersionInfoVtbl;
-  interface IMMCVersionInfo {
+  struct IMMCVersionInfo {
     CONST_VTBL struct IMMCVersionInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2742,7 +2742,7 @@
       HRESULT (WINAPI *GetViews)(IExtendView *This,LPDATAOBJECT pDataObject,LPVIEWEXTENSIONCALLBACK pViewExtensionCallback);
     END_INTERFACE
   } IExtendViewVtbl;
-  interface IExtendView {
+  struct IExtendView {
     CONST_VTBL struct IExtendViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2773,7 +2773,7 @@
       HRESULT (WINAPI *AddView)(IViewExtensionCallback *This,PMMC_EXT_VIEW_DATA pExtViewData);
     END_INTERFACE
   } IViewExtensionCallbackVtbl;
-  interface IViewExtensionCallback {
+  struct IViewExtensionCallback {
     CONST_VTBL struct IViewExtensionCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2806,7 +2806,7 @@
       HRESULT (WINAPI *ResetIdleTimer)(IConsolePower *This,DWORD dwFlags);
     END_INTERFACE
   } IConsolePowerVtbl;
-  interface IConsolePower {
+  struct IConsolePower {
     CONST_VTBL struct IConsolePowerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2840,7 +2840,7 @@
       HRESULT (WINAPI *OnPowerBroadcast)(IConsolePowerSink *This,UINT nEvent,LPARAM lParam,LRESULT *plReturn);
     END_INTERFACE
   } IConsolePowerSinkVtbl;
-  interface IConsolePowerSink {
+  struct IConsolePowerSink {
     CONST_VTBL struct IConsolePowerSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2871,7 +2871,7 @@
       HRESULT (WINAPI *GetProperty)(INodeProperties *This,LPDATAOBJECT pDataObject,BSTR szPropertyName,PBSTR pbstrProperty);
     END_INTERFACE
   } INodePropertiesVtbl;
-  interface INodeProperties {
+  struct INodeProperties {
     CONST_VTBL struct INodePropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2916,7 +2916,7 @@
       HRESULT (WINAPI *RenameScopeItem)(IConsole3 *This,HSCOPEITEM hScopeItem);
     END_INTERFACE
   } IConsole3Vtbl;
-  interface IConsole3 {
+  struct IConsole3 {
     CONST_VTBL struct IConsole3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2976,7 +2976,7 @@
       HRESULT (WINAPI *RenameResultItem)(IResultData2 *This,HRESULTITEM itemID);
     END_INTERFACE
   } IResultData2Vtbl;
-  interface IResultData2 {
+  struct IResultData2 {
     CONST_VTBL struct IResultData2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mmcobj.h b/mingw-w64-headers/include/mmcobj.h
index f356d66..3df406d 100755
--- a/mingw-w64-headers/include/mmcobj.h
+++ b/mingw-w64-headers/include/mmcobj.h
@@ -24,27 +24,27 @@
 
 #ifndef __ISnapinProperties_FWD_DEFINED__
 #define __ISnapinProperties_FWD_DEFINED__
-typedef interface ISnapinProperties ISnapinProperties;
+typedef struct ISnapinProperties ISnapinProperties;
 #endif
 
 #ifndef __ISnapinPropertiesCallback_FWD_DEFINED__
 #define __ISnapinPropertiesCallback_FWD_DEFINED__
-typedef interface ISnapinPropertiesCallback ISnapinPropertiesCallback;
+typedef struct ISnapinPropertiesCallback ISnapinPropertiesCallback;
 #endif
 
 #ifndef ___Application_FWD_DEFINED__
 #define ___Application_FWD_DEFINED__
-typedef interface _Application _Application;
+typedef struct _Application _Application;
 #endif
 
 #ifndef ___AppEvents_FWD_DEFINED__
 #define ___AppEvents_FWD_DEFINED__
-typedef interface _AppEvents _AppEvents;
+typedef struct _AppEvents _AppEvents;
 #endif
 
 #ifndef __AppEvents_FWD_DEFINED__
 #define __AppEvents_FWD_DEFINED__
-typedef interface AppEvents AppEvents;
+typedef struct AppEvents AppEvents;
 #endif
 
 #ifndef __Application_FWD_DEFINED__
@@ -58,7 +58,7 @@
 
 #ifndef ___EventConnector_FWD_DEFINED__
 #define ___EventConnector_FWD_DEFINED__
-typedef interface _EventConnector _EventConnector;
+typedef struct _EventConnector _EventConnector;
 #endif
 
 #ifndef __AppEventsDHTMLConnector_FWD_DEFINED__
@@ -72,87 +72,87 @@
 
 #ifndef __Frame_FWD_DEFINED__
 #define __Frame_FWD_DEFINED__
-typedef interface Frame Frame;
+typedef struct Frame Frame;
 #endif
 
 #ifndef __Node_FWD_DEFINED__
 #define __Node_FWD_DEFINED__
-typedef interface Node Node;
+typedef struct Node Node;
 #endif
 
 #ifndef __ScopeNamespace_FWD_DEFINED__
 #define __ScopeNamespace_FWD_DEFINED__
-typedef interface ScopeNamespace ScopeNamespace;
+typedef struct ScopeNamespace ScopeNamespace;
 #endif
 
 #ifndef __Document_FWD_DEFINED__
 #define __Document_FWD_DEFINED__
-typedef interface Document Document;
+typedef struct Document Document;
 #endif
 
 #ifndef __SnapIn_FWD_DEFINED__
 #define __SnapIn_FWD_DEFINED__
-typedef interface SnapIn SnapIn;
+typedef struct SnapIn SnapIn;
 #endif
 
 #ifndef __SnapIns_FWD_DEFINED__
 #define __SnapIns_FWD_DEFINED__
-typedef interface SnapIns SnapIns;
+typedef struct SnapIns SnapIns;
 #endif
 
 #ifndef __Extension_FWD_DEFINED__
 #define __Extension_FWD_DEFINED__
-typedef interface Extension Extension;
+typedef struct Extension Extension;
 #endif
 
 #ifndef __Extensions_FWD_DEFINED__
 #define __Extensions_FWD_DEFINED__
-typedef interface Extensions Extensions;
+typedef struct Extensions Extensions;
 #endif
 
 #ifndef __Columns_FWD_DEFINED__
 #define __Columns_FWD_DEFINED__
-typedef interface Columns Columns;
+typedef struct Columns Columns;
 #endif
 
 #ifndef __Column_FWD_DEFINED__
 #define __Column_FWD_DEFINED__
-typedef interface Column Column;
+typedef struct Column Column;
 #endif
 
 #ifndef __Views_FWD_DEFINED__
 #define __Views_FWD_DEFINED__
-typedef interface Views Views;
+typedef struct Views Views;
 #endif
 
 #ifndef __View_FWD_DEFINED__
 #define __View_FWD_DEFINED__
-typedef interface View View;
+typedef struct View View;
 #endif
 
 #ifndef __Nodes_FWD_DEFINED__
 #define __Nodes_FWD_DEFINED__
-typedef interface Nodes Nodes;
+typedef struct Nodes Nodes;
 #endif
 
 #ifndef __ContextMenu_FWD_DEFINED__
 #define __ContextMenu_FWD_DEFINED__
-typedef interface ContextMenu ContextMenu;
+typedef struct ContextMenu ContextMenu;
 #endif
 
 #ifndef __MenuItem_FWD_DEFINED__
 #define __MenuItem_FWD_DEFINED__
-typedef interface MenuItem MenuItem;
+typedef struct MenuItem MenuItem;
 #endif
 
 #ifndef __Properties_FWD_DEFINED__
 #define __Properties_FWD_DEFINED__
-typedef interface Properties Properties;
+typedef struct Properties Properties;
 #endif
 
 #ifndef __Property_FWD_DEFINED__
 #define __Property_FWD_DEFINED__
-typedef interface Property Property;
+typedef struct Property Property;
 #endif
 
 #include "oaidl.h"
@@ -249,7 +249,7 @@
       HRESULT (WINAPI *PropertiesChanged)(ISnapinProperties *This,long cProperties,MMC_SNAPIN_PROPERTY *pProperties);
     END_INTERFACE
   } ISnapinPropertiesVtbl;
-  interface ISnapinProperties {
+  struct ISnapinProperties {
     CONST_VTBL struct ISnapinPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -293,7 +293,7 @@
       HRESULT (WINAPI *AddPropertyName)(ISnapinPropertiesCallback *This,LPCOLESTR pszPropName,DWORD dwFlags);
     END_INTERFACE
   } ISnapinPropertiesCallbackVtbl;
-  interface ISnapinPropertiesCallback {
+  struct ISnapinPropertiesCallback {
     CONST_VTBL struct ISnapinPropertiesCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -385,7 +385,7 @@
       HRESULT (WINAPI *get_VersionMinor)(_Application *This,PLONG VersionMinor);
     END_INTERFACE
   } _ApplicationVtbl;
-  interface _Application {
+  struct _Application {
     CONST_VTBL struct _ApplicationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -479,7 +479,7 @@
       HRESULT (WINAPI *OnListUpdated)(_AppEvents *This,PVIEW View);
     END_INTERFACE
   } _AppEventsVtbl;
-  interface _AppEvents {
+  struct _AppEvents {
     CONST_VTBL struct _AppEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -548,7 +548,7 @@
       HRESULT (WINAPI *Invoke)(AppEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } AppEventsVtbl;
-  interface AppEvents {
+  struct AppEvents {
     CONST_VTBL struct AppEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -590,7 +590,7 @@
       HRESULT (WINAPI *Disconnect)(_EventConnector *This);
     END_INTERFACE
   } _EventConnectorVtbl;
-  interface _EventConnector {
+  struct _EventConnector {
     CONST_VTBL struct _EventConnectorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -657,7 +657,7 @@
       HRESULT (WINAPI *put_Right)(Frame *This,int right);
     END_INTERFACE
   } FrameVtbl;
-  interface Frame {
+  struct Frame {
     CONST_VTBL struct FrameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -734,7 +734,7 @@
       HRESULT (WINAPI *get_Nodetype)(Node *This,PBSTR Nodetype);
     END_INTERFACE
   } NodeVtbl;
-  interface Node {
+  struct Node {
     CONST_VTBL struct NodeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -793,7 +793,7 @@
       HRESULT (WINAPI *Expand)(ScopeNamespace *This,PNODE Node);
     END_INTERFACE
   } ScopeNamespaceVtbl;
-  interface ScopeNamespace {
+  struct ScopeNamespace {
     CONST_VTBL struct ScopeNamespaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -874,7 +874,7 @@
       HRESULT (WINAPI *get_Application)(Document *This,PPAPPLICATION Application);
     END_INTERFACE
   } DocumentVtbl;
-  interface Document {
+  struct Document {
     CONST_VTBL struct DocumentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -970,7 +970,7 @@
       HRESULT (WINAPI *EnableAllExtensions)(SnapIn *This,WINBOOL Enable);
     END_INTERFACE
   } SnapInVtbl;
-  interface SnapIn {
+  struct SnapIn {
     CONST_VTBL struct SnapInVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1035,7 +1035,7 @@
       HRESULT (WINAPI *Remove)(SnapIns *This,PSNAPIN SnapIn);
     END_INTERFACE
   } SnapInsVtbl;
-  interface SnapIns {
+  struct SnapIns {
     CONST_VTBL struct SnapInsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1098,7 +1098,7 @@
       HRESULT (WINAPI *Enable)(Extension *This,WINBOOL Enable);
     END_INTERFACE
   } ExtensionVtbl;
-  interface Extension {
+  struct Extension {
     CONST_VTBL struct ExtensionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1159,7 +1159,7 @@
       HRESULT (WINAPI *get_Count)(Extensions *This,PLONG Count);
     END_INTERFACE
   } ExtensionsVtbl;
-  interface Extensions {
+  struct Extensions {
     CONST_VTBL struct ExtensionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1208,7 +1208,7 @@
       HRESULT (WINAPI *get__NewEnum)(Columns *This,IUnknown **retval);
     END_INTERFACE
   } ColumnsVtbl;
-  interface Columns {
+  struct Columns {
     CONST_VTBL struct ColumnsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1275,7 +1275,7 @@
       HRESULT (WINAPI *IsSortColumn)(Column *This,PBOOL IsSortColumn);
     END_INTERFACE
   } ColumnVtbl;
-  interface Column {
+  struct Column {
     CONST_VTBL struct ColumnVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1344,7 +1344,7 @@
       HRESULT (WINAPI *get__NewEnum)(Views *This,IUnknown **retval);
     END_INTERFACE
   } ViewsVtbl;
-  interface Views {
+  struct Views {
     CONST_VTBL struct ViewsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1474,7 +1474,7 @@
       HRESULT (WINAPI *get_ControlObject)(View *This,PPDISPATCH Control);
     END_INTERFACE
   } ViewVtbl;
-  interface View {
+  struct View {
     CONST_VTBL struct ViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1640,7 +1640,7 @@
       HRESULT (WINAPI *get_Count)(Nodes *This,PLONG Count);
     END_INTERFACE
   } NodesVtbl;
-  interface Nodes {
+  struct Nodes {
     CONST_VTBL struct NodesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1689,7 +1689,7 @@
       HRESULT (WINAPI *get_Count)(ContextMenu *This,PLONG Count);
     END_INTERFACE
   } ContextMenuVtbl;
-  interface ContextMenu {
+  struct ContextMenu {
     CONST_VTBL struct ContextMenuVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1744,7 +1744,7 @@
       HRESULT (WINAPI *get_Enabled)(MenuItem *This,PBOOL Enabled);
     END_INTERFACE
   } MenuItemVtbl;
-  interface MenuItem {
+  struct MenuItem {
     CONST_VTBL struct MenuItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1804,7 +1804,7 @@
       HRESULT (WINAPI *Remove)(Properties *This,BSTR Name);
     END_INTERFACE
   } PropertiesVtbl;
-  interface Properties {
+  struct Properties {
     CONST_VTBL struct PropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1856,7 +1856,7 @@
       HRESULT (WINAPI *get_Name)(Property *This,PBSTR Name);
     END_INTERFACE
   } PropertyVtbl;
-  interface Property {
+  struct Property {
     CONST_VTBL struct PropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mobsync.h b/mingw-w64-headers/include/mobsync.h
index 29bfe74..4e86fdb 100755
--- a/mingw-w64-headers/include/mobsync.h
+++ b/mingw-w64-headers/include/mobsync.h
@@ -24,27 +24,27 @@
 
 #ifndef __ISyncMgrSynchronize_FWD_DEFINED__
 #define __ISyncMgrSynchronize_FWD_DEFINED__
-typedef interface ISyncMgrSynchronize ISyncMgrSynchronize;
+typedef struct ISyncMgrSynchronize ISyncMgrSynchronize;
 #endif
 
 #ifndef __ISyncMgrSynchronizeCallback_FWD_DEFINED__
 #define __ISyncMgrSynchronizeCallback_FWD_DEFINED__
-typedef interface ISyncMgrSynchronizeCallback ISyncMgrSynchronizeCallback;
+typedef struct ISyncMgrSynchronizeCallback ISyncMgrSynchronizeCallback;
 #endif
 
 #ifndef __ISyncMgrEnumItems_FWD_DEFINED__
 #define __ISyncMgrEnumItems_FWD_DEFINED__
-typedef interface ISyncMgrEnumItems ISyncMgrEnumItems;
+typedef struct ISyncMgrEnumItems ISyncMgrEnumItems;
 #endif
 
 #ifndef __ISyncMgrSynchronizeInvoke_FWD_DEFINED__
 #define __ISyncMgrSynchronizeInvoke_FWD_DEFINED__
-typedef interface ISyncMgrSynchronizeInvoke ISyncMgrSynchronizeInvoke;
+typedef struct ISyncMgrSynchronizeInvoke ISyncMgrSynchronizeInvoke;
 #endif
 
 #ifndef __ISyncMgrRegister_FWD_DEFINED__
 #define __ISyncMgrRegister_FWD_DEFINED__
-typedef interface ISyncMgrRegister ISyncMgrRegister;
+typedef struct ISyncMgrRegister ISyncMgrRegister;
 #endif
 
 #ifndef __SyncMgr_FWD_DEFINED__
@@ -154,7 +154,7 @@
       HRESULT (WINAPI *ShowError)(ISyncMgrSynchronize *This,HWND hWndParent,REFSYNCMGRERRORID ErrorID);
     END_INTERFACE
   } ISyncMgrSynchronizeVtbl;
-  interface ISyncMgrSynchronize {
+  struct ISyncMgrSynchronize {
     CONST_VTBL struct ISyncMgrSynchronizeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -268,7 +268,7 @@
       HRESULT (WINAPI *EstablishConnection)(ISyncMgrSynchronizeCallback *This,LPCWSTR lpwszConnection,DWORD dwReserved);
     END_INTERFACE
   } ISyncMgrSynchronizeCallbackVtbl;
-  interface ISyncMgrSynchronizeCallback {
+  struct ISyncMgrSynchronizeCallback {
     CONST_VTBL struct ISyncMgrSynchronizeCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -351,7 +351,7 @@
       HRESULT (WINAPI *Clone)(ISyncMgrEnumItems *This,ISyncMgrEnumItems **ppenum);
     END_INTERFACE
   } ISyncMgrEnumItemsVtbl;
-  interface ISyncMgrEnumItems {
+  struct ISyncMgrEnumItems {
     CONST_VTBL struct ISyncMgrEnumItemsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -399,7 +399,7 @@
       HRESULT (WINAPI *UpdateAll)(ISyncMgrSynchronizeInvoke *This);
     END_INTERFACE
   } ISyncMgrSynchronizeInvokeVtbl;
-  interface ISyncMgrSynchronizeInvoke {
+  struct ISyncMgrSynchronizeInvoke {
     CONST_VTBL struct ISyncMgrSynchronizeInvokeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -445,7 +445,7 @@
       HRESULT (WINAPI *GetHandlerRegistrationInfo)(ISyncMgrRegister *This,REFCLSID rclsidHandler,LPDWORD pdwSyncMgrRegisterFlags);
     END_INTERFACE
   } ISyncMgrRegisterVtbl;
-  interface ISyncMgrRegister {
+  struct ISyncMgrRegister {
     CONST_VTBL struct ISyncMgrRegisterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mq.h b/mingw-w64-headers/include/mq.h
index 18908e9..c9a78fe 100755
--- a/mingw-w64-headers/include/mq.h
+++ b/mingw-w64-headers/include/mq.h
@@ -8,7 +8,7 @@
 
 #ifndef __ITransaction_FWD_DEFINED__
 #define __ITransaction_FWD_DEFINED__
-typedef interface ITransaction ITransaction;
+typedef struct ITransaction ITransaction;
 #endif
 
 typedef struct tagPROPVARIANT tagMQPROPVARIANT;
diff --git a/mingw-w64-headers/include/mqoai.h b/mingw-w64-headers/include/mqoai.h
index e554a16..efee0f5 100755
--- a/mingw-w64-headers/include/mqoai.h
+++ b/mingw-w64-headers/include/mqoai.h
@@ -19,92 +19,92 @@
 
 #ifndef __IMSMQQuery_FWD_DEFINED__
 #define __IMSMQQuery_FWD_DEFINED__
-typedef interface IMSMQQuery IMSMQQuery;
+typedef struct IMSMQQuery IMSMQQuery;
 #endif
 
 #ifndef __IMSMQQueueInfo_FWD_DEFINED__
 #define __IMSMQQueueInfo_FWD_DEFINED__
-typedef interface IMSMQQueueInfo IMSMQQueueInfo;
+typedef struct IMSMQQueueInfo IMSMQQueueInfo;
 #endif
 
 #ifndef __IMSMQQueueInfo2_FWD_DEFINED__
 #define __IMSMQQueueInfo2_FWD_DEFINED__
-typedef interface IMSMQQueueInfo2 IMSMQQueueInfo2;
+typedef struct IMSMQQueueInfo2 IMSMQQueueInfo2;
 #endif
 
 #ifndef __IMSMQQueueInfo3_FWD_DEFINED__
 #define __IMSMQQueueInfo3_FWD_DEFINED__
-typedef interface IMSMQQueueInfo3 IMSMQQueueInfo3;
+typedef struct IMSMQQueueInfo3 IMSMQQueueInfo3;
 #endif
 
 #ifndef __IMSMQQueue_FWD_DEFINED__
 #define __IMSMQQueue_FWD_DEFINED__
-typedef interface IMSMQQueue IMSMQQueue;
+typedef struct IMSMQQueue IMSMQQueue;
 #endif
 
 #ifndef __IMSMQQueue2_FWD_DEFINED__
 #define __IMSMQQueue2_FWD_DEFINED__
-typedef interface IMSMQQueue2 IMSMQQueue2;
+typedef struct IMSMQQueue2 IMSMQQueue2;
 #endif
 
 #ifndef __IMSMQMessage_FWD_DEFINED__
 #define __IMSMQMessage_FWD_DEFINED__
-typedef interface IMSMQMessage IMSMQMessage;
+typedef struct IMSMQMessage IMSMQMessage;
 #endif
 
 #ifndef __IMSMQQueueInfos_FWD_DEFINED__
 #define __IMSMQQueueInfos_FWD_DEFINED__
-typedef interface IMSMQQueueInfos IMSMQQueueInfos;
+typedef struct IMSMQQueueInfos IMSMQQueueInfos;
 #endif
 
 #ifndef __IMSMQQueueInfos2_FWD_DEFINED__
 #define __IMSMQQueueInfos2_FWD_DEFINED__
-typedef interface IMSMQQueueInfos2 IMSMQQueueInfos2;
+typedef struct IMSMQQueueInfos2 IMSMQQueueInfos2;
 #endif
 
 #ifndef __IMSMQQueueInfos3_FWD_DEFINED__
 #define __IMSMQQueueInfos3_FWD_DEFINED__
-typedef interface IMSMQQueueInfos3 IMSMQQueueInfos3;
+typedef struct IMSMQQueueInfos3 IMSMQQueueInfos3;
 #endif
 
 #ifndef __IMSMQEvent_FWD_DEFINED__
 #define __IMSMQEvent_FWD_DEFINED__
-typedef interface IMSMQEvent IMSMQEvent;
+typedef struct IMSMQEvent IMSMQEvent;
 #endif
 
 #ifndef __IMSMQEvent2_FWD_DEFINED__
 #define __IMSMQEvent2_FWD_DEFINED__
-typedef interface IMSMQEvent2 IMSMQEvent2;
+typedef struct IMSMQEvent2 IMSMQEvent2;
 #endif
 
 #ifndef __IMSMQEvent3_FWD_DEFINED__
 #define __IMSMQEvent3_FWD_DEFINED__
-typedef interface IMSMQEvent3 IMSMQEvent3;
+typedef struct IMSMQEvent3 IMSMQEvent3;
 #endif
 
 #ifndef __IMSMQTransaction_FWD_DEFINED__
 #define __IMSMQTransaction_FWD_DEFINED__
-typedef interface IMSMQTransaction IMSMQTransaction;
+typedef struct IMSMQTransaction IMSMQTransaction;
 #endif
 
 #ifndef __IMSMQCoordinatedTransactionDispenser_FWD_DEFINED__
 #define __IMSMQCoordinatedTransactionDispenser_FWD_DEFINED__
-typedef interface IMSMQCoordinatedTransactionDispenser IMSMQCoordinatedTransactionDispenser;
+typedef struct IMSMQCoordinatedTransactionDispenser IMSMQCoordinatedTransactionDispenser;
 #endif
 
 #ifndef __IMSMQTransactionDispenser_FWD_DEFINED__
 #define __IMSMQTransactionDispenser_FWD_DEFINED__
-typedef interface IMSMQTransactionDispenser IMSMQTransactionDispenser;
+typedef struct IMSMQTransactionDispenser IMSMQTransactionDispenser;
 #endif
 
 #ifndef __IMSMQQuery2_FWD_DEFINED__
 #define __IMSMQQuery2_FWD_DEFINED__
-typedef interface IMSMQQuery2 IMSMQQuery2;
+typedef struct IMSMQQuery2 IMSMQQuery2;
 #endif
 
 #ifndef __IMSMQQuery3_FWD_DEFINED__
 #define __IMSMQQuery3_FWD_DEFINED__
-typedef interface IMSMQQuery3 IMSMQQuery3;
+typedef struct IMSMQQuery3 IMSMQQuery3;
 #endif
 
 #ifndef __MSMQQuery_FWD_DEFINED__
@@ -118,12 +118,12 @@
 
 #ifndef __IMSMQMessage2_FWD_DEFINED__
 #define __IMSMQMessage2_FWD_DEFINED__
-typedef interface IMSMQMessage2 IMSMQMessage2;
+typedef struct IMSMQMessage2 IMSMQMessage2;
 #endif
 
 #ifndef __IMSMQMessage3_FWD_DEFINED__
 #define __IMSMQMessage3_FWD_DEFINED__
-typedef interface IMSMQMessage3 IMSMQMessage3;
+typedef struct IMSMQMessage3 IMSMQMessage3;
 #endif
 
 #ifndef __MSMQMessage_FWD_DEFINED__
@@ -137,7 +137,7 @@
 
 #ifndef __IMSMQQueue3_FWD_DEFINED__
 #define __IMSMQQueue3_FWD_DEFINED__
-typedef interface IMSMQQueue3 IMSMQQueue3;
+typedef struct IMSMQQueue3 IMSMQQueue3;
 #endif
 
 #ifndef __MSMQQueue_FWD_DEFINED__
@@ -151,12 +151,12 @@
 
 #ifndef __IMSMQPrivateEvent_FWD_DEFINED__
 #define __IMSMQPrivateEvent_FWD_DEFINED__
-typedef interface IMSMQPrivateEvent IMSMQPrivateEvent;
+typedef struct IMSMQPrivateEvent IMSMQPrivateEvent;
 #endif
 
 #ifndef ___DMSMQEventEvents_FWD_DEFINED__
 #define ___DMSMQEventEvents_FWD_DEFINED__
-typedef interface _DMSMQEventEvents _DMSMQEventEvents;
+typedef struct _DMSMQEventEvents _DMSMQEventEvents;
 #endif
 
 #ifndef __MSMQEvent_FWD_DEFINED__
@@ -188,12 +188,12 @@
 
 #ifndef __IMSMQTransaction2_FWD_DEFINED__
 #define __IMSMQTransaction2_FWD_DEFINED__
-typedef interface IMSMQTransaction2 IMSMQTransaction2;
+typedef struct IMSMQTransaction2 IMSMQTransaction2;
 #endif
 
 #ifndef __IMSMQTransaction3_FWD_DEFINED__
 #define __IMSMQTransaction3_FWD_DEFINED__
-typedef interface IMSMQTransaction3 IMSMQTransaction3;
+typedef struct IMSMQTransaction3 IMSMQTransaction3;
 #endif
 
 #ifndef __MSMQTransaction_FWD_DEFINED__
@@ -207,12 +207,12 @@
 
 #ifndef __IMSMQCoordinatedTransactionDispenser2_FWD_DEFINED__
 #define __IMSMQCoordinatedTransactionDispenser2_FWD_DEFINED__
-typedef interface IMSMQCoordinatedTransactionDispenser2 IMSMQCoordinatedTransactionDispenser2;
+typedef struct IMSMQCoordinatedTransactionDispenser2 IMSMQCoordinatedTransactionDispenser2;
 #endif
 
 #ifndef __IMSMQCoordinatedTransactionDispenser3_FWD_DEFINED__
 #define __IMSMQCoordinatedTransactionDispenser3_FWD_DEFINED__
-typedef interface IMSMQCoordinatedTransactionDispenser3 IMSMQCoordinatedTransactionDispenser3;
+typedef struct IMSMQCoordinatedTransactionDispenser3 IMSMQCoordinatedTransactionDispenser3;
 #endif
 
 #ifndef __MSMQCoordinatedTransactionDispenser_FWD_DEFINED__
@@ -226,12 +226,12 @@
 
 #ifndef __IMSMQTransactionDispenser2_FWD_DEFINED__
 #define __IMSMQTransactionDispenser2_FWD_DEFINED__
-typedef interface IMSMQTransactionDispenser2 IMSMQTransactionDispenser2;
+typedef struct IMSMQTransactionDispenser2 IMSMQTransactionDispenser2;
 #endif
 
 #ifndef __IMSMQTransactionDispenser3_FWD_DEFINED__
 #define __IMSMQTransactionDispenser3_FWD_DEFINED__
-typedef interface IMSMQTransactionDispenser3 IMSMQTransactionDispenser3;
+typedef struct IMSMQTransactionDispenser3 IMSMQTransactionDispenser3;
 #endif
 
 #ifndef __MSMQTransactionDispenser_FWD_DEFINED__
@@ -245,17 +245,17 @@
 
 #ifndef __IMSMQApplication_FWD_DEFINED__
 #define __IMSMQApplication_FWD_DEFINED__
-typedef interface IMSMQApplication IMSMQApplication;
+typedef struct IMSMQApplication IMSMQApplication;
 #endif
 
 #ifndef __IMSMQApplication2_FWD_DEFINED__
 #define __IMSMQApplication2_FWD_DEFINED__
-typedef interface IMSMQApplication2 IMSMQApplication2;
+typedef struct IMSMQApplication2 IMSMQApplication2;
 #endif
 
 #ifndef __IMSMQApplication3_FWD_DEFINED__
 #define __IMSMQApplication3_FWD_DEFINED__
-typedef interface IMSMQApplication3 IMSMQApplication3;
+typedef struct IMSMQApplication3 IMSMQApplication3;
 #endif
 
 #ifndef __MSMQApplication_FWD_DEFINED__
@@ -269,12 +269,12 @@
 
 #ifndef __IMSMQDestination_FWD_DEFINED__
 #define __IMSMQDestination_FWD_DEFINED__
-typedef interface IMSMQDestination IMSMQDestination;
+typedef struct IMSMQDestination IMSMQDestination;
 #endif
 
 #ifndef __IMSMQPrivateDestination_FWD_DEFINED__
 #define __IMSMQPrivateDestination_FWD_DEFINED__
-typedef interface IMSMQPrivateDestination IMSMQPrivateDestination;
+typedef struct IMSMQPrivateDestination IMSMQPrivateDestination;
 #endif
 
 #ifndef __MSMQDestination_FWD_DEFINED__
@@ -288,7 +288,7 @@
 
 #ifndef __IMSMQCollection_FWD_DEFINED__
 #define __IMSMQCollection_FWD_DEFINED__
-typedef interface IMSMQCollection IMSMQCollection;
+typedef struct IMSMQCollection IMSMQCollection;
 #endif
 
 #ifndef __MSMQCollection_FWD_DEFINED__
@@ -302,7 +302,7 @@
 
 #ifndef __IMSMQManagement_FWD_DEFINED__
 #define __IMSMQManagement_FWD_DEFINED__
-typedef interface IMSMQManagement IMSMQManagement;
+typedef struct IMSMQManagement IMSMQManagement;
 #endif
 
 #ifndef __MSMQManagement_FWD_DEFINED__
@@ -316,7 +316,7 @@
 
 #ifndef __IMSMQOutgoingQueueManagement_FWD_DEFINED__
 #define __IMSMQOutgoingQueueManagement_FWD_DEFINED__
-typedef interface IMSMQOutgoingQueueManagement IMSMQOutgoingQueueManagement;
+typedef struct IMSMQOutgoingQueueManagement IMSMQOutgoingQueueManagement;
 #endif
 
 #ifndef __MSMQOutgoingQueueManagement_FWD_DEFINED__
@@ -330,7 +330,7 @@
 
 #ifndef __IMSMQQueueManagement_FWD_DEFINED__
 #define __IMSMQQueueManagement_FWD_DEFINED__
-typedef interface IMSMQQueueManagement IMSMQQueueManagement;
+typedef struct IMSMQQueueManagement IMSMQQueueManagement;
 #endif
 
 #ifndef __MSMQQueueManagement_FWD_DEFINED__
@@ -583,7 +583,7 @@
       HRESULT (WINAPI *LookupQueue)(IMSMQQuery *This,VARIANT *QueueGuid,VARIANT *ServiceTypeGuid,VARIANT *Label,VARIANT *CreateTime,VARIANT *ModifyTime,VARIANT *RelServiceType,VARIANT *RelLabel,VARIANT *RelCreateTime,VARIANT *RelModifyTime,IMSMQQueueInfos **ppqinfos);
     END_INTERFACE
   } IMSMQQueryVtbl;
-  interface IMSMQQuery {
+  struct IMSMQQuery {
     CONST_VTBL struct IMSMQQueryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -680,7 +680,7 @@
       HRESULT (WINAPI *Update)(IMSMQQueueInfo *This);
     END_INTERFACE
   } IMSMQQueueInfoVtbl;
-  interface IMSMQQueueInfo {
+  struct IMSMQQueueInfo {
     CONST_VTBL struct IMSMQQueueInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -872,7 +872,7 @@
       HRESULT (WINAPI *put_Security)(IMSMQQueueInfo2 *This,VARIANT varSecurity);
     END_INTERFACE
   } IMSMQQueueInfo2Vtbl;
-  interface IMSMQQueueInfo2 {
+  struct IMSMQQueueInfo2 {
     CONST_VTBL struct IMSMQQueueInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1086,7 +1086,7 @@
       HRESULT (WINAPI *get_ADsPath)(IMSMQQueueInfo3 *This,BSTR *pbstrADsPath);
     END_INTERFACE
   } IMSMQQueueInfo3Vtbl;
-  interface IMSMQQueueInfo3 {
+  struct IMSMQQueueInfo3 {
     CONST_VTBL struct IMSMQQueueInfo3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1263,7 +1263,7 @@
       HRESULT (WINAPI *PeekCurrent)(IMSMQQueue *This,VARIANT *WantDestinationQueue,VARIANT *WantBody,VARIANT *ReceiveTimeout,IMSMQMessage **ppmsg);
     END_INTERFACE
   } IMSMQQueueVtbl;
-  interface IMSMQQueue {
+  struct IMSMQQueue {
     CONST_VTBL struct IMSMQQueueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1374,7 +1374,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQQueue2 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQQueue2Vtbl;
-  interface IMSMQQueue2 {
+  struct IMSMQQueue2 {
     CONST_VTBL struct IMSMQQueue2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1563,7 +1563,7 @@
       HRESULT (WINAPI *AttachCurrentSecurityContext)(IMSMQMessage *This);
     END_INTERFACE
   } IMSMQMessageVtbl;
-  interface IMSMQMessage {
+  struct IMSMQMessage {
     CONST_VTBL struct IMSMQMessageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1748,7 +1748,7 @@
       HRESULT (WINAPI *Next)(IMSMQQueueInfos *This,IMSMQQueueInfo **ppqinfoNext);
     END_INTERFACE
   } IMSMQQueueInfosVtbl;
-  interface IMSMQQueueInfos {
+  struct IMSMQQueueInfos {
     CONST_VTBL struct IMSMQQueueInfosVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1794,7 +1794,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQQueueInfos2 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQQueueInfos2Vtbl;
-  interface IMSMQQueueInfos2 {
+  struct IMSMQQueueInfos2 {
     CONST_VTBL struct IMSMQQueueInfos2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1843,7 +1843,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQQueueInfos3 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQQueueInfos3Vtbl;
-  interface IMSMQQueueInfos3 {
+  struct IMSMQQueueInfos3 {
     CONST_VTBL struct IMSMQQueueInfos3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1885,7 +1885,7 @@
       HRESULT (WINAPI *Invoke)(IMSMQEvent *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IMSMQEventVtbl;
-  interface IMSMQEvent {
+  struct IMSMQEvent {
     CONST_VTBL struct IMSMQEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1921,7 +1921,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQEvent2 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQEvent2Vtbl;
-  interface IMSMQEvent2 {
+  struct IMSMQEvent2 {
     CONST_VTBL struct IMSMQEvent2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1958,7 +1958,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQEvent3 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQEvent3Vtbl;
-  interface IMSMQEvent3 {
+  struct IMSMQEvent3 {
     CONST_VTBL struct IMSMQEvent3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1999,7 +1999,7 @@
       HRESULT (WINAPI *Abort)(IMSMQTransaction *This,VARIANT *fRetaining,VARIANT *fAsync);
     END_INTERFACE
   } IMSMQTransactionVtbl;
-  interface IMSMQTransaction {
+  struct IMSMQTransaction {
     CONST_VTBL struct IMSMQTransactionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2045,7 +2045,7 @@
       HRESULT (WINAPI *BeginTransaction)(IMSMQCoordinatedTransactionDispenser *This,IMSMQTransaction **ptransaction);
     END_INTERFACE
   } IMSMQCoordinatedTransactionDispenserVtbl;
-  interface IMSMQCoordinatedTransactionDispenser {
+  struct IMSMQCoordinatedTransactionDispenser {
     CONST_VTBL struct IMSMQCoordinatedTransactionDispenserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2084,7 +2084,7 @@
       HRESULT (WINAPI *BeginTransaction)(IMSMQTransactionDispenser *This,IMSMQTransaction **ptransaction);
     END_INTERFACE
   } IMSMQTransactionDispenserVtbl;
-  interface IMSMQTransactionDispenser {
+  struct IMSMQTransactionDispenser {
     CONST_VTBL struct IMSMQTransactionDispenserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2125,7 +2125,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQQuery2 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQQuery2Vtbl;
-  interface IMSMQQuery2 {
+  struct IMSMQQuery2 {
     CONST_VTBL struct IMSMQQuery2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2171,7 +2171,7 @@
       HRESULT (WINAPI *LookupQueue)(IMSMQQuery3 *This,VARIANT *QueueGuid,VARIANT *ServiceTypeGuid,VARIANT *Label,VARIANT *CreateTime,VARIANT *ModifyTime,VARIANT *RelServiceType,VARIANT *RelLabel,VARIANT *RelCreateTime,VARIANT *RelModifyTime,VARIANT *MulticastAddress,VARIANT *RelMulticastAddress,IMSMQQueueInfos3 **ppqinfos);
     END_INTERFACE
   } IMSMQQuery3Vtbl;
-  interface IMSMQQuery3 {
+  struct IMSMQQuery3 {
     CONST_VTBL struct IMSMQQuery3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2369,7 +2369,7 @@
       HRESULT (WINAPI *get_ReceivedAuthenticationLevel)(IMSMQMessage2 *This,short *psReceivedAuthenticationLevel);
     END_INTERFACE
   } IMSMQMessage2Vtbl;
-  interface IMSMQMessage2 {
+  struct IMSMQMessage2 {
     CONST_VTBL struct IMSMQMessage2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2810,7 +2810,7 @@
       HRESULT (WINAPI *put_SoapBody)(IMSMQMessage3 *This,BSTR bstrSoapBody);
     END_INTERFACE
   } IMSMQMessage3Vtbl;
-  interface IMSMQMessage3 {
+  struct IMSMQMessage3 {
     CONST_VTBL struct IMSMQMessage3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3186,7 +3186,7 @@
       HRESULT (WINAPI *get_IsOpen2)(IMSMQQueue3 *This,VARIANT_BOOL *pisOpen);
     END_INTERFACE
   } IMSMQQueue3Vtbl;
-  interface IMSMQQueue3 {
+  struct IMSMQQueue3 {
     CONST_VTBL struct IMSMQQueue3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3327,7 +3327,7 @@
       HRESULT (WINAPI *FireArrivedErrorEvent)(IMSMQPrivateEvent *This,IMSMQQueue *pq,HRESULT hrStatus,long msgcursor);
     END_INTERFACE
   } IMSMQPrivateEventVtbl;
-  interface IMSMQPrivateEvent {
+  struct IMSMQPrivateEvent {
     CONST_VTBL struct IMSMQPrivateEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3369,7 +3369,7 @@
       HRESULT (WINAPI *Invoke)(_DMSMQEventEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } _DMSMQEventEventsVtbl;
-  interface _DMSMQEventEvents {
+  struct _DMSMQEventEvents {
     CONST_VTBL struct _DMSMQEventEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3423,7 +3423,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQTransaction2 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQTransaction2Vtbl;
-  interface IMSMQTransaction2 {
+  struct IMSMQTransaction2 {
     CONST_VTBL struct IMSMQTransaction2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3473,7 +3473,7 @@
       HRESULT (WINAPI *get_ITransaction)(IMSMQTransaction3 *This,VARIANT *pvarITransaction);
     END_INTERFACE
   } IMSMQTransaction3Vtbl;
-  interface IMSMQTransaction3 {
+  struct IMSMQTransaction3 {
     CONST_VTBL struct IMSMQTransaction3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3524,7 +3524,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQCoordinatedTransactionDispenser2 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQCoordinatedTransactionDispenser2Vtbl;
-  interface IMSMQCoordinatedTransactionDispenser2 {
+  struct IMSMQCoordinatedTransactionDispenser2 {
     CONST_VTBL struct IMSMQCoordinatedTransactionDispenser2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3568,7 +3568,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQCoordinatedTransactionDispenser3 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQCoordinatedTransactionDispenser3Vtbl;
-  interface IMSMQCoordinatedTransactionDispenser3 {
+  struct IMSMQCoordinatedTransactionDispenser3 {
     CONST_VTBL struct IMSMQCoordinatedTransactionDispenser3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3617,7 +3617,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQTransactionDispenser2 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQTransactionDispenser2Vtbl;
-  interface IMSMQTransactionDispenser2 {
+  struct IMSMQTransactionDispenser2 {
     CONST_VTBL struct IMSMQTransactionDispenser2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3661,7 +3661,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQTransactionDispenser3 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQTransactionDispenser3Vtbl;
-  interface IMSMQTransactionDispenser3 {
+  struct IMSMQTransactionDispenser3 {
     CONST_VTBL struct IMSMQTransactionDispenser3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3708,7 +3708,7 @@
       HRESULT (WINAPI *MachineIdOfMachineName)(IMSMQApplication *This,BSTR MachineName,BSTR *pbstrGuid);
     END_INTERFACE
   } IMSMQApplicationVtbl;
-  interface IMSMQApplication {
+  struct IMSMQApplication {
     CONST_VTBL struct IMSMQApplicationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3760,7 +3760,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQApplication2 *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQApplication2Vtbl;
-  interface IMSMQApplication2 {
+  struct IMSMQApplication2 {
     CONST_VTBL struct IMSMQApplication2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3844,7 +3844,7 @@
       HRESULT (WINAPI *Tidy)(IMSMQApplication3 *This);
     END_INTERFACE
   } IMSMQApplication3Vtbl;
-  interface IMSMQApplication3 {
+  struct IMSMQApplication3 {
     CONST_VTBL struct IMSMQApplication3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3949,7 +3949,7 @@
       HRESULT (WINAPI *get_Properties)(IMSMQDestination *This,IDispatch **ppcolProperties);
     END_INTERFACE
   } IMSMQDestinationVtbl;
-  interface IMSMQDestination {
+  struct IMSMQDestination {
     CONST_VTBL struct IMSMQDestinationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4029,7 +4029,7 @@
       HRESULT (WINAPI *put_Handle)(IMSMQPrivateDestination *This,VARIANT varHandle);
     END_INTERFACE
   } IMSMQPrivateDestinationVtbl;
-  interface IMSMQPrivateDestination {
+  struct IMSMQPrivateDestination {
     CONST_VTBL struct IMSMQPrivateDestinationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4080,7 +4080,7 @@
       HRESULT (WINAPI *_NewEnum)(IMSMQCollection *This,IUnknown **ppunk);
     END_INTERFACE
   } IMSMQCollectionVtbl;
-  interface IMSMQCollection {
+  struct IMSMQCollection {
     CONST_VTBL struct IMSMQCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4146,7 +4146,7 @@
       HRESULT (WINAPI *get_BytesInQueue)(IMSMQManagement *This,VARIANT *pvBytesInQueue);
     END_INTERFACE
   } IMSMQManagementVtbl;
-  interface IMSMQManagement {
+  struct IMSMQManagement {
     CONST_VTBL struct IMSMQManagementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4233,7 +4233,7 @@
       HRESULT (WINAPI *EodResend)(IMSMQOutgoingQueueManagement *This);
     END_INTERFACE
   } IMSMQOutgoingQueueManagementVtbl;
-  interface IMSMQOutgoingQueueManagement {
+  struct IMSMQOutgoingQueueManagement {
     CONST_VTBL struct IMSMQOutgoingQueueManagementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4314,7 +4314,7 @@
       HRESULT (WINAPI *EodGetReceiveInfo)(IMSMQQueueManagement *This,VARIANT *pvCollection);
     END_INTERFACE
   } IMSMQQueueManagementVtbl;
-  interface IMSMQQueueManagement {
+  struct IMSMQQueueManagement {
     CONST_VTBL struct IMSMQQueueManagementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msclus.h b/mingw-w64-headers/include/msclus.h
index 6d9ebc5..efa6bed 100755
--- a/mingw-w64-headers/include/msclus.h
+++ b/mingw-w64-headers/include/msclus.h
@@ -375,197 +375,197 @@
 
 #ifndef __ISClusApplication_FWD_DEFINED__
 #define __ISClusApplication_FWD_DEFINED__
-typedef interface ISClusApplication ISClusApplication;
+typedef struct ISClusApplication ISClusApplication;
 #endif
 
 #ifndef __ISDomainNames_FWD_DEFINED__
 #define __ISDomainNames_FWD_DEFINED__
-typedef interface ISDomainNames ISDomainNames;
+typedef struct ISDomainNames ISDomainNames;
 #endif
 
 #ifndef __ISClusterNames_FWD_DEFINED__
 #define __ISClusterNames_FWD_DEFINED__
-typedef interface ISClusterNames ISClusterNames;
+typedef struct ISClusterNames ISClusterNames;
 #endif
 
 #ifndef __ISClusRefObject_FWD_DEFINED__
 #define __ISClusRefObject_FWD_DEFINED__
-typedef interface ISClusRefObject ISClusRefObject;
+typedef struct ISClusRefObject ISClusRefObject;
 #endif
 
 #ifndef __ISClusVersion_FWD_DEFINED__
 #define __ISClusVersion_FWD_DEFINED__
-typedef interface ISClusVersion ISClusVersion;
+typedef struct ISClusVersion ISClusVersion;
 #endif
 
 #ifndef __ISCluster_FWD_DEFINED__
 #define __ISCluster_FWD_DEFINED__
-typedef interface ISCluster ISCluster;
+typedef struct ISCluster ISCluster;
 #endif
 
 #ifndef __ISClusNode_FWD_DEFINED__
 #define __ISClusNode_FWD_DEFINED__
-typedef interface ISClusNode ISClusNode;
+typedef struct ISClusNode ISClusNode;
 #endif
 
 #ifndef __ISClusNodes_FWD_DEFINED__
 #define __ISClusNodes_FWD_DEFINED__
-typedef interface ISClusNodes ISClusNodes;
+typedef struct ISClusNodes ISClusNodes;
 #endif
 
 #ifndef __ISClusNetwork_FWD_DEFINED__
 #define __ISClusNetwork_FWD_DEFINED__
-typedef interface ISClusNetwork ISClusNetwork;
+typedef struct ISClusNetwork ISClusNetwork;
 #endif
 
 #ifndef __ISClusNetworks_FWD_DEFINED__
 #define __ISClusNetworks_FWD_DEFINED__
-typedef interface ISClusNetworks ISClusNetworks;
+typedef struct ISClusNetworks ISClusNetworks;
 #endif
 
 #ifndef __ISClusNetInterface_FWD_DEFINED__
 #define __ISClusNetInterface_FWD_DEFINED__
-typedef interface ISClusNetInterface ISClusNetInterface;
+typedef struct ISClusNetInterface ISClusNetInterface;
 #endif
 
 #ifndef __ISClusNetInterfaces_FWD_DEFINED__
 #define __ISClusNetInterfaces_FWD_DEFINED__
-typedef interface ISClusNetInterfaces ISClusNetInterfaces;
+typedef struct ISClusNetInterfaces ISClusNetInterfaces;
 #endif
 
 #ifndef __ISClusNodeNetInterfaces_FWD_DEFINED__
 #define __ISClusNodeNetInterfaces_FWD_DEFINED__
-typedef interface ISClusNodeNetInterfaces ISClusNodeNetInterfaces;
+typedef struct ISClusNodeNetInterfaces ISClusNodeNetInterfaces;
 #endif
 
 #ifndef __ISClusNetworkNetInterfaces_FWD_DEFINED__
 #define __ISClusNetworkNetInterfaces_FWD_DEFINED__
-typedef interface ISClusNetworkNetInterfaces ISClusNetworkNetInterfaces;
+typedef struct ISClusNetworkNetInterfaces ISClusNetworkNetInterfaces;
 #endif
 
 #ifndef __ISClusResGroup_FWD_DEFINED__
 #define __ISClusResGroup_FWD_DEFINED__
-typedef interface ISClusResGroup ISClusResGroup;
+typedef struct ISClusResGroup ISClusResGroup;
 #endif
 
 #ifndef __ISClusResGroups_FWD_DEFINED__
 #define __ISClusResGroups_FWD_DEFINED__
-typedef interface ISClusResGroups ISClusResGroups;
+typedef struct ISClusResGroups ISClusResGroups;
 #endif
 
 #ifndef __ISClusResource_FWD_DEFINED__
 #define __ISClusResource_FWD_DEFINED__
-typedef interface ISClusResource ISClusResource;
+typedef struct ISClusResource ISClusResource;
 #endif
 
 #ifndef __ISClusResDependencies_FWD_DEFINED__
 #define __ISClusResDependencies_FWD_DEFINED__
-typedef interface ISClusResDependencies ISClusResDependencies;
+typedef struct ISClusResDependencies ISClusResDependencies;
 #endif
 
 #ifndef __ISClusResGroupResources_FWD_DEFINED__
 #define __ISClusResGroupResources_FWD_DEFINED__
-typedef interface ISClusResGroupResources ISClusResGroupResources;
+typedef struct ISClusResGroupResources ISClusResGroupResources;
 #endif
 
 #ifndef __ISClusResTypeResources_FWD_DEFINED__
 #define __ISClusResTypeResources_FWD_DEFINED__
-typedef interface ISClusResTypeResources ISClusResTypeResources;
+typedef struct ISClusResTypeResources ISClusResTypeResources;
 #endif
 
 #ifndef __ISClusResources_FWD_DEFINED__
 #define __ISClusResources_FWD_DEFINED__
-typedef interface ISClusResources ISClusResources;
+typedef struct ISClusResources ISClusResources;
 #endif
 
 #ifndef __ISClusResGroupPreferredOwnerNodes_FWD_DEFINED__
 #define __ISClusResGroupPreferredOwnerNodes_FWD_DEFINED__
-typedef interface ISClusResGroupPreferredOwnerNodes ISClusResGroupPreferredOwnerNodes;
+typedef struct ISClusResGroupPreferredOwnerNodes ISClusResGroupPreferredOwnerNodes;
 #endif
 
 #ifndef __ISClusResPossibleOwnerNodes_FWD_DEFINED__
 #define __ISClusResPossibleOwnerNodes_FWD_DEFINED__
-typedef interface ISClusResPossibleOwnerNodes ISClusResPossibleOwnerNodes;
+typedef struct ISClusResPossibleOwnerNodes ISClusResPossibleOwnerNodes;
 #endif
 
 #ifndef __ISClusResTypePossibleOwnerNodes_FWD_DEFINED__
 #define __ISClusResTypePossibleOwnerNodes_FWD_DEFINED__
-typedef interface ISClusResTypePossibleOwnerNodes ISClusResTypePossibleOwnerNodes;
+typedef struct ISClusResTypePossibleOwnerNodes ISClusResTypePossibleOwnerNodes;
 #endif
 
 #ifndef __ISClusResType_FWD_DEFINED__
 #define __ISClusResType_FWD_DEFINED__
-typedef interface ISClusResType ISClusResType;
+typedef struct ISClusResType ISClusResType;
 #endif
 
 #ifndef __ISClusResTypes_FWD_DEFINED__
 #define __ISClusResTypes_FWD_DEFINED__
-typedef interface ISClusResTypes ISClusResTypes;
+typedef struct ISClusResTypes ISClusResTypes;
 #endif
 
 #ifndef __ISClusProperty_FWD_DEFINED__
 #define __ISClusProperty_FWD_DEFINED__
-typedef interface ISClusProperty ISClusProperty;
+typedef struct ISClusProperty ISClusProperty;
 #endif
 
 #ifndef __ISClusPropertyValue_FWD_DEFINED__
 #define __ISClusPropertyValue_FWD_DEFINED__
-typedef interface ISClusPropertyValue ISClusPropertyValue;
+typedef struct ISClusPropertyValue ISClusPropertyValue;
 #endif
 
 #ifndef __ISClusPropertyValues_FWD_DEFINED__
 #define __ISClusPropertyValues_FWD_DEFINED__
-typedef interface ISClusPropertyValues ISClusPropertyValues;
+typedef struct ISClusPropertyValues ISClusPropertyValues;
 #endif
 
 #ifndef __ISClusProperties_FWD_DEFINED__
 #define __ISClusProperties_FWD_DEFINED__
-typedef interface ISClusProperties ISClusProperties;
+typedef struct ISClusProperties ISClusProperties;
 #endif
 
 #ifndef __ISClusPropertyValueData_FWD_DEFINED__
 #define __ISClusPropertyValueData_FWD_DEFINED__
-typedef interface ISClusPropertyValueData ISClusPropertyValueData;
+typedef struct ISClusPropertyValueData ISClusPropertyValueData;
 #endif
 
 #ifndef __ISClusPartition_FWD_DEFINED__
 #define __ISClusPartition_FWD_DEFINED__
-typedef interface ISClusPartition ISClusPartition;
+typedef struct ISClusPartition ISClusPartition;
 #endif
 
 #ifndef __ISClusPartitions_FWD_DEFINED__
 #define __ISClusPartitions_FWD_DEFINED__
-typedef interface ISClusPartitions ISClusPartitions;
+typedef struct ISClusPartitions ISClusPartitions;
 #endif
 
 #ifndef __ISClusDisk_FWD_DEFINED__
 #define __ISClusDisk_FWD_DEFINED__
-typedef interface ISClusDisk ISClusDisk;
+typedef struct ISClusDisk ISClusDisk;
 #endif
 
 #ifndef __ISClusDisks_FWD_DEFINED__
 #define __ISClusDisks_FWD_DEFINED__
-typedef interface ISClusDisks ISClusDisks;
+typedef struct ISClusDisks ISClusDisks;
 #endif
 
 #ifndef __ISClusScsiAddress_FWD_DEFINED__
 #define __ISClusScsiAddress_FWD_DEFINED__
-typedef interface ISClusScsiAddress ISClusScsiAddress;
+typedef struct ISClusScsiAddress ISClusScsiAddress;
 #endif
 
 #ifndef __ISClusRegistryKeys_FWD_DEFINED__
 #define __ISClusRegistryKeys_FWD_DEFINED__
-typedef interface ISClusRegistryKeys ISClusRegistryKeys;
+typedef struct ISClusRegistryKeys ISClusRegistryKeys;
 #endif
 
 #ifndef __ISClusCryptoKeys_FWD_DEFINED__
 #define __ISClusCryptoKeys_FWD_DEFINED__
-typedef interface ISClusCryptoKeys ISClusCryptoKeys;
+typedef struct ISClusCryptoKeys ISClusCryptoKeys;
 #endif
 
 #ifndef __ISClusResDependents_FWD_DEFINED__
 #define __ISClusResDependents_FWD_DEFINED__
-typedef interface ISClusResDependents ISClusResDependents;
+typedef struct ISClusResDependents ISClusResDependents;
 #endif
 
 #include "basetsd.h"
@@ -1223,7 +1223,7 @@
       HRESULT (WINAPI *OpenCluster)(ISClusApplication *This,BSTR bstrClusterName,ISCluster **pCluster);
     END_INTERFACE
   } ISClusApplicationVtbl;
-  interface ISClusApplication {
+  struct ISClusApplication {
     CONST_VTBL struct ISClusApplicationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1274,7 +1274,7 @@
       HRESULT (WINAPI *get_Item)(ISDomainNames *This,VARIANT varIndex,BSTR *pbstrDomainName);
     END_INTERFACE
   } ISDomainNamesVtbl;
-  interface ISDomainNames {
+  struct ISDomainNames {
     CONST_VTBL struct ISDomainNamesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1330,7 +1330,7 @@
       HRESULT (WINAPI *get_DomainName)(ISClusterNames *This,BSTR *pbstrDomainName);
     END_INTERFACE
   } ISClusterNamesVtbl;
-  interface ISClusterNames {
+  struct ISClusterNames {
     CONST_VTBL struct ISClusterNamesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1381,7 +1381,7 @@
       HRESULT (WINAPI *get_Handle)(ISClusRefObject *This,ULONG_PTR *phandle);
     END_INTERFACE
   } ISClusRefObjectVtbl;
-  interface ISClusRefObject {
+  struct ISClusRefObject {
     CONST_VTBL struct ISClusRefObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1438,7 +1438,7 @@
       HRESULT (WINAPI *get_MixedVersion)(ISClusVersion *This,VARIANT *pvarMixedVersion);
     END_INTERFACE
   } ISClusVersionVtbl;
-  interface ISClusVersion {
+  struct ISClusVersion {
     CONST_VTBL struct ISClusVersionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1544,7 +1544,7 @@
       HRESULT (WINAPI *get_NetInterfaces)(ISCluster *This,ISClusNetInterfaces **ppNetInterfaces);
     END_INTERFACE
   } ISClusterVtbl;
-  interface ISCluster {
+  struct ISCluster {
     CONST_VTBL struct ISClusterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1669,7 +1669,7 @@
       HRESULT (WINAPI *get_NetInterfaces)(ISClusNode *This,ISClusNodeNetInterfaces **ppClusNetInterfaces);
     END_INTERFACE
   } ISClusNodeVtbl;
-  interface ISClusNode {
+  struct ISClusNode {
     CONST_VTBL struct ISClusNodeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1753,7 +1753,7 @@
       HRESULT (WINAPI *get_Item)(ISClusNodes *This,VARIANT varIndex,ISClusNode **ppNode);
     END_INTERFACE
   } ISClusNodesVtbl;
-  interface ISClusNodes {
+  struct ISClusNodes {
     CONST_VTBL struct ISClusNodesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1821,7 +1821,7 @@
       HRESULT (WINAPI *get_Cluster)(ISClusNetwork *This,ISCluster **ppCluster);
     END_INTERFACE
   } ISClusNetworkVtbl;
-  interface ISClusNetwork {
+  struct ISClusNetwork {
     CONST_VTBL struct ISClusNetworkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1896,7 +1896,7 @@
       HRESULT (WINAPI *get_Item)(ISClusNetworks *This,VARIANT varIndex,ISClusNetwork **ppClusNetwork);
     END_INTERFACE
   } ISClusNetworksVtbl;
-  interface ISClusNetworks {
+  struct ISClusNetworks {
     CONST_VTBL struct ISClusNetworksVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1958,7 +1958,7 @@
       HRESULT (WINAPI *get_Cluster)(ISClusNetInterface *This,ISCluster **ppCluster);
     END_INTERFACE
   } ISClusNetInterfaceVtbl;
-  interface ISClusNetInterface {
+  struct ISClusNetInterface {
     CONST_VTBL struct ISClusNetInterfaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2024,7 +2024,7 @@
       HRESULT (WINAPI *get_Item)(ISClusNetInterfaces *This,VARIANT varIndex,ISClusNetInterface **ppClusNetInterface);
     END_INTERFACE
   } ISClusNetInterfacesVtbl;
-  interface ISClusNetInterfaces {
+  struct ISClusNetInterfaces {
     CONST_VTBL struct ISClusNetInterfacesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2078,7 +2078,7 @@
       HRESULT (WINAPI *get_Item)(ISClusNodeNetInterfaces *This,VARIANT varIndex,ISClusNetInterface **ppClusNetInterface);
     END_INTERFACE
   } ISClusNodeNetInterfacesVtbl;
-  interface ISClusNodeNetInterfaces {
+  struct ISClusNodeNetInterfaces {
     CONST_VTBL struct ISClusNodeNetInterfacesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2132,7 +2132,7 @@
       HRESULT (WINAPI *get_Item)(ISClusNetworkNetInterfaces *This,VARIANT varIndex,ISClusNetInterface **ppClusNetInterface);
     END_INTERFACE
   } ISClusNetworkNetInterfacesVtbl;
-  interface ISClusNetworkNetInterfaces {
+  struct ISClusNetworkNetInterfaces {
     CONST_VTBL struct ISClusNetworkNetInterfacesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2210,7 +2210,7 @@
       HRESULT (WINAPI *get_Cluster)(ISClusResGroup *This,ISCluster **ppCluster);
     END_INTERFACE
   } ISClusResGroupVtbl;
-  interface ISClusResGroup {
+  struct ISClusResGroup {
     CONST_VTBL struct ISClusResGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2304,7 +2304,7 @@
       HRESULT (WINAPI *DeleteItem)(ISClusResGroups *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusResGroupsVtbl;
-  interface ISClusResGroups {
+  struct ISClusResGroups {
     CONST_VTBL struct ISClusResGroupsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2420,7 +2420,7 @@
       HRESULT (WINAPI *put_MaintenanceMode)(ISClusResource *This,WINBOOL bMaintenanceMode);
     END_INTERFACE
   } ISClusResourceVtbl;
-  interface ISClusResource {
+  struct ISClusResource {
     CONST_VTBL struct ISClusResourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2566,7 +2566,7 @@
       HRESULT (WINAPI *RemoveItem)(ISClusResDependencies *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusResDependenciesVtbl;
-  interface ISClusResDependencies {
+  struct ISClusResDependencies {
     CONST_VTBL struct ISClusResDependenciesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2636,7 +2636,7 @@
       HRESULT (WINAPI *DeleteItem)(ISClusResGroupResources *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusResGroupResourcesVtbl;
-  interface ISClusResGroupResources {
+  struct ISClusResGroupResources {
     CONST_VTBL struct ISClusResGroupResourcesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2700,7 +2700,7 @@
       HRESULT (WINAPI *DeleteItem)(ISClusResTypeResources *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusResTypeResourcesVtbl;
-  interface ISClusResTypeResources {
+  struct ISClusResTypeResources {
     CONST_VTBL struct ISClusResTypeResourcesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2764,7 +2764,7 @@
       HRESULT (WINAPI *DeleteItem)(ISClusResources *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusResourcesVtbl;
-  interface ISClusResources {
+  struct ISClusResources {
     CONST_VTBL struct ISClusResourcesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2834,7 +2834,7 @@
       HRESULT (WINAPI *AddItem)(ISClusResGroupPreferredOwnerNodes *This,ISClusNode *pNode);
     END_INTERFACE
   } ISClusResGroupPreferredOwnerNodesVtbl;
-  interface ISClusResGroupPreferredOwnerNodes {
+  struct ISClusResGroupPreferredOwnerNodes {
     CONST_VTBL struct ISClusResGroupPreferredOwnerNodesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2909,7 +2909,7 @@
       HRESULT (WINAPI *get_Modified)(ISClusResPossibleOwnerNodes *This,VARIANT *pvarModified);
     END_INTERFACE
   } ISClusResPossibleOwnerNodesVtbl;
-  interface ISClusResPossibleOwnerNodes {
+  struct ISClusResPossibleOwnerNodes {
     CONST_VTBL struct ISClusResPossibleOwnerNodesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2972,7 +2972,7 @@
       HRESULT (WINAPI *get_Item)(ISClusResTypePossibleOwnerNodes *This,VARIANT varIndex,ISClusNode **ppNode);
     END_INTERFACE
   } ISClusResTypePossibleOwnerNodesVtbl;
-  interface ISClusResTypePossibleOwnerNodes {
+  struct ISClusResTypePossibleOwnerNodes {
     CONST_VTBL struct ISClusResTypePossibleOwnerNodesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3038,7 +3038,7 @@
       HRESULT (WINAPI *get_AvailableDisks)(ISClusResType *This,ISClusDisks **ppAvailableDisks);
     END_INTERFACE
   } ISClusResTypeVtbl;
-  interface ISClusResType {
+  struct ISClusResType {
     CONST_VTBL struct ISClusResTypeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3114,7 +3114,7 @@
       HRESULT (WINAPI *DeleteItem)(ISClusResTypes *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusResTypesVtbl;
-  interface ISClusResTypes {
+  struct ISClusResTypes {
     CONST_VTBL struct ISClusResTypesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3196,7 +3196,7 @@
       HRESULT (WINAPI *UseDefaultValue)(ISClusProperty *This);
     END_INTERFACE
   } ISClusPropertyVtbl;
-  interface ISClusProperty {
+  struct ISClusProperty {
     CONST_VTBL struct ISClusPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3293,7 +3293,7 @@
       HRESULT (WINAPI *get_Data)(ISClusPropertyValue *This,ISClusPropertyValueData **ppClusterPropertyValueData);
     END_INTERFACE
   } ISClusPropertyValueVtbl;
-  interface ISClusPropertyValue {
+  struct ISClusPropertyValue {
     CONST_VTBL struct ISClusPropertyValueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3364,7 +3364,7 @@
       HRESULT (WINAPI *RemoveItem)(ISClusPropertyValues *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusPropertyValuesVtbl;
-  interface ISClusPropertyValues {
+  struct ISClusPropertyValues {
     CONST_VTBL struct ISClusPropertyValuesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3435,7 +3435,7 @@
       HRESULT (WINAPI *get_Modified)(ISClusProperties *This,VARIANT *pvarModified);
     END_INTERFACE
   } ISClusPropertiesVtbl;
-  interface ISClusProperties {
+  struct ISClusProperties {
     CONST_VTBL struct ISClusPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3512,7 +3512,7 @@
       HRESULT (WINAPI *RemoveItem)(ISClusPropertyValueData *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusPropertyValueDataVtbl;
-  interface ISClusPropertyValueData {
+  struct ISClusPropertyValueData {
     CONST_VTBL struct ISClusPropertyValueDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3575,7 +3575,7 @@
       HRESULT (WINAPI *get_FileSystem)(ISClusPartition *This,BSTR *pbstrFileSystem);
     END_INTERFACE
   } ISClusPartitionVtbl;
-  interface ISClusPartition {
+  struct ISClusPartition {
     CONST_VTBL struct ISClusPartitionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3636,7 +3636,7 @@
       HRESULT (WINAPI *get_Item)(ISClusPartitions *This,VARIANT varIndex,ISClusPartition **ppPartition);
     END_INTERFACE
   } ISClusPartitionsVtbl;
-  interface ISClusPartitions {
+  struct ISClusPartitions {
     CONST_VTBL struct ISClusPartitionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3687,7 +3687,7 @@
       HRESULT (WINAPI *get_Partitions)(ISClusDisk *This,ISClusPartitions **ppPartitions);
     END_INTERFACE
   } ISClusDiskVtbl;
-  interface ISClusDisk {
+  struct ISClusDisk {
     CONST_VTBL struct ISClusDiskVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3739,7 +3739,7 @@
       HRESULT (WINAPI *get_Item)(ISClusDisks *This,VARIANT varIndex,ISClusDisk **ppDisk);
     END_INTERFACE
   } ISClusDisksVtbl;
-  interface ISClusDisks {
+  struct ISClusDisks {
     CONST_VTBL struct ISClusDisksVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3790,7 +3790,7 @@
       HRESULT (WINAPI *get_Lun)(ISClusScsiAddress *This,VARIANT *pvarLun);
     END_INTERFACE
   } ISClusScsiAddressVtbl;
-  interface ISClusScsiAddress {
+  struct ISClusScsiAddress {
     CONST_VTBL struct ISClusScsiAddressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3848,7 +3848,7 @@
       HRESULT (WINAPI *RemoveItem)(ISClusRegistryKeys *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusRegistryKeysVtbl;
-  interface ISClusRegistryKeys {
+  struct ISClusRegistryKeys {
     CONST_VTBL struct ISClusRegistryKeysVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3912,7 +3912,7 @@
       HRESULT (WINAPI *RemoveItem)(ISClusCryptoKeys *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusCryptoKeysVtbl;
-  interface ISClusCryptoKeys {
+  struct ISClusCryptoKeys {
     CONST_VTBL struct ISClusCryptoKeysVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3980,7 +3980,7 @@
       HRESULT (WINAPI *RemoveItem)(ISClusResDependents *This,VARIANT varIndex);
     END_INTERFACE
   } ISClusResDependentsVtbl;
-  interface ISClusResDependents {
+  struct ISClusResDependents {
     CONST_VTBL struct ISClusResDependentsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msdadc.h b/mingw-w64-headers/include/msdadc.h
index 906c38a..eb9826a 100755
--- a/mingw-w64-headers/include/msdadc.h
+++ b/mingw-w64-headers/include/msdadc.h
@@ -24,12 +24,12 @@
 
 #ifndef __IDataConvert_FWD_DEFINED__
 #define __IDataConvert_FWD_DEFINED__
-typedef interface IDataConvert IDataConvert;
+typedef struct IDataConvert IDataConvert;
 #endif
 
 #ifndef __IDCInfo_FWD_DEFINED__
 #define __IDCInfo_FWD_DEFINED__
-typedef interface IDCInfo IDCInfo;
+typedef struct IDCInfo IDCInfo;
 #endif
 
 #include "oaidl.h"
@@ -79,7 +79,7 @@
       HRESULT (WINAPI *GetConversionSize)(IDataConvert *This,DBTYPE wSrcType,DBTYPE wDstType,DBLENGTH *pcbSrcLength,DBLENGTH *pcbDstLength,void *pSrc);
     END_INTERFACE
   } IDataConvertVtbl;
-  interface IDataConvert {
+  struct IDataConvert {
     CONST_VTBL struct IDataConvertVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -128,7 +128,7 @@
       HRESULT (WINAPI *SetInfo)(IDCInfo *This,ULONG cInfo,DCINFO rgInfo[]);
     END_INTERFACE
   } IDCInfoVtbl;
-  interface IDCInfo {
+  struct IDCInfo {
     CONST_VTBL struct IDCInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msdaipp.h b/mingw-w64-headers/include/msdaipp.h
index 3bb47d6..c1f7039 100755
--- a/mingw-w64-headers/include/msdaipp.h
+++ b/mingw-w64-headers/include/msdaipp.h
@@ -24,7 +24,7 @@
 
 #ifndef __ISynchronizeRow_FWD_DEFINED__
 #define __ISynchronizeRow_FWD_DEFINED__
-typedef interface ISynchronizeRow ISynchronizeRow;
+typedef struct ISynchronizeRow ISynchronizeRow;
 #endif
 
 #ifndef __MSDAIPP_DSO_FWD_DEFINED__
@@ -198,7 +198,7 @@
       HRESULT (WINAPI *Synchronize)(ISynchronizeRow *This,MSDAIPP_SYNC_FLAGS dwFlags);
     END_INTERFACE
   } ISynchronizeRowVtbl;
-  interface ISynchronizeRow {
+  struct ISynchronizeRow {
     CONST_VTBL struct ISynchronizeRowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msdaosp.h b/mingw-w64-headers/include/msdaosp.h
index 424bc05..a285620 100755
--- a/mingw-w64-headers/include/msdaosp.h
+++ b/mingw-w64-headers/include/msdaosp.h
@@ -15,7 +15,7 @@
 
 #ifndef __DataSourceObject_FWD_DEFINED__
 #define __DataSourceObject_FWD_DEFINED__
-typedef interface DataSourceObject DataSourceObject;
+typedef struct DataSourceObject DataSourceObject;
 #endif
 
 #include "oaidl.h"
@@ -62,7 +62,7 @@
       HRESULT (WINAPI *Invoke)(DataSourceObject *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DataSourceObjectVtbl;
-  interface DataSourceObject {
+  struct DataSourceObject {
     CONST_VTBL struct DataSourceObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msdasc.h b/mingw-w64-headers/include/msdasc.h
index 73fdd98..52c22ea 100755
--- a/mingw-w64-headers/include/msdasc.h
+++ b/mingw-w64-headers/include/msdasc.h
@@ -24,22 +24,22 @@
 
 #ifndef __IService_FWD_DEFINED__
 #define __IService_FWD_DEFINED__
-typedef interface IService IService;
+typedef struct IService IService;
 #endif
 
 #ifndef __IDBPromptInitialize_FWD_DEFINED__
 #define __IDBPromptInitialize_FWD_DEFINED__
-typedef interface IDBPromptInitialize IDBPromptInitialize;
+typedef struct IDBPromptInitialize IDBPromptInitialize;
 #endif
 
 #ifndef __IDataInitialize_FWD_DEFINED__
 #define __IDataInitialize_FWD_DEFINED__
-typedef interface IDataInitialize IDataInitialize;
+typedef struct IDataInitialize IDataInitialize;
 #endif
 
 #ifndef __IDataSourceLocator_FWD_DEFINED__
 #define __IDataSourceLocator_FWD_DEFINED__
-typedef interface IDataSourceLocator IDataSourceLocator;
+typedef struct IDataSourceLocator IDataSourceLocator;
 #endif
 
 #ifndef __DataLinks_FWD_DEFINED__
@@ -124,7 +124,7 @@
       HRESULT (WINAPI *InvokeService)(IService *This,IUnknown *pUnkInner);
     END_INTERFACE
   } IServiceVtbl;
-  interface IService {
+  struct IService {
     CONST_VTBL struct IServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -167,7 +167,7 @@
       HRESULT (WINAPI *PromptFileName)(IDBPromptInitialize *This,HWND hWndParent,DBPROMPTOPTIONS dwPromptOptions,LPCOLESTR pwszInitialDirectory,LPCOLESTR pwszInitialFile,LPOLESTR *ppwszSelectedFile);
     END_INTERFACE
   } IDBPromptInitializeVtbl;
-  interface IDBPromptInitialize {
+  struct IDBPromptInitialize {
     CONST_VTBL struct IDBPromptInitializeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -211,7 +211,7 @@
       HRESULT (WINAPI *WriteStringToStorage)(IDataInitialize *This,LPCOLESTR pwszFileName,LPCOLESTR pwszInitializationString,DWORD dwCreationDisposition);
     END_INTERFACE
   } IDataInitializeVtbl;
-  interface IDataInitialize {
+  struct IDataInitialize {
     CONST_VTBL struct IDataInitializeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -270,7 +270,7 @@
       HRESULT (WINAPI *PromptEdit)(IDataSourceLocator *This,IDispatch **ppADOConnection,VARIANT_BOOL *pbSuccess);
     END_INTERFACE
   } IDataSourceLocatorVtbl;
-  interface IDataSourceLocator {
+  struct IDataSourceLocator {
     CONST_VTBL struct IDataSourceLocatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msdasql.h b/mingw-w64-headers/include/msdasql.h
index d0d1011..902f870 100755
--- a/mingw-w64-headers/include/msdasql.h
+++ b/mingw-w64-headers/include/msdasql.h
@@ -103,7 +103,7 @@
 
 #ifndef __IRowsetChangeExtInfo_FWD_DEFINED__
 #define __IRowsetChangeExtInfo_FWD_DEFINED__
-typedef interface IRowsetChangeExtInfo IRowsetChangeExtInfo;
+typedef struct IRowsetChangeExtInfo IRowsetChangeExtInfo;
 #endif
 
 #include "oledb.h"
@@ -135,7 +135,7 @@
       HRESULT (WINAPI *GetPendingColumns)(IRowsetChangeExtInfo *This,HCHAPTER hReserved,HROW hRow,ULONG cColumnOrdinals,const ULONG rgiOrdinals[],DBPENDINGSTATUS rgColumnStatus[]);
     END_INTERFACE
   } IRowsetChangeExtInfoVtbl;
-  interface IRowsetChangeExtInfo {
+  struct IRowsetChangeExtInfo {
     CONST_VTBL struct IRowsetChangeExtInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -178,12 +178,12 @@
 
 #ifndef __ISQLRequestDiagFields_FWD_DEFINED__
 #define __ISQLRequestDiagFields_FWD_DEFINED__
-typedef interface ISQLRequestDiagFields ISQLRequestDiagFields;
+typedef struct ISQLRequestDiagFields ISQLRequestDiagFields;
 #endif
 
 #ifndef __ISQLGetDiagField_FWD_DEFINED__
 #define __ISQLGetDiagField_FWD_DEFINED__
-typedef interface ISQLGetDiagField ISQLGetDiagField;
+typedef struct ISQLGetDiagField ISQLGetDiagField;
 #endif
 
 #include "unknwn.h"
@@ -232,7 +232,7 @@
       HRESULT (WINAPI *RequestDiagFields)(ISQLRequestDiagFields *This,ULONG cDiagFields,KAGREQDIAG rgDiagFields[]);
     END_INTERFACE
   } ISQLRequestDiagFieldsVtbl;
-  interface ISQLRequestDiagFields {
+  struct ISQLRequestDiagFields {
     CONST_VTBL struct ISQLRequestDiagFieldsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -263,7 +263,7 @@
       HRESULT (WINAPI *GetDiagField)(ISQLGetDiagField *This,KAGGETDIAG *pDiagInfo);
     END_INTERFACE
   } ISQLGetDiagFieldVtbl;
-  interface ISQLGetDiagField {
+  struct ISQLGetDiagField {
     CONST_VTBL struct ISQLGetDiagFieldVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msdatsrc.h b/mingw-w64-headers/include/msdatsrc.h
index a2bc12e..a422d41 100755
--- a/mingw-w64-headers/include/msdatsrc.h
+++ b/mingw-w64-headers/include/msdatsrc.h
@@ -15,12 +15,12 @@
 
 #ifndef __DataSourceListener_FWD_DEFINED__
 #define __DataSourceListener_FWD_DEFINED__
-typedef interface DataSourceListener DataSourceListener;
+typedef struct DataSourceListener DataSourceListener;
 #endif
 
 #ifndef __DataSource_FWD_DEFINED__
 #define __DataSource_FWD_DEFINED__
-typedef interface DataSource DataSource;
+typedef struct DataSource DataSource;
 #endif
 
 #ifdef __cplusplus
@@ -65,7 +65,7 @@
       HRESULT (WINAPI *dataMemberRemoved)(DataSourceListener *This,DataMember bstrDM);
     END_INTERFACE
   } DataSourceListenerVtbl;
-  interface DataSourceListener {
+  struct DataSourceListener {
     CONST_VTBL struct DataSourceListenerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -110,7 +110,7 @@
       HRESULT (WINAPI *removeDataSourceListener)(DataSource *This,DataSourceListener *pDSL);
     END_INTERFACE
   } DataSourceVtbl;
-  interface DataSource {
+  struct DataSource {
     CONST_VTBL struct DataSourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mshtmhst.h b/mingw-w64-headers/include/mshtmhst.h
index c04a7b2..d971003 100755
--- a/mingw-w64-headers/include/mshtmhst.h
+++ b/mingw-w64-headers/include/mshtmhst.h
@@ -24,7 +24,7 @@
 
 #ifndef __IHostDialogHelper_FWD_DEFINED__
 #define __IHostDialogHelper_FWD_DEFINED__
-typedef interface IHostDialogHelper IHostDialogHelper;
+typedef struct IHostDialogHelper IHostDialogHelper;
 #endif
 
 #ifndef __HostDialogHelper_FWD_DEFINED__
@@ -38,32 +38,32 @@
 
 #ifndef __IDocHostUIHandler_FWD_DEFINED__
 #define __IDocHostUIHandler_FWD_DEFINED__
-typedef interface IDocHostUIHandler IDocHostUIHandler;
+typedef struct IDocHostUIHandler IDocHostUIHandler;
 #endif
 
 #ifndef __IDocHostUIHandler2_FWD_DEFINED__
 #define __IDocHostUIHandler2_FWD_DEFINED__
-typedef interface IDocHostUIHandler2 IDocHostUIHandler2;
+typedef struct IDocHostUIHandler2 IDocHostUIHandler2;
 #endif
 
 #ifndef __ICustomDoc_FWD_DEFINED__
 #define __ICustomDoc_FWD_DEFINED__
-typedef interface ICustomDoc ICustomDoc;
+typedef struct ICustomDoc ICustomDoc;
 #endif
 
 #ifndef __IDocHostShowUI_FWD_DEFINED__
 #define __IDocHostShowUI_FWD_DEFINED__
-typedef interface IDocHostShowUI IDocHostShowUI;
+typedef struct IDocHostShowUI IDocHostShowUI;
 #endif
 
 #ifndef __IClassFactoryEx_FWD_DEFINED__
 #define __IClassFactoryEx_FWD_DEFINED__
-typedef interface IClassFactoryEx IClassFactoryEx;
+typedef struct IClassFactoryEx IClassFactoryEx;
 #endif
 
 #ifndef __IHTMLOMWindowServices_FWD_DEFINED__
 #define __IHTMLOMWindowServices_FWD_DEFINED__
-typedef interface IHTMLOMWindowServices IHTMLOMWindowServices;
+typedef struct IHTMLOMWindowServices IHTMLOMWindowServices;
 #endif
 
 #include "ocidl.h"
@@ -109,7 +109,7 @@
 #define SZ_HTML_CLIENTSITE_OBJECTPARAM L"{d4db6850-5385-11d0-89e9-00a0c90a90ac}"
 #ifndef __IHTMLWindow2_FWD_DEFINED__
 #define __IHTMLWindow2_FWD_DEFINED__
-  typedef interface IHTMLWindow2 IHTMLWindow2;
+  typedef struct IHTMLWindow2 IHTMLWindow2;
 #endif
   typedef HRESULT WINAPI SHOWHTMLDIALOGFN (HWND hwndParent,IMoniker *pmk,VARIANT *pvarArgIn,WCHAR *pchOptions,VARIANT *pvArgOut);
   typedef HRESULT WINAPI SHOWHTMLDIALOGEXFN (HWND hwndParent,IMoniker *pmk,DWORD dwDialogFlags,VARIANT *pvarArgIn,WCHAR *pchOptions,VARIANT *pvArgOut);
@@ -141,7 +141,7 @@
       HRESULT (WINAPI *ShowHTMLDialog)(IHostDialogHelper *This,HWND hwndParent,IMoniker *pMk,VARIANT *pvarArgIn,WCHAR *pchOptions,VARIANT *pvarArgOut,IUnknown *punkHost);
     END_INTERFACE
   } IHostDialogHelperVtbl;
-  interface IHostDialogHelper {
+  struct IHostDialogHelper {
     CONST_VTBL struct IHostDialogHelperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -234,7 +234,7 @@
       HRESULT (WINAPI *FilterDataObject)(IDocHostUIHandler *This,IDataObject *pDO,IDataObject **ppDORet);
     END_INTERFACE
   } IDocHostUIHandlerVtbl;
-  interface IDocHostUIHandler {
+  struct IDocHostUIHandler {
     CONST_VTBL struct IDocHostUIHandlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -322,7 +322,7 @@
       HRESULT (WINAPI *GetOverrideKeyPath)(IDocHostUIHandler2 *This,LPOLESTR *pchKey,DWORD dw);
     END_INTERFACE
   } IDocHostUIHandler2Vtbl;
-  interface IDocHostUIHandler2 {
+  struct IDocHostUIHandler2 {
     CONST_VTBL struct IDocHostUIHandler2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -372,7 +372,7 @@
       HRESULT (WINAPI *SetUIHandler)(ICustomDoc *This,IDocHostUIHandler *pUIHandler);
     END_INTERFACE
   } ICustomDocVtbl;
-  interface ICustomDoc {
+  struct ICustomDoc {
     CONST_VTBL struct ICustomDocVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -405,7 +405,7 @@
       HRESULT (WINAPI *ShowHelp)(IDocHostShowUI *This,HWND hwnd,LPOLESTR pszHelpFile,UINT uCommand,DWORD dwData,POINT ptMouse,IDispatch *pDispatchObjectHit);
     END_INTERFACE
   } IDocHostShowUIVtbl;
-  interface IDocHostShowUI {
+  struct IDocHostShowUI {
     CONST_VTBL struct IDocHostShowUIVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -447,7 +447,7 @@
       HRESULT (WINAPI *CreateInstanceWithContext)(IClassFactoryEx *This,IUnknown *punkContext,IUnknown *punkOuter,REFIID riid,void **ppv);
     END_INTERFACE
   } IClassFactoryExVtbl;
-  interface IClassFactoryEx {
+  struct IClassFactoryEx {
     CONST_VTBL struct IClassFactoryExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -486,7 +486,7 @@
       HRESULT (WINAPI *resizeBy)(IHTMLOMWindowServices *This,LONG x,LONG y);
     END_INTERFACE
   } IHTMLOMWindowServicesVtbl;
-  interface IHTMLOMWindowServices {
+  struct IHTMLOMWindowServices {
     CONST_VTBL struct IHTMLOMWindowServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mshtml.h b/mingw-w64-headers/include/mshtml.h
index 6a166f2..3c52cfc 100755
--- a/mingw-w64-headers/include/mshtml.h
+++ b/mingw-w64-headers/include/mshtml.h
@@ -28,87 +28,87 @@
 
 #ifndef __IHTMLFiltersCollection_FWD_DEFINED__
 #define __IHTMLFiltersCollection_FWD_DEFINED__
-typedef interface IHTMLFiltersCollection IHTMLFiltersCollection;
+typedef struct IHTMLFiltersCollection IHTMLFiltersCollection;
 #endif
 
 #ifndef __IHTMLEventObj_FWD_DEFINED__
 #define __IHTMLEventObj_FWD_DEFINED__
-typedef interface IHTMLEventObj IHTMLEventObj;
+typedef struct IHTMLEventObj IHTMLEventObj;
 #endif
 
 #ifndef __IElementBehaviorSite_FWD_DEFINED__
 #define __IElementBehaviorSite_FWD_DEFINED__
-typedef interface IElementBehaviorSite IElementBehaviorSite;
+typedef struct IElementBehaviorSite IElementBehaviorSite;
 #endif
 
 #ifndef __IElementBehavior_FWD_DEFINED__
 #define __IElementBehavior_FWD_DEFINED__
-typedef interface IElementBehavior IElementBehavior;
+typedef struct IElementBehavior IElementBehavior;
 #endif
 
 #ifndef __IElementBehaviorFactory_FWD_DEFINED__
 #define __IElementBehaviorFactory_FWD_DEFINED__
-typedef interface IElementBehaviorFactory IElementBehaviorFactory;
+typedef struct IElementBehaviorFactory IElementBehaviorFactory;
 #endif
 
 #ifndef __IElementBehaviorSiteOM_FWD_DEFINED__
 #define __IElementBehaviorSiteOM_FWD_DEFINED__
-typedef interface IElementBehaviorSiteOM IElementBehaviorSiteOM;
+typedef struct IElementBehaviorSiteOM IElementBehaviorSiteOM;
 #endif
 
 #ifndef __IElementBehaviorRender_FWD_DEFINED__
 #define __IElementBehaviorRender_FWD_DEFINED__
-typedef interface IElementBehaviorRender IElementBehaviorRender;
+typedef struct IElementBehaviorRender IElementBehaviorRender;
 #endif
 
 #ifndef __IElementBehaviorSiteRender_FWD_DEFINED__
 #define __IElementBehaviorSiteRender_FWD_DEFINED__
-typedef interface IElementBehaviorSiteRender IElementBehaviorSiteRender;
+typedef struct IElementBehaviorSiteRender IElementBehaviorSiteRender;
 #endif
 
 #ifndef __IHTMLStyle_FWD_DEFINED__
 #define __IHTMLStyle_FWD_DEFINED__
-typedef interface IHTMLStyle IHTMLStyle;
+typedef struct IHTMLStyle IHTMLStyle;
 #endif
 
 #ifndef __IHTMLStyle2_FWD_DEFINED__
 #define __IHTMLStyle2_FWD_DEFINED__
-typedef interface IHTMLStyle2 IHTMLStyle2;
+typedef struct IHTMLStyle2 IHTMLStyle2;
 #endif
 
 #ifndef __IHTMLStyle3_FWD_DEFINED__
 #define __IHTMLStyle3_FWD_DEFINED__
-typedef interface IHTMLStyle3 IHTMLStyle3;
+typedef struct IHTMLStyle3 IHTMLStyle3;
 #endif
 
 #ifndef __IHTMLStyle4_FWD_DEFINED__
 #define __IHTMLStyle4_FWD_DEFINED__
-typedef interface IHTMLStyle4 IHTMLStyle4;
+typedef struct IHTMLStyle4 IHTMLStyle4;
 #endif
 
 #ifndef __IHTMLRuleStyle_FWD_DEFINED__
 #define __IHTMLRuleStyle_FWD_DEFINED__
-typedef interface IHTMLRuleStyle IHTMLRuleStyle;
+typedef struct IHTMLRuleStyle IHTMLRuleStyle;
 #endif
 
 #ifndef __IHTMLRuleStyle2_FWD_DEFINED__
 #define __IHTMLRuleStyle2_FWD_DEFINED__
-typedef interface IHTMLRuleStyle2 IHTMLRuleStyle2;
+typedef struct IHTMLRuleStyle2 IHTMLRuleStyle2;
 #endif
 
 #ifndef __IHTMLRuleStyle3_FWD_DEFINED__
 #define __IHTMLRuleStyle3_FWD_DEFINED__
-typedef interface IHTMLRuleStyle3 IHTMLRuleStyle3;
+typedef struct IHTMLRuleStyle3 IHTMLRuleStyle3;
 #endif
 
 #ifndef __IHTMLRuleStyle4_FWD_DEFINED__
 #define __IHTMLRuleStyle4_FWD_DEFINED__
-typedef interface IHTMLRuleStyle4 IHTMLRuleStyle4;
+typedef struct IHTMLRuleStyle4 IHTMLRuleStyle4;
 #endif
 
 #ifndef __DispHTMLStyle_FWD_DEFINED__
 #define __DispHTMLStyle_FWD_DEFINED__
-typedef interface DispHTMLStyle DispHTMLStyle;
+typedef struct DispHTMLStyle DispHTMLStyle;
 #endif
 
 #ifndef __HTMLStyle_FWD_DEFINED__
@@ -122,7 +122,7 @@
 
 #ifndef __DispHTMLRuleStyle_FWD_DEFINED__
 #define __DispHTMLRuleStyle_FWD_DEFINED__
-typedef interface DispHTMLRuleStyle DispHTMLRuleStyle;
+typedef struct DispHTMLRuleStyle DispHTMLRuleStyle;
 #endif
 
 #ifndef __HTMLRuleStyle_FWD_DEFINED__
@@ -136,12 +136,12 @@
 
 #ifndef __IHTMLRenderStyle_FWD_DEFINED__
 #define __IHTMLRenderStyle_FWD_DEFINED__
-typedef interface IHTMLRenderStyle IHTMLRenderStyle;
+typedef struct IHTMLRenderStyle IHTMLRenderStyle;
 #endif
 
 #ifndef __DispHTMLRenderStyle_FWD_DEFINED__
 #define __DispHTMLRenderStyle_FWD_DEFINED__
-typedef interface DispHTMLRenderStyle DispHTMLRenderStyle;
+typedef struct DispHTMLRenderStyle DispHTMLRenderStyle;
 #endif
 
 #ifndef __HTMLRenderStyle_FWD_DEFINED__
@@ -155,22 +155,22 @@
 
 #ifndef __IHTMLCurrentStyle_FWD_DEFINED__
 #define __IHTMLCurrentStyle_FWD_DEFINED__
-typedef interface IHTMLCurrentStyle IHTMLCurrentStyle;
+typedef struct IHTMLCurrentStyle IHTMLCurrentStyle;
 #endif
 
 #ifndef __IHTMLCurrentStyle2_FWD_DEFINED__
 #define __IHTMLCurrentStyle2_FWD_DEFINED__
-typedef interface IHTMLCurrentStyle2 IHTMLCurrentStyle2;
+typedef struct IHTMLCurrentStyle2 IHTMLCurrentStyle2;
 #endif
 
 #ifndef __IHTMLCurrentStyle3_FWD_DEFINED__
 #define __IHTMLCurrentStyle3_FWD_DEFINED__
-typedef interface IHTMLCurrentStyle3 IHTMLCurrentStyle3;
+typedef struct IHTMLCurrentStyle3 IHTMLCurrentStyle3;
 #endif
 
 #ifndef __DispHTMLCurrentStyle_FWD_DEFINED__
 #define __DispHTMLCurrentStyle_FWD_DEFINED__
-typedef interface DispHTMLCurrentStyle DispHTMLCurrentStyle;
+typedef struct DispHTMLCurrentStyle DispHTMLCurrentStyle;
 #endif
 
 #ifndef __HTMLCurrentStyle_FWD_DEFINED__
@@ -184,57 +184,57 @@
 
 #ifndef __IHTMLElement_FWD_DEFINED__
 #define __IHTMLElement_FWD_DEFINED__
-typedef interface IHTMLElement IHTMLElement;
+typedef struct IHTMLElement IHTMLElement;
 #endif
 
 #ifndef __IHTMLRect_FWD_DEFINED__
 #define __IHTMLRect_FWD_DEFINED__
-typedef interface IHTMLRect IHTMLRect;
+typedef struct IHTMLRect IHTMLRect;
 #endif
 
 #ifndef __IHTMLRectCollection_FWD_DEFINED__
 #define __IHTMLRectCollection_FWD_DEFINED__
-typedef interface IHTMLRectCollection IHTMLRectCollection;
+typedef struct IHTMLRectCollection IHTMLRectCollection;
 #endif
 
 #ifndef __IHTMLDOMNode_FWD_DEFINED__
 #define __IHTMLDOMNode_FWD_DEFINED__
-typedef interface IHTMLDOMNode IHTMLDOMNode;
+typedef struct IHTMLDOMNode IHTMLDOMNode;
 #endif
 
 #ifndef __IHTMLDOMNode2_FWD_DEFINED__
 #define __IHTMLDOMNode2_FWD_DEFINED__
-typedef interface IHTMLDOMNode2 IHTMLDOMNode2;
+typedef struct IHTMLDOMNode2 IHTMLDOMNode2;
 #endif
 
 #ifndef __IHTMLDOMAttribute_FWD_DEFINED__
 #define __IHTMLDOMAttribute_FWD_DEFINED__
-typedef interface IHTMLDOMAttribute IHTMLDOMAttribute;
+typedef struct IHTMLDOMAttribute IHTMLDOMAttribute;
 #endif
 
 #ifndef __IHTMLDOMAttribute2_FWD_DEFINED__
 #define __IHTMLDOMAttribute2_FWD_DEFINED__
-typedef interface IHTMLDOMAttribute2 IHTMLDOMAttribute2;
+typedef struct IHTMLDOMAttribute2 IHTMLDOMAttribute2;
 #endif
 
 #ifndef __IHTMLDOMTextNode_FWD_DEFINED__
 #define __IHTMLDOMTextNode_FWD_DEFINED__
-typedef interface IHTMLDOMTextNode IHTMLDOMTextNode;
+typedef struct IHTMLDOMTextNode IHTMLDOMTextNode;
 #endif
 
 #ifndef __IHTMLDOMTextNode2_FWD_DEFINED__
 #define __IHTMLDOMTextNode2_FWD_DEFINED__
-typedef interface IHTMLDOMTextNode2 IHTMLDOMTextNode2;
+typedef struct IHTMLDOMTextNode2 IHTMLDOMTextNode2;
 #endif
 
 #ifndef __IHTMLDOMImplementation_FWD_DEFINED__
 #define __IHTMLDOMImplementation_FWD_DEFINED__
-typedef interface IHTMLDOMImplementation IHTMLDOMImplementation;
+typedef struct IHTMLDOMImplementation IHTMLDOMImplementation;
 #endif
 
 #ifndef __DispHTMLDOMAttribute_FWD_DEFINED__
 #define __DispHTMLDOMAttribute_FWD_DEFINED__
-typedef interface DispHTMLDOMAttribute DispHTMLDOMAttribute;
+typedef struct DispHTMLDOMAttribute DispHTMLDOMAttribute;
 #endif
 
 #ifndef __HTMLDOMAttribute_FWD_DEFINED__
@@ -248,7 +248,7 @@
 
 #ifndef __DispHTMLDOMTextNode_FWD_DEFINED__
 #define __DispHTMLDOMTextNode_FWD_DEFINED__
-typedef interface DispHTMLDOMTextNode DispHTMLDOMTextNode;
+typedef struct DispHTMLDOMTextNode DispHTMLDOMTextNode;
 #endif
 
 #ifndef __HTMLDOMTextNode_FWD_DEFINED__
@@ -262,7 +262,7 @@
 
 #ifndef __DispHTMLDOMImplementation_FWD_DEFINED__
 #define __DispHTMLDOMImplementation_FWD_DEFINED__
-typedef interface DispHTMLDOMImplementation DispHTMLDOMImplementation;
+typedef struct DispHTMLDOMImplementation DispHTMLDOMImplementation;
 #endif
 
 #ifndef __HTMLDOMImplementation_FWD_DEFINED__
@@ -276,22 +276,22 @@
 
 #ifndef __IHTMLAttributeCollection_FWD_DEFINED__
 #define __IHTMLAttributeCollection_FWD_DEFINED__
-typedef interface IHTMLAttributeCollection IHTMLAttributeCollection;
+typedef struct IHTMLAttributeCollection IHTMLAttributeCollection;
 #endif
 
 #ifndef __IHTMLAttributeCollection2_FWD_DEFINED__
 #define __IHTMLAttributeCollection2_FWD_DEFINED__
-typedef interface IHTMLAttributeCollection2 IHTMLAttributeCollection2;
+typedef struct IHTMLAttributeCollection2 IHTMLAttributeCollection2;
 #endif
 
 #ifndef __IHTMLDOMChildrenCollection_FWD_DEFINED__
 #define __IHTMLDOMChildrenCollection_FWD_DEFINED__
-typedef interface IHTMLDOMChildrenCollection IHTMLDOMChildrenCollection;
+typedef struct IHTMLDOMChildrenCollection IHTMLDOMChildrenCollection;
 #endif
 
 #ifndef __DispHTMLAttributeCollection_FWD_DEFINED__
 #define __DispHTMLAttributeCollection_FWD_DEFINED__
-typedef interface DispHTMLAttributeCollection DispHTMLAttributeCollection;
+typedef struct DispHTMLAttributeCollection DispHTMLAttributeCollection;
 #endif
 
 #ifndef __HTMLAttributeCollection_FWD_DEFINED__
@@ -305,7 +305,7 @@
 
 #ifndef __DispDOMChildrenCollection_FWD_DEFINED__
 #define __DispDOMChildrenCollection_FWD_DEFINED__
-typedef interface DispDOMChildrenCollection DispDOMChildrenCollection;
+typedef struct DispDOMChildrenCollection DispDOMChildrenCollection;
 #endif
 
 #ifndef __DOMChildrenCollection_FWD_DEFINED__
@@ -319,67 +319,67 @@
 
 #ifndef __HTMLElementEvents2_FWD_DEFINED__
 #define __HTMLElementEvents2_FWD_DEFINED__
-typedef interface HTMLElementEvents2 HTMLElementEvents2;
+typedef struct HTMLElementEvents2 HTMLElementEvents2;
 #endif
 
 #ifndef __HTMLElementEvents_FWD_DEFINED__
 #define __HTMLElementEvents_FWD_DEFINED__
-typedef interface HTMLElementEvents HTMLElementEvents;
+typedef struct HTMLElementEvents HTMLElementEvents;
 #endif
 
 #ifndef __IHTMLElementCollection_FWD_DEFINED__
 #define __IHTMLElementCollection_FWD_DEFINED__
-typedef interface IHTMLElementCollection IHTMLElementCollection;
+typedef struct IHTMLElementCollection IHTMLElementCollection;
 #endif
 
 #ifndef __IHTMLFiltersCollection_FWD_DEFINED__
 #define __IHTMLFiltersCollection_FWD_DEFINED__
-typedef interface IHTMLFiltersCollection IHTMLFiltersCollection;
+typedef struct IHTMLFiltersCollection IHTMLFiltersCollection;
 #endif
 
 #ifndef __IHTMLElement2_FWD_DEFINED__
 #define __IHTMLElement2_FWD_DEFINED__
-typedef interface IHTMLElement2 IHTMLElement2;
+typedef struct IHTMLElement2 IHTMLElement2;
 #endif
 
 #ifndef __IHTMLElement3_FWD_DEFINED__
 #define __IHTMLElement3_FWD_DEFINED__
-typedef interface IHTMLElement3 IHTMLElement3;
+typedef struct IHTMLElement3 IHTMLElement3;
 #endif
 
 #ifndef __IHTMLElement4_FWD_DEFINED__
 #define __IHTMLElement4_FWD_DEFINED__
-typedef interface IHTMLElement4 IHTMLElement4;
+typedef struct IHTMLElement4 IHTMLElement4;
 #endif
 
 #ifndef __IHTMLElementRender_FWD_DEFINED__
 #define __IHTMLElementRender_FWD_DEFINED__
-typedef interface IHTMLElementRender IHTMLElementRender;
+typedef struct IHTMLElementRender IHTMLElementRender;
 #endif
 
 #ifndef __IHTMLUniqueName_FWD_DEFINED__
 #define __IHTMLUniqueName_FWD_DEFINED__
-typedef interface IHTMLUniqueName IHTMLUniqueName;
+typedef struct IHTMLUniqueName IHTMLUniqueName;
 #endif
 
 #ifndef __IHTMLDatabinding_FWD_DEFINED__
 #define __IHTMLDatabinding_FWD_DEFINED__
-typedef interface IHTMLDatabinding IHTMLDatabinding;
+typedef struct IHTMLDatabinding IHTMLDatabinding;
 #endif
 
 #ifndef __IHTMLDocument_FWD_DEFINED__
 #define __IHTMLDocument_FWD_DEFINED__
-typedef interface IHTMLDocument IHTMLDocument;
+typedef struct IHTMLDocument IHTMLDocument;
 #endif
 
 #ifndef __IHTMLElementDefaults_FWD_DEFINED__
 #define __IHTMLElementDefaults_FWD_DEFINED__
-typedef interface IHTMLElementDefaults IHTMLElementDefaults;
+typedef struct IHTMLElementDefaults IHTMLElementDefaults;
 #endif
 
 #ifndef __DispHTMLDefaults_FWD_DEFINED__
 #define __DispHTMLDefaults_FWD_DEFINED__
-typedef interface DispHTMLDefaults DispHTMLDefaults;
+typedef struct DispHTMLDefaults DispHTMLDefaults;
 #endif
 
 #ifndef __HTMLDefaults_FWD_DEFINED__
@@ -393,42 +393,42 @@
 
 #ifndef __IHTCDefaultDispatch_FWD_DEFINED__
 #define __IHTCDefaultDispatch_FWD_DEFINED__
-typedef interface IHTCDefaultDispatch IHTCDefaultDispatch;
+typedef struct IHTCDefaultDispatch IHTCDefaultDispatch;
 #endif
 
 #ifndef __IHTCPropertyBehavior_FWD_DEFINED__
 #define __IHTCPropertyBehavior_FWD_DEFINED__
-typedef interface IHTCPropertyBehavior IHTCPropertyBehavior;
+typedef struct IHTCPropertyBehavior IHTCPropertyBehavior;
 #endif
 
 #ifndef __IHTCMethodBehavior_FWD_DEFINED__
 #define __IHTCMethodBehavior_FWD_DEFINED__
-typedef interface IHTCMethodBehavior IHTCMethodBehavior;
+typedef struct IHTCMethodBehavior IHTCMethodBehavior;
 #endif
 
 #ifndef __IHTCEventBehavior_FWD_DEFINED__
 #define __IHTCEventBehavior_FWD_DEFINED__
-typedef interface IHTCEventBehavior IHTCEventBehavior;
+typedef struct IHTCEventBehavior IHTCEventBehavior;
 #endif
 
 #ifndef __IHTCAttachBehavior_FWD_DEFINED__
 #define __IHTCAttachBehavior_FWD_DEFINED__
-typedef interface IHTCAttachBehavior IHTCAttachBehavior;
+typedef struct IHTCAttachBehavior IHTCAttachBehavior;
 #endif
 
 #ifndef __IHTCAttachBehavior2_FWD_DEFINED__
 #define __IHTCAttachBehavior2_FWD_DEFINED__
-typedef interface IHTCAttachBehavior2 IHTCAttachBehavior2;
+typedef struct IHTCAttachBehavior2 IHTCAttachBehavior2;
 #endif
 
 #ifndef __IHTCDescBehavior_FWD_DEFINED__
 #define __IHTCDescBehavior_FWD_DEFINED__
-typedef interface IHTCDescBehavior IHTCDescBehavior;
+typedef struct IHTCDescBehavior IHTCDescBehavior;
 #endif
 
 #ifndef __DispHTCDefaultDispatch_FWD_DEFINED__
 #define __DispHTCDefaultDispatch_FWD_DEFINED__
-typedef interface DispHTCDefaultDispatch DispHTCDefaultDispatch;
+typedef struct DispHTCDefaultDispatch DispHTCDefaultDispatch;
 #endif
 
 #ifndef __HTCDefaultDispatch_FWD_DEFINED__
@@ -442,7 +442,7 @@
 
 #ifndef __DispHTCPropertyBehavior_FWD_DEFINED__
 #define __DispHTCPropertyBehavior_FWD_DEFINED__
-typedef interface DispHTCPropertyBehavior DispHTCPropertyBehavior;
+typedef struct DispHTCPropertyBehavior DispHTCPropertyBehavior;
 #endif
 
 #ifndef __HTCPropertyBehavior_FWD_DEFINED__
@@ -456,7 +456,7 @@
 
 #ifndef __DispHTCMethodBehavior_FWD_DEFINED__
 #define __DispHTCMethodBehavior_FWD_DEFINED__
-typedef interface DispHTCMethodBehavior DispHTCMethodBehavior;
+typedef struct DispHTCMethodBehavior DispHTCMethodBehavior;
 #endif
 
 #ifndef __HTCMethodBehavior_FWD_DEFINED__
@@ -470,7 +470,7 @@
 
 #ifndef __DispHTCEventBehavior_FWD_DEFINED__
 #define __DispHTCEventBehavior_FWD_DEFINED__
-typedef interface DispHTCEventBehavior DispHTCEventBehavior;
+typedef struct DispHTCEventBehavior DispHTCEventBehavior;
 #endif
 
 #ifndef __HTCEventBehavior_FWD_DEFINED__
@@ -484,7 +484,7 @@
 
 #ifndef __DispHTCAttachBehavior_FWD_DEFINED__
 #define __DispHTCAttachBehavior_FWD_DEFINED__
-typedef interface DispHTCAttachBehavior DispHTCAttachBehavior;
+typedef struct DispHTCAttachBehavior DispHTCAttachBehavior;
 #endif
 
 #ifndef __HTCAttachBehavior_FWD_DEFINED__
@@ -498,7 +498,7 @@
 
 #ifndef __DispHTCDescBehavior_FWD_DEFINED__
 #define __DispHTCDescBehavior_FWD_DEFINED__
-typedef interface DispHTCDescBehavior DispHTCDescBehavior;
+typedef struct DispHTCDescBehavior DispHTCDescBehavior;
 #endif
 
 #ifndef __HTCDescBehavior_FWD_DEFINED__
@@ -512,7 +512,7 @@
 
 #ifndef __IHTMLUrnCollection_FWD_DEFINED__
 #define __IHTMLUrnCollection_FWD_DEFINED__
-typedef interface IHTMLUrnCollection IHTMLUrnCollection;
+typedef struct IHTMLUrnCollection IHTMLUrnCollection;
 #endif
 
 #ifndef __HTMLUrnCollection_FWD_DEFINED__
@@ -526,12 +526,12 @@
 
 #ifndef __IHTMLGenericElement_FWD_DEFINED__
 #define __IHTMLGenericElement_FWD_DEFINED__
-typedef interface IHTMLGenericElement IHTMLGenericElement;
+typedef struct IHTMLGenericElement IHTMLGenericElement;
 #endif
 
 #ifndef __DispHTMLGenericElement_FWD_DEFINED__
 #define __DispHTMLGenericElement_FWD_DEFINED__
-typedef interface DispHTMLGenericElement DispHTMLGenericElement;
+typedef struct DispHTMLGenericElement DispHTMLGenericElement;
 #endif
 
 #ifndef __HTMLGenericElement_FWD_DEFINED__
@@ -545,12 +545,12 @@
 
 #ifndef __IHTMLStyleSheetRule_FWD_DEFINED__
 #define __IHTMLStyleSheetRule_FWD_DEFINED__
-typedef interface IHTMLStyleSheetRule IHTMLStyleSheetRule;
+typedef struct IHTMLStyleSheetRule IHTMLStyleSheetRule;
 #endif
 
 #ifndef __IHTMLStyleSheetRulesCollection_FWD_DEFINED__
 #define __IHTMLStyleSheetRulesCollection_FWD_DEFINED__
-typedef interface IHTMLStyleSheetRulesCollection IHTMLStyleSheetRulesCollection;
+typedef struct IHTMLStyleSheetRulesCollection IHTMLStyleSheetRulesCollection;
 #endif
 
 #ifndef __HTMLStyleSheetRule_FWD_DEFINED__
@@ -573,12 +573,12 @@
 
 #ifndef __IHTMLStyleSheetPage_FWD_DEFINED__
 #define __IHTMLStyleSheetPage_FWD_DEFINED__
-typedef interface IHTMLStyleSheetPage IHTMLStyleSheetPage;
+typedef struct IHTMLStyleSheetPage IHTMLStyleSheetPage;
 #endif
 
 #ifndef __IHTMLStyleSheetPagesCollection_FWD_DEFINED__
 #define __IHTMLStyleSheetPagesCollection_FWD_DEFINED__
-typedef interface IHTMLStyleSheetPagesCollection IHTMLStyleSheetPagesCollection;
+typedef struct IHTMLStyleSheetPagesCollection IHTMLStyleSheetPagesCollection;
 #endif
 
 #ifndef __HTMLStyleSheetPage_FWD_DEFINED__
@@ -601,22 +601,22 @@
 
 #ifndef __IHTMLStyleSheetsCollection_FWD_DEFINED__
 #define __IHTMLStyleSheetsCollection_FWD_DEFINED__
-typedef interface IHTMLStyleSheetsCollection IHTMLStyleSheetsCollection;
+typedef struct IHTMLStyleSheetsCollection IHTMLStyleSheetsCollection;
 #endif
 
 #ifndef __IHTMLStyleSheet_FWD_DEFINED__
 #define __IHTMLStyleSheet_FWD_DEFINED__
-typedef interface IHTMLStyleSheet IHTMLStyleSheet;
+typedef struct IHTMLStyleSheet IHTMLStyleSheet;
 #endif
 
 #ifndef __IHTMLStyleSheet2_FWD_DEFINED__
 #define __IHTMLStyleSheet2_FWD_DEFINED__
-typedef interface IHTMLStyleSheet2 IHTMLStyleSheet2;
+typedef struct IHTMLStyleSheet2 IHTMLStyleSheet2;
 #endif
 
 #ifndef __DispHTMLStyleSheet_FWD_DEFINED__
 #define __DispHTMLStyleSheet_FWD_DEFINED__
-typedef interface DispHTMLStyleSheet DispHTMLStyleSheet;
+typedef struct DispHTMLStyleSheet DispHTMLStyleSheet;
 #endif
 
 #ifndef __HTMLStyleSheet_FWD_DEFINED__
@@ -639,32 +639,32 @@
 
 #ifndef __HTMLLinkElementEvents2_FWD_DEFINED__
 #define __HTMLLinkElementEvents2_FWD_DEFINED__
-typedef interface HTMLLinkElementEvents2 HTMLLinkElementEvents2;
+typedef struct HTMLLinkElementEvents2 HTMLLinkElementEvents2;
 #endif
 
 #ifndef __HTMLLinkElementEvents_FWD_DEFINED__
 #define __HTMLLinkElementEvents_FWD_DEFINED__
-typedef interface HTMLLinkElementEvents HTMLLinkElementEvents;
+typedef struct HTMLLinkElementEvents HTMLLinkElementEvents;
 #endif
 
 #ifndef __IHTMLLinkElement_FWD_DEFINED__
 #define __IHTMLLinkElement_FWD_DEFINED__
-typedef interface IHTMLLinkElement IHTMLLinkElement;
+typedef struct IHTMLLinkElement IHTMLLinkElement;
 #endif
 
 #ifndef __IHTMLLinkElement2_FWD_DEFINED__
 #define __IHTMLLinkElement2_FWD_DEFINED__
-typedef interface IHTMLLinkElement2 IHTMLLinkElement2;
+typedef struct IHTMLLinkElement2 IHTMLLinkElement2;
 #endif
 
 #ifndef __IHTMLLinkElement3_FWD_DEFINED__
 #define __IHTMLLinkElement3_FWD_DEFINED__
-typedef interface IHTMLLinkElement3 IHTMLLinkElement3;
+typedef struct IHTMLLinkElement3 IHTMLLinkElement3;
 #endif
 
 #ifndef __DispHTMLLinkElement_FWD_DEFINED__
 #define __DispHTMLLinkElement_FWD_DEFINED__
-typedef interface DispHTMLLinkElement DispHTMLLinkElement;
+typedef struct DispHTMLLinkElement DispHTMLLinkElement;
 #endif
 
 #ifndef __HTMLLinkElement_FWD_DEFINED__
@@ -678,57 +678,57 @@
 
 #ifndef __IHTMLTxtRange_FWD_DEFINED__
 #define __IHTMLTxtRange_FWD_DEFINED__
-typedef interface IHTMLTxtRange IHTMLTxtRange;
+typedef struct IHTMLTxtRange IHTMLTxtRange;
 #endif
 
 #ifndef __IHTMLTextRangeMetrics_FWD_DEFINED__
 #define __IHTMLTextRangeMetrics_FWD_DEFINED__
-typedef interface IHTMLTextRangeMetrics IHTMLTextRangeMetrics;
+typedef struct IHTMLTextRangeMetrics IHTMLTextRangeMetrics;
 #endif
 
 #ifndef __IHTMLTextRangeMetrics2_FWD_DEFINED__
 #define __IHTMLTextRangeMetrics2_FWD_DEFINED__
-typedef interface IHTMLTextRangeMetrics2 IHTMLTextRangeMetrics2;
+typedef struct IHTMLTextRangeMetrics2 IHTMLTextRangeMetrics2;
 #endif
 
 #ifndef __IHTMLTxtRangeCollection_FWD_DEFINED__
 #define __IHTMLTxtRangeCollection_FWD_DEFINED__
-typedef interface IHTMLTxtRangeCollection IHTMLTxtRangeCollection;
+typedef struct IHTMLTxtRangeCollection IHTMLTxtRangeCollection;
 #endif
 
 #ifndef __HTMLFormElementEvents2_FWD_DEFINED__
 #define __HTMLFormElementEvents2_FWD_DEFINED__
-typedef interface HTMLFormElementEvents2 HTMLFormElementEvents2;
+typedef struct HTMLFormElementEvents2 HTMLFormElementEvents2;
 #endif
 
 #ifndef __HTMLFormElementEvents_FWD_DEFINED__
 #define __HTMLFormElementEvents_FWD_DEFINED__
-typedef interface HTMLFormElementEvents HTMLFormElementEvents;
+typedef struct HTMLFormElementEvents HTMLFormElementEvents;
 #endif
 
 #ifndef __IHTMLFormElement_FWD_DEFINED__
 #define __IHTMLFormElement_FWD_DEFINED__
-typedef interface IHTMLFormElement IHTMLFormElement;
+typedef struct IHTMLFormElement IHTMLFormElement;
 #endif
 
 #ifndef __IHTMLFormElement2_FWD_DEFINED__
 #define __IHTMLFormElement2_FWD_DEFINED__
-typedef interface IHTMLFormElement2 IHTMLFormElement2;
+typedef struct IHTMLFormElement2 IHTMLFormElement2;
 #endif
 
 #ifndef __IHTMLFormElement3_FWD_DEFINED__
 #define __IHTMLFormElement3_FWD_DEFINED__
-typedef interface IHTMLFormElement3 IHTMLFormElement3;
+typedef struct IHTMLFormElement3 IHTMLFormElement3;
 #endif
 
 #ifndef __IHTMLSubmitData_FWD_DEFINED__
 #define __IHTMLSubmitData_FWD_DEFINED__
-typedef interface IHTMLSubmitData IHTMLSubmitData;
+typedef struct IHTMLSubmitData IHTMLSubmitData;
 #endif
 
 #ifndef __DispHTMLFormElement_FWD_DEFINED__
 #define __DispHTMLFormElement_FWD_DEFINED__
-typedef interface DispHTMLFormElement DispHTMLFormElement;
+typedef struct DispHTMLFormElement DispHTMLFormElement;
 #endif
 
 #ifndef __HTMLFormElement_FWD_DEFINED__
@@ -742,27 +742,27 @@
 
 #ifndef __HTMLControlElementEvents2_FWD_DEFINED__
 #define __HTMLControlElementEvents2_FWD_DEFINED__
-typedef interface HTMLControlElementEvents2 HTMLControlElementEvents2;
+typedef struct HTMLControlElementEvents2 HTMLControlElementEvents2;
 #endif
 
 #ifndef __HTMLControlElementEvents_FWD_DEFINED__
 #define __HTMLControlElementEvents_FWD_DEFINED__
-typedef interface HTMLControlElementEvents HTMLControlElementEvents;
+typedef struct HTMLControlElementEvents HTMLControlElementEvents;
 #endif
 
 #ifndef __IHTMLControlElement_FWD_DEFINED__
 #define __IHTMLControlElement_FWD_DEFINED__
-typedef interface IHTMLControlElement IHTMLControlElement;
+typedef struct IHTMLControlElement IHTMLControlElement;
 #endif
 
 #ifndef __IHTMLTextElement_FWD_DEFINED__
 #define __IHTMLTextElement_FWD_DEFINED__
-typedef interface IHTMLTextElement IHTMLTextElement;
+typedef struct IHTMLTextElement IHTMLTextElement;
 #endif
 
 #ifndef __DispHTMLTextElement_FWD_DEFINED__
 #define __DispHTMLTextElement_FWD_DEFINED__
-typedef interface DispHTMLTextElement DispHTMLTextElement;
+typedef struct DispHTMLTextElement DispHTMLTextElement;
 #endif
 
 #ifndef __HTMLTextElement_FWD_DEFINED__
@@ -776,57 +776,57 @@
 
 #ifndef __HTMLTextContainerEvents2_FWD_DEFINED__
 #define __HTMLTextContainerEvents2_FWD_DEFINED__
-typedef interface HTMLTextContainerEvents2 HTMLTextContainerEvents2;
+typedef struct HTMLTextContainerEvents2 HTMLTextContainerEvents2;
 #endif
 
 #ifndef __HTMLTextContainerEvents_FWD_DEFINED__
 #define __HTMLTextContainerEvents_FWD_DEFINED__
-typedef interface HTMLTextContainerEvents HTMLTextContainerEvents;
+typedef struct HTMLTextContainerEvents HTMLTextContainerEvents;
 #endif
 
 #ifndef __IHTMLTextContainer_FWD_DEFINED__
 #define __IHTMLTextContainer_FWD_DEFINED__
-typedef interface IHTMLTextContainer IHTMLTextContainer;
+typedef struct IHTMLTextContainer IHTMLTextContainer;
 #endif
 
 #ifndef __IHTMLControlRange_FWD_DEFINED__
 #define __IHTMLControlRange_FWD_DEFINED__
-typedef interface IHTMLControlRange IHTMLControlRange;
+typedef struct IHTMLControlRange IHTMLControlRange;
 #endif
 
 #ifndef __IHTMLControlRange2_FWD_DEFINED__
 #define __IHTMLControlRange2_FWD_DEFINED__
-typedef interface IHTMLControlRange2 IHTMLControlRange2;
+typedef struct IHTMLControlRange2 IHTMLControlRange2;
 #endif
 
 #ifndef __HTMLImgEvents2_FWD_DEFINED__
 #define __HTMLImgEvents2_FWD_DEFINED__
-typedef interface HTMLImgEvents2 HTMLImgEvents2;
+typedef struct HTMLImgEvents2 HTMLImgEvents2;
 #endif
 
 #ifndef __HTMLImgEvents_FWD_DEFINED__
 #define __HTMLImgEvents_FWD_DEFINED__
-typedef interface HTMLImgEvents HTMLImgEvents;
+typedef struct HTMLImgEvents HTMLImgEvents;
 #endif
 
 #ifndef __IHTMLImgElement_FWD_DEFINED__
 #define __IHTMLImgElement_FWD_DEFINED__
-typedef interface IHTMLImgElement IHTMLImgElement;
+typedef struct IHTMLImgElement IHTMLImgElement;
 #endif
 
 #ifndef __IHTMLImgElement2_FWD_DEFINED__
 #define __IHTMLImgElement2_FWD_DEFINED__
-typedef interface IHTMLImgElement2 IHTMLImgElement2;
+typedef struct IHTMLImgElement2 IHTMLImgElement2;
 #endif
 
 #ifndef __IHTMLImageElementFactory_FWD_DEFINED__
 #define __IHTMLImageElementFactory_FWD_DEFINED__
-typedef interface IHTMLImageElementFactory IHTMLImageElementFactory;
+typedef struct IHTMLImageElementFactory IHTMLImageElementFactory;
 #endif
 
 #ifndef __DispHTMLImg_FWD_DEFINED__
 #define __DispHTMLImg_FWD_DEFINED__
-typedef interface DispHTMLImg DispHTMLImg;
+typedef struct DispHTMLImg DispHTMLImg;
 #endif
 
 #ifndef __HTMLImg_FWD_DEFINED__
@@ -849,17 +849,17 @@
 
 #ifndef __IHTMLBodyElement_FWD_DEFINED__
 #define __IHTMLBodyElement_FWD_DEFINED__
-typedef interface IHTMLBodyElement IHTMLBodyElement;
+typedef struct IHTMLBodyElement IHTMLBodyElement;
 #endif
 
 #ifndef __IHTMLBodyElement2_FWD_DEFINED__
 #define __IHTMLBodyElement2_FWD_DEFINED__
-typedef interface IHTMLBodyElement2 IHTMLBodyElement2;
+typedef struct IHTMLBodyElement2 IHTMLBodyElement2;
 #endif
 
 #ifndef __DispHTMLBody_FWD_DEFINED__
 #define __DispHTMLBody_FWD_DEFINED__
-typedef interface DispHTMLBody DispHTMLBody;
+typedef struct DispHTMLBody DispHTMLBody;
 #endif
 
 #ifndef __HTMLBody_FWD_DEFINED__
@@ -873,12 +873,12 @@
 
 #ifndef __IHTMLFontElement_FWD_DEFINED__
 #define __IHTMLFontElement_FWD_DEFINED__
-typedef interface IHTMLFontElement IHTMLFontElement;
+typedef struct IHTMLFontElement IHTMLFontElement;
 #endif
 
 #ifndef __DispHTMLFontElement_FWD_DEFINED__
 #define __DispHTMLFontElement_FWD_DEFINED__
-typedef interface DispHTMLFontElement DispHTMLFontElement;
+typedef struct DispHTMLFontElement DispHTMLFontElement;
 #endif
 
 #ifndef __HTMLFontElement_FWD_DEFINED__
@@ -892,27 +892,27 @@
 
 #ifndef __HTMLAnchorEvents2_FWD_DEFINED__
 #define __HTMLAnchorEvents2_FWD_DEFINED__
-typedef interface HTMLAnchorEvents2 HTMLAnchorEvents2;
+typedef struct HTMLAnchorEvents2 HTMLAnchorEvents2;
 #endif
 
 #ifndef __HTMLAnchorEvents_FWD_DEFINED__
 #define __HTMLAnchorEvents_FWD_DEFINED__
-typedef interface HTMLAnchorEvents HTMLAnchorEvents;
+typedef struct HTMLAnchorEvents HTMLAnchorEvents;
 #endif
 
 #ifndef __IHTMLAnchorElement_FWD_DEFINED__
 #define __IHTMLAnchorElement_FWD_DEFINED__
-typedef interface IHTMLAnchorElement IHTMLAnchorElement;
+typedef struct IHTMLAnchorElement IHTMLAnchorElement;
 #endif
 
 #ifndef __IHTMLAnchorElement2_FWD_DEFINED__
 #define __IHTMLAnchorElement2_FWD_DEFINED__
-typedef interface IHTMLAnchorElement2 IHTMLAnchorElement2;
+typedef struct IHTMLAnchorElement2 IHTMLAnchorElement2;
 #endif
 
 #ifndef __DispHTMLAnchorElement_FWD_DEFINED__
 #define __DispHTMLAnchorElement_FWD_DEFINED__
-typedef interface DispHTMLAnchorElement DispHTMLAnchorElement;
+typedef struct DispHTMLAnchorElement DispHTMLAnchorElement;
 #endif
 
 #ifndef __HTMLAnchorElement_FWD_DEFINED__
@@ -926,27 +926,27 @@
 
 #ifndef __HTMLLabelEvents2_FWD_DEFINED__
 #define __HTMLLabelEvents2_FWD_DEFINED__
-typedef interface HTMLLabelEvents2 HTMLLabelEvents2;
+typedef struct HTMLLabelEvents2 HTMLLabelEvents2;
 #endif
 
 #ifndef __HTMLLabelEvents_FWD_DEFINED__
 #define __HTMLLabelEvents_FWD_DEFINED__
-typedef interface HTMLLabelEvents HTMLLabelEvents;
+typedef struct HTMLLabelEvents HTMLLabelEvents;
 #endif
 
 #ifndef __IHTMLLabelElement_FWD_DEFINED__
 #define __IHTMLLabelElement_FWD_DEFINED__
-typedef interface IHTMLLabelElement IHTMLLabelElement;
+typedef struct IHTMLLabelElement IHTMLLabelElement;
 #endif
 
 #ifndef __IHTMLLabelElement2_FWD_DEFINED__
 #define __IHTMLLabelElement2_FWD_DEFINED__
-typedef interface IHTMLLabelElement2 IHTMLLabelElement2;
+typedef struct IHTMLLabelElement2 IHTMLLabelElement2;
 #endif
 
 #ifndef __DispHTMLLabelElement_FWD_DEFINED__
 #define __DispHTMLLabelElement_FWD_DEFINED__
-typedef interface DispHTMLLabelElement DispHTMLLabelElement;
+typedef struct DispHTMLLabelElement DispHTMLLabelElement;
 #endif
 
 #ifndef __HTMLLabelElement_FWD_DEFINED__
@@ -960,17 +960,17 @@
 
 #ifndef __IHTMLListElement_FWD_DEFINED__
 #define __IHTMLListElement_FWD_DEFINED__
-typedef interface IHTMLListElement IHTMLListElement;
+typedef struct IHTMLListElement IHTMLListElement;
 #endif
 
 #ifndef __IHTMLListElement2_FWD_DEFINED__
 #define __IHTMLListElement2_FWD_DEFINED__
-typedef interface IHTMLListElement2 IHTMLListElement2;
+typedef struct IHTMLListElement2 IHTMLListElement2;
 #endif
 
 #ifndef __DispHTMLListElement_FWD_DEFINED__
 #define __DispHTMLListElement_FWD_DEFINED__
-typedef interface DispHTMLListElement DispHTMLListElement;
+typedef struct DispHTMLListElement DispHTMLListElement;
 #endif
 
 #ifndef __HTMLListElement_FWD_DEFINED__
@@ -984,12 +984,12 @@
 
 #ifndef __IHTMLUListElement_FWD_DEFINED__
 #define __IHTMLUListElement_FWD_DEFINED__
-typedef interface IHTMLUListElement IHTMLUListElement;
+typedef struct IHTMLUListElement IHTMLUListElement;
 #endif
 
 #ifndef __DispHTMLUListElement_FWD_DEFINED__
 #define __DispHTMLUListElement_FWD_DEFINED__
-typedef interface DispHTMLUListElement DispHTMLUListElement;
+typedef struct DispHTMLUListElement DispHTMLUListElement;
 #endif
 
 #ifndef __HTMLUListElement_FWD_DEFINED__
@@ -1003,12 +1003,12 @@
 
 #ifndef __IHTMLOListElement_FWD_DEFINED__
 #define __IHTMLOListElement_FWD_DEFINED__
-typedef interface IHTMLOListElement IHTMLOListElement;
+typedef struct IHTMLOListElement IHTMLOListElement;
 #endif
 
 #ifndef __DispHTMLOListElement_FWD_DEFINED__
 #define __DispHTMLOListElement_FWD_DEFINED__
-typedef interface DispHTMLOListElement DispHTMLOListElement;
+typedef struct DispHTMLOListElement DispHTMLOListElement;
 #endif
 
 #ifndef __HTMLOListElement_FWD_DEFINED__
@@ -1022,12 +1022,12 @@
 
 #ifndef __IHTMLLIElement_FWD_DEFINED__
 #define __IHTMLLIElement_FWD_DEFINED__
-typedef interface IHTMLLIElement IHTMLLIElement;
+typedef struct IHTMLLIElement IHTMLLIElement;
 #endif
 
 #ifndef __DispHTMLLIElement_FWD_DEFINED__
 #define __DispHTMLLIElement_FWD_DEFINED__
-typedef interface DispHTMLLIElement DispHTMLLIElement;
+typedef struct DispHTMLLIElement DispHTMLLIElement;
 #endif
 
 #ifndef __HTMLLIElement_FWD_DEFINED__
@@ -1041,17 +1041,17 @@
 
 #ifndef __IHTMLBlockElement_FWD_DEFINED__
 #define __IHTMLBlockElement_FWD_DEFINED__
-typedef interface IHTMLBlockElement IHTMLBlockElement;
+typedef struct IHTMLBlockElement IHTMLBlockElement;
 #endif
 
 #ifndef __IHTMLBlockElement2_FWD_DEFINED__
 #define __IHTMLBlockElement2_FWD_DEFINED__
-typedef interface IHTMLBlockElement2 IHTMLBlockElement2;
+typedef struct IHTMLBlockElement2 IHTMLBlockElement2;
 #endif
 
 #ifndef __DispHTMLBlockElement_FWD_DEFINED__
 #define __DispHTMLBlockElement_FWD_DEFINED__
-typedef interface DispHTMLBlockElement DispHTMLBlockElement;
+typedef struct DispHTMLBlockElement DispHTMLBlockElement;
 #endif
 
 #ifndef __HTMLBlockElement_FWD_DEFINED__
@@ -1065,12 +1065,12 @@
 
 #ifndef __IHTMLDivElement_FWD_DEFINED__
 #define __IHTMLDivElement_FWD_DEFINED__
-typedef interface IHTMLDivElement IHTMLDivElement;
+typedef struct IHTMLDivElement IHTMLDivElement;
 #endif
 
 #ifndef __DispHTMLDivElement_FWD_DEFINED__
 #define __DispHTMLDivElement_FWD_DEFINED__
-typedef interface DispHTMLDivElement DispHTMLDivElement;
+typedef struct DispHTMLDivElement DispHTMLDivElement;
 #endif
 
 #ifndef __HTMLDivElement_FWD_DEFINED__
@@ -1084,12 +1084,12 @@
 
 #ifndef __IHTMLDDElement_FWD_DEFINED__
 #define __IHTMLDDElement_FWD_DEFINED__
-typedef interface IHTMLDDElement IHTMLDDElement;
+typedef struct IHTMLDDElement IHTMLDDElement;
 #endif
 
 #ifndef __DispHTMLDDElement_FWD_DEFINED__
 #define __DispHTMLDDElement_FWD_DEFINED__
-typedef interface DispHTMLDDElement DispHTMLDDElement;
+typedef struct DispHTMLDDElement DispHTMLDDElement;
 #endif
 
 #ifndef __HTMLDDElement_FWD_DEFINED__
@@ -1103,12 +1103,12 @@
 
 #ifndef __IHTMLDTElement_FWD_DEFINED__
 #define __IHTMLDTElement_FWD_DEFINED__
-typedef interface IHTMLDTElement IHTMLDTElement;
+typedef struct IHTMLDTElement IHTMLDTElement;
 #endif
 
 #ifndef __DispHTMLDTElement_FWD_DEFINED__
 #define __DispHTMLDTElement_FWD_DEFINED__
-typedef interface DispHTMLDTElement DispHTMLDTElement;
+typedef struct DispHTMLDTElement DispHTMLDTElement;
 #endif
 
 #ifndef __HTMLDTElement_FWD_DEFINED__
@@ -1122,12 +1122,12 @@
 
 #ifndef __IHTMLBRElement_FWD_DEFINED__
 #define __IHTMLBRElement_FWD_DEFINED__
-typedef interface IHTMLBRElement IHTMLBRElement;
+typedef struct IHTMLBRElement IHTMLBRElement;
 #endif
 
 #ifndef __DispHTMLBRElement_FWD_DEFINED__
 #define __DispHTMLBRElement_FWD_DEFINED__
-typedef interface DispHTMLBRElement DispHTMLBRElement;
+typedef struct DispHTMLBRElement DispHTMLBRElement;
 #endif
 
 #ifndef __HTMLBRElement_FWD_DEFINED__
@@ -1141,12 +1141,12 @@
 
 #ifndef __IHTMLDListElement_FWD_DEFINED__
 #define __IHTMLDListElement_FWD_DEFINED__
-typedef interface IHTMLDListElement IHTMLDListElement;
+typedef struct IHTMLDListElement IHTMLDListElement;
 #endif
 
 #ifndef __DispHTMLDListElement_FWD_DEFINED__
 #define __DispHTMLDListElement_FWD_DEFINED__
-typedef interface DispHTMLDListElement DispHTMLDListElement;
+typedef struct DispHTMLDListElement DispHTMLDListElement;
 #endif
 
 #ifndef __HTMLDListElement_FWD_DEFINED__
@@ -1160,12 +1160,12 @@
 
 #ifndef __IHTMLHRElement_FWD_DEFINED__
 #define __IHTMLHRElement_FWD_DEFINED__
-typedef interface IHTMLHRElement IHTMLHRElement;
+typedef struct IHTMLHRElement IHTMLHRElement;
 #endif
 
 #ifndef __DispHTMLHRElement_FWD_DEFINED__
 #define __DispHTMLHRElement_FWD_DEFINED__
-typedef interface DispHTMLHRElement DispHTMLHRElement;
+typedef struct DispHTMLHRElement DispHTMLHRElement;
 #endif
 
 #ifndef __HTMLHRElement_FWD_DEFINED__
@@ -1179,12 +1179,12 @@
 
 #ifndef __IHTMLParaElement_FWD_DEFINED__
 #define __IHTMLParaElement_FWD_DEFINED__
-typedef interface IHTMLParaElement IHTMLParaElement;
+typedef struct IHTMLParaElement IHTMLParaElement;
 #endif
 
 #ifndef __DispHTMLParaElement_FWD_DEFINED__
 #define __DispHTMLParaElement_FWD_DEFINED__
-typedef interface DispHTMLParaElement DispHTMLParaElement;
+typedef struct DispHTMLParaElement DispHTMLParaElement;
 #endif
 
 #ifndef __HTMLParaElement_FWD_DEFINED__
@@ -1198,17 +1198,17 @@
 
 #ifndef __IHTMLElementCollection2_FWD_DEFINED__
 #define __IHTMLElementCollection2_FWD_DEFINED__
-typedef interface IHTMLElementCollection2 IHTMLElementCollection2;
+typedef struct IHTMLElementCollection2 IHTMLElementCollection2;
 #endif
 
 #ifndef __IHTMLElementCollection3_FWD_DEFINED__
 #define __IHTMLElementCollection3_FWD_DEFINED__
-typedef interface IHTMLElementCollection3 IHTMLElementCollection3;
+typedef struct IHTMLElementCollection3 IHTMLElementCollection3;
 #endif
 
 #ifndef __DispHTMLElementCollection_FWD_DEFINED__
 #define __DispHTMLElementCollection_FWD_DEFINED__
-typedef interface DispHTMLElementCollection DispHTMLElementCollection;
+typedef struct DispHTMLElementCollection DispHTMLElementCollection;
 #endif
 
 #ifndef __HTMLElementCollection_FWD_DEFINED__
@@ -1222,12 +1222,12 @@
 
 #ifndef __IHTMLHeaderElement_FWD_DEFINED__
 #define __IHTMLHeaderElement_FWD_DEFINED__
-typedef interface IHTMLHeaderElement IHTMLHeaderElement;
+typedef struct IHTMLHeaderElement IHTMLHeaderElement;
 #endif
 
 #ifndef __DispHTMLHeaderElement_FWD_DEFINED__
 #define __DispHTMLHeaderElement_FWD_DEFINED__
-typedef interface DispHTMLHeaderElement DispHTMLHeaderElement;
+typedef struct DispHTMLHeaderElement DispHTMLHeaderElement;
 #endif
 
 #ifndef __HTMLHeaderElement_FWD_DEFINED__
@@ -1241,32 +1241,32 @@
 
 #ifndef __HTMLSelectElementEvents2_FWD_DEFINED__
 #define __HTMLSelectElementEvents2_FWD_DEFINED__
-typedef interface HTMLSelectElementEvents2 HTMLSelectElementEvents2;
+typedef struct HTMLSelectElementEvents2 HTMLSelectElementEvents2;
 #endif
 
 #ifndef __HTMLSelectElementEvents_FWD_DEFINED__
 #define __HTMLSelectElementEvents_FWD_DEFINED__
-typedef interface HTMLSelectElementEvents HTMLSelectElementEvents;
+typedef struct HTMLSelectElementEvents HTMLSelectElementEvents;
 #endif
 
 #ifndef __IHTMLSelectElement_FWD_DEFINED__
 #define __IHTMLSelectElement_FWD_DEFINED__
-typedef interface IHTMLSelectElement IHTMLSelectElement;
+typedef struct IHTMLSelectElement IHTMLSelectElement;
 #endif
 
 #ifndef __IHTMLSelectElement2_FWD_DEFINED__
 #define __IHTMLSelectElement2_FWD_DEFINED__
-typedef interface IHTMLSelectElement2 IHTMLSelectElement2;
+typedef struct IHTMLSelectElement2 IHTMLSelectElement2;
 #endif
 
 #ifndef __IHTMLSelectElement4_FWD_DEFINED__
 #define __IHTMLSelectElement4_FWD_DEFINED__
-typedef interface IHTMLSelectElement4 IHTMLSelectElement4;
+typedef struct IHTMLSelectElement4 IHTMLSelectElement4;
 #endif
 
 #ifndef __DispHTMLSelectElement_FWD_DEFINED__
 #define __DispHTMLSelectElement_FWD_DEFINED__
-typedef interface DispHTMLSelectElement DispHTMLSelectElement;
+typedef struct DispHTMLSelectElement DispHTMLSelectElement;
 #endif
 
 #ifndef __HTMLSelectElement_FWD_DEFINED__
@@ -1280,32 +1280,32 @@
 
 #ifndef __IHTMLSelectionObject_FWD_DEFINED__
 #define __IHTMLSelectionObject_FWD_DEFINED__
-typedef interface IHTMLSelectionObject IHTMLSelectionObject;
+typedef struct IHTMLSelectionObject IHTMLSelectionObject;
 #endif
 
 #ifndef __IHTMLSelectionObject2_FWD_DEFINED__
 #define __IHTMLSelectionObject2_FWD_DEFINED__
-typedef interface IHTMLSelectionObject2 IHTMLSelectionObject2;
+typedef struct IHTMLSelectionObject2 IHTMLSelectionObject2;
 #endif
 
 #ifndef __IHTMLOptionElement_FWD_DEFINED__
 #define __IHTMLOptionElement_FWD_DEFINED__
-typedef interface IHTMLOptionElement IHTMLOptionElement;
+typedef struct IHTMLOptionElement IHTMLOptionElement;
 #endif
 
 #ifndef __IHTMLOptionElement3_FWD_DEFINED__
 #define __IHTMLOptionElement3_FWD_DEFINED__
-typedef interface IHTMLOptionElement3 IHTMLOptionElement3;
+typedef struct IHTMLOptionElement3 IHTMLOptionElement3;
 #endif
 
 #ifndef __IHTMLOptionElementFactory_FWD_DEFINED__
 #define __IHTMLOptionElementFactory_FWD_DEFINED__
-typedef interface IHTMLOptionElementFactory IHTMLOptionElementFactory;
+typedef struct IHTMLOptionElementFactory IHTMLOptionElementFactory;
 #endif
 
 #ifndef __DispHTMLOptionElement_FWD_DEFINED__
 #define __DispHTMLOptionElement_FWD_DEFINED__
-typedef interface DispHTMLOptionElement DispHTMLOptionElement;
+typedef struct DispHTMLOptionElement DispHTMLOptionElement;
 #endif
 
 #ifndef __HTMLOptionElement_FWD_DEFINED__
@@ -1328,97 +1328,97 @@
 
 #ifndef __HTMLButtonElementEvents2_FWD_DEFINED__
 #define __HTMLButtonElementEvents2_FWD_DEFINED__
-typedef interface HTMLButtonElementEvents2 HTMLButtonElementEvents2;
+typedef struct HTMLButtonElementEvents2 HTMLButtonElementEvents2;
 #endif
 
 #ifndef __HTMLButtonElementEvents_FWD_DEFINED__
 #define __HTMLButtonElementEvents_FWD_DEFINED__
-typedef interface HTMLButtonElementEvents HTMLButtonElementEvents;
+typedef struct HTMLButtonElementEvents HTMLButtonElementEvents;
 #endif
 
 #ifndef __HTMLInputTextElementEvents2_FWD_DEFINED__
 #define __HTMLInputTextElementEvents2_FWD_DEFINED__
-typedef interface HTMLInputTextElementEvents2 HTMLInputTextElementEvents2;
+typedef struct HTMLInputTextElementEvents2 HTMLInputTextElementEvents2;
 #endif
 
 #ifndef __HTMLOptionButtonElementEvents2_FWD_DEFINED__
 #define __HTMLOptionButtonElementEvents2_FWD_DEFINED__
-typedef interface HTMLOptionButtonElementEvents2 HTMLOptionButtonElementEvents2;
+typedef struct HTMLOptionButtonElementEvents2 HTMLOptionButtonElementEvents2;
 #endif
 
 #ifndef __HTMLInputFileElementEvents2_FWD_DEFINED__
 #define __HTMLInputFileElementEvents2_FWD_DEFINED__
-typedef interface HTMLInputFileElementEvents2 HTMLInputFileElementEvents2;
+typedef struct HTMLInputFileElementEvents2 HTMLInputFileElementEvents2;
 #endif
 
 #ifndef __HTMLInputImageEvents2_FWD_DEFINED__
 #define __HTMLInputImageEvents2_FWD_DEFINED__
-typedef interface HTMLInputImageEvents2 HTMLInputImageEvents2;
+typedef struct HTMLInputImageEvents2 HTMLInputImageEvents2;
 #endif
 
 #ifndef __HTMLInputTextElementEvents_FWD_DEFINED__
 #define __HTMLInputTextElementEvents_FWD_DEFINED__
-typedef interface HTMLInputTextElementEvents HTMLInputTextElementEvents;
+typedef struct HTMLInputTextElementEvents HTMLInputTextElementEvents;
 #endif
 
 #ifndef __HTMLOptionButtonElementEvents_FWD_DEFINED__
 #define __HTMLOptionButtonElementEvents_FWD_DEFINED__
-typedef interface HTMLOptionButtonElementEvents HTMLOptionButtonElementEvents;
+typedef struct HTMLOptionButtonElementEvents HTMLOptionButtonElementEvents;
 #endif
 
 #ifndef __HTMLInputFileElementEvents_FWD_DEFINED__
 #define __HTMLInputFileElementEvents_FWD_DEFINED__
-typedef interface HTMLInputFileElementEvents HTMLInputFileElementEvents;
+typedef struct HTMLInputFileElementEvents HTMLInputFileElementEvents;
 #endif
 
 #ifndef __HTMLInputImageEvents_FWD_DEFINED__
 #define __HTMLInputImageEvents_FWD_DEFINED__
-typedef interface HTMLInputImageEvents HTMLInputImageEvents;
+typedef struct HTMLInputImageEvents HTMLInputImageEvents;
 #endif
 
 #ifndef __IHTMLInputElement_FWD_DEFINED__
 #define __IHTMLInputElement_FWD_DEFINED__
-typedef interface IHTMLInputElement IHTMLInputElement;
+typedef struct IHTMLInputElement IHTMLInputElement;
 #endif
 
 #ifndef __IHTMLInputElement2_FWD_DEFINED__
 #define __IHTMLInputElement2_FWD_DEFINED__
-typedef interface IHTMLInputElement2 IHTMLInputElement2;
+typedef struct IHTMLInputElement2 IHTMLInputElement2;
 #endif
 
 #ifndef __IHTMLInputButtonElement_FWD_DEFINED__
 #define __IHTMLInputButtonElement_FWD_DEFINED__
-typedef interface IHTMLInputButtonElement IHTMLInputButtonElement;
+typedef struct IHTMLInputButtonElement IHTMLInputButtonElement;
 #endif
 
 #ifndef __IHTMLInputHiddenElement_FWD_DEFINED__
 #define __IHTMLInputHiddenElement_FWD_DEFINED__
-typedef interface IHTMLInputHiddenElement IHTMLInputHiddenElement;
+typedef struct IHTMLInputHiddenElement IHTMLInputHiddenElement;
 #endif
 
 #ifndef __IHTMLInputTextElement_FWD_DEFINED__
 #define __IHTMLInputTextElement_FWD_DEFINED__
-typedef interface IHTMLInputTextElement IHTMLInputTextElement;
+typedef struct IHTMLInputTextElement IHTMLInputTextElement;
 #endif
 
 #ifndef __IHTMLInputFileElement_FWD_DEFINED__
 #define __IHTMLInputFileElement_FWD_DEFINED__
-typedef interface IHTMLInputFileElement IHTMLInputFileElement;
+typedef struct IHTMLInputFileElement IHTMLInputFileElement;
 #endif
 
 #ifndef __IHTMLOptionButtonElement_FWD_DEFINED__
 #define __IHTMLOptionButtonElement_FWD_DEFINED__
-typedef interface IHTMLOptionButtonElement IHTMLOptionButtonElement;
+typedef struct IHTMLOptionButtonElement IHTMLOptionButtonElement;
 #endif
 
 #ifndef __IHTMLInputImage_FWD_DEFINED__
 #define __IHTMLInputImage_FWD_DEFINED__
-typedef interface IHTMLInputImage IHTMLInputImage;
+typedef struct IHTMLInputImage IHTMLInputImage;
 #endif
 
 #ifndef __DispHTMLInputElement_FWD_DEFINED__
 #define __DispHTMLInputElement_FWD_DEFINED__
-typedef interface DispHTMLInputElement DispHTMLInputElement;
+typedef struct DispHTMLInputElement DispHTMLInputElement;
 #endif
 
 #ifndef __HTMLInputElement_FWD_DEFINED__
@@ -1432,12 +1432,12 @@
 
 #ifndef __IHTMLTextAreaElement_FWD_DEFINED__
 #define __IHTMLTextAreaElement_FWD_DEFINED__
-typedef interface IHTMLTextAreaElement IHTMLTextAreaElement;
+typedef struct IHTMLTextAreaElement IHTMLTextAreaElement;
 #endif
 
 #ifndef __DispHTMLTextAreaElement_FWD_DEFINED__
 #define __DispHTMLTextAreaElement_FWD_DEFINED__
-typedef interface DispHTMLTextAreaElement DispHTMLTextAreaElement;
+typedef struct DispHTMLTextAreaElement DispHTMLTextAreaElement;
 #endif
 
 #ifndef __HTMLTextAreaElement_FWD_DEFINED__
@@ -1451,7 +1451,7 @@
 
 #ifndef __DispHTMLRichtextElement_FWD_DEFINED__
 #define __DispHTMLRichtextElement_FWD_DEFINED__
-typedef interface DispHTMLRichtextElement DispHTMLRichtextElement;
+typedef struct DispHTMLRichtextElement DispHTMLRichtextElement;
 #endif
 
 #ifndef __HTMLRichtextElement_FWD_DEFINED__
@@ -1465,12 +1465,12 @@
 
 #ifndef __IHTMLButtonElement_FWD_DEFINED__
 #define __IHTMLButtonElement_FWD_DEFINED__
-typedef interface IHTMLButtonElement IHTMLButtonElement;
+typedef struct IHTMLButtonElement IHTMLButtonElement;
 #endif
 
 #ifndef __DispHTMLButtonElement_FWD_DEFINED__
 #define __DispHTMLButtonElement_FWD_DEFINED__
-typedef interface DispHTMLButtonElement DispHTMLButtonElement;
+typedef struct DispHTMLButtonElement DispHTMLButtonElement;
 #endif
 
 #ifndef __HTMLButtonElement_FWD_DEFINED__
@@ -1484,22 +1484,22 @@
 
 #ifndef __HTMLMarqueeElementEvents2_FWD_DEFINED__
 #define __HTMLMarqueeElementEvents2_FWD_DEFINED__
-typedef interface HTMLMarqueeElementEvents2 HTMLMarqueeElementEvents2;
+typedef struct HTMLMarqueeElementEvents2 HTMLMarqueeElementEvents2;
 #endif
 
 #ifndef __HTMLMarqueeElementEvents_FWD_DEFINED__
 #define __HTMLMarqueeElementEvents_FWD_DEFINED__
-typedef interface HTMLMarqueeElementEvents HTMLMarqueeElementEvents;
+typedef struct HTMLMarqueeElementEvents HTMLMarqueeElementEvents;
 #endif
 
 #ifndef __IHTMLMarqueeElement_FWD_DEFINED__
 #define __IHTMLMarqueeElement_FWD_DEFINED__
-typedef interface IHTMLMarqueeElement IHTMLMarqueeElement;
+typedef struct IHTMLMarqueeElement IHTMLMarqueeElement;
 #endif
 
 #ifndef __DispHTMLMarqueeElement_FWD_DEFINED__
 #define __DispHTMLMarqueeElement_FWD_DEFINED__
-typedef interface DispHTMLMarqueeElement DispHTMLMarqueeElement;
+typedef struct DispHTMLMarqueeElement DispHTMLMarqueeElement;
 #endif
 
 #ifndef __HTMLMarqueeElement_FWD_DEFINED__
@@ -1513,52 +1513,52 @@
 
 #ifndef __IHTMLHtmlElement_FWD_DEFINED__
 #define __IHTMLHtmlElement_FWD_DEFINED__
-typedef interface IHTMLHtmlElement IHTMLHtmlElement;
+typedef struct IHTMLHtmlElement IHTMLHtmlElement;
 #endif
 
 #ifndef __IHTMLHeadElement_FWD_DEFINED__
 #define __IHTMLHeadElement_FWD_DEFINED__
-typedef interface IHTMLHeadElement IHTMLHeadElement;
+typedef struct IHTMLHeadElement IHTMLHeadElement;
 #endif
 
 #ifndef __IHTMLTitleElement_FWD_DEFINED__
 #define __IHTMLTitleElement_FWD_DEFINED__
-typedef interface IHTMLTitleElement IHTMLTitleElement;
+typedef struct IHTMLTitleElement IHTMLTitleElement;
 #endif
 
 #ifndef __IHTMLMetaElement_FWD_DEFINED__
 #define __IHTMLMetaElement_FWD_DEFINED__
-typedef interface IHTMLMetaElement IHTMLMetaElement;
+typedef struct IHTMLMetaElement IHTMLMetaElement;
 #endif
 
 #ifndef __IHTMLMetaElement2_FWD_DEFINED__
 #define __IHTMLMetaElement2_FWD_DEFINED__
-typedef interface IHTMLMetaElement2 IHTMLMetaElement2;
+typedef struct IHTMLMetaElement2 IHTMLMetaElement2;
 #endif
 
 #ifndef __IHTMLBaseElement_FWD_DEFINED__
 #define __IHTMLBaseElement_FWD_DEFINED__
-typedef interface IHTMLBaseElement IHTMLBaseElement;
+typedef struct IHTMLBaseElement IHTMLBaseElement;
 #endif
 
 #ifndef __IHTMLIsIndexElement_FWD_DEFINED__
 #define __IHTMLIsIndexElement_FWD_DEFINED__
-typedef interface IHTMLIsIndexElement IHTMLIsIndexElement;
+typedef struct IHTMLIsIndexElement IHTMLIsIndexElement;
 #endif
 
 #ifndef __IHTMLIsIndexElement2_FWD_DEFINED__
 #define __IHTMLIsIndexElement2_FWD_DEFINED__
-typedef interface IHTMLIsIndexElement2 IHTMLIsIndexElement2;
+typedef struct IHTMLIsIndexElement2 IHTMLIsIndexElement2;
 #endif
 
 #ifndef __IHTMLNextIdElement_FWD_DEFINED__
 #define __IHTMLNextIdElement_FWD_DEFINED__
-typedef interface IHTMLNextIdElement IHTMLNextIdElement;
+typedef struct IHTMLNextIdElement IHTMLNextIdElement;
 #endif
 
 #ifndef __DispHTMLHtmlElement_FWD_DEFINED__
 #define __DispHTMLHtmlElement_FWD_DEFINED__
-typedef interface DispHTMLHtmlElement DispHTMLHtmlElement;
+typedef struct DispHTMLHtmlElement DispHTMLHtmlElement;
 #endif
 
 #ifndef __HTMLHtmlElement_FWD_DEFINED__
@@ -1572,7 +1572,7 @@
 
 #ifndef __DispHTMLHeadElement_FWD_DEFINED__
 #define __DispHTMLHeadElement_FWD_DEFINED__
-typedef interface DispHTMLHeadElement DispHTMLHeadElement;
+typedef struct DispHTMLHeadElement DispHTMLHeadElement;
 #endif
 
 #ifndef __HTMLHeadElement_FWD_DEFINED__
@@ -1586,7 +1586,7 @@
 
 #ifndef __DispHTMLTitleElement_FWD_DEFINED__
 #define __DispHTMLTitleElement_FWD_DEFINED__
-typedef interface DispHTMLTitleElement DispHTMLTitleElement;
+typedef struct DispHTMLTitleElement DispHTMLTitleElement;
 #endif
 
 #ifndef __HTMLTitleElement_FWD_DEFINED__
@@ -1600,7 +1600,7 @@
 
 #ifndef __DispHTMLMetaElement_FWD_DEFINED__
 #define __DispHTMLMetaElement_FWD_DEFINED__
-typedef interface DispHTMLMetaElement DispHTMLMetaElement;
+typedef struct DispHTMLMetaElement DispHTMLMetaElement;
 #endif
 
 #ifndef __HTMLMetaElement_FWD_DEFINED__
@@ -1614,7 +1614,7 @@
 
 #ifndef __DispHTMLBaseElement_FWD_DEFINED__
 #define __DispHTMLBaseElement_FWD_DEFINED__
-typedef interface DispHTMLBaseElement DispHTMLBaseElement;
+typedef struct DispHTMLBaseElement DispHTMLBaseElement;
 #endif
 
 #ifndef __HTMLBaseElement_FWD_DEFINED__
@@ -1628,7 +1628,7 @@
 
 #ifndef __DispHTMLIsIndexElement_FWD_DEFINED__
 #define __DispHTMLIsIndexElement_FWD_DEFINED__
-typedef interface DispHTMLIsIndexElement DispHTMLIsIndexElement;
+typedef struct DispHTMLIsIndexElement DispHTMLIsIndexElement;
 #endif
 
 #ifndef __HTMLIsIndexElement_FWD_DEFINED__
@@ -1642,7 +1642,7 @@
 
 #ifndef __DispHTMLNextIdElement_FWD_DEFINED__
 #define __DispHTMLNextIdElement_FWD_DEFINED__
-typedef interface DispHTMLNextIdElement DispHTMLNextIdElement;
+typedef struct DispHTMLNextIdElement DispHTMLNextIdElement;
 #endif
 
 #ifndef __HTMLNextIdElement_FWD_DEFINED__
@@ -1656,12 +1656,12 @@
 
 #ifndef __IHTMLBaseFontElement_FWD_DEFINED__
 #define __IHTMLBaseFontElement_FWD_DEFINED__
-typedef interface IHTMLBaseFontElement IHTMLBaseFontElement;
+typedef struct IHTMLBaseFontElement IHTMLBaseFontElement;
 #endif
 
 #ifndef __DispHTMLBaseFontElement_FWD_DEFINED__
 #define __DispHTMLBaseFontElement_FWD_DEFINED__
-typedef interface DispHTMLBaseFontElement DispHTMLBaseFontElement;
+typedef struct DispHTMLBaseFontElement DispHTMLBaseFontElement;
 #endif
 
 #ifndef __HTMLBaseFontElement_FWD_DEFINED__
@@ -1675,12 +1675,12 @@
 
 #ifndef __IHTMLUnknownElement_FWD_DEFINED__
 #define __IHTMLUnknownElement_FWD_DEFINED__
-typedef interface IHTMLUnknownElement IHTMLUnknownElement;
+typedef struct IHTMLUnknownElement IHTMLUnknownElement;
 #endif
 
 #ifndef __DispHTMLUnknownElement_FWD_DEFINED__
 #define __DispHTMLUnknownElement_FWD_DEFINED__
-typedef interface DispHTMLUnknownElement DispHTMLUnknownElement;
+typedef struct DispHTMLUnknownElement DispHTMLUnknownElement;
 #endif
 
 #ifndef __HTMLUnknownElement_FWD_DEFINED__
@@ -1694,32 +1694,32 @@
 
 #ifndef __IOmHistory_FWD_DEFINED__
 #define __IOmHistory_FWD_DEFINED__
-typedef interface IOmHistory IOmHistory;
+typedef struct IOmHistory IOmHistory;
 #endif
 
 #ifndef __IHTMLMimeTypesCollection_FWD_DEFINED__
 #define __IHTMLMimeTypesCollection_FWD_DEFINED__
-typedef interface IHTMLMimeTypesCollection IHTMLMimeTypesCollection;
+typedef struct IHTMLMimeTypesCollection IHTMLMimeTypesCollection;
 #endif
 
 #ifndef __IHTMLPluginsCollection_FWD_DEFINED__
 #define __IHTMLPluginsCollection_FWD_DEFINED__
-typedef interface IHTMLPluginsCollection IHTMLPluginsCollection;
+typedef struct IHTMLPluginsCollection IHTMLPluginsCollection;
 #endif
 
 #ifndef __IHTMLOpsProfile_FWD_DEFINED__
 #define __IHTMLOpsProfile_FWD_DEFINED__
-typedef interface IHTMLOpsProfile IHTMLOpsProfile;
+typedef struct IHTMLOpsProfile IHTMLOpsProfile;
 #endif
 
 #ifndef __IOmNavigator_FWD_DEFINED__
 #define __IOmNavigator_FWD_DEFINED__
-typedef interface IOmNavigator IOmNavigator;
+typedef struct IOmNavigator IOmNavigator;
 #endif
 
 #ifndef __IHTMLLocation_FWD_DEFINED__
 #define __IHTMLLocation_FWD_DEFINED__
-typedef interface IHTMLLocation IHTMLLocation;
+typedef struct IHTMLLocation IHTMLLocation;
 #endif
 
 #ifndef __HTMLHistory_FWD_DEFINED__
@@ -1778,32 +1778,32 @@
 
 #ifndef __IHTMLBookmarkCollection_FWD_DEFINED__
 #define __IHTMLBookmarkCollection_FWD_DEFINED__
-typedef interface IHTMLBookmarkCollection IHTMLBookmarkCollection;
+typedef struct IHTMLBookmarkCollection IHTMLBookmarkCollection;
 #endif
 
 #ifndef __IHTMLDataTransfer_FWD_DEFINED__
 #define __IHTMLDataTransfer_FWD_DEFINED__
-typedef interface IHTMLDataTransfer IHTMLDataTransfer;
+typedef struct IHTMLDataTransfer IHTMLDataTransfer;
 #endif
 
 #ifndef __IHTMLEventObj2_FWD_DEFINED__
 #define __IHTMLEventObj2_FWD_DEFINED__
-typedef interface IHTMLEventObj2 IHTMLEventObj2;
+typedef struct IHTMLEventObj2 IHTMLEventObj2;
 #endif
 
 #ifndef __IHTMLEventObj3_FWD_DEFINED__
 #define __IHTMLEventObj3_FWD_DEFINED__
-typedef interface IHTMLEventObj3 IHTMLEventObj3;
+typedef struct IHTMLEventObj3 IHTMLEventObj3;
 #endif
 
 #ifndef __IHTMLEventObj4_FWD_DEFINED__
 #define __IHTMLEventObj4_FWD_DEFINED__
-typedef interface IHTMLEventObj4 IHTMLEventObj4;
+typedef struct IHTMLEventObj4 IHTMLEventObj4;
 #endif
 
 #ifndef __DispCEventObj_FWD_DEFINED__
 #define __DispCEventObj_FWD_DEFINED__
-typedef interface DispCEventObj DispCEventObj;
+typedef struct DispCEventObj DispCEventObj;
 #endif
 
 #ifndef __CEventObj_FWD_DEFINED__
@@ -1817,52 +1817,52 @@
 
 #ifndef __HTMLWindowEvents2_FWD_DEFINED__
 #define __HTMLWindowEvents2_FWD_DEFINED__
-typedef interface HTMLWindowEvents2 HTMLWindowEvents2;
+typedef struct HTMLWindowEvents2 HTMLWindowEvents2;
 #endif
 
 #ifndef __HTMLWindowEvents_FWD_DEFINED__
 #define __HTMLWindowEvents_FWD_DEFINED__
-typedef interface HTMLWindowEvents HTMLWindowEvents;
+typedef struct HTMLWindowEvents HTMLWindowEvents;
 #endif
 
 #ifndef __IHTMLDocument2_FWD_DEFINED__
 #define __IHTMLDocument2_FWD_DEFINED__
-typedef interface IHTMLDocument2 IHTMLDocument2;
+typedef struct IHTMLDocument2 IHTMLDocument2;
 #endif
 
 #ifndef __IHTMLFramesCollection2_FWD_DEFINED__
 #define __IHTMLFramesCollection2_FWD_DEFINED__
-typedef interface IHTMLFramesCollection2 IHTMLFramesCollection2;
+typedef struct IHTMLFramesCollection2 IHTMLFramesCollection2;
 #endif
 
 #ifndef __IHTMLWindow2_FWD_DEFINED__
 #define __IHTMLWindow2_FWD_DEFINED__
-typedef interface IHTMLWindow2 IHTMLWindow2;
+typedef struct IHTMLWindow2 IHTMLWindow2;
 #endif
 
 #ifndef __IHTMLWindow3_FWD_DEFINED__
 #define __IHTMLWindow3_FWD_DEFINED__
-typedef interface IHTMLWindow3 IHTMLWindow3;
+typedef struct IHTMLWindow3 IHTMLWindow3;
 #endif
 
 #ifndef __IHTMLFrameBase_FWD_DEFINED__
 #define __IHTMLFrameBase_FWD_DEFINED__
-typedef interface IHTMLFrameBase IHTMLFrameBase;
+typedef struct IHTMLFrameBase IHTMLFrameBase;
 #endif
 
 #ifndef __IHTMLScreen_FWD_DEFINED__
 #define __IHTMLScreen_FWD_DEFINED__
-typedef interface IHTMLScreen IHTMLScreen;
+typedef struct IHTMLScreen IHTMLScreen;
 #endif
 
 #ifndef __IHTMLScreen2_FWD_DEFINED__
 #define __IHTMLScreen2_FWD_DEFINED__
-typedef interface IHTMLScreen2 IHTMLScreen2;
+typedef struct IHTMLScreen2 IHTMLScreen2;
 #endif
 
 #ifndef __IHTMLWindow4_FWD_DEFINED__
 #define __IHTMLWindow4_FWD_DEFINED__
-typedef interface IHTMLWindow4 IHTMLWindow4;
+typedef struct IHTMLWindow4 IHTMLWindow4;
 #endif
 
 #ifndef __FramesCollection_FWD_DEFINED__
@@ -1876,7 +1876,7 @@
 
 #ifndef __DispHTMLScreen_FWD_DEFINED__
 #define __DispHTMLScreen_FWD_DEFINED__
-typedef interface DispHTMLScreen DispHTMLScreen;
+typedef struct DispHTMLScreen DispHTMLScreen;
 #endif
 
 #ifndef __HTMLScreen_FWD_DEFINED__
@@ -1890,7 +1890,7 @@
 
 #ifndef __DispHTMLWindow2_FWD_DEFINED__
 #define __DispHTMLWindow2_FWD_DEFINED__
-typedef interface DispHTMLWindow2 DispHTMLWindow2;
+typedef struct DispHTMLWindow2 DispHTMLWindow2;
 #endif
 
 #ifndef __HTMLWindow2_FWD_DEFINED__
@@ -1904,7 +1904,7 @@
 
 #ifndef __DispHTMLWindowProxy_FWD_DEFINED__
 #define __DispHTMLWindowProxy_FWD_DEFINED__
-typedef interface DispHTMLWindowProxy DispHTMLWindowProxy;
+typedef struct DispHTMLWindowProxy DispHTMLWindowProxy;
 #endif
 
 #ifndef __HTMLWindowProxy_FWD_DEFINED__
@@ -1918,32 +1918,32 @@
 
 #ifndef __HTMLDocumentEvents2_FWD_DEFINED__
 #define __HTMLDocumentEvents2_FWD_DEFINED__
-typedef interface HTMLDocumentEvents2 HTMLDocumentEvents2;
+typedef struct HTMLDocumentEvents2 HTMLDocumentEvents2;
 #endif
 
 #ifndef __HTMLDocumentEvents_FWD_DEFINED__
 #define __HTMLDocumentEvents_FWD_DEFINED__
-typedef interface HTMLDocumentEvents HTMLDocumentEvents;
+typedef struct HTMLDocumentEvents HTMLDocumentEvents;
 #endif
 
 #ifndef __IHTMLDocument3_FWD_DEFINED__
 #define __IHTMLDocument3_FWD_DEFINED__
-typedef interface IHTMLDocument3 IHTMLDocument3;
+typedef struct IHTMLDocument3 IHTMLDocument3;
 #endif
 
 #ifndef __IHTMLDocument4_FWD_DEFINED__
 #define __IHTMLDocument4_FWD_DEFINED__
-typedef interface IHTMLDocument4 IHTMLDocument4;
+typedef struct IHTMLDocument4 IHTMLDocument4;
 #endif
 
 #ifndef __IHTMLDocument5_FWD_DEFINED__
 #define __IHTMLDocument5_FWD_DEFINED__
-typedef interface IHTMLDocument5 IHTMLDocument5;
+typedef struct IHTMLDocument5 IHTMLDocument5;
 #endif
 
 #ifndef __DispHTMLDocument_FWD_DEFINED__
 #define __DispHTMLDocument_FWD_DEFINED__
-typedef interface DispHTMLDocument DispHTMLDocument;
+typedef struct DispHTMLDocument DispHTMLDocument;
 #endif
 
 #ifndef __HTMLDocument_FWD_DEFINED__
@@ -1957,17 +1957,17 @@
 
 #ifndef __DWebBridgeEvents_FWD_DEFINED__
 #define __DWebBridgeEvents_FWD_DEFINED__
-typedef interface DWebBridgeEvents DWebBridgeEvents;
+typedef struct DWebBridgeEvents DWebBridgeEvents;
 #endif
 
 #ifndef __IWebBridge_FWD_DEFINED__
 #define __IWebBridge_FWD_DEFINED__
-typedef interface IWebBridge IWebBridge;
+typedef struct IWebBridge IWebBridge;
 #endif
 
 #ifndef __IWBScriptControl_FWD_DEFINED__
 #define __IWBScriptControl_FWD_DEFINED__
-typedef interface IWBScriptControl IWBScriptControl;
+typedef struct IWBScriptControl IWBScriptControl;
 #endif
 
 #ifndef __Scriptlet_FWD_DEFINED__
@@ -1981,12 +1981,12 @@
 
 #ifndef __IHTMLEmbedElement_FWD_DEFINED__
 #define __IHTMLEmbedElement_FWD_DEFINED__
-typedef interface IHTMLEmbedElement IHTMLEmbedElement;
+typedef struct IHTMLEmbedElement IHTMLEmbedElement;
 #endif
 
 #ifndef __DispHTMLEmbed_FWD_DEFINED__
 #define __DispHTMLEmbed_FWD_DEFINED__
-typedef interface DispHTMLEmbed DispHTMLEmbed;
+typedef struct DispHTMLEmbed DispHTMLEmbed;
 #endif
 
 #ifndef __HTMLEmbed_FWD_DEFINED__
@@ -2000,37 +2000,37 @@
 
 #ifndef __HTMLMapEvents2_FWD_DEFINED__
 #define __HTMLMapEvents2_FWD_DEFINED__
-typedef interface HTMLMapEvents2 HTMLMapEvents2;
+typedef struct HTMLMapEvents2 HTMLMapEvents2;
 #endif
 
 #ifndef __HTMLMapEvents_FWD_DEFINED__
 #define __HTMLMapEvents_FWD_DEFINED__
-typedef interface HTMLMapEvents HTMLMapEvents;
+typedef struct HTMLMapEvents HTMLMapEvents;
 #endif
 
 #ifndef __IHTMLAreasCollection_FWD_DEFINED__
 #define __IHTMLAreasCollection_FWD_DEFINED__
-typedef interface IHTMLAreasCollection IHTMLAreasCollection;
+typedef struct IHTMLAreasCollection IHTMLAreasCollection;
 #endif
 
 #ifndef __IHTMLAreasCollection2_FWD_DEFINED__
 #define __IHTMLAreasCollection2_FWD_DEFINED__
-typedef interface IHTMLAreasCollection2 IHTMLAreasCollection2;
+typedef struct IHTMLAreasCollection2 IHTMLAreasCollection2;
 #endif
 
 #ifndef __IHTMLAreasCollection3_FWD_DEFINED__
 #define __IHTMLAreasCollection3_FWD_DEFINED__
-typedef interface IHTMLAreasCollection3 IHTMLAreasCollection3;
+typedef struct IHTMLAreasCollection3 IHTMLAreasCollection3;
 #endif
 
 #ifndef __IHTMLMapElement_FWD_DEFINED__
 #define __IHTMLMapElement_FWD_DEFINED__
-typedef interface IHTMLMapElement IHTMLMapElement;
+typedef struct IHTMLMapElement IHTMLMapElement;
 #endif
 
 #ifndef __DispHTMLAreasCollection_FWD_DEFINED__
 #define __DispHTMLAreasCollection_FWD_DEFINED__
-typedef interface DispHTMLAreasCollection DispHTMLAreasCollection;
+typedef struct DispHTMLAreasCollection DispHTMLAreasCollection;
 #endif
 
 #ifndef __HTMLAreasCollection_FWD_DEFINED__
@@ -2044,7 +2044,7 @@
 
 #ifndef __DispHTMLMapElement_FWD_DEFINED__
 #define __DispHTMLMapElement_FWD_DEFINED__
-typedef interface DispHTMLMapElement DispHTMLMapElement;
+typedef struct DispHTMLMapElement DispHTMLMapElement;
 #endif
 
 #ifndef __HTMLMapElement_FWD_DEFINED__
@@ -2058,22 +2058,22 @@
 
 #ifndef __HTMLAreaEvents2_FWD_DEFINED__
 #define __HTMLAreaEvents2_FWD_DEFINED__
-typedef interface HTMLAreaEvents2 HTMLAreaEvents2;
+typedef struct HTMLAreaEvents2 HTMLAreaEvents2;
 #endif
 
 #ifndef __HTMLAreaEvents_FWD_DEFINED__
 #define __HTMLAreaEvents_FWD_DEFINED__
-typedef interface HTMLAreaEvents HTMLAreaEvents;
+typedef struct HTMLAreaEvents HTMLAreaEvents;
 #endif
 
 #ifndef __IHTMLAreaElement_FWD_DEFINED__
 #define __IHTMLAreaElement_FWD_DEFINED__
-typedef interface IHTMLAreaElement IHTMLAreaElement;
+typedef struct IHTMLAreaElement IHTMLAreaElement;
 #endif
 
 #ifndef __DispHTMLAreaElement_FWD_DEFINED__
 #define __DispHTMLAreaElement_FWD_DEFINED__
-typedef interface DispHTMLAreaElement DispHTMLAreaElement;
+typedef struct DispHTMLAreaElement DispHTMLAreaElement;
 #endif
 
 #ifndef __HTMLAreaElement_FWD_DEFINED__
@@ -2087,12 +2087,12 @@
 
 #ifndef __IHTMLTableCaption_FWD_DEFINED__
 #define __IHTMLTableCaption_FWD_DEFINED__
-typedef interface IHTMLTableCaption IHTMLTableCaption;
+typedef struct IHTMLTableCaption IHTMLTableCaption;
 #endif
 
 #ifndef __DispHTMLTableCaption_FWD_DEFINED__
 #define __DispHTMLTableCaption_FWD_DEFINED__
-typedef interface DispHTMLTableCaption DispHTMLTableCaption;
+typedef struct DispHTMLTableCaption DispHTMLTableCaption;
 #endif
 
 #ifndef __HTMLTableCaption_FWD_DEFINED__
@@ -2106,17 +2106,17 @@
 
 #ifndef __IHTMLCommentElement_FWD_DEFINED__
 #define __IHTMLCommentElement_FWD_DEFINED__
-typedef interface IHTMLCommentElement IHTMLCommentElement;
+typedef struct IHTMLCommentElement IHTMLCommentElement;
 #endif
 
 #ifndef __IHTMLCommentElement2_FWD_DEFINED__
 #define __IHTMLCommentElement2_FWD_DEFINED__
-typedef interface IHTMLCommentElement2 IHTMLCommentElement2;
+typedef struct IHTMLCommentElement2 IHTMLCommentElement2;
 #endif
 
 #ifndef __DispHTMLCommentElement_FWD_DEFINED__
 #define __DispHTMLCommentElement_FWD_DEFINED__
-typedef interface DispHTMLCommentElement DispHTMLCommentElement;
+typedef struct DispHTMLCommentElement DispHTMLCommentElement;
 #endif
 
 #ifndef __HTMLCommentElement_FWD_DEFINED__
@@ -2130,22 +2130,22 @@
 
 #ifndef __IHTMLPhraseElement_FWD_DEFINED__
 #define __IHTMLPhraseElement_FWD_DEFINED__
-typedef interface IHTMLPhraseElement IHTMLPhraseElement;
+typedef struct IHTMLPhraseElement IHTMLPhraseElement;
 #endif
 
 #ifndef __IHTMLPhraseElement2_FWD_DEFINED__
 #define __IHTMLPhraseElement2_FWD_DEFINED__
-typedef interface IHTMLPhraseElement2 IHTMLPhraseElement2;
+typedef struct IHTMLPhraseElement2 IHTMLPhraseElement2;
 #endif
 
 #ifndef __IHTMLSpanElement_FWD_DEFINED__
 #define __IHTMLSpanElement_FWD_DEFINED__
-typedef interface IHTMLSpanElement IHTMLSpanElement;
+typedef struct IHTMLSpanElement IHTMLSpanElement;
 #endif
 
 #ifndef __DispHTMLPhraseElement_FWD_DEFINED__
 #define __DispHTMLPhraseElement_FWD_DEFINED__
-typedef interface DispHTMLPhraseElement DispHTMLPhraseElement;
+typedef struct DispHTMLPhraseElement DispHTMLPhraseElement;
 #endif
 
 #ifndef __HTMLPhraseElement_FWD_DEFINED__
@@ -2159,7 +2159,7 @@
 
 #ifndef __DispHTMLSpanElement_FWD_DEFINED__
 #define __DispHTMLSpanElement_FWD_DEFINED__
-typedef interface DispHTMLSpanElement DispHTMLSpanElement;
+typedef struct DispHTMLSpanElement DispHTMLSpanElement;
 #endif
 
 #ifndef __HTMLSpanElement_FWD_DEFINED__
@@ -2173,87 +2173,87 @@
 
 #ifndef __HTMLTableEvents2_FWD_DEFINED__
 #define __HTMLTableEvents2_FWD_DEFINED__
-typedef interface HTMLTableEvents2 HTMLTableEvents2;
+typedef struct HTMLTableEvents2 HTMLTableEvents2;
 #endif
 
 #ifndef __HTMLTableEvents_FWD_DEFINED__
 #define __HTMLTableEvents_FWD_DEFINED__
-typedef interface HTMLTableEvents HTMLTableEvents;
+typedef struct HTMLTableEvents HTMLTableEvents;
 #endif
 
 #ifndef __IHTMLTableSection_FWD_DEFINED__
 #define __IHTMLTableSection_FWD_DEFINED__
-typedef interface IHTMLTableSection IHTMLTableSection;
+typedef struct IHTMLTableSection IHTMLTableSection;
 #endif
 
 #ifndef __IHTMLTable_FWD_DEFINED__
 #define __IHTMLTable_FWD_DEFINED__
-typedef interface IHTMLTable IHTMLTable;
+typedef struct IHTMLTable IHTMLTable;
 #endif
 
 #ifndef __IHTMLTable2_FWD_DEFINED__
 #define __IHTMLTable2_FWD_DEFINED__
-typedef interface IHTMLTable2 IHTMLTable2;
+typedef struct IHTMLTable2 IHTMLTable2;
 #endif
 
 #ifndef __IHTMLTable3_FWD_DEFINED__
 #define __IHTMLTable3_FWD_DEFINED__
-typedef interface IHTMLTable3 IHTMLTable3;
+typedef struct IHTMLTable3 IHTMLTable3;
 #endif
 
 #ifndef __IHTMLTableCol_FWD_DEFINED__
 #define __IHTMLTableCol_FWD_DEFINED__
-typedef interface IHTMLTableCol IHTMLTableCol;
+typedef struct IHTMLTableCol IHTMLTableCol;
 #endif
 
 #ifndef __IHTMLTableCol2_FWD_DEFINED__
 #define __IHTMLTableCol2_FWD_DEFINED__
-typedef interface IHTMLTableCol2 IHTMLTableCol2;
+typedef struct IHTMLTableCol2 IHTMLTableCol2;
 #endif
 
 #ifndef __IHTMLTableSection2_FWD_DEFINED__
 #define __IHTMLTableSection2_FWD_DEFINED__
-typedef interface IHTMLTableSection2 IHTMLTableSection2;
+typedef struct IHTMLTableSection2 IHTMLTableSection2;
 #endif
 
 #ifndef __IHTMLTableSection3_FWD_DEFINED__
 #define __IHTMLTableSection3_FWD_DEFINED__
-typedef interface IHTMLTableSection3 IHTMLTableSection3;
+typedef struct IHTMLTableSection3 IHTMLTableSection3;
 #endif
 
 #ifndef __IHTMLTableRow_FWD_DEFINED__
 #define __IHTMLTableRow_FWD_DEFINED__
-typedef interface IHTMLTableRow IHTMLTableRow;
+typedef struct IHTMLTableRow IHTMLTableRow;
 #endif
 
 #ifndef __IHTMLTableRow2_FWD_DEFINED__
 #define __IHTMLTableRow2_FWD_DEFINED__
-typedef interface IHTMLTableRow2 IHTMLTableRow2;
+typedef struct IHTMLTableRow2 IHTMLTableRow2;
 #endif
 
 #ifndef __IHTMLTableRow3_FWD_DEFINED__
 #define __IHTMLTableRow3_FWD_DEFINED__
-typedef interface IHTMLTableRow3 IHTMLTableRow3;
+typedef struct IHTMLTableRow3 IHTMLTableRow3;
 #endif
 
 #ifndef __IHTMLTableRowMetrics_FWD_DEFINED__
 #define __IHTMLTableRowMetrics_FWD_DEFINED__
-typedef interface IHTMLTableRowMetrics IHTMLTableRowMetrics;
+typedef struct IHTMLTableRowMetrics IHTMLTableRowMetrics;
 #endif
 
 #ifndef __IHTMLTableCell_FWD_DEFINED__
 #define __IHTMLTableCell_FWD_DEFINED__
-typedef interface IHTMLTableCell IHTMLTableCell;
+typedef struct IHTMLTableCell IHTMLTableCell;
 #endif
 
 #ifndef __IHTMLTableCell2_FWD_DEFINED__
 #define __IHTMLTableCell2_FWD_DEFINED__
-typedef interface IHTMLTableCell2 IHTMLTableCell2;
+typedef struct IHTMLTableCell2 IHTMLTableCell2;
 #endif
 
 #ifndef __DispHTMLTable_FWD_DEFINED__
 #define __DispHTMLTable_FWD_DEFINED__
-typedef interface DispHTMLTable DispHTMLTable;
+typedef struct DispHTMLTable DispHTMLTable;
 #endif
 
 #ifndef __HTMLTable_FWD_DEFINED__
@@ -2267,7 +2267,7 @@
 
 #ifndef __DispHTMLTableCol_FWD_DEFINED__
 #define __DispHTMLTableCol_FWD_DEFINED__
-typedef interface DispHTMLTableCol DispHTMLTableCol;
+typedef struct DispHTMLTableCol DispHTMLTableCol;
 #endif
 
 #ifndef __HTMLTableCol_FWD_DEFINED__
@@ -2281,7 +2281,7 @@
 
 #ifndef __DispHTMLTableSection_FWD_DEFINED__
 #define __DispHTMLTableSection_FWD_DEFINED__
-typedef interface DispHTMLTableSection DispHTMLTableSection;
+typedef struct DispHTMLTableSection DispHTMLTableSection;
 #endif
 
 #ifndef __HTMLTableSection_FWD_DEFINED__
@@ -2295,7 +2295,7 @@
 
 #ifndef __DispHTMLTableRow_FWD_DEFINED__
 #define __DispHTMLTableRow_FWD_DEFINED__
-typedef interface DispHTMLTableRow DispHTMLTableRow;
+typedef struct DispHTMLTableRow DispHTMLTableRow;
 #endif
 
 #ifndef __HTMLTableRow_FWD_DEFINED__
@@ -2309,7 +2309,7 @@
 
 #ifndef __DispHTMLTableCell_FWD_DEFINED__
 #define __DispHTMLTableCell_FWD_DEFINED__
-typedef interface DispHTMLTableCell DispHTMLTableCell;
+typedef struct DispHTMLTableCell DispHTMLTableCell;
 #endif
 
 #ifndef __HTMLTableCell_FWD_DEFINED__
@@ -2323,27 +2323,27 @@
 
 #ifndef __HTMLScriptEvents2_FWD_DEFINED__
 #define __HTMLScriptEvents2_FWD_DEFINED__
-typedef interface HTMLScriptEvents2 HTMLScriptEvents2;
+typedef struct HTMLScriptEvents2 HTMLScriptEvents2;
 #endif
 
 #ifndef __HTMLScriptEvents_FWD_DEFINED__
 #define __HTMLScriptEvents_FWD_DEFINED__
-typedef interface HTMLScriptEvents HTMLScriptEvents;
+typedef struct HTMLScriptEvents HTMLScriptEvents;
 #endif
 
 #ifndef __IHTMLScriptElement_FWD_DEFINED__
 #define __IHTMLScriptElement_FWD_DEFINED__
-typedef interface IHTMLScriptElement IHTMLScriptElement;
+typedef struct IHTMLScriptElement IHTMLScriptElement;
 #endif
 
 #ifndef __IHTMLScriptElement2_FWD_DEFINED__
 #define __IHTMLScriptElement2_FWD_DEFINED__
-typedef interface IHTMLScriptElement2 IHTMLScriptElement2;
+typedef struct IHTMLScriptElement2 IHTMLScriptElement2;
 #endif
 
 #ifndef __DispHTMLScriptElement_FWD_DEFINED__
 #define __DispHTMLScriptElement_FWD_DEFINED__
-typedef interface DispHTMLScriptElement DispHTMLScriptElement;
+typedef struct DispHTMLScriptElement DispHTMLScriptElement;
 #endif
 
 #ifndef __HTMLScriptElement_FWD_DEFINED__
@@ -2357,12 +2357,12 @@
 
 #ifndef __IHTMLNoShowElement_FWD_DEFINED__
 #define __IHTMLNoShowElement_FWD_DEFINED__
-typedef interface IHTMLNoShowElement IHTMLNoShowElement;
+typedef struct IHTMLNoShowElement IHTMLNoShowElement;
 #endif
 
 #ifndef __DispHTMLNoShowElement_FWD_DEFINED__
 #define __DispHTMLNoShowElement_FWD_DEFINED__
-typedef interface DispHTMLNoShowElement DispHTMLNoShowElement;
+typedef struct DispHTMLNoShowElement DispHTMLNoShowElement;
 #endif
 
 #ifndef __HTMLNoShowElement_FWD_DEFINED__
@@ -2376,37 +2376,37 @@
 
 #ifndef __HTMLObjectElementEvents2_FWD_DEFINED__
 #define __HTMLObjectElementEvents2_FWD_DEFINED__
-typedef interface HTMLObjectElementEvents2 HTMLObjectElementEvents2;
+typedef struct HTMLObjectElementEvents2 HTMLObjectElementEvents2;
 #endif
 
 #ifndef __HTMLObjectElementEvents_FWD_DEFINED__
 #define __HTMLObjectElementEvents_FWD_DEFINED__
-typedef interface HTMLObjectElementEvents HTMLObjectElementEvents;
+typedef struct HTMLObjectElementEvents HTMLObjectElementEvents;
 #endif
 
 #ifndef __IHTMLObjectElement_FWD_DEFINED__
 #define __IHTMLObjectElement_FWD_DEFINED__
-typedef interface IHTMLObjectElement IHTMLObjectElement;
+typedef struct IHTMLObjectElement IHTMLObjectElement;
 #endif
 
 #ifndef __IHTMLObjectElement2_FWD_DEFINED__
 #define __IHTMLObjectElement2_FWD_DEFINED__
-typedef interface IHTMLObjectElement2 IHTMLObjectElement2;
+typedef struct IHTMLObjectElement2 IHTMLObjectElement2;
 #endif
 
 #ifndef __IHTMLObjectElement3_FWD_DEFINED__
 #define __IHTMLObjectElement3_FWD_DEFINED__
-typedef interface IHTMLObjectElement3 IHTMLObjectElement3;
+typedef struct IHTMLObjectElement3 IHTMLObjectElement3;
 #endif
 
 #ifndef __IHTMLParamElement_FWD_DEFINED__
 #define __IHTMLParamElement_FWD_DEFINED__
-typedef interface IHTMLParamElement IHTMLParamElement;
+typedef struct IHTMLParamElement IHTMLParamElement;
 #endif
 
 #ifndef __DispHTMLObjectElement_FWD_DEFINED__
 #define __DispHTMLObjectElement_FWD_DEFINED__
-typedef interface DispHTMLObjectElement DispHTMLObjectElement;
+typedef struct DispHTMLObjectElement DispHTMLObjectElement;
 #endif
 
 #ifndef __HTMLObjectElement_FWD_DEFINED__
@@ -2420,7 +2420,7 @@
 
 #ifndef __DispHTMLParamElement_FWD_DEFINED__
 #define __DispHTMLParamElement_FWD_DEFINED__
-typedef interface DispHTMLParamElement DispHTMLParamElement;
+typedef struct DispHTMLParamElement DispHTMLParamElement;
 #endif
 
 #ifndef __HTMLParamElement_FWD_DEFINED__
@@ -2434,27 +2434,27 @@
 
 #ifndef __HTMLFrameSiteEvents2_FWD_DEFINED__
 #define __HTMLFrameSiteEvents2_FWD_DEFINED__
-typedef interface HTMLFrameSiteEvents2 HTMLFrameSiteEvents2;
+typedef struct HTMLFrameSiteEvents2 HTMLFrameSiteEvents2;
 #endif
 
 #ifndef __HTMLFrameSiteEvents_FWD_DEFINED__
 #define __HTMLFrameSiteEvents_FWD_DEFINED__
-typedef interface HTMLFrameSiteEvents HTMLFrameSiteEvents;
+typedef struct HTMLFrameSiteEvents HTMLFrameSiteEvents;
 #endif
 
 #ifndef __IHTMLFrameBase2_FWD_DEFINED__
 #define __IHTMLFrameBase2_FWD_DEFINED__
-typedef interface IHTMLFrameBase2 IHTMLFrameBase2;
+typedef struct IHTMLFrameBase2 IHTMLFrameBase2;
 #endif
 
 #ifndef __IHTMLFrameBase3_FWD_DEFINED__
 #define __IHTMLFrameBase3_FWD_DEFINED__
-typedef interface IHTMLFrameBase3 IHTMLFrameBase3;
+typedef struct IHTMLFrameBase3 IHTMLFrameBase3;
 #endif
 
 #ifndef __DispHTMLFrameBase_FWD_DEFINED__
 #define __DispHTMLFrameBase_FWD_DEFINED__
-typedef interface DispHTMLFrameBase DispHTMLFrameBase;
+typedef struct DispHTMLFrameBase DispHTMLFrameBase;
 #endif
 
 #ifndef __HTMLFrameBase_FWD_DEFINED__
@@ -2468,17 +2468,17 @@
 
 #ifndef __IHTMLFrameElement_FWD_DEFINED__
 #define __IHTMLFrameElement_FWD_DEFINED__
-typedef interface IHTMLFrameElement IHTMLFrameElement;
+typedef struct IHTMLFrameElement IHTMLFrameElement;
 #endif
 
 #ifndef __IHTMLFrameElement2_FWD_DEFINED__
 #define __IHTMLFrameElement2_FWD_DEFINED__
-typedef interface IHTMLFrameElement2 IHTMLFrameElement2;
+typedef struct IHTMLFrameElement2 IHTMLFrameElement2;
 #endif
 
 #ifndef __DispHTMLFrameElement_FWD_DEFINED__
 #define __DispHTMLFrameElement_FWD_DEFINED__
-typedef interface DispHTMLFrameElement DispHTMLFrameElement;
+typedef struct DispHTMLFrameElement DispHTMLFrameElement;
 #endif
 
 #ifndef __HTMLFrameElement_FWD_DEFINED__
@@ -2492,17 +2492,17 @@
 
 #ifndef __IHTMLIFrameElement_FWD_DEFINED__
 #define __IHTMLIFrameElement_FWD_DEFINED__
-typedef interface IHTMLIFrameElement IHTMLIFrameElement;
+typedef struct IHTMLIFrameElement IHTMLIFrameElement;
 #endif
 
 #ifndef __IHTMLIFrameElement2_FWD_DEFINED__
 #define __IHTMLIFrameElement2_FWD_DEFINED__
-typedef interface IHTMLIFrameElement2 IHTMLIFrameElement2;
+typedef struct IHTMLIFrameElement2 IHTMLIFrameElement2;
 #endif
 
 #ifndef __DispHTMLIFrame_FWD_DEFINED__
 #define __DispHTMLIFrame_FWD_DEFINED__
-typedef interface DispHTMLIFrame DispHTMLIFrame;
+typedef struct DispHTMLIFrame DispHTMLIFrame;
 #endif
 
 #ifndef __HTMLIFrame_FWD_DEFINED__
@@ -2516,32 +2516,32 @@
 
 #ifndef __IHTMLDivPosition_FWD_DEFINED__
 #define __IHTMLDivPosition_FWD_DEFINED__
-typedef interface IHTMLDivPosition IHTMLDivPosition;
+typedef struct IHTMLDivPosition IHTMLDivPosition;
 #endif
 
 #ifndef __IHTMLFieldSetElement_FWD_DEFINED__
 #define __IHTMLFieldSetElement_FWD_DEFINED__
-typedef interface IHTMLFieldSetElement IHTMLFieldSetElement;
+typedef struct IHTMLFieldSetElement IHTMLFieldSetElement;
 #endif
 
 #ifndef __IHTMLFieldSetElement2_FWD_DEFINED__
 #define __IHTMLFieldSetElement2_FWD_DEFINED__
-typedef interface IHTMLFieldSetElement2 IHTMLFieldSetElement2;
+typedef struct IHTMLFieldSetElement2 IHTMLFieldSetElement2;
 #endif
 
 #ifndef __IHTMLLegendElement_FWD_DEFINED__
 #define __IHTMLLegendElement_FWD_DEFINED__
-typedef interface IHTMLLegendElement IHTMLLegendElement;
+typedef struct IHTMLLegendElement IHTMLLegendElement;
 #endif
 
 #ifndef __IHTMLLegendElement2_FWD_DEFINED__
 #define __IHTMLLegendElement2_FWD_DEFINED__
-typedef interface IHTMLLegendElement2 IHTMLLegendElement2;
+typedef struct IHTMLLegendElement2 IHTMLLegendElement2;
 #endif
 
 #ifndef __DispHTMLDivPosition_FWD_DEFINED__
 #define __DispHTMLDivPosition_FWD_DEFINED__
-typedef interface DispHTMLDivPosition DispHTMLDivPosition;
+typedef struct DispHTMLDivPosition DispHTMLDivPosition;
 #endif
 
 #ifndef __HTMLDivPosition_FWD_DEFINED__
@@ -2555,7 +2555,7 @@
 
 #ifndef __DispHTMLFieldSetElement_FWD_DEFINED__
 #define __DispHTMLFieldSetElement_FWD_DEFINED__
-typedef interface DispHTMLFieldSetElement DispHTMLFieldSetElement;
+typedef struct DispHTMLFieldSetElement DispHTMLFieldSetElement;
 #endif
 
 #ifndef __HTMLFieldSetElement_FWD_DEFINED__
@@ -2569,7 +2569,7 @@
 
 #ifndef __DispHTMLLegendElement_FWD_DEFINED__
 #define __DispHTMLLegendElement_FWD_DEFINED__
-typedef interface DispHTMLLegendElement DispHTMLLegendElement;
+typedef struct DispHTMLLegendElement DispHTMLLegendElement;
 #endif
 
 #ifndef __HTMLLegendElement_FWD_DEFINED__
@@ -2583,12 +2583,12 @@
 
 #ifndef __IHTMLSpanFlow_FWD_DEFINED__
 #define __IHTMLSpanFlow_FWD_DEFINED__
-typedef interface IHTMLSpanFlow IHTMLSpanFlow;
+typedef struct IHTMLSpanFlow IHTMLSpanFlow;
 #endif
 
 #ifndef __DispHTMLSpanFlow_FWD_DEFINED__
 #define __DispHTMLSpanFlow_FWD_DEFINED__
-typedef interface DispHTMLSpanFlow DispHTMLSpanFlow;
+typedef struct DispHTMLSpanFlow DispHTMLSpanFlow;
 #endif
 
 #ifndef __HTMLSpanFlow_FWD_DEFINED__
@@ -2602,17 +2602,17 @@
 
 #ifndef __IHTMLFrameSetElement_FWD_DEFINED__
 #define __IHTMLFrameSetElement_FWD_DEFINED__
-typedef interface IHTMLFrameSetElement IHTMLFrameSetElement;
+typedef struct IHTMLFrameSetElement IHTMLFrameSetElement;
 #endif
 
 #ifndef __IHTMLFrameSetElement2_FWD_DEFINED__
 #define __IHTMLFrameSetElement2_FWD_DEFINED__
-typedef interface IHTMLFrameSetElement2 IHTMLFrameSetElement2;
+typedef struct IHTMLFrameSetElement2 IHTMLFrameSetElement2;
 #endif
 
 #ifndef __DispHTMLFrameSetSite_FWD_DEFINED__
 #define __DispHTMLFrameSetSite_FWD_DEFINED__
-typedef interface DispHTMLFrameSetSite DispHTMLFrameSetSite;
+typedef struct DispHTMLFrameSetSite DispHTMLFrameSetSite;
 #endif
 
 #ifndef __HTMLFrameSetSite_FWD_DEFINED__
@@ -2626,12 +2626,12 @@
 
 #ifndef __IHTMLBGsound_FWD_DEFINED__
 #define __IHTMLBGsound_FWD_DEFINED__
-typedef interface IHTMLBGsound IHTMLBGsound;
+typedef struct IHTMLBGsound IHTMLBGsound;
 #endif
 
 #ifndef __DispHTMLBGsound_FWD_DEFINED__
 #define __DispHTMLBGsound_FWD_DEFINED__
-typedef interface DispHTMLBGsound DispHTMLBGsound;
+typedef struct DispHTMLBGsound DispHTMLBGsound;
 #endif
 
 #ifndef __HTMLBGsound_FWD_DEFINED__
@@ -2645,37 +2645,37 @@
 
 #ifndef __IHTMLFontNamesCollection_FWD_DEFINED__
 #define __IHTMLFontNamesCollection_FWD_DEFINED__
-typedef interface IHTMLFontNamesCollection IHTMLFontNamesCollection;
+typedef struct IHTMLFontNamesCollection IHTMLFontNamesCollection;
 #endif
 
 #ifndef __IHTMLFontSizesCollection_FWD_DEFINED__
 #define __IHTMLFontSizesCollection_FWD_DEFINED__
-typedef interface IHTMLFontSizesCollection IHTMLFontSizesCollection;
+typedef struct IHTMLFontSizesCollection IHTMLFontSizesCollection;
 #endif
 
 #ifndef __IHTMLOptionsHolder_FWD_DEFINED__
 #define __IHTMLOptionsHolder_FWD_DEFINED__
-typedef interface IHTMLOptionsHolder IHTMLOptionsHolder;
+typedef struct IHTMLOptionsHolder IHTMLOptionsHolder;
 #endif
 
 #ifndef __HTMLStyleElementEvents2_FWD_DEFINED__
 #define __HTMLStyleElementEvents2_FWD_DEFINED__
-typedef interface HTMLStyleElementEvents2 HTMLStyleElementEvents2;
+typedef struct HTMLStyleElementEvents2 HTMLStyleElementEvents2;
 #endif
 
 #ifndef __HTMLStyleElementEvents_FWD_DEFINED__
 #define __HTMLStyleElementEvents_FWD_DEFINED__
-typedef interface HTMLStyleElementEvents HTMLStyleElementEvents;
+typedef struct HTMLStyleElementEvents HTMLStyleElementEvents;
 #endif
 
 #ifndef __IHTMLStyleElement_FWD_DEFINED__
 #define __IHTMLStyleElement_FWD_DEFINED__
-typedef interface IHTMLStyleElement IHTMLStyleElement;
+typedef struct IHTMLStyleElement IHTMLStyleElement;
 #endif
 
 #ifndef __DispHTMLStyleElement_FWD_DEFINED__
 #define __DispHTMLStyleElement_FWD_DEFINED__
-typedef interface DispHTMLStyleElement DispHTMLStyleElement;
+typedef struct DispHTMLStyleElement DispHTMLStyleElement;
 #endif
 
 #ifndef __HTMLStyleElement_FWD_DEFINED__
@@ -2689,7 +2689,7 @@
 
 #ifndef __IHTMLStyleFontFace_FWD_DEFINED__
 #define __IHTMLStyleFontFace_FWD_DEFINED__
-typedef interface IHTMLStyleFontFace IHTMLStyleFontFace;
+typedef struct IHTMLStyleFontFace IHTMLStyleFontFace;
 #endif
 
 #ifndef __HTMLStyleFontFace_FWD_DEFINED__
@@ -2703,192 +2703,192 @@
 
 #ifndef __ICSSFilterSite_FWD_DEFINED__
 #define __ICSSFilterSite_FWD_DEFINED__
-typedef interface ICSSFilterSite ICSSFilterSite;
+typedef struct ICSSFilterSite ICSSFilterSite;
 #endif
 
 #ifndef __IMarkupPointer_FWD_DEFINED__
 #define __IMarkupPointer_FWD_DEFINED__
-typedef interface IMarkupPointer IMarkupPointer;
+typedef struct IMarkupPointer IMarkupPointer;
 #endif
 
 #ifndef __IMarkupContainer_FWD_DEFINED__
 #define __IMarkupContainer_FWD_DEFINED__
-typedef interface IMarkupContainer IMarkupContainer;
+typedef struct IMarkupContainer IMarkupContainer;
 #endif
 
 #ifndef __IMarkupContainer2_FWD_DEFINED__
 #define __IMarkupContainer2_FWD_DEFINED__
-typedef interface IMarkupContainer2 IMarkupContainer2;
+typedef struct IMarkupContainer2 IMarkupContainer2;
 #endif
 
 #ifndef __IHTMLChangeLog_FWD_DEFINED__
 #define __IHTMLChangeLog_FWD_DEFINED__
-typedef interface IHTMLChangeLog IHTMLChangeLog;
+typedef struct IHTMLChangeLog IHTMLChangeLog;
 #endif
 
 #ifndef __IHTMLChangeSink_FWD_DEFINED__
 #define __IHTMLChangeSink_FWD_DEFINED__
-typedef interface IHTMLChangeSink IHTMLChangeSink;
+typedef struct IHTMLChangeSink IHTMLChangeSink;
 #endif
 
 #ifndef __IActiveIMMApp_FWD_DEFINED__
 #define __IActiveIMMApp_FWD_DEFINED__
-typedef interface IActiveIMMApp IActiveIMMApp;
+typedef struct IActiveIMMApp IActiveIMMApp;
 #endif
 
 #ifndef __ISegmentList_FWD_DEFINED__
 #define __ISegmentList_FWD_DEFINED__
-typedef interface ISegmentList ISegmentList;
+typedef struct ISegmentList ISegmentList;
 #endif
 
 #ifndef __ISegmentListIterator_FWD_DEFINED__
 #define __ISegmentListIterator_FWD_DEFINED__
-typedef interface ISegmentListIterator ISegmentListIterator;
+typedef struct ISegmentListIterator ISegmentListIterator;
 #endif
 
 #ifndef __IHTMLCaret_FWD_DEFINED__
 #define __IHTMLCaret_FWD_DEFINED__
-typedef interface IHTMLCaret IHTMLCaret;
+typedef struct IHTMLCaret IHTMLCaret;
 #endif
 
 #ifndef __ISegment_FWD_DEFINED__
 #define __ISegment_FWD_DEFINED__
-typedef interface ISegment ISegment;
+typedef struct ISegment ISegment;
 #endif
 
 #ifndef __IElementSegment_FWD_DEFINED__
 #define __IElementSegment_FWD_DEFINED__
-typedef interface IElementSegment IElementSegment;
+typedef struct IElementSegment IElementSegment;
 #endif
 
 #ifndef __IHighlightSegment_FWD_DEFINED__
 #define __IHighlightSegment_FWD_DEFINED__
-typedef interface IHighlightSegment IHighlightSegment;
+typedef struct IHighlightSegment IHighlightSegment;
 #endif
 
 #ifndef __IHighlightRenderingServices_FWD_DEFINED__
 #define __IHighlightRenderingServices_FWD_DEFINED__
-typedef interface IHighlightRenderingServices IHighlightRenderingServices;
+typedef struct IHighlightRenderingServices IHighlightRenderingServices;
 #endif
 
 #ifndef __ILineInfo_FWD_DEFINED__
 #define __ILineInfo_FWD_DEFINED__
-typedef interface ILineInfo ILineInfo;
+typedef struct ILineInfo ILineInfo;
 #endif
 
 #ifndef __IDisplayPointer_FWD_DEFINED__
 #define __IDisplayPointer_FWD_DEFINED__
-typedef interface IDisplayPointer IDisplayPointer;
+typedef struct IDisplayPointer IDisplayPointer;
 #endif
 
 #ifndef __IDisplayServices_FWD_DEFINED__
 #define __IDisplayServices_FWD_DEFINED__
-typedef interface IDisplayServices IDisplayServices;
+typedef struct IDisplayServices IDisplayServices;
 #endif
 
 #ifndef __IHtmlDlgSafeHelper_FWD_DEFINED__
 #define __IHtmlDlgSafeHelper_FWD_DEFINED__
-typedef interface IHtmlDlgSafeHelper IHtmlDlgSafeHelper;
+typedef struct IHtmlDlgSafeHelper IHtmlDlgSafeHelper;
 #endif
 
 #ifndef __IBlockFormats_FWD_DEFINED__
 #define __IBlockFormats_FWD_DEFINED__
-typedef interface IBlockFormats IBlockFormats;
+typedef struct IBlockFormats IBlockFormats;
 #endif
 
 #ifndef __IFontNames_FWD_DEFINED__
 #define __IFontNames_FWD_DEFINED__
-typedef interface IFontNames IFontNames;
+typedef struct IFontNames IFontNames;
 #endif
 
 #ifndef __ICSSFilter_FWD_DEFINED__
 #define __ICSSFilter_FWD_DEFINED__
-typedef interface ICSSFilter ICSSFilter;
+typedef struct ICSSFilter ICSSFilter;
 #endif
 
 #ifndef __ISecureUrlHost_FWD_DEFINED__
 #define __ISecureUrlHost_FWD_DEFINED__
-typedef interface ISecureUrlHost ISecureUrlHost;
+typedef struct ISecureUrlHost ISecureUrlHost;
 #endif
 
 #ifndef __IMarkupServices_FWD_DEFINED__
 #define __IMarkupServices_FWD_DEFINED__
-typedef interface IMarkupServices IMarkupServices;
+typedef struct IMarkupServices IMarkupServices;
 #endif
 
 #ifndef __IMarkupServices2_FWD_DEFINED__
 #define __IMarkupServices2_FWD_DEFINED__
-typedef interface IMarkupServices2 IMarkupServices2;
+typedef struct IMarkupServices2 IMarkupServices2;
 #endif
 
 #ifndef __IHTMLChangePlayback_FWD_DEFINED__
 #define __IHTMLChangePlayback_FWD_DEFINED__
-typedef interface IHTMLChangePlayback IHTMLChangePlayback;
+typedef struct IHTMLChangePlayback IHTMLChangePlayback;
 #endif
 
 #ifndef __IMarkupPointer2_FWD_DEFINED__
 #define __IMarkupPointer2_FWD_DEFINED__
-typedef interface IMarkupPointer2 IMarkupPointer2;
+typedef struct IMarkupPointer2 IMarkupPointer2;
 #endif
 
 #ifndef __IMarkupTextFrags_FWD_DEFINED__
 #define __IMarkupTextFrags_FWD_DEFINED__
-typedef interface IMarkupTextFrags IMarkupTextFrags;
+typedef struct IMarkupTextFrags IMarkupTextFrags;
 #endif
 
 #ifndef __IXMLGenericParse_FWD_DEFINED__
 #define __IXMLGenericParse_FWD_DEFINED__
-typedef interface IXMLGenericParse IXMLGenericParse;
+typedef struct IXMLGenericParse IXMLGenericParse;
 #endif
 
 #ifndef __IHTMLEditHost_FWD_DEFINED__
 #define __IHTMLEditHost_FWD_DEFINED__
-typedef interface IHTMLEditHost IHTMLEditHost;
+typedef struct IHTMLEditHost IHTMLEditHost;
 #endif
 
 #ifndef __IHTMLEditHost2_FWD_DEFINED__
 #define __IHTMLEditHost2_FWD_DEFINED__
-typedef interface IHTMLEditHost2 IHTMLEditHost2;
+typedef struct IHTMLEditHost2 IHTMLEditHost2;
 #endif
 
 #ifndef __ISequenceNumber_FWD_DEFINED__
 #define __ISequenceNumber_FWD_DEFINED__
-typedef interface ISequenceNumber ISequenceNumber;
+typedef struct ISequenceNumber ISequenceNumber;
 #endif
 
 #ifndef __IIMEServices_FWD_DEFINED__
 #define __IIMEServices_FWD_DEFINED__
-typedef interface IIMEServices IIMEServices;
+typedef struct IIMEServices IIMEServices;
 #endif
 
 #ifndef __ISelectionServicesListener_FWD_DEFINED__
 #define __ISelectionServicesListener_FWD_DEFINED__
-typedef interface ISelectionServicesListener ISelectionServicesListener;
+typedef struct ISelectionServicesListener ISelectionServicesListener;
 #endif
 
 #ifndef __ISelectionServices_FWD_DEFINED__
 #define __ISelectionServices_FWD_DEFINED__
-typedef interface ISelectionServices ISelectionServices;
+typedef struct ISelectionServices ISelectionServices;
 #endif
 
 #ifndef __IHTMLEditDesigner_FWD_DEFINED__
 #define __IHTMLEditDesigner_FWD_DEFINED__
-typedef interface IHTMLEditDesigner IHTMLEditDesigner;
+typedef struct IHTMLEditDesigner IHTMLEditDesigner;
 #endif
 
 #ifndef __IHTMLEditServices_FWD_DEFINED__
 #define __IHTMLEditServices_FWD_DEFINED__
-typedef interface IHTMLEditServices IHTMLEditServices;
+typedef struct IHTMLEditServices IHTMLEditServices;
 #endif
 
 #ifndef __IHTMLEditServices2_FWD_DEFINED__
 #define __IHTMLEditServices2_FWD_DEFINED__
-typedef interface IHTMLEditServices2 IHTMLEditServices2;
+typedef struct IHTMLEditServices2 IHTMLEditServices2;
 #endif
 
 #ifndef __IHTMLComputedStyle_FWD_DEFINED__
 #define __IHTMLComputedStyle_FWD_DEFINED__
-typedef interface IHTMLComputedStyle IHTMLComputedStyle;
+typedef struct IHTMLComputedStyle IHTMLComputedStyle;
 #endif
 
 #ifndef __HtmlDlgSafeHelper_FWD_DEFINED__
@@ -2920,17 +2920,17 @@
 
 #ifndef __HTMLNamespaceEvents_FWD_DEFINED__
 #define __HTMLNamespaceEvents_FWD_DEFINED__
-typedef interface HTMLNamespaceEvents HTMLNamespaceEvents;
+typedef struct HTMLNamespaceEvents HTMLNamespaceEvents;
 #endif
 
 #ifndef __IHTMLNamespace_FWD_DEFINED__
 #define __IHTMLNamespace_FWD_DEFINED__
-typedef interface IHTMLNamespace IHTMLNamespace;
+typedef struct IHTMLNamespace IHTMLNamespace;
 #endif
 
 #ifndef __IHTMLNamespaceCollection_FWD_DEFINED__
 #define __IHTMLNamespaceCollection_FWD_DEFINED__
-typedef interface IHTMLNamespaceCollection IHTMLNamespaceCollection;
+typedef struct IHTMLNamespaceCollection IHTMLNamespaceCollection;
 #endif
 
 #ifndef __HTMLNamespace_FWD_DEFINED__
@@ -2953,52 +2953,52 @@
 
 #ifndef __IHTMLPainter_FWD_DEFINED__
 #define __IHTMLPainter_FWD_DEFINED__
-typedef interface IHTMLPainter IHTMLPainter;
+typedef struct IHTMLPainter IHTMLPainter;
 #endif
 
 #ifndef __IHTMLPaintSite_FWD_DEFINED__
 #define __IHTMLPaintSite_FWD_DEFINED__
-typedef interface IHTMLPaintSite IHTMLPaintSite;
+typedef struct IHTMLPaintSite IHTMLPaintSite;
 #endif
 
 #ifndef __IHTMLPainterEventInfo_FWD_DEFINED__
 #define __IHTMLPainterEventInfo_FWD_DEFINED__
-typedef interface IHTMLPainterEventInfo IHTMLPainterEventInfo;
+typedef struct IHTMLPainterEventInfo IHTMLPainterEventInfo;
 #endif
 
 #ifndef __IHTMLPainterOverlay_FWD_DEFINED__
 #define __IHTMLPainterOverlay_FWD_DEFINED__
-typedef interface IHTMLPainterOverlay IHTMLPainterOverlay;
+typedef struct IHTMLPainterOverlay IHTMLPainterOverlay;
 #endif
 
 #ifndef __IHTMLIPrintCollection_FWD_DEFINED__
 #define __IHTMLIPrintCollection_FWD_DEFINED__
-typedef interface IHTMLIPrintCollection IHTMLIPrintCollection;
+typedef struct IHTMLIPrintCollection IHTMLIPrintCollection;
 #endif
 
 #ifndef __IEnumPrivacyRecords_FWD_DEFINED__
 #define __IEnumPrivacyRecords_FWD_DEFINED__
-typedef interface IEnumPrivacyRecords IEnumPrivacyRecords;
+typedef struct IEnumPrivacyRecords IEnumPrivacyRecords;
 #endif
 
 #ifndef __IHTMLDialog_FWD_DEFINED__
 #define __IHTMLDialog_FWD_DEFINED__
-typedef interface IHTMLDialog IHTMLDialog;
+typedef struct IHTMLDialog IHTMLDialog;
 #endif
 
 #ifndef __IHTMLDialog2_FWD_DEFINED__
 #define __IHTMLDialog2_FWD_DEFINED__
-typedef interface IHTMLDialog2 IHTMLDialog2;
+typedef struct IHTMLDialog2 IHTMLDialog2;
 #endif
 
 #ifndef __IHTMLDialog3_FWD_DEFINED__
 #define __IHTMLDialog3_FWD_DEFINED__
-typedef interface IHTMLDialog3 IHTMLDialog3;
+typedef struct IHTMLDialog3 IHTMLDialog3;
 #endif
 
 #ifndef __IHTMLModelessInit_FWD_DEFINED__
 #define __IHTMLModelessInit_FWD_DEFINED__
-typedef interface IHTMLModelessInit IHTMLModelessInit;
+typedef struct IHTMLModelessInit IHTMLModelessInit;
 #endif
 
 #ifndef __ThreadDialogProcParam_FWD_DEFINED__
@@ -3021,12 +3021,12 @@
 
 #ifndef __IHTMLPopup_FWD_DEFINED__
 #define __IHTMLPopup_FWD_DEFINED__
-typedef interface IHTMLPopup IHTMLPopup;
+typedef struct IHTMLPopup IHTMLPopup;
 #endif
 
 #ifndef __DispHTMLPopup_FWD_DEFINED__
 #define __DispHTMLPopup_FWD_DEFINED__
-typedef interface DispHTMLPopup DispHTMLPopup;
+typedef struct DispHTMLPopup DispHTMLPopup;
 #endif
 
 #ifndef __HTMLPopup_FWD_DEFINED__
@@ -3040,22 +3040,22 @@
 
 #ifndef __IHTMLAppBehavior_FWD_DEFINED__
 #define __IHTMLAppBehavior_FWD_DEFINED__
-typedef interface IHTMLAppBehavior IHTMLAppBehavior;
+typedef struct IHTMLAppBehavior IHTMLAppBehavior;
 #endif
 
 #ifndef __IHTMLAppBehavior2_FWD_DEFINED__
 #define __IHTMLAppBehavior2_FWD_DEFINED__
-typedef interface IHTMLAppBehavior2 IHTMLAppBehavior2;
+typedef struct IHTMLAppBehavior2 IHTMLAppBehavior2;
 #endif
 
 #ifndef __IHTMLAppBehavior3_FWD_DEFINED__
 #define __IHTMLAppBehavior3_FWD_DEFINED__
-typedef interface IHTMLAppBehavior3 IHTMLAppBehavior3;
+typedef struct IHTMLAppBehavior3 IHTMLAppBehavior3;
 #endif
 
 #ifndef __DispHTMLAppBehavior_FWD_DEFINED__
 #define __DispHTMLAppBehavior_FWD_DEFINED__
-typedef interface DispHTMLAppBehavior DispHTMLAppBehavior;
+typedef struct DispHTMLAppBehavior DispHTMLAppBehavior;
 #endif
 
 #ifndef __HTMLAppBehavior_FWD_DEFINED__
@@ -3087,7 +3087,7 @@
 
 #ifndef __DispIHTMLInputButtonElement_FWD_DEFINED__
 #define __DispIHTMLInputButtonElement_FWD_DEFINED__
-typedef interface DispIHTMLInputButtonElement DispIHTMLInputButtonElement;
+typedef struct DispIHTMLInputButtonElement DispIHTMLInputButtonElement;
 #endif
 
 #ifndef __HTMLInputButtonElement_FWD_DEFINED__
@@ -3101,7 +3101,7 @@
 
 #ifndef __DispIHTMLInputTextElement_FWD_DEFINED__
 #define __DispIHTMLInputTextElement_FWD_DEFINED__
-typedef interface DispIHTMLInputTextElement DispIHTMLInputTextElement;
+typedef struct DispIHTMLInputTextElement DispIHTMLInputTextElement;
 #endif
 
 #ifndef __HTMLInputTextElement_FWD_DEFINED__
@@ -3115,7 +3115,7 @@
 
 #ifndef __DispIHTMLInputFileElement_FWD_DEFINED__
 #define __DispIHTMLInputFileElement_FWD_DEFINED__
-typedef interface DispIHTMLInputFileElement DispIHTMLInputFileElement;
+typedef struct DispIHTMLInputFileElement DispIHTMLInputFileElement;
 #endif
 
 #ifndef __HTMLInputFileElement_FWD_DEFINED__
@@ -3129,7 +3129,7 @@
 
 #ifndef __DispIHTMLOptionButtonElement_FWD_DEFINED__
 #define __DispIHTMLOptionButtonElement_FWD_DEFINED__
-typedef interface DispIHTMLOptionButtonElement DispIHTMLOptionButtonElement;
+typedef struct DispIHTMLOptionButtonElement DispIHTMLOptionButtonElement;
 #endif
 
 #ifndef __HTMLOptionButtonElement_FWD_DEFINED__
@@ -3143,7 +3143,7 @@
 
 #ifndef __DispIHTMLInputImage_FWD_DEFINED__
 #define __DispIHTMLInputImage_FWD_DEFINED__
-typedef interface DispIHTMLInputImage DispIHTMLInputImage;
+typedef struct DispIHTMLInputImage DispIHTMLInputImage;
 #endif
 
 #ifndef __HTMLInputImage_FWD_DEFINED__
@@ -3157,77 +3157,77 @@
 
 #ifndef __IElementNamespace_FWD_DEFINED__
 #define __IElementNamespace_FWD_DEFINED__
-typedef interface IElementNamespace IElementNamespace;
+typedef struct IElementNamespace IElementNamespace;
 #endif
 
 #ifndef __IElementNamespaceTable_FWD_DEFINED__
 #define __IElementNamespaceTable_FWD_DEFINED__
-typedef interface IElementNamespaceTable IElementNamespaceTable;
+typedef struct IElementNamespaceTable IElementNamespaceTable;
 #endif
 
 #ifndef __IElementNamespaceFactory_FWD_DEFINED__
 #define __IElementNamespaceFactory_FWD_DEFINED__
-typedef interface IElementNamespaceFactory IElementNamespaceFactory;
+typedef struct IElementNamespaceFactory IElementNamespaceFactory;
 #endif
 
 #ifndef __IElementNamespaceFactory2_FWD_DEFINED__
 #define __IElementNamespaceFactory2_FWD_DEFINED__
-typedef interface IElementNamespaceFactory2 IElementNamespaceFactory2;
+typedef struct IElementNamespaceFactory2 IElementNamespaceFactory2;
 #endif
 
 #ifndef __IElementNamespaceFactoryCallback_FWD_DEFINED__
 #define __IElementNamespaceFactoryCallback_FWD_DEFINED__
-typedef interface IElementNamespaceFactoryCallback IElementNamespaceFactoryCallback;
+typedef struct IElementNamespaceFactoryCallback IElementNamespaceFactoryCallback;
 #endif
 
 #ifndef __IElementBehaviorSiteOM2_FWD_DEFINED__
 #define __IElementBehaviorSiteOM2_FWD_DEFINED__
-typedef interface IElementBehaviorSiteOM2 IElementBehaviorSiteOM2;
+typedef struct IElementBehaviorSiteOM2 IElementBehaviorSiteOM2;
 #endif
 
 #ifndef __IElementBehaviorCategory_FWD_DEFINED__
 #define __IElementBehaviorCategory_FWD_DEFINED__
-typedef interface IElementBehaviorCategory IElementBehaviorCategory;
+typedef struct IElementBehaviorCategory IElementBehaviorCategory;
 #endif
 
 #ifndef __IElementBehaviorSiteCategory_FWD_DEFINED__
 #define __IElementBehaviorSiteCategory_FWD_DEFINED__
-typedef interface IElementBehaviorSiteCategory IElementBehaviorSiteCategory;
+typedef struct IElementBehaviorSiteCategory IElementBehaviorSiteCategory;
 #endif
 
 #ifndef __IElementBehaviorSubmit_FWD_DEFINED__
 #define __IElementBehaviorSubmit_FWD_DEFINED__
-typedef interface IElementBehaviorSubmit IElementBehaviorSubmit;
+typedef struct IElementBehaviorSubmit IElementBehaviorSubmit;
 #endif
 
 #ifndef __IElementBehaviorFocus_FWD_DEFINED__
 #define __IElementBehaviorFocus_FWD_DEFINED__
-typedef interface IElementBehaviorFocus IElementBehaviorFocus;
+typedef struct IElementBehaviorFocus IElementBehaviorFocus;
 #endif
 
 #ifndef __IElementBehaviorLayout_FWD_DEFINED__
 #define __IElementBehaviorLayout_FWD_DEFINED__
-typedef interface IElementBehaviorLayout IElementBehaviorLayout;
+typedef struct IElementBehaviorLayout IElementBehaviorLayout;
 #endif
 
 #ifndef __IElementBehaviorLayout2_FWD_DEFINED__
 #define __IElementBehaviorLayout2_FWD_DEFINED__
-typedef interface IElementBehaviorLayout2 IElementBehaviorLayout2;
+typedef struct IElementBehaviorLayout2 IElementBehaviorLayout2;
 #endif
 
 #ifndef __IElementBehaviorSiteLayout_FWD_DEFINED__
 #define __IElementBehaviorSiteLayout_FWD_DEFINED__
-typedef interface IElementBehaviorSiteLayout IElementBehaviorSiteLayout;
+typedef struct IElementBehaviorSiteLayout IElementBehaviorSiteLayout;
 #endif
 
 #ifndef __IElementBehaviorSiteLayout2_FWD_DEFINED__
 #define __IElementBehaviorSiteLayout2_FWD_DEFINED__
-typedef interface IElementBehaviorSiteLayout2 IElementBehaviorSiteLayout2;
+typedef struct IElementBehaviorSiteLayout2 IElementBehaviorSiteLayout2;
 #endif
 
 #ifndef __IHostBehaviorInit_FWD_DEFINED__
 #define __IHostBehaviorInit_FWD_DEFINED__
-typedef interface IHostBehaviorInit IHostBehaviorInit;
+typedef struct IHostBehaviorInit IHostBehaviorInit;
 #endif
 
 #include "ocidl.h"
diff --git a/mingw-w64-headers/include/mshtmlc.h b/mingw-w64-headers/include/mshtmlc.h
index edd582a..0a3aa91 100755
--- a/mingw-w64-headers/include/mshtmlc.h
+++ b/mingw-w64-headers/include/mshtmlc.h
@@ -24,87 +24,87 @@
 
 #ifndef __IHTMLFiltersCollection_FWD_DEFINED__
 #define __IHTMLFiltersCollection_FWD_DEFINED__
-typedef interface IHTMLFiltersCollection IHTMLFiltersCollection;
+typedef struct IHTMLFiltersCollection IHTMLFiltersCollection;
 #endif
 
 #ifndef __IHTMLEventObj_FWD_DEFINED__
 #define __IHTMLEventObj_FWD_DEFINED__
-typedef interface IHTMLEventObj IHTMLEventObj;
+typedef struct IHTMLEventObj IHTMLEventObj;
 #endif
 
 #ifndef __IElementBehaviorSite_FWD_DEFINED__
 #define __IElementBehaviorSite_FWD_DEFINED__
-typedef interface IElementBehaviorSite IElementBehaviorSite;
+typedef struct IElementBehaviorSite IElementBehaviorSite;
 #endif
 
 #ifndef __IElementBehavior_FWD_DEFINED__
 #define __IElementBehavior_FWD_DEFINED__
-typedef interface IElementBehavior IElementBehavior;
+typedef struct IElementBehavior IElementBehavior;
 #endif
 
 #ifndef __IElementBehaviorFactory_FWD_DEFINED__
 #define __IElementBehaviorFactory_FWD_DEFINED__
-typedef interface IElementBehaviorFactory IElementBehaviorFactory;
+typedef struct IElementBehaviorFactory IElementBehaviorFactory;
 #endif
 
 #ifndef __IElementBehaviorSiteOM_FWD_DEFINED__
 #define __IElementBehaviorSiteOM_FWD_DEFINED__
-typedef interface IElementBehaviorSiteOM IElementBehaviorSiteOM;
+typedef struct IElementBehaviorSiteOM IElementBehaviorSiteOM;
 #endif
 
 #ifndef __IElementBehaviorRender_FWD_DEFINED__
 #define __IElementBehaviorRender_FWD_DEFINED__
-typedef interface IElementBehaviorRender IElementBehaviorRender;
+typedef struct IElementBehaviorRender IElementBehaviorRender;
 #endif
 
 #ifndef __IElementBehaviorSiteRender_FWD_DEFINED__
 #define __IElementBehaviorSiteRender_FWD_DEFINED__
-typedef interface IElementBehaviorSiteRender IElementBehaviorSiteRender;
+typedef struct IElementBehaviorSiteRender IElementBehaviorSiteRender;
 #endif
 
 #ifndef __IHTMLStyle_FWD_DEFINED__
 #define __IHTMLStyle_FWD_DEFINED__
-typedef interface IHTMLStyle IHTMLStyle;
+typedef struct IHTMLStyle IHTMLStyle;
 #endif
 
 #ifndef __IHTMLStyle2_FWD_DEFINED__
 #define __IHTMLStyle2_FWD_DEFINED__
-typedef interface IHTMLStyle2 IHTMLStyle2;
+typedef struct IHTMLStyle2 IHTMLStyle2;
 #endif
 
 #ifndef __IHTMLStyle3_FWD_DEFINED__
 #define __IHTMLStyle3_FWD_DEFINED__
-typedef interface IHTMLStyle3 IHTMLStyle3;
+typedef struct IHTMLStyle3 IHTMLStyle3;
 #endif
 
 #ifndef __IHTMLStyle4_FWD_DEFINED__
 #define __IHTMLStyle4_FWD_DEFINED__
-typedef interface IHTMLStyle4 IHTMLStyle4;
+typedef struct IHTMLStyle4 IHTMLStyle4;
 #endif
 
 #ifndef __IHTMLRuleStyle_FWD_DEFINED__
 #define __IHTMLRuleStyle_FWD_DEFINED__
-typedef interface IHTMLRuleStyle IHTMLRuleStyle;
+typedef struct IHTMLRuleStyle IHTMLRuleStyle;
 #endif
 
 #ifndef __IHTMLRuleStyle2_FWD_DEFINED__
 #define __IHTMLRuleStyle2_FWD_DEFINED__
-typedef interface IHTMLRuleStyle2 IHTMLRuleStyle2;
+typedef struct IHTMLRuleStyle2 IHTMLRuleStyle2;
 #endif
 
 #ifndef __IHTMLRuleStyle3_FWD_DEFINED__
 #define __IHTMLRuleStyle3_FWD_DEFINED__
-typedef interface IHTMLRuleStyle3 IHTMLRuleStyle3;
+typedef struct IHTMLRuleStyle3 IHTMLRuleStyle3;
 #endif
 
 #ifndef __IHTMLRuleStyle4_FWD_DEFINED__
 #define __IHTMLRuleStyle4_FWD_DEFINED__
-typedef interface IHTMLRuleStyle4 IHTMLRuleStyle4;
+typedef struct IHTMLRuleStyle4 IHTMLRuleStyle4;
 #endif
 
 #ifndef __DispHTMLStyle_FWD_DEFINED__
 #define __DispHTMLStyle_FWD_DEFINED__
-typedef interface DispHTMLStyle DispHTMLStyle;
+typedef struct DispHTMLStyle DispHTMLStyle;
 #endif
 
 #ifndef __HTMLStyle_FWD_DEFINED__
@@ -118,7 +118,7 @@
 
 #ifndef __DispHTMLRuleStyle_FWD_DEFINED__
 #define __DispHTMLRuleStyle_FWD_DEFINED__
-typedef interface DispHTMLRuleStyle DispHTMLRuleStyle;
+typedef struct DispHTMLRuleStyle DispHTMLRuleStyle;
 #endif
 
 #ifndef __HTMLRuleStyle_FWD_DEFINED__
@@ -132,12 +132,12 @@
 
 #ifndef __IHTMLRenderStyle_FWD_DEFINED__
 #define __IHTMLRenderStyle_FWD_DEFINED__
-typedef interface IHTMLRenderStyle IHTMLRenderStyle;
+typedef struct IHTMLRenderStyle IHTMLRenderStyle;
 #endif
 
 #ifndef __DispHTMLRenderStyle_FWD_DEFINED__
 #define __DispHTMLRenderStyle_FWD_DEFINED__
-typedef interface DispHTMLRenderStyle DispHTMLRenderStyle;
+typedef struct DispHTMLRenderStyle DispHTMLRenderStyle;
 #endif
 
 #ifndef __HTMLRenderStyle_FWD_DEFINED__
@@ -151,22 +151,22 @@
 
 #ifndef __IHTMLCurrentStyle_FWD_DEFINED__
 #define __IHTMLCurrentStyle_FWD_DEFINED__
-typedef interface IHTMLCurrentStyle IHTMLCurrentStyle;
+typedef struct IHTMLCurrentStyle IHTMLCurrentStyle;
 #endif
 
 #ifndef __IHTMLCurrentStyle2_FWD_DEFINED__
 #define __IHTMLCurrentStyle2_FWD_DEFINED__
-typedef interface IHTMLCurrentStyle2 IHTMLCurrentStyle2;
+typedef struct IHTMLCurrentStyle2 IHTMLCurrentStyle2;
 #endif
 
 #ifndef __IHTMLCurrentStyle3_FWD_DEFINED__
 #define __IHTMLCurrentStyle3_FWD_DEFINED__
-typedef interface IHTMLCurrentStyle3 IHTMLCurrentStyle3;
+typedef struct IHTMLCurrentStyle3 IHTMLCurrentStyle3;
 #endif
 
 #ifndef __DispHTMLCurrentStyle_FWD_DEFINED__
 #define __DispHTMLCurrentStyle_FWD_DEFINED__
-typedef interface DispHTMLCurrentStyle DispHTMLCurrentStyle;
+typedef struct DispHTMLCurrentStyle DispHTMLCurrentStyle;
 #endif
 
 #ifndef __HTMLCurrentStyle_FWD_DEFINED__
@@ -180,57 +180,57 @@
 
 #ifndef __IHTMLElement_FWD_DEFINED__
 #define __IHTMLElement_FWD_DEFINED__
-typedef interface IHTMLElement IHTMLElement;
+typedef struct IHTMLElement IHTMLElement;
 #endif
 
 #ifndef __IHTMLRect_FWD_DEFINED__
 #define __IHTMLRect_FWD_DEFINED__
-typedef interface IHTMLRect IHTMLRect;
+typedef struct IHTMLRect IHTMLRect;
 #endif
 
 #ifndef __IHTMLRectCollection_FWD_DEFINED__
 #define __IHTMLRectCollection_FWD_DEFINED__
-typedef interface IHTMLRectCollection IHTMLRectCollection;
+typedef struct IHTMLRectCollection IHTMLRectCollection;
 #endif
 
 #ifndef __IHTMLDOMNode_FWD_DEFINED__
 #define __IHTMLDOMNode_FWD_DEFINED__
-typedef interface IHTMLDOMNode IHTMLDOMNode;
+typedef struct IHTMLDOMNode IHTMLDOMNode;
 #endif
 
 #ifndef __IHTMLDOMNode2_FWD_DEFINED__
 #define __IHTMLDOMNode2_FWD_DEFINED__
-typedef interface IHTMLDOMNode2 IHTMLDOMNode2;
+typedef struct IHTMLDOMNode2 IHTMLDOMNode2;
 #endif
 
 #ifndef __IHTMLDOMAttribute_FWD_DEFINED__
 #define __IHTMLDOMAttribute_FWD_DEFINED__
-typedef interface IHTMLDOMAttribute IHTMLDOMAttribute;
+typedef struct IHTMLDOMAttribute IHTMLDOMAttribute;
 #endif
 
 #ifndef __IHTMLDOMAttribute2_FWD_DEFINED__
 #define __IHTMLDOMAttribute2_FWD_DEFINED__
-typedef interface IHTMLDOMAttribute2 IHTMLDOMAttribute2;
+typedef struct IHTMLDOMAttribute2 IHTMLDOMAttribute2;
 #endif
 
 #ifndef __IHTMLDOMTextNode_FWD_DEFINED__
 #define __IHTMLDOMTextNode_FWD_DEFINED__
-typedef interface IHTMLDOMTextNode IHTMLDOMTextNode;
+typedef struct IHTMLDOMTextNode IHTMLDOMTextNode;
 #endif
 
 #ifndef __IHTMLDOMTextNode2_FWD_DEFINED__
 #define __IHTMLDOMTextNode2_FWD_DEFINED__
-typedef interface IHTMLDOMTextNode2 IHTMLDOMTextNode2;
+typedef struct IHTMLDOMTextNode2 IHTMLDOMTextNode2;
 #endif
 
 #ifndef __IHTMLDOMImplementation_FWD_DEFINED__
 #define __IHTMLDOMImplementation_FWD_DEFINED__
-typedef interface IHTMLDOMImplementation IHTMLDOMImplementation;
+typedef struct IHTMLDOMImplementation IHTMLDOMImplementation;
 #endif
 
 #ifndef __DispHTMLDOMAttribute_FWD_DEFINED__
 #define __DispHTMLDOMAttribute_FWD_DEFINED__
-typedef interface DispHTMLDOMAttribute DispHTMLDOMAttribute;
+typedef struct DispHTMLDOMAttribute DispHTMLDOMAttribute;
 #endif
 
 #ifndef __HTMLDOMAttribute_FWD_DEFINED__
@@ -244,7 +244,7 @@
 
 #ifndef __DispHTMLDOMTextNode_FWD_DEFINED__
 #define __DispHTMLDOMTextNode_FWD_DEFINED__
-typedef interface DispHTMLDOMTextNode DispHTMLDOMTextNode;
+typedef struct DispHTMLDOMTextNode DispHTMLDOMTextNode;
 #endif
 
 #ifndef __HTMLDOMTextNode_FWD_DEFINED__
@@ -258,7 +258,7 @@
 
 #ifndef __DispHTMLDOMImplementation_FWD_DEFINED__
 #define __DispHTMLDOMImplementation_FWD_DEFINED__
-typedef interface DispHTMLDOMImplementation DispHTMLDOMImplementation;
+typedef struct DispHTMLDOMImplementation DispHTMLDOMImplementation;
 #endif
 
 #ifndef __HTMLDOMImplementation_FWD_DEFINED__
@@ -272,22 +272,22 @@
 
 #ifndef __IHTMLAttributeCollection_FWD_DEFINED__
 #define __IHTMLAttributeCollection_FWD_DEFINED__
-typedef interface IHTMLAttributeCollection IHTMLAttributeCollection;
+typedef struct IHTMLAttributeCollection IHTMLAttributeCollection;
 #endif
 
 #ifndef __IHTMLAttributeCollection2_FWD_DEFINED__
 #define __IHTMLAttributeCollection2_FWD_DEFINED__
-typedef interface IHTMLAttributeCollection2 IHTMLAttributeCollection2;
+typedef struct IHTMLAttributeCollection2 IHTMLAttributeCollection2;
 #endif
 
 #ifndef __IHTMLDOMChildrenCollection_FWD_DEFINED__
 #define __IHTMLDOMChildrenCollection_FWD_DEFINED__
-typedef interface IHTMLDOMChildrenCollection IHTMLDOMChildrenCollection;
+typedef struct IHTMLDOMChildrenCollection IHTMLDOMChildrenCollection;
 #endif
 
 #ifndef __DispHTMLAttributeCollection_FWD_DEFINED__
 #define __DispHTMLAttributeCollection_FWD_DEFINED__
-typedef interface DispHTMLAttributeCollection DispHTMLAttributeCollection;
+typedef struct DispHTMLAttributeCollection DispHTMLAttributeCollection;
 #endif
 
 #ifndef __HTMLAttributeCollection_FWD_DEFINED__
@@ -301,7 +301,7 @@
 
 #ifndef __DispDOMChildrenCollection_FWD_DEFINED__
 #define __DispDOMChildrenCollection_FWD_DEFINED__
-typedef interface DispDOMChildrenCollection DispDOMChildrenCollection;
+typedef struct DispDOMChildrenCollection DispDOMChildrenCollection;
 #endif
 
 #ifndef __DOMChildrenCollection_FWD_DEFINED__
@@ -315,67 +315,67 @@
 
 #ifndef __HTMLElementEvents2_FWD_DEFINED__
 #define __HTMLElementEvents2_FWD_DEFINED__
-typedef interface HTMLElementEvents2 HTMLElementEvents2;
+typedef struct HTMLElementEvents2 HTMLElementEvents2;
 #endif
 
 #ifndef __HTMLElementEvents_FWD_DEFINED__
 #define __HTMLElementEvents_FWD_DEFINED__
-typedef interface HTMLElementEvents HTMLElementEvents;
+typedef struct HTMLElementEvents HTMLElementEvents;
 #endif
 
 #ifndef __IHTMLElementCollection_FWD_DEFINED__
 #define __IHTMLElementCollection_FWD_DEFINED__
-typedef interface IHTMLElementCollection IHTMLElementCollection;
+typedef struct IHTMLElementCollection IHTMLElementCollection;
 #endif
 
 #ifndef __IHTMLFiltersCollection_FWD_DEFINED__
 #define __IHTMLFiltersCollection_FWD_DEFINED__
-typedef interface IHTMLFiltersCollection IHTMLFiltersCollection;
+typedef struct IHTMLFiltersCollection IHTMLFiltersCollection;
 #endif
 
 #ifndef __IHTMLElement2_FWD_DEFINED__
 #define __IHTMLElement2_FWD_DEFINED__
-typedef interface IHTMLElement2 IHTMLElement2;
+typedef struct IHTMLElement2 IHTMLElement2;
 #endif
 
 #ifndef __IHTMLElement3_FWD_DEFINED__
 #define __IHTMLElement3_FWD_DEFINED__
-typedef interface IHTMLElement3 IHTMLElement3;
+typedef struct IHTMLElement3 IHTMLElement3;
 #endif
 
 #ifndef __IHTMLElement4_FWD_DEFINED__
 #define __IHTMLElement4_FWD_DEFINED__
-typedef interface IHTMLElement4 IHTMLElement4;
+typedef struct IHTMLElement4 IHTMLElement4;
 #endif
 
 #ifndef __IHTMLElementRender_FWD_DEFINED__
 #define __IHTMLElementRender_FWD_DEFINED__
-typedef interface IHTMLElementRender IHTMLElementRender;
+typedef struct IHTMLElementRender IHTMLElementRender;
 #endif
 
 #ifndef __IHTMLUniqueName_FWD_DEFINED__
 #define __IHTMLUniqueName_FWD_DEFINED__
-typedef interface IHTMLUniqueName IHTMLUniqueName;
+typedef struct IHTMLUniqueName IHTMLUniqueName;
 #endif
 
 #ifndef __IHTMLDatabinding_FWD_DEFINED__
 #define __IHTMLDatabinding_FWD_DEFINED__
-typedef interface IHTMLDatabinding IHTMLDatabinding;
+typedef struct IHTMLDatabinding IHTMLDatabinding;
 #endif
 
 #ifndef __IHTMLDocument_FWD_DEFINED__
 #define __IHTMLDocument_FWD_DEFINED__
-typedef interface IHTMLDocument IHTMLDocument;
+typedef struct IHTMLDocument IHTMLDocument;
 #endif
 
 #ifndef __IHTMLElementDefaults_FWD_DEFINED__
 #define __IHTMLElementDefaults_FWD_DEFINED__
-typedef interface IHTMLElementDefaults IHTMLElementDefaults;
+typedef struct IHTMLElementDefaults IHTMLElementDefaults;
 #endif
 
 #ifndef __DispHTMLDefaults_FWD_DEFINED__
 #define __DispHTMLDefaults_FWD_DEFINED__
-typedef interface DispHTMLDefaults DispHTMLDefaults;
+typedef struct DispHTMLDefaults DispHTMLDefaults;
 #endif
 
 #ifndef __HTMLDefaults_FWD_DEFINED__
@@ -389,42 +389,42 @@
 
 #ifndef __IHTCDefaultDispatch_FWD_DEFINED__
 #define __IHTCDefaultDispatch_FWD_DEFINED__
-typedef interface IHTCDefaultDispatch IHTCDefaultDispatch;
+typedef struct IHTCDefaultDispatch IHTCDefaultDispatch;
 #endif
 
 #ifndef __IHTCPropertyBehavior_FWD_DEFINED__
 #define __IHTCPropertyBehavior_FWD_DEFINED__
-typedef interface IHTCPropertyBehavior IHTCPropertyBehavior;
+typedef struct IHTCPropertyBehavior IHTCPropertyBehavior;
 #endif
 
 #ifndef __IHTCMethodBehavior_FWD_DEFINED__
 #define __IHTCMethodBehavior_FWD_DEFINED__
-typedef interface IHTCMethodBehavior IHTCMethodBehavior;
+typedef struct IHTCMethodBehavior IHTCMethodBehavior;
 #endif
 
 #ifndef __IHTCEventBehavior_FWD_DEFINED__
 #define __IHTCEventBehavior_FWD_DEFINED__
-typedef interface IHTCEventBehavior IHTCEventBehavior;
+typedef struct IHTCEventBehavior IHTCEventBehavior;
 #endif
 
 #ifndef __IHTCAttachBehavior_FWD_DEFINED__
 #define __IHTCAttachBehavior_FWD_DEFINED__
-typedef interface IHTCAttachBehavior IHTCAttachBehavior;
+typedef struct IHTCAttachBehavior IHTCAttachBehavior;
 #endif
 
 #ifndef __IHTCAttachBehavior2_FWD_DEFINED__
 #define __IHTCAttachBehavior2_FWD_DEFINED__
-typedef interface IHTCAttachBehavior2 IHTCAttachBehavior2;
+typedef struct IHTCAttachBehavior2 IHTCAttachBehavior2;
 #endif
 
 #ifndef __IHTCDescBehavior_FWD_DEFINED__
 #define __IHTCDescBehavior_FWD_DEFINED__
-typedef interface IHTCDescBehavior IHTCDescBehavior;
+typedef struct IHTCDescBehavior IHTCDescBehavior;
 #endif
 
 #ifndef __DispHTCDefaultDispatch_FWD_DEFINED__
 #define __DispHTCDefaultDispatch_FWD_DEFINED__
-typedef interface DispHTCDefaultDispatch DispHTCDefaultDispatch;
+typedef struct DispHTCDefaultDispatch DispHTCDefaultDispatch;
 #endif
 
 #ifndef __HTCDefaultDispatch_FWD_DEFINED__
@@ -438,7 +438,7 @@
 
 #ifndef __DispHTCPropertyBehavior_FWD_DEFINED__
 #define __DispHTCPropertyBehavior_FWD_DEFINED__
-typedef interface DispHTCPropertyBehavior DispHTCPropertyBehavior;
+typedef struct DispHTCPropertyBehavior DispHTCPropertyBehavior;
 #endif
 
 #ifndef __HTCPropertyBehavior_FWD_DEFINED__
@@ -452,7 +452,7 @@
 
 #ifndef __DispHTCMethodBehavior_FWD_DEFINED__
 #define __DispHTCMethodBehavior_FWD_DEFINED__
-typedef interface DispHTCMethodBehavior DispHTCMethodBehavior;
+typedef struct DispHTCMethodBehavior DispHTCMethodBehavior;
 #endif
 
 #ifndef __HTCMethodBehavior_FWD_DEFINED__
@@ -466,7 +466,7 @@
 
 #ifndef __DispHTCEventBehavior_FWD_DEFINED__
 #define __DispHTCEventBehavior_FWD_DEFINED__
-typedef interface DispHTCEventBehavior DispHTCEventBehavior;
+typedef struct DispHTCEventBehavior DispHTCEventBehavior;
 #endif
 
 #ifndef __HTCEventBehavior_FWD_DEFINED__
@@ -480,7 +480,7 @@
 
 #ifndef __DispHTCAttachBehavior_FWD_DEFINED__
 #define __DispHTCAttachBehavior_FWD_DEFINED__
-typedef interface DispHTCAttachBehavior DispHTCAttachBehavior;
+typedef struct DispHTCAttachBehavior DispHTCAttachBehavior;
 #endif
 
 #ifndef __HTCAttachBehavior_FWD_DEFINED__
@@ -494,7 +494,7 @@
 
 #ifndef __DispHTCDescBehavior_FWD_DEFINED__
 #define __DispHTCDescBehavior_FWD_DEFINED__
-typedef interface DispHTCDescBehavior DispHTCDescBehavior;
+typedef struct DispHTCDescBehavior DispHTCDescBehavior;
 #endif
 
 #ifndef __HTCDescBehavior_FWD_DEFINED__
@@ -508,7 +508,7 @@
 
 #ifndef __IHTMLUrnCollection_FWD_DEFINED__
 #define __IHTMLUrnCollection_FWD_DEFINED__
-typedef interface IHTMLUrnCollection IHTMLUrnCollection;
+typedef struct IHTMLUrnCollection IHTMLUrnCollection;
 #endif
 
 #ifndef __HTMLUrnCollection_FWD_DEFINED__
@@ -522,12 +522,12 @@
 
 #ifndef __IHTMLGenericElement_FWD_DEFINED__
 #define __IHTMLGenericElement_FWD_DEFINED__
-typedef interface IHTMLGenericElement IHTMLGenericElement;
+typedef struct IHTMLGenericElement IHTMLGenericElement;
 #endif
 
 #ifndef __DispHTMLGenericElement_FWD_DEFINED__
 #define __DispHTMLGenericElement_FWD_DEFINED__
-typedef interface DispHTMLGenericElement DispHTMLGenericElement;
+typedef struct DispHTMLGenericElement DispHTMLGenericElement;
 #endif
 
 #ifndef __HTMLGenericElement_FWD_DEFINED__
@@ -541,12 +541,12 @@
 
 #ifndef __IHTMLStyleSheetRule_FWD_DEFINED__
 #define __IHTMLStyleSheetRule_FWD_DEFINED__
-typedef interface IHTMLStyleSheetRule IHTMLStyleSheetRule;
+typedef struct IHTMLStyleSheetRule IHTMLStyleSheetRule;
 #endif
 
 #ifndef __IHTMLStyleSheetRulesCollection_FWD_DEFINED__
 #define __IHTMLStyleSheetRulesCollection_FWD_DEFINED__
-typedef interface IHTMLStyleSheetRulesCollection IHTMLStyleSheetRulesCollection;
+typedef struct IHTMLStyleSheetRulesCollection IHTMLStyleSheetRulesCollection;
 #endif
 
 #ifndef __HTMLStyleSheetRule_FWD_DEFINED__
@@ -569,12 +569,12 @@
 
 #ifndef __IHTMLStyleSheetPage_FWD_DEFINED__
 #define __IHTMLStyleSheetPage_FWD_DEFINED__
-typedef interface IHTMLStyleSheetPage IHTMLStyleSheetPage;
+typedef struct IHTMLStyleSheetPage IHTMLStyleSheetPage;
 #endif
 
 #ifndef __IHTMLStyleSheetPagesCollection_FWD_DEFINED__
 #define __IHTMLStyleSheetPagesCollection_FWD_DEFINED__
-typedef interface IHTMLStyleSheetPagesCollection IHTMLStyleSheetPagesCollection;
+typedef struct IHTMLStyleSheetPagesCollection IHTMLStyleSheetPagesCollection;
 #endif
 
 #ifndef __HTMLStyleSheetPage_FWD_DEFINED__
@@ -597,22 +597,22 @@
 
 #ifndef __IHTMLStyleSheetsCollection_FWD_DEFINED__
 #define __IHTMLStyleSheetsCollection_FWD_DEFINED__
-typedef interface IHTMLStyleSheetsCollection IHTMLStyleSheetsCollection;
+typedef struct IHTMLStyleSheetsCollection IHTMLStyleSheetsCollection;
 #endif
 
 #ifndef __IHTMLStyleSheet_FWD_DEFINED__
 #define __IHTMLStyleSheet_FWD_DEFINED__
-typedef interface IHTMLStyleSheet IHTMLStyleSheet;
+typedef struct IHTMLStyleSheet IHTMLStyleSheet;
 #endif
 
 #ifndef __IHTMLStyleSheet2_FWD_DEFINED__
 #define __IHTMLStyleSheet2_FWD_DEFINED__
-typedef interface IHTMLStyleSheet2 IHTMLStyleSheet2;
+typedef struct IHTMLStyleSheet2 IHTMLStyleSheet2;
 #endif
 
 #ifndef __DispHTMLStyleSheet_FWD_DEFINED__
 #define __DispHTMLStyleSheet_FWD_DEFINED__
-typedef interface DispHTMLStyleSheet DispHTMLStyleSheet;
+typedef struct DispHTMLStyleSheet DispHTMLStyleSheet;
 #endif
 
 #ifndef __HTMLStyleSheet_FWD_DEFINED__
@@ -635,32 +635,32 @@
 
 #ifndef __HTMLLinkElementEvents2_FWD_DEFINED__
 #define __HTMLLinkElementEvents2_FWD_DEFINED__
-typedef interface HTMLLinkElementEvents2 HTMLLinkElementEvents2;
+typedef struct HTMLLinkElementEvents2 HTMLLinkElementEvents2;
 #endif
 
 #ifndef __HTMLLinkElementEvents_FWD_DEFINED__
 #define __HTMLLinkElementEvents_FWD_DEFINED__
-typedef interface HTMLLinkElementEvents HTMLLinkElementEvents;
+typedef struct HTMLLinkElementEvents HTMLLinkElementEvents;
 #endif
 
 #ifndef __IHTMLLinkElement_FWD_DEFINED__
 #define __IHTMLLinkElement_FWD_DEFINED__
-typedef interface IHTMLLinkElement IHTMLLinkElement;
+typedef struct IHTMLLinkElement IHTMLLinkElement;
 #endif
 
 #ifndef __IHTMLLinkElement2_FWD_DEFINED__
 #define __IHTMLLinkElement2_FWD_DEFINED__
-typedef interface IHTMLLinkElement2 IHTMLLinkElement2;
+typedef struct IHTMLLinkElement2 IHTMLLinkElement2;
 #endif
 
 #ifndef __IHTMLLinkElement3_FWD_DEFINED__
 #define __IHTMLLinkElement3_FWD_DEFINED__
-typedef interface IHTMLLinkElement3 IHTMLLinkElement3;
+typedef struct IHTMLLinkElement3 IHTMLLinkElement3;
 #endif
 
 #ifndef __DispHTMLLinkElement_FWD_DEFINED__
 #define __DispHTMLLinkElement_FWD_DEFINED__
-typedef interface DispHTMLLinkElement DispHTMLLinkElement;
+typedef struct DispHTMLLinkElement DispHTMLLinkElement;
 #endif
 
 #ifndef __HTMLLinkElement_FWD_DEFINED__
@@ -674,57 +674,57 @@
 
 #ifndef __IHTMLTxtRange_FWD_DEFINED__
 #define __IHTMLTxtRange_FWD_DEFINED__
-typedef interface IHTMLTxtRange IHTMLTxtRange;
+typedef struct IHTMLTxtRange IHTMLTxtRange;
 #endif
 
 #ifndef __IHTMLTextRangeMetrics_FWD_DEFINED__
 #define __IHTMLTextRangeMetrics_FWD_DEFINED__
-typedef interface IHTMLTextRangeMetrics IHTMLTextRangeMetrics;
+typedef struct IHTMLTextRangeMetrics IHTMLTextRangeMetrics;
 #endif
 
 #ifndef __IHTMLTextRangeMetrics2_FWD_DEFINED__
 #define __IHTMLTextRangeMetrics2_FWD_DEFINED__
-typedef interface IHTMLTextRangeMetrics2 IHTMLTextRangeMetrics2;
+typedef struct IHTMLTextRangeMetrics2 IHTMLTextRangeMetrics2;
 #endif
 
 #ifndef __IHTMLTxtRangeCollection_FWD_DEFINED__
 #define __IHTMLTxtRangeCollection_FWD_DEFINED__
-typedef interface IHTMLTxtRangeCollection IHTMLTxtRangeCollection;
+typedef struct IHTMLTxtRangeCollection IHTMLTxtRangeCollection;
 #endif
 
 #ifndef __HTMLFormElementEvents2_FWD_DEFINED__
 #define __HTMLFormElementEvents2_FWD_DEFINED__
-typedef interface HTMLFormElementEvents2 HTMLFormElementEvents2;
+typedef struct HTMLFormElementEvents2 HTMLFormElementEvents2;
 #endif
 
 #ifndef __HTMLFormElementEvents_FWD_DEFINED__
 #define __HTMLFormElementEvents_FWD_DEFINED__
-typedef interface HTMLFormElementEvents HTMLFormElementEvents;
+typedef struct HTMLFormElementEvents HTMLFormElementEvents;
 #endif
 
 #ifndef __IHTMLFormElement_FWD_DEFINED__
 #define __IHTMLFormElement_FWD_DEFINED__
-typedef interface IHTMLFormElement IHTMLFormElement;
+typedef struct IHTMLFormElement IHTMLFormElement;
 #endif
 
 #ifndef __IHTMLFormElement2_FWD_DEFINED__
 #define __IHTMLFormElement2_FWD_DEFINED__
-typedef interface IHTMLFormElement2 IHTMLFormElement2;
+typedef struct IHTMLFormElement2 IHTMLFormElement2;
 #endif
 
 #ifndef __IHTMLFormElement3_FWD_DEFINED__
 #define __IHTMLFormElement3_FWD_DEFINED__
-typedef interface IHTMLFormElement3 IHTMLFormElement3;
+typedef struct IHTMLFormElement3 IHTMLFormElement3;
 #endif
 
 #ifndef __IHTMLSubmitData_FWD_DEFINED__
 #define __IHTMLSubmitData_FWD_DEFINED__
-typedef interface IHTMLSubmitData IHTMLSubmitData;
+typedef struct IHTMLSubmitData IHTMLSubmitData;
 #endif
 
 #ifndef __DispHTMLFormElement_FWD_DEFINED__
 #define __DispHTMLFormElement_FWD_DEFINED__
-typedef interface DispHTMLFormElement DispHTMLFormElement;
+typedef struct DispHTMLFormElement DispHTMLFormElement;
 #endif
 
 #ifndef __HTMLFormElement_FWD_DEFINED__
@@ -738,27 +738,27 @@
 
 #ifndef __HTMLControlElementEvents2_FWD_DEFINED__
 #define __HTMLControlElementEvents2_FWD_DEFINED__
-typedef interface HTMLControlElementEvents2 HTMLControlElementEvents2;
+typedef struct HTMLControlElementEvents2 HTMLControlElementEvents2;
 #endif
 
 #ifndef __HTMLControlElementEvents_FWD_DEFINED__
 #define __HTMLControlElementEvents_FWD_DEFINED__
-typedef interface HTMLControlElementEvents HTMLControlElementEvents;
+typedef struct HTMLControlElementEvents HTMLControlElementEvents;
 #endif
 
 #ifndef __IHTMLControlElement_FWD_DEFINED__
 #define __IHTMLControlElement_FWD_DEFINED__
-typedef interface IHTMLControlElement IHTMLControlElement;
+typedef struct IHTMLControlElement IHTMLControlElement;
 #endif
 
 #ifndef __IHTMLTextElement_FWD_DEFINED__
 #define __IHTMLTextElement_FWD_DEFINED__
-typedef interface IHTMLTextElement IHTMLTextElement;
+typedef struct IHTMLTextElement IHTMLTextElement;
 #endif
 
 #ifndef __DispHTMLTextElement_FWD_DEFINED__
 #define __DispHTMLTextElement_FWD_DEFINED__
-typedef interface DispHTMLTextElement DispHTMLTextElement;
+typedef struct DispHTMLTextElement DispHTMLTextElement;
 #endif
 
 #ifndef __HTMLTextElement_FWD_DEFINED__
@@ -772,57 +772,57 @@
 
 #ifndef __HTMLTextContainerEvents2_FWD_DEFINED__
 #define __HTMLTextContainerEvents2_FWD_DEFINED__
-typedef interface HTMLTextContainerEvents2 HTMLTextContainerEvents2;
+typedef struct HTMLTextContainerEvents2 HTMLTextContainerEvents2;
 #endif
 
 #ifndef __HTMLTextContainerEvents_FWD_DEFINED__
 #define __HTMLTextContainerEvents_FWD_DEFINED__
-typedef interface HTMLTextContainerEvents HTMLTextContainerEvents;
+typedef struct HTMLTextContainerEvents HTMLTextContainerEvents;
 #endif
 
 #ifndef __IHTMLTextContainer_FWD_DEFINED__
 #define __IHTMLTextContainer_FWD_DEFINED__
-typedef interface IHTMLTextContainer IHTMLTextContainer;
+typedef struct IHTMLTextContainer IHTMLTextContainer;
 #endif
 
 #ifndef __IHTMLControlRange_FWD_DEFINED__
 #define __IHTMLControlRange_FWD_DEFINED__
-typedef interface IHTMLControlRange IHTMLControlRange;
+typedef struct IHTMLControlRange IHTMLControlRange;
 #endif
 
 #ifndef __IHTMLControlRange2_FWD_DEFINED__
 #define __IHTMLControlRange2_FWD_DEFINED__
-typedef interface IHTMLControlRange2 IHTMLControlRange2;
+typedef struct IHTMLControlRange2 IHTMLControlRange2;
 #endif
 
 #ifndef __HTMLImgEvents2_FWD_DEFINED__
 #define __HTMLImgEvents2_FWD_DEFINED__
-typedef interface HTMLImgEvents2 HTMLImgEvents2;
+typedef struct HTMLImgEvents2 HTMLImgEvents2;
 #endif
 
 #ifndef __HTMLImgEvents_FWD_DEFINED__
 #define __HTMLImgEvents_FWD_DEFINED__
-typedef interface HTMLImgEvents HTMLImgEvents;
+typedef struct HTMLImgEvents HTMLImgEvents;
 #endif
 
 #ifndef __IHTMLImgElement_FWD_DEFINED__
 #define __IHTMLImgElement_FWD_DEFINED__
-typedef interface IHTMLImgElement IHTMLImgElement;
+typedef struct IHTMLImgElement IHTMLImgElement;
 #endif
 
 #ifndef __IHTMLImgElement2_FWD_DEFINED__
 #define __IHTMLImgElement2_FWD_DEFINED__
-typedef interface IHTMLImgElement2 IHTMLImgElement2;
+typedef struct IHTMLImgElement2 IHTMLImgElement2;
 #endif
 
 #ifndef __IHTMLImageElementFactory_FWD_DEFINED__
 #define __IHTMLImageElementFactory_FWD_DEFINED__
-typedef interface IHTMLImageElementFactory IHTMLImageElementFactory;
+typedef struct IHTMLImageElementFactory IHTMLImageElementFactory;
 #endif
 
 #ifndef __DispHTMLImg_FWD_DEFINED__
 #define __DispHTMLImg_FWD_DEFINED__
-typedef interface DispHTMLImg DispHTMLImg;
+typedef struct DispHTMLImg DispHTMLImg;
 #endif
 
 #ifndef __HTMLImg_FWD_DEFINED__
@@ -845,17 +845,17 @@
 
 #ifndef __IHTMLBodyElement_FWD_DEFINED__
 #define __IHTMLBodyElement_FWD_DEFINED__
-typedef interface IHTMLBodyElement IHTMLBodyElement;
+typedef struct IHTMLBodyElement IHTMLBodyElement;
 #endif
 
 #ifndef __IHTMLBodyElement2_FWD_DEFINED__
 #define __IHTMLBodyElement2_FWD_DEFINED__
-typedef interface IHTMLBodyElement2 IHTMLBodyElement2;
+typedef struct IHTMLBodyElement2 IHTMLBodyElement2;
 #endif
 
 #ifndef __DispHTMLBody_FWD_DEFINED__
 #define __DispHTMLBody_FWD_DEFINED__
-typedef interface DispHTMLBody DispHTMLBody;
+typedef struct DispHTMLBody DispHTMLBody;
 #endif
 
 #ifndef __HTMLBody_FWD_DEFINED__
@@ -869,12 +869,12 @@
 
 #ifndef __IHTMLFontElement_FWD_DEFINED__
 #define __IHTMLFontElement_FWD_DEFINED__
-typedef interface IHTMLFontElement IHTMLFontElement;
+typedef struct IHTMLFontElement IHTMLFontElement;
 #endif
 
 #ifndef __DispHTMLFontElement_FWD_DEFINED__
 #define __DispHTMLFontElement_FWD_DEFINED__
-typedef interface DispHTMLFontElement DispHTMLFontElement;
+typedef struct DispHTMLFontElement DispHTMLFontElement;
 #endif
 
 #ifndef __HTMLFontElement_FWD_DEFINED__
@@ -888,27 +888,27 @@
 
 #ifndef __HTMLAnchorEvents2_FWD_DEFINED__
 #define __HTMLAnchorEvents2_FWD_DEFINED__
-typedef interface HTMLAnchorEvents2 HTMLAnchorEvents2;
+typedef struct HTMLAnchorEvents2 HTMLAnchorEvents2;
 #endif
 
 #ifndef __HTMLAnchorEvents_FWD_DEFINED__
 #define __HTMLAnchorEvents_FWD_DEFINED__
-typedef interface HTMLAnchorEvents HTMLAnchorEvents;
+typedef struct HTMLAnchorEvents HTMLAnchorEvents;
 #endif
 
 #ifndef __IHTMLAnchorElement_FWD_DEFINED__
 #define __IHTMLAnchorElement_FWD_DEFINED__
-typedef interface IHTMLAnchorElement IHTMLAnchorElement;
+typedef struct IHTMLAnchorElement IHTMLAnchorElement;
 #endif
 
 #ifndef __IHTMLAnchorElement2_FWD_DEFINED__
 #define __IHTMLAnchorElement2_FWD_DEFINED__
-typedef interface IHTMLAnchorElement2 IHTMLAnchorElement2;
+typedef struct IHTMLAnchorElement2 IHTMLAnchorElement2;
 #endif
 
 #ifndef __DispHTMLAnchorElement_FWD_DEFINED__
 #define __DispHTMLAnchorElement_FWD_DEFINED__
-typedef interface DispHTMLAnchorElement DispHTMLAnchorElement;
+typedef struct DispHTMLAnchorElement DispHTMLAnchorElement;
 #endif
 
 #ifndef __HTMLAnchorElement_FWD_DEFINED__
@@ -922,27 +922,27 @@
 
 #ifndef __HTMLLabelEvents2_FWD_DEFINED__
 #define __HTMLLabelEvents2_FWD_DEFINED__
-typedef interface HTMLLabelEvents2 HTMLLabelEvents2;
+typedef struct HTMLLabelEvents2 HTMLLabelEvents2;
 #endif
 
 #ifndef __HTMLLabelEvents_FWD_DEFINED__
 #define __HTMLLabelEvents_FWD_DEFINED__
-typedef interface HTMLLabelEvents HTMLLabelEvents;
+typedef struct HTMLLabelEvents HTMLLabelEvents;
 #endif
 
 #ifndef __IHTMLLabelElement_FWD_DEFINED__
 #define __IHTMLLabelElement_FWD_DEFINED__
-typedef interface IHTMLLabelElement IHTMLLabelElement;
+typedef struct IHTMLLabelElement IHTMLLabelElement;
 #endif
 
 #ifndef __IHTMLLabelElement2_FWD_DEFINED__
 #define __IHTMLLabelElement2_FWD_DEFINED__
-typedef interface IHTMLLabelElement2 IHTMLLabelElement2;
+typedef struct IHTMLLabelElement2 IHTMLLabelElement2;
 #endif
 
 #ifndef __DispHTMLLabelElement_FWD_DEFINED__
 #define __DispHTMLLabelElement_FWD_DEFINED__
-typedef interface DispHTMLLabelElement DispHTMLLabelElement;
+typedef struct DispHTMLLabelElement DispHTMLLabelElement;
 #endif
 
 #ifndef __HTMLLabelElement_FWD_DEFINED__
@@ -956,17 +956,17 @@
 
 #ifndef __IHTMLListElement_FWD_DEFINED__
 #define __IHTMLListElement_FWD_DEFINED__
-typedef interface IHTMLListElement IHTMLListElement;
+typedef struct IHTMLListElement IHTMLListElement;
 #endif
 
 #ifndef __IHTMLListElement2_FWD_DEFINED__
 #define __IHTMLListElement2_FWD_DEFINED__
-typedef interface IHTMLListElement2 IHTMLListElement2;
+typedef struct IHTMLListElement2 IHTMLListElement2;
 #endif
 
 #ifndef __DispHTMLListElement_FWD_DEFINED__
 #define __DispHTMLListElement_FWD_DEFINED__
-typedef interface DispHTMLListElement DispHTMLListElement;
+typedef struct DispHTMLListElement DispHTMLListElement;
 #endif
 
 #ifndef __HTMLListElement_FWD_DEFINED__
@@ -980,12 +980,12 @@
 
 #ifndef __IHTMLUListElement_FWD_DEFINED__
 #define __IHTMLUListElement_FWD_DEFINED__
-typedef interface IHTMLUListElement IHTMLUListElement;
+typedef struct IHTMLUListElement IHTMLUListElement;
 #endif
 
 #ifndef __DispHTMLUListElement_FWD_DEFINED__
 #define __DispHTMLUListElement_FWD_DEFINED__
-typedef interface DispHTMLUListElement DispHTMLUListElement;
+typedef struct DispHTMLUListElement DispHTMLUListElement;
 #endif
 
 #ifndef __HTMLUListElement_FWD_DEFINED__
@@ -999,12 +999,12 @@
 
 #ifndef __IHTMLOListElement_FWD_DEFINED__
 #define __IHTMLOListElement_FWD_DEFINED__
-typedef interface IHTMLOListElement IHTMLOListElement;
+typedef struct IHTMLOListElement IHTMLOListElement;
 #endif
 
 #ifndef __DispHTMLOListElement_FWD_DEFINED__
 #define __DispHTMLOListElement_FWD_DEFINED__
-typedef interface DispHTMLOListElement DispHTMLOListElement;
+typedef struct DispHTMLOListElement DispHTMLOListElement;
 #endif
 
 #ifndef __HTMLOListElement_FWD_DEFINED__
@@ -1018,12 +1018,12 @@
 
 #ifndef __IHTMLLIElement_FWD_DEFINED__
 #define __IHTMLLIElement_FWD_DEFINED__
-typedef interface IHTMLLIElement IHTMLLIElement;
+typedef struct IHTMLLIElement IHTMLLIElement;
 #endif
 
 #ifndef __DispHTMLLIElement_FWD_DEFINED__
 #define __DispHTMLLIElement_FWD_DEFINED__
-typedef interface DispHTMLLIElement DispHTMLLIElement;
+typedef struct DispHTMLLIElement DispHTMLLIElement;
 #endif
 
 #ifndef __HTMLLIElement_FWD_DEFINED__
@@ -1037,17 +1037,17 @@
 
 #ifndef __IHTMLBlockElement_FWD_DEFINED__
 #define __IHTMLBlockElement_FWD_DEFINED__
-typedef interface IHTMLBlockElement IHTMLBlockElement;
+typedef struct IHTMLBlockElement IHTMLBlockElement;
 #endif
 
 #ifndef __IHTMLBlockElement2_FWD_DEFINED__
 #define __IHTMLBlockElement2_FWD_DEFINED__
-typedef interface IHTMLBlockElement2 IHTMLBlockElement2;
+typedef struct IHTMLBlockElement2 IHTMLBlockElement2;
 #endif
 
 #ifndef __DispHTMLBlockElement_FWD_DEFINED__
 #define __DispHTMLBlockElement_FWD_DEFINED__
-typedef interface DispHTMLBlockElement DispHTMLBlockElement;
+typedef struct DispHTMLBlockElement DispHTMLBlockElement;
 #endif
 
 #ifndef __HTMLBlockElement_FWD_DEFINED__
@@ -1061,12 +1061,12 @@
 
 #ifndef __IHTMLDivElement_FWD_DEFINED__
 #define __IHTMLDivElement_FWD_DEFINED__
-typedef interface IHTMLDivElement IHTMLDivElement;
+typedef struct IHTMLDivElement IHTMLDivElement;
 #endif
 
 #ifndef __DispHTMLDivElement_FWD_DEFINED__
 #define __DispHTMLDivElement_FWD_DEFINED__
-typedef interface DispHTMLDivElement DispHTMLDivElement;
+typedef struct DispHTMLDivElement DispHTMLDivElement;
 #endif
 
 #ifndef __HTMLDivElement_FWD_DEFINED__
@@ -1080,12 +1080,12 @@
 
 #ifndef __IHTMLDDElement_FWD_DEFINED__
 #define __IHTMLDDElement_FWD_DEFINED__
-typedef interface IHTMLDDElement IHTMLDDElement;
+typedef struct IHTMLDDElement IHTMLDDElement;
 #endif
 
 #ifndef __DispHTMLDDElement_FWD_DEFINED__
 #define __DispHTMLDDElement_FWD_DEFINED__
-typedef interface DispHTMLDDElement DispHTMLDDElement;
+typedef struct DispHTMLDDElement DispHTMLDDElement;
 #endif
 
 #ifndef __HTMLDDElement_FWD_DEFINED__
@@ -1099,12 +1099,12 @@
 
 #ifndef __IHTMLDTElement_FWD_DEFINED__
 #define __IHTMLDTElement_FWD_DEFINED__
-typedef interface IHTMLDTElement IHTMLDTElement;
+typedef struct IHTMLDTElement IHTMLDTElement;
 #endif
 
 #ifndef __DispHTMLDTElement_FWD_DEFINED__
 #define __DispHTMLDTElement_FWD_DEFINED__
-typedef interface DispHTMLDTElement DispHTMLDTElement;
+typedef struct DispHTMLDTElement DispHTMLDTElement;
 #endif
 
 #ifndef __HTMLDTElement_FWD_DEFINED__
@@ -1118,12 +1118,12 @@
 
 #ifndef __IHTMLBRElement_FWD_DEFINED__
 #define __IHTMLBRElement_FWD_DEFINED__
-typedef interface IHTMLBRElement IHTMLBRElement;
+typedef struct IHTMLBRElement IHTMLBRElement;
 #endif
 
 #ifndef __DispHTMLBRElement_FWD_DEFINED__
 #define __DispHTMLBRElement_FWD_DEFINED__
-typedef interface DispHTMLBRElement DispHTMLBRElement;
+typedef struct DispHTMLBRElement DispHTMLBRElement;
 #endif
 
 #ifndef __HTMLBRElement_FWD_DEFINED__
@@ -1137,12 +1137,12 @@
 
 #ifndef __IHTMLDListElement_FWD_DEFINED__
 #define __IHTMLDListElement_FWD_DEFINED__
-typedef interface IHTMLDListElement IHTMLDListElement;
+typedef struct IHTMLDListElement IHTMLDListElement;
 #endif
 
 #ifndef __DispHTMLDListElement_FWD_DEFINED__
 #define __DispHTMLDListElement_FWD_DEFINED__
-typedef interface DispHTMLDListElement DispHTMLDListElement;
+typedef struct DispHTMLDListElement DispHTMLDListElement;
 #endif
 
 #ifndef __HTMLDListElement_FWD_DEFINED__
@@ -1156,12 +1156,12 @@
 
 #ifndef __IHTMLHRElement_FWD_DEFINED__
 #define __IHTMLHRElement_FWD_DEFINED__
-typedef interface IHTMLHRElement IHTMLHRElement;
+typedef struct IHTMLHRElement IHTMLHRElement;
 #endif
 
 #ifndef __DispHTMLHRElement_FWD_DEFINED__
 #define __DispHTMLHRElement_FWD_DEFINED__
-typedef interface DispHTMLHRElement DispHTMLHRElement;
+typedef struct DispHTMLHRElement DispHTMLHRElement;
 #endif
 
 #ifndef __HTMLHRElement_FWD_DEFINED__
@@ -1175,12 +1175,12 @@
 
 #ifndef __IHTMLParaElement_FWD_DEFINED__
 #define __IHTMLParaElement_FWD_DEFINED__
-typedef interface IHTMLParaElement IHTMLParaElement;
+typedef struct IHTMLParaElement IHTMLParaElement;
 #endif
 
 #ifndef __DispHTMLParaElement_FWD_DEFINED__
 #define __DispHTMLParaElement_FWD_DEFINED__
-typedef interface DispHTMLParaElement DispHTMLParaElement;
+typedef struct DispHTMLParaElement DispHTMLParaElement;
 #endif
 
 #ifndef __HTMLParaElement_FWD_DEFINED__
@@ -1194,17 +1194,17 @@
 
 #ifndef __IHTMLElementCollection2_FWD_DEFINED__
 #define __IHTMLElementCollection2_FWD_DEFINED__
-typedef interface IHTMLElementCollection2 IHTMLElementCollection2;
+typedef struct IHTMLElementCollection2 IHTMLElementCollection2;
 #endif
 
 #ifndef __IHTMLElementCollection3_FWD_DEFINED__
 #define __IHTMLElementCollection3_FWD_DEFINED__
-typedef interface IHTMLElementCollection3 IHTMLElementCollection3;
+typedef struct IHTMLElementCollection3 IHTMLElementCollection3;
 #endif
 
 #ifndef __DispHTMLElementCollection_FWD_DEFINED__
 #define __DispHTMLElementCollection_FWD_DEFINED__
-typedef interface DispHTMLElementCollection DispHTMLElementCollection;
+typedef struct DispHTMLElementCollection DispHTMLElementCollection;
 #endif
 
 #ifndef __HTMLElementCollection_FWD_DEFINED__
@@ -1218,12 +1218,12 @@
 
 #ifndef __IHTMLHeaderElement_FWD_DEFINED__
 #define __IHTMLHeaderElement_FWD_DEFINED__
-typedef interface IHTMLHeaderElement IHTMLHeaderElement;
+typedef struct IHTMLHeaderElement IHTMLHeaderElement;
 #endif
 
 #ifndef __DispHTMLHeaderElement_FWD_DEFINED__
 #define __DispHTMLHeaderElement_FWD_DEFINED__
-typedef interface DispHTMLHeaderElement DispHTMLHeaderElement;
+typedef struct DispHTMLHeaderElement DispHTMLHeaderElement;
 #endif
 
 #ifndef __HTMLHeaderElement_FWD_DEFINED__
@@ -1237,32 +1237,32 @@
 
 #ifndef __HTMLSelectElementEvents2_FWD_DEFINED__
 #define __HTMLSelectElementEvents2_FWD_DEFINED__
-typedef interface HTMLSelectElementEvents2 HTMLSelectElementEvents2;
+typedef struct HTMLSelectElementEvents2 HTMLSelectElementEvents2;
 #endif
 
 #ifndef __HTMLSelectElementEvents_FWD_DEFINED__
 #define __HTMLSelectElementEvents_FWD_DEFINED__
-typedef interface HTMLSelectElementEvents HTMLSelectElementEvents;
+typedef struct HTMLSelectElementEvents HTMLSelectElementEvents;
 #endif
 
 #ifndef __IHTMLSelectElement_FWD_DEFINED__
 #define __IHTMLSelectElement_FWD_DEFINED__
-typedef interface IHTMLSelectElement IHTMLSelectElement;
+typedef struct IHTMLSelectElement IHTMLSelectElement;
 #endif
 
 #ifndef __IHTMLSelectElement2_FWD_DEFINED__
 #define __IHTMLSelectElement2_FWD_DEFINED__
-typedef interface IHTMLSelectElement2 IHTMLSelectElement2;
+typedef struct IHTMLSelectElement2 IHTMLSelectElement2;
 #endif
 
 #ifndef __IHTMLSelectElement4_FWD_DEFINED__
 #define __IHTMLSelectElement4_FWD_DEFINED__
-typedef interface IHTMLSelectElement4 IHTMLSelectElement4;
+typedef struct IHTMLSelectElement4 IHTMLSelectElement4;
 #endif
 
 #ifndef __DispHTMLSelectElement_FWD_DEFINED__
 #define __DispHTMLSelectElement_FWD_DEFINED__
-typedef interface DispHTMLSelectElement DispHTMLSelectElement;
+typedef struct DispHTMLSelectElement DispHTMLSelectElement;
 #endif
 
 #ifndef __HTMLSelectElement_FWD_DEFINED__
@@ -1276,32 +1276,32 @@
 
 #ifndef __IHTMLSelectionObject_FWD_DEFINED__
 #define __IHTMLSelectionObject_FWD_DEFINED__
-typedef interface IHTMLSelectionObject IHTMLSelectionObject;
+typedef struct IHTMLSelectionObject IHTMLSelectionObject;
 #endif
 
 #ifndef __IHTMLSelectionObject2_FWD_DEFINED__
 #define __IHTMLSelectionObject2_FWD_DEFINED__
-typedef interface IHTMLSelectionObject2 IHTMLSelectionObject2;
+typedef struct IHTMLSelectionObject2 IHTMLSelectionObject2;
 #endif
 
 #ifndef __IHTMLOptionElement_FWD_DEFINED__
 #define __IHTMLOptionElement_FWD_DEFINED__
-typedef interface IHTMLOptionElement IHTMLOptionElement;
+typedef struct IHTMLOptionElement IHTMLOptionElement;
 #endif
 
 #ifndef __IHTMLOptionElement3_FWD_DEFINED__
 #define __IHTMLOptionElement3_FWD_DEFINED__
-typedef interface IHTMLOptionElement3 IHTMLOptionElement3;
+typedef struct IHTMLOptionElement3 IHTMLOptionElement3;
 #endif
 
 #ifndef __IHTMLOptionElementFactory_FWD_DEFINED__
 #define __IHTMLOptionElementFactory_FWD_DEFINED__
-typedef interface IHTMLOptionElementFactory IHTMLOptionElementFactory;
+typedef struct IHTMLOptionElementFactory IHTMLOptionElementFactory;
 #endif
 
 #ifndef __DispHTMLOptionElement_FWD_DEFINED__
 #define __DispHTMLOptionElement_FWD_DEFINED__
-typedef interface DispHTMLOptionElement DispHTMLOptionElement;
+typedef struct DispHTMLOptionElement DispHTMLOptionElement;
 #endif
 
 #ifndef __HTMLOptionElement_FWD_DEFINED__
@@ -1324,97 +1324,97 @@
 
 #ifndef __HTMLButtonElementEvents2_FWD_DEFINED__
 #define __HTMLButtonElementEvents2_FWD_DEFINED__
-typedef interface HTMLButtonElementEvents2 HTMLButtonElementEvents2;
+typedef struct HTMLButtonElementEvents2 HTMLButtonElementEvents2;
 #endif
 
 #ifndef __HTMLButtonElementEvents_FWD_DEFINED__
 #define __HTMLButtonElementEvents_FWD_DEFINED__
-typedef interface HTMLButtonElementEvents HTMLButtonElementEvents;
+typedef struct HTMLButtonElementEvents HTMLButtonElementEvents;
 #endif
 
 #ifndef __HTMLInputTextElementEvents2_FWD_DEFINED__
 #define __HTMLInputTextElementEvents2_FWD_DEFINED__
-typedef interface HTMLInputTextElementEvents2 HTMLInputTextElementEvents2;
+typedef struct HTMLInputTextElementEvents2 HTMLInputTextElementEvents2;
 #endif
 
 #ifndef __HTMLOptionButtonElementEvents2_FWD_DEFINED__
 #define __HTMLOptionButtonElementEvents2_FWD_DEFINED__
-typedef interface HTMLOptionButtonElementEvents2 HTMLOptionButtonElementEvents2;
+typedef struct HTMLOptionButtonElementEvents2 HTMLOptionButtonElementEvents2;
 #endif
 
 #ifndef __HTMLInputFileElementEvents2_FWD_DEFINED__
 #define __HTMLInputFileElementEvents2_FWD_DEFINED__
-typedef interface HTMLInputFileElementEvents2 HTMLInputFileElementEvents2;
+typedef struct HTMLInputFileElementEvents2 HTMLInputFileElementEvents2;
 #endif
 
 #ifndef __HTMLInputImageEvents2_FWD_DEFINED__
 #define __HTMLInputImageEvents2_FWD_DEFINED__
-typedef interface HTMLInputImageEvents2 HTMLInputImageEvents2;
+typedef struct HTMLInputImageEvents2 HTMLInputImageEvents2;
 #endif
 
 #ifndef __HTMLInputTextElementEvents_FWD_DEFINED__
 #define __HTMLInputTextElementEvents_FWD_DEFINED__
-typedef interface HTMLInputTextElementEvents HTMLInputTextElementEvents;
+typedef struct HTMLInputTextElementEvents HTMLInputTextElementEvents;
 #endif
 
 #ifndef __HTMLOptionButtonElementEvents_FWD_DEFINED__
 #define __HTMLOptionButtonElementEvents_FWD_DEFINED__
-typedef interface HTMLOptionButtonElementEvents HTMLOptionButtonElementEvents;
+typedef struct HTMLOptionButtonElementEvents HTMLOptionButtonElementEvents;
 #endif
 
 #ifndef __HTMLInputFileElementEvents_FWD_DEFINED__
 #define __HTMLInputFileElementEvents_FWD_DEFINED__
-typedef interface HTMLInputFileElementEvents HTMLInputFileElementEvents;
+typedef struct HTMLInputFileElementEvents HTMLInputFileElementEvents;
 #endif
 
 #ifndef __HTMLInputImageEvents_FWD_DEFINED__
 #define __HTMLInputImageEvents_FWD_DEFINED__
-typedef interface HTMLInputImageEvents HTMLInputImageEvents;
+typedef struct HTMLInputImageEvents HTMLInputImageEvents;
 #endif
 
 #ifndef __IHTMLInputElement_FWD_DEFINED__
 #define __IHTMLInputElement_FWD_DEFINED__
-typedef interface IHTMLInputElement IHTMLInputElement;
+typedef struct IHTMLInputElement IHTMLInputElement;
 #endif
 
 #ifndef __IHTMLInputElement2_FWD_DEFINED__
 #define __IHTMLInputElement2_FWD_DEFINED__
-typedef interface IHTMLInputElement2 IHTMLInputElement2;
+typedef struct IHTMLInputElement2 IHTMLInputElement2;
 #endif
 
 #ifndef __IHTMLInputButtonElement_FWD_DEFINED__
 #define __IHTMLInputButtonElement_FWD_DEFINED__
-typedef interface IHTMLInputButtonElement IHTMLInputButtonElement;
+typedef struct IHTMLInputButtonElement IHTMLInputButtonElement;
 #endif
 
 #ifndef __IHTMLInputHiddenElement_FWD_DEFINED__
 #define __IHTMLInputHiddenElement_FWD_DEFINED__
-typedef interface IHTMLInputHiddenElement IHTMLInputHiddenElement;
+typedef struct IHTMLInputHiddenElement IHTMLInputHiddenElement;
 #endif
 
 #ifndef __IHTMLInputTextElement_FWD_DEFINED__
 #define __IHTMLInputTextElement_FWD_DEFINED__
-typedef interface IHTMLInputTextElement IHTMLInputTextElement;
+typedef struct IHTMLInputTextElement IHTMLInputTextElement;
 #endif
 
 #ifndef __IHTMLInputFileElement_FWD_DEFINED__
 #define __IHTMLInputFileElement_FWD_DEFINED__
-typedef interface IHTMLInputFileElement IHTMLInputFileElement;
+typedef struct IHTMLInputFileElement IHTMLInputFileElement;
 #endif
 
 #ifndef __IHTMLOptionButtonElement_FWD_DEFINED__
 #define __IHTMLOptionButtonElement_FWD_DEFINED__
-typedef interface IHTMLOptionButtonElement IHTMLOptionButtonElement;
+typedef struct IHTMLOptionButtonElement IHTMLOptionButtonElement;
 #endif
 
 #ifndef __IHTMLInputImage_FWD_DEFINED__
 #define __IHTMLInputImage_FWD_DEFINED__
-typedef interface IHTMLInputImage IHTMLInputImage;
+typedef struct IHTMLInputImage IHTMLInputImage;
 #endif
 
 #ifndef __DispHTMLInputElement_FWD_DEFINED__
 #define __DispHTMLInputElement_FWD_DEFINED__
-typedef interface DispHTMLInputElement DispHTMLInputElement;
+typedef struct DispHTMLInputElement DispHTMLInputElement;
 #endif
 
 #ifndef __HTMLInputElement_FWD_DEFINED__
@@ -1428,12 +1428,12 @@
 
 #ifndef __IHTMLTextAreaElement_FWD_DEFINED__
 #define __IHTMLTextAreaElement_FWD_DEFINED__
-typedef interface IHTMLTextAreaElement IHTMLTextAreaElement;
+typedef struct IHTMLTextAreaElement IHTMLTextAreaElement;
 #endif
 
 #ifndef __DispHTMLTextAreaElement_FWD_DEFINED__
 #define __DispHTMLTextAreaElement_FWD_DEFINED__
-typedef interface DispHTMLTextAreaElement DispHTMLTextAreaElement;
+typedef struct DispHTMLTextAreaElement DispHTMLTextAreaElement;
 #endif
 
 #ifndef __HTMLTextAreaElement_FWD_DEFINED__
@@ -1447,7 +1447,7 @@
 
 #ifndef __DispHTMLRichtextElement_FWD_DEFINED__
 #define __DispHTMLRichtextElement_FWD_DEFINED__
-typedef interface DispHTMLRichtextElement DispHTMLRichtextElement;
+typedef struct DispHTMLRichtextElement DispHTMLRichtextElement;
 #endif
 
 #ifndef __HTMLRichtextElement_FWD_DEFINED__
@@ -1461,12 +1461,12 @@
 
 #ifndef __IHTMLButtonElement_FWD_DEFINED__
 #define __IHTMLButtonElement_FWD_DEFINED__
-typedef interface IHTMLButtonElement IHTMLButtonElement;
+typedef struct IHTMLButtonElement IHTMLButtonElement;
 #endif
 
 #ifndef __DispHTMLButtonElement_FWD_DEFINED__
 #define __DispHTMLButtonElement_FWD_DEFINED__
-typedef interface DispHTMLButtonElement DispHTMLButtonElement;
+typedef struct DispHTMLButtonElement DispHTMLButtonElement;
 #endif
 
 #ifndef __HTMLButtonElement_FWD_DEFINED__
@@ -1480,22 +1480,22 @@
 
 #ifndef __HTMLMarqueeElementEvents2_FWD_DEFINED__
 #define __HTMLMarqueeElementEvents2_FWD_DEFINED__
-typedef interface HTMLMarqueeElementEvents2 HTMLMarqueeElementEvents2;
+typedef struct HTMLMarqueeElementEvents2 HTMLMarqueeElementEvents2;
 #endif
 
 #ifndef __HTMLMarqueeElementEvents_FWD_DEFINED__
 #define __HTMLMarqueeElementEvents_FWD_DEFINED__
-typedef interface HTMLMarqueeElementEvents HTMLMarqueeElementEvents;
+typedef struct HTMLMarqueeElementEvents HTMLMarqueeElementEvents;
 #endif
 
 #ifndef __IHTMLMarqueeElement_FWD_DEFINED__
 #define __IHTMLMarqueeElement_FWD_DEFINED__
-typedef interface IHTMLMarqueeElement IHTMLMarqueeElement;
+typedef struct IHTMLMarqueeElement IHTMLMarqueeElement;
 #endif
 
 #ifndef __DispHTMLMarqueeElement_FWD_DEFINED__
 #define __DispHTMLMarqueeElement_FWD_DEFINED__
-typedef interface DispHTMLMarqueeElement DispHTMLMarqueeElement;
+typedef struct DispHTMLMarqueeElement DispHTMLMarqueeElement;
 #endif
 
 #ifndef __HTMLMarqueeElement_FWD_DEFINED__
@@ -1509,52 +1509,52 @@
 
 #ifndef __IHTMLHtmlElement_FWD_DEFINED__
 #define __IHTMLHtmlElement_FWD_DEFINED__
-typedef interface IHTMLHtmlElement IHTMLHtmlElement;
+typedef struct IHTMLHtmlElement IHTMLHtmlElement;
 #endif
 
 #ifndef __IHTMLHeadElement_FWD_DEFINED__
 #define __IHTMLHeadElement_FWD_DEFINED__
-typedef interface IHTMLHeadElement IHTMLHeadElement;
+typedef struct IHTMLHeadElement IHTMLHeadElement;
 #endif
 
 #ifndef __IHTMLTitleElement_FWD_DEFINED__
 #define __IHTMLTitleElement_FWD_DEFINED__
-typedef interface IHTMLTitleElement IHTMLTitleElement;
+typedef struct IHTMLTitleElement IHTMLTitleElement;
 #endif
 
 #ifndef __IHTMLMetaElement_FWD_DEFINED__
 #define __IHTMLMetaElement_FWD_DEFINED__
-typedef interface IHTMLMetaElement IHTMLMetaElement;
+typedef struct IHTMLMetaElement IHTMLMetaElement;
 #endif
 
 #ifndef __IHTMLMetaElement2_FWD_DEFINED__
 #define __IHTMLMetaElement2_FWD_DEFINED__
-typedef interface IHTMLMetaElement2 IHTMLMetaElement2;
+typedef struct IHTMLMetaElement2 IHTMLMetaElement2;
 #endif
 
 #ifndef __IHTMLBaseElement_FWD_DEFINED__
 #define __IHTMLBaseElement_FWD_DEFINED__
-typedef interface IHTMLBaseElement IHTMLBaseElement;
+typedef struct IHTMLBaseElement IHTMLBaseElement;
 #endif
 
 #ifndef __IHTMLIsIndexElement_FWD_DEFINED__
 #define __IHTMLIsIndexElement_FWD_DEFINED__
-typedef interface IHTMLIsIndexElement IHTMLIsIndexElement;
+typedef struct IHTMLIsIndexElement IHTMLIsIndexElement;
 #endif
 
 #ifndef __IHTMLIsIndexElement2_FWD_DEFINED__
 #define __IHTMLIsIndexElement2_FWD_DEFINED__
-typedef interface IHTMLIsIndexElement2 IHTMLIsIndexElement2;
+typedef struct IHTMLIsIndexElement2 IHTMLIsIndexElement2;
 #endif
 
 #ifndef __IHTMLNextIdElement_FWD_DEFINED__
 #define __IHTMLNextIdElement_FWD_DEFINED__
-typedef interface IHTMLNextIdElement IHTMLNextIdElement;
+typedef struct IHTMLNextIdElement IHTMLNextIdElement;
 #endif
 
 #ifndef __DispHTMLHtmlElement_FWD_DEFINED__
 #define __DispHTMLHtmlElement_FWD_DEFINED__
-typedef interface DispHTMLHtmlElement DispHTMLHtmlElement;
+typedef struct DispHTMLHtmlElement DispHTMLHtmlElement;
 #endif
 
 #ifndef __HTMLHtmlElement_FWD_DEFINED__
@@ -1568,7 +1568,7 @@
 
 #ifndef __DispHTMLHeadElement_FWD_DEFINED__
 #define __DispHTMLHeadElement_FWD_DEFINED__
-typedef interface DispHTMLHeadElement DispHTMLHeadElement;
+typedef struct DispHTMLHeadElement DispHTMLHeadElement;
 #endif
 
 #ifndef __HTMLHeadElement_FWD_DEFINED__
@@ -1582,7 +1582,7 @@
 
 #ifndef __DispHTMLTitleElement_FWD_DEFINED__
 #define __DispHTMLTitleElement_FWD_DEFINED__
-typedef interface DispHTMLTitleElement DispHTMLTitleElement;
+typedef struct DispHTMLTitleElement DispHTMLTitleElement;
 #endif
 
 #ifndef __HTMLTitleElement_FWD_DEFINED__
@@ -1596,7 +1596,7 @@
 
 #ifndef __DispHTMLMetaElement_FWD_DEFINED__
 #define __DispHTMLMetaElement_FWD_DEFINED__
-typedef interface DispHTMLMetaElement DispHTMLMetaElement;
+typedef struct DispHTMLMetaElement DispHTMLMetaElement;
 #endif
 
 #ifndef __HTMLMetaElement_FWD_DEFINED__
@@ -1610,7 +1610,7 @@
 
 #ifndef __DispHTMLBaseElement_FWD_DEFINED__
 #define __DispHTMLBaseElement_FWD_DEFINED__
-typedef interface DispHTMLBaseElement DispHTMLBaseElement;
+typedef struct DispHTMLBaseElement DispHTMLBaseElement;
 #endif
 
 #ifndef __HTMLBaseElement_FWD_DEFINED__
@@ -1624,7 +1624,7 @@
 
 #ifndef __DispHTMLIsIndexElement_FWD_DEFINED__
 #define __DispHTMLIsIndexElement_FWD_DEFINED__
-typedef interface DispHTMLIsIndexElement DispHTMLIsIndexElement;
+typedef struct DispHTMLIsIndexElement DispHTMLIsIndexElement;
 #endif
 
 #ifndef __HTMLIsIndexElement_FWD_DEFINED__
@@ -1638,7 +1638,7 @@
 
 #ifndef __DispHTMLNextIdElement_FWD_DEFINED__
 #define __DispHTMLNextIdElement_FWD_DEFINED__
-typedef interface DispHTMLNextIdElement DispHTMLNextIdElement;
+typedef struct DispHTMLNextIdElement DispHTMLNextIdElement;
 #endif
 
 #ifndef __HTMLNextIdElement_FWD_DEFINED__
@@ -1652,12 +1652,12 @@
 
 #ifndef __IHTMLBaseFontElement_FWD_DEFINED__
 #define __IHTMLBaseFontElement_FWD_DEFINED__
-typedef interface IHTMLBaseFontElement IHTMLBaseFontElement;
+typedef struct IHTMLBaseFontElement IHTMLBaseFontElement;
 #endif
 
 #ifndef __DispHTMLBaseFontElement_FWD_DEFINED__
 #define __DispHTMLBaseFontElement_FWD_DEFINED__
-typedef interface DispHTMLBaseFontElement DispHTMLBaseFontElement;
+typedef struct DispHTMLBaseFontElement DispHTMLBaseFontElement;
 #endif
 
 #ifndef __HTMLBaseFontElement_FWD_DEFINED__
@@ -1671,12 +1671,12 @@
 
 #ifndef __IHTMLUnknownElement_FWD_DEFINED__
 #define __IHTMLUnknownElement_FWD_DEFINED__
-typedef interface IHTMLUnknownElement IHTMLUnknownElement;
+typedef struct IHTMLUnknownElement IHTMLUnknownElement;
 #endif
 
 #ifndef __DispHTMLUnknownElement_FWD_DEFINED__
 #define __DispHTMLUnknownElement_FWD_DEFINED__
-typedef interface DispHTMLUnknownElement DispHTMLUnknownElement;
+typedef struct DispHTMLUnknownElement DispHTMLUnknownElement;
 #endif
 
 #ifndef __HTMLUnknownElement_FWD_DEFINED__
@@ -1690,32 +1690,32 @@
 
 #ifndef __IOmHistory_FWD_DEFINED__
 #define __IOmHistory_FWD_DEFINED__
-typedef interface IOmHistory IOmHistory;
+typedef struct IOmHistory IOmHistory;
 #endif
 
 #ifndef __IHTMLMimeTypesCollection_FWD_DEFINED__
 #define __IHTMLMimeTypesCollection_FWD_DEFINED__
-typedef interface IHTMLMimeTypesCollection IHTMLMimeTypesCollection;
+typedef struct IHTMLMimeTypesCollection IHTMLMimeTypesCollection;
 #endif
 
 #ifndef __IHTMLPluginsCollection_FWD_DEFINED__
 #define __IHTMLPluginsCollection_FWD_DEFINED__
-typedef interface IHTMLPluginsCollection IHTMLPluginsCollection;
+typedef struct IHTMLPluginsCollection IHTMLPluginsCollection;
 #endif
 
 #ifndef __IHTMLOpsProfile_FWD_DEFINED__
 #define __IHTMLOpsProfile_FWD_DEFINED__
-typedef interface IHTMLOpsProfile IHTMLOpsProfile;
+typedef struct IHTMLOpsProfile IHTMLOpsProfile;
 #endif
 
 #ifndef __IOmNavigator_FWD_DEFINED__
 #define __IOmNavigator_FWD_DEFINED__
-typedef interface IOmNavigator IOmNavigator;
+typedef struct IOmNavigator IOmNavigator;
 #endif
 
 #ifndef __IHTMLLocation_FWD_DEFINED__
 #define __IHTMLLocation_FWD_DEFINED__
-typedef interface IHTMLLocation IHTMLLocation;
+typedef struct IHTMLLocation IHTMLLocation;
 #endif
 
 #ifndef __HTMLHistory_FWD_DEFINED__
@@ -1774,32 +1774,32 @@
 
 #ifndef __IHTMLBookmarkCollection_FWD_DEFINED__
 #define __IHTMLBookmarkCollection_FWD_DEFINED__
-typedef interface IHTMLBookmarkCollection IHTMLBookmarkCollection;
+typedef struct IHTMLBookmarkCollection IHTMLBookmarkCollection;
 #endif
 
 #ifndef __IHTMLDataTransfer_FWD_DEFINED__
 #define __IHTMLDataTransfer_FWD_DEFINED__
-typedef interface IHTMLDataTransfer IHTMLDataTransfer;
+typedef struct IHTMLDataTransfer IHTMLDataTransfer;
 #endif
 
 #ifndef __IHTMLEventObj2_FWD_DEFINED__
 #define __IHTMLEventObj2_FWD_DEFINED__
-typedef interface IHTMLEventObj2 IHTMLEventObj2;
+typedef struct IHTMLEventObj2 IHTMLEventObj2;
 #endif
 
 #ifndef __IHTMLEventObj3_FWD_DEFINED__
 #define __IHTMLEventObj3_FWD_DEFINED__
-typedef interface IHTMLEventObj3 IHTMLEventObj3;
+typedef struct IHTMLEventObj3 IHTMLEventObj3;
 #endif
 
 #ifndef __IHTMLEventObj4_FWD_DEFINED__
 #define __IHTMLEventObj4_FWD_DEFINED__
-typedef interface IHTMLEventObj4 IHTMLEventObj4;
+typedef struct IHTMLEventObj4 IHTMLEventObj4;
 #endif
 
 #ifndef __DispCEventObj_FWD_DEFINED__
 #define __DispCEventObj_FWD_DEFINED__
-typedef interface DispCEventObj DispCEventObj;
+typedef struct DispCEventObj DispCEventObj;
 #endif
 
 #ifndef __CEventObj_FWD_DEFINED__
@@ -1813,52 +1813,52 @@
 
 #ifndef __HTMLWindowEvents2_FWD_DEFINED__
 #define __HTMLWindowEvents2_FWD_DEFINED__
-typedef interface HTMLWindowEvents2 HTMLWindowEvents2;
+typedef struct HTMLWindowEvents2 HTMLWindowEvents2;
 #endif
 
 #ifndef __HTMLWindowEvents_FWD_DEFINED__
 #define __HTMLWindowEvents_FWD_DEFINED__
-typedef interface HTMLWindowEvents HTMLWindowEvents;
+typedef struct HTMLWindowEvents HTMLWindowEvents;
 #endif
 
 #ifndef __IHTMLDocument2_FWD_DEFINED__
 #define __IHTMLDocument2_FWD_DEFINED__
-typedef interface IHTMLDocument2 IHTMLDocument2;
+typedef struct IHTMLDocument2 IHTMLDocument2;
 #endif
 
 #ifndef __IHTMLFramesCollection2_FWD_DEFINED__
 #define __IHTMLFramesCollection2_FWD_DEFINED__
-typedef interface IHTMLFramesCollection2 IHTMLFramesCollection2;
+typedef struct IHTMLFramesCollection2 IHTMLFramesCollection2;
 #endif
 
 #ifndef __IHTMLWindow2_FWD_DEFINED__
 #define __IHTMLWindow2_FWD_DEFINED__
-typedef interface IHTMLWindow2 IHTMLWindow2;
+typedef struct IHTMLWindow2 IHTMLWindow2;
 #endif
 
 #ifndef __IHTMLWindow3_FWD_DEFINED__
 #define __IHTMLWindow3_FWD_DEFINED__
-typedef interface IHTMLWindow3 IHTMLWindow3;
+typedef struct IHTMLWindow3 IHTMLWindow3;
 #endif
 
 #ifndef __IHTMLFrameBase_FWD_DEFINED__
 #define __IHTMLFrameBase_FWD_DEFINED__
-typedef interface IHTMLFrameBase IHTMLFrameBase;
+typedef struct IHTMLFrameBase IHTMLFrameBase;
 #endif
 
 #ifndef __IHTMLScreen_FWD_DEFINED__
 #define __IHTMLScreen_FWD_DEFINED__
-typedef interface IHTMLScreen IHTMLScreen;
+typedef struct IHTMLScreen IHTMLScreen;
 #endif
 
 #ifndef __IHTMLScreen2_FWD_DEFINED__
 #define __IHTMLScreen2_FWD_DEFINED__
-typedef interface IHTMLScreen2 IHTMLScreen2;
+typedef struct IHTMLScreen2 IHTMLScreen2;
 #endif
 
 #ifndef __IHTMLWindow4_FWD_DEFINED__
 #define __IHTMLWindow4_FWD_DEFINED__
-typedef interface IHTMLWindow4 IHTMLWindow4;
+typedef struct IHTMLWindow4 IHTMLWindow4;
 #endif
 
 #ifndef __FramesCollection_FWD_DEFINED__
@@ -1872,7 +1872,7 @@
 
 #ifndef __DispHTMLScreen_FWD_DEFINED__
 #define __DispHTMLScreen_FWD_DEFINED__
-typedef interface DispHTMLScreen DispHTMLScreen;
+typedef struct DispHTMLScreen DispHTMLScreen;
 #endif
 
 #ifndef __HTMLScreen_FWD_DEFINED__
@@ -1886,7 +1886,7 @@
 
 #ifndef __DispHTMLWindow2_FWD_DEFINED__
 #define __DispHTMLWindow2_FWD_DEFINED__
-typedef interface DispHTMLWindow2 DispHTMLWindow2;
+typedef struct DispHTMLWindow2 DispHTMLWindow2;
 #endif
 
 #ifndef __HTMLWindow2_FWD_DEFINED__
@@ -1900,7 +1900,7 @@
 
 #ifndef __DispHTMLWindowProxy_FWD_DEFINED__
 #define __DispHTMLWindowProxy_FWD_DEFINED__
-typedef interface DispHTMLWindowProxy DispHTMLWindowProxy;
+typedef struct DispHTMLWindowProxy DispHTMLWindowProxy;
 #endif
 
 #ifndef __HTMLWindowProxy_FWD_DEFINED__
@@ -1914,32 +1914,32 @@
 
 #ifndef __HTMLDocumentEvents2_FWD_DEFINED__
 #define __HTMLDocumentEvents2_FWD_DEFINED__
-typedef interface HTMLDocumentEvents2 HTMLDocumentEvents2;
+typedef struct HTMLDocumentEvents2 HTMLDocumentEvents2;
 #endif
 
 #ifndef __HTMLDocumentEvents_FWD_DEFINED__
 #define __HTMLDocumentEvents_FWD_DEFINED__
-typedef interface HTMLDocumentEvents HTMLDocumentEvents;
+typedef struct HTMLDocumentEvents HTMLDocumentEvents;
 #endif
 
 #ifndef __IHTMLDocument3_FWD_DEFINED__
 #define __IHTMLDocument3_FWD_DEFINED__
-typedef interface IHTMLDocument3 IHTMLDocument3;
+typedef struct IHTMLDocument3 IHTMLDocument3;
 #endif
 
 #ifndef __IHTMLDocument4_FWD_DEFINED__
 #define __IHTMLDocument4_FWD_DEFINED__
-typedef interface IHTMLDocument4 IHTMLDocument4;
+typedef struct IHTMLDocument4 IHTMLDocument4;
 #endif
 
 #ifndef __IHTMLDocument5_FWD_DEFINED__
 #define __IHTMLDocument5_FWD_DEFINED__
-typedef interface IHTMLDocument5 IHTMLDocument5;
+typedef struct IHTMLDocument5 IHTMLDocument5;
 #endif
 
 #ifndef __DispHTMLDocument_FWD_DEFINED__
 #define __DispHTMLDocument_FWD_DEFINED__
-typedef interface DispHTMLDocument DispHTMLDocument;
+typedef struct DispHTMLDocument DispHTMLDocument;
 #endif
 
 #ifndef __HTMLDocument_FWD_DEFINED__
@@ -1953,17 +1953,17 @@
 
 #ifndef __DWebBridgeEvents_FWD_DEFINED__
 #define __DWebBridgeEvents_FWD_DEFINED__
-typedef interface DWebBridgeEvents DWebBridgeEvents;
+typedef struct DWebBridgeEvents DWebBridgeEvents;
 #endif
 
 #ifndef __IWebBridge_FWD_DEFINED__
 #define __IWebBridge_FWD_DEFINED__
-typedef interface IWebBridge IWebBridge;
+typedef struct IWebBridge IWebBridge;
 #endif
 
 #ifndef __IWBScriptControl_FWD_DEFINED__
 #define __IWBScriptControl_FWD_DEFINED__
-typedef interface IWBScriptControl IWBScriptControl;
+typedef struct IWBScriptControl IWBScriptControl;
 #endif
 
 #ifndef __Scriptlet_FWD_DEFINED__
@@ -1977,12 +1977,12 @@
 
 #ifndef __IHTMLEmbedElement_FWD_DEFINED__
 #define __IHTMLEmbedElement_FWD_DEFINED__
-typedef interface IHTMLEmbedElement IHTMLEmbedElement;
+typedef struct IHTMLEmbedElement IHTMLEmbedElement;
 #endif
 
 #ifndef __DispHTMLEmbed_FWD_DEFINED__
 #define __DispHTMLEmbed_FWD_DEFINED__
-typedef interface DispHTMLEmbed DispHTMLEmbed;
+typedef struct DispHTMLEmbed DispHTMLEmbed;
 #endif
 
 #ifndef __HTMLEmbed_FWD_DEFINED__
@@ -1996,37 +1996,37 @@
 
 #ifndef __HTMLMapEvents2_FWD_DEFINED__
 #define __HTMLMapEvents2_FWD_DEFINED__
-typedef interface HTMLMapEvents2 HTMLMapEvents2;
+typedef struct HTMLMapEvents2 HTMLMapEvents2;
 #endif
 
 #ifndef __HTMLMapEvents_FWD_DEFINED__
 #define __HTMLMapEvents_FWD_DEFINED__
-typedef interface HTMLMapEvents HTMLMapEvents;
+typedef struct HTMLMapEvents HTMLMapEvents;
 #endif
 
 #ifndef __IHTMLAreasCollection_FWD_DEFINED__
 #define __IHTMLAreasCollection_FWD_DEFINED__
-typedef interface IHTMLAreasCollection IHTMLAreasCollection;
+typedef struct IHTMLAreasCollection IHTMLAreasCollection;
 #endif
 
 #ifndef __IHTMLAreasCollection2_FWD_DEFINED__
 #define __IHTMLAreasCollection2_FWD_DEFINED__
-typedef interface IHTMLAreasCollection2 IHTMLAreasCollection2;
+typedef struct IHTMLAreasCollection2 IHTMLAreasCollection2;
 #endif
 
 #ifndef __IHTMLAreasCollection3_FWD_DEFINED__
 #define __IHTMLAreasCollection3_FWD_DEFINED__
-typedef interface IHTMLAreasCollection3 IHTMLAreasCollection3;
+typedef struct IHTMLAreasCollection3 IHTMLAreasCollection3;
 #endif
 
 #ifndef __IHTMLMapElement_FWD_DEFINED__
 #define __IHTMLMapElement_FWD_DEFINED__
-typedef interface IHTMLMapElement IHTMLMapElement;
+typedef struct IHTMLMapElement IHTMLMapElement;
 #endif
 
 #ifndef __DispHTMLAreasCollection_FWD_DEFINED__
 #define __DispHTMLAreasCollection_FWD_DEFINED__
-typedef interface DispHTMLAreasCollection DispHTMLAreasCollection;
+typedef struct DispHTMLAreasCollection DispHTMLAreasCollection;
 #endif
 
 #ifndef __HTMLAreasCollection_FWD_DEFINED__
@@ -2040,7 +2040,7 @@
 
 #ifndef __DispHTMLMapElement_FWD_DEFINED__
 #define __DispHTMLMapElement_FWD_DEFINED__
-typedef interface DispHTMLMapElement DispHTMLMapElement;
+typedef struct DispHTMLMapElement DispHTMLMapElement;
 #endif
 
 #ifndef __HTMLMapElement_FWD_DEFINED__
@@ -2054,22 +2054,22 @@
 
 #ifndef __HTMLAreaEvents2_FWD_DEFINED__
 #define __HTMLAreaEvents2_FWD_DEFINED__
-typedef interface HTMLAreaEvents2 HTMLAreaEvents2;
+typedef struct HTMLAreaEvents2 HTMLAreaEvents2;
 #endif
 
 #ifndef __HTMLAreaEvents_FWD_DEFINED__
 #define __HTMLAreaEvents_FWD_DEFINED__
-typedef interface HTMLAreaEvents HTMLAreaEvents;
+typedef struct HTMLAreaEvents HTMLAreaEvents;
 #endif
 
 #ifndef __IHTMLAreaElement_FWD_DEFINED__
 #define __IHTMLAreaElement_FWD_DEFINED__
-typedef interface IHTMLAreaElement IHTMLAreaElement;
+typedef struct IHTMLAreaElement IHTMLAreaElement;
 #endif
 
 #ifndef __DispHTMLAreaElement_FWD_DEFINED__
 #define __DispHTMLAreaElement_FWD_DEFINED__
-typedef interface DispHTMLAreaElement DispHTMLAreaElement;
+typedef struct DispHTMLAreaElement DispHTMLAreaElement;
 #endif
 
 #ifndef __HTMLAreaElement_FWD_DEFINED__
@@ -2083,12 +2083,12 @@
 
 #ifndef __IHTMLTableCaption_FWD_DEFINED__
 #define __IHTMLTableCaption_FWD_DEFINED__
-typedef interface IHTMLTableCaption IHTMLTableCaption;
+typedef struct IHTMLTableCaption IHTMLTableCaption;
 #endif
 
 #ifndef __DispHTMLTableCaption_FWD_DEFINED__
 #define __DispHTMLTableCaption_FWD_DEFINED__
-typedef interface DispHTMLTableCaption DispHTMLTableCaption;
+typedef struct DispHTMLTableCaption DispHTMLTableCaption;
 #endif
 
 #ifndef __HTMLTableCaption_FWD_DEFINED__
@@ -2102,17 +2102,17 @@
 
 #ifndef __IHTMLCommentElement_FWD_DEFINED__
 #define __IHTMLCommentElement_FWD_DEFINED__
-typedef interface IHTMLCommentElement IHTMLCommentElement;
+typedef struct IHTMLCommentElement IHTMLCommentElement;
 #endif
 
 #ifndef __IHTMLCommentElement2_FWD_DEFINED__
 #define __IHTMLCommentElement2_FWD_DEFINED__
-typedef interface IHTMLCommentElement2 IHTMLCommentElement2;
+typedef struct IHTMLCommentElement2 IHTMLCommentElement2;
 #endif
 
 #ifndef __DispHTMLCommentElement_FWD_DEFINED__
 #define __DispHTMLCommentElement_FWD_DEFINED__
-typedef interface DispHTMLCommentElement DispHTMLCommentElement;
+typedef struct DispHTMLCommentElement DispHTMLCommentElement;
 #endif
 
 #ifndef __HTMLCommentElement_FWD_DEFINED__
@@ -2126,22 +2126,22 @@
 
 #ifndef __IHTMLPhraseElement_FWD_DEFINED__
 #define __IHTMLPhraseElement_FWD_DEFINED__
-typedef interface IHTMLPhraseElement IHTMLPhraseElement;
+typedef struct IHTMLPhraseElement IHTMLPhraseElement;
 #endif
 
 #ifndef __IHTMLPhraseElement2_FWD_DEFINED__
 #define __IHTMLPhraseElement2_FWD_DEFINED__
-typedef interface IHTMLPhraseElement2 IHTMLPhraseElement2;
+typedef struct IHTMLPhraseElement2 IHTMLPhraseElement2;
 #endif
 
 #ifndef __IHTMLSpanElement_FWD_DEFINED__
 #define __IHTMLSpanElement_FWD_DEFINED__
-typedef interface IHTMLSpanElement IHTMLSpanElement;
+typedef struct IHTMLSpanElement IHTMLSpanElement;
 #endif
 
 #ifndef __DispHTMLPhraseElement_FWD_DEFINED__
 #define __DispHTMLPhraseElement_FWD_DEFINED__
-typedef interface DispHTMLPhraseElement DispHTMLPhraseElement;
+typedef struct DispHTMLPhraseElement DispHTMLPhraseElement;
 #endif
 
 #ifndef __HTMLPhraseElement_FWD_DEFINED__
@@ -2155,7 +2155,7 @@
 
 #ifndef __DispHTMLSpanElement_FWD_DEFINED__
 #define __DispHTMLSpanElement_FWD_DEFINED__
-typedef interface DispHTMLSpanElement DispHTMLSpanElement;
+typedef struct DispHTMLSpanElement DispHTMLSpanElement;
 #endif
 
 #ifndef __HTMLSpanElement_FWD_DEFINED__
@@ -2169,87 +2169,87 @@
 
 #ifndef __HTMLTableEvents2_FWD_DEFINED__
 #define __HTMLTableEvents2_FWD_DEFINED__
-typedef interface HTMLTableEvents2 HTMLTableEvents2;
+typedef struct HTMLTableEvents2 HTMLTableEvents2;
 #endif
 
 #ifndef __HTMLTableEvents_FWD_DEFINED__
 #define __HTMLTableEvents_FWD_DEFINED__
-typedef interface HTMLTableEvents HTMLTableEvents;
+typedef struct HTMLTableEvents HTMLTableEvents;
 #endif
 
 #ifndef __IHTMLTableSection_FWD_DEFINED__
 #define __IHTMLTableSection_FWD_DEFINED__
-typedef interface IHTMLTableSection IHTMLTableSection;
+typedef struct IHTMLTableSection IHTMLTableSection;
 #endif
 
 #ifndef __IHTMLTable_FWD_DEFINED__
 #define __IHTMLTable_FWD_DEFINED__
-typedef interface IHTMLTable IHTMLTable;
+typedef struct IHTMLTable IHTMLTable;
 #endif
 
 #ifndef __IHTMLTable2_FWD_DEFINED__
 #define __IHTMLTable2_FWD_DEFINED__
-typedef interface IHTMLTable2 IHTMLTable2;
+typedef struct IHTMLTable2 IHTMLTable2;
 #endif
 
 #ifndef __IHTMLTable3_FWD_DEFINED__
 #define __IHTMLTable3_FWD_DEFINED__
-typedef interface IHTMLTable3 IHTMLTable3;
+typedef struct IHTMLTable3 IHTMLTable3;
 #endif
 
 #ifndef __IHTMLTableCol_FWD_DEFINED__
 #define __IHTMLTableCol_FWD_DEFINED__
-typedef interface IHTMLTableCol IHTMLTableCol;
+typedef struct IHTMLTableCol IHTMLTableCol;
 #endif
 
 #ifndef __IHTMLTableCol2_FWD_DEFINED__
 #define __IHTMLTableCol2_FWD_DEFINED__
-typedef interface IHTMLTableCol2 IHTMLTableCol2;
+typedef struct IHTMLTableCol2 IHTMLTableCol2;
 #endif
 
 #ifndef __IHTMLTableSection2_FWD_DEFINED__
 #define __IHTMLTableSection2_FWD_DEFINED__
-typedef interface IHTMLTableSection2 IHTMLTableSection2;
+typedef struct IHTMLTableSection2 IHTMLTableSection2;
 #endif
 
 #ifndef __IHTMLTableSection3_FWD_DEFINED__
 #define __IHTMLTableSection3_FWD_DEFINED__
-typedef interface IHTMLTableSection3 IHTMLTableSection3;
+typedef struct IHTMLTableSection3 IHTMLTableSection3;
 #endif
 
 #ifndef __IHTMLTableRow_FWD_DEFINED__
 #define __IHTMLTableRow_FWD_DEFINED__
-typedef interface IHTMLTableRow IHTMLTableRow;
+typedef struct IHTMLTableRow IHTMLTableRow;
 #endif
 
 #ifndef __IHTMLTableRow2_FWD_DEFINED__
 #define __IHTMLTableRow2_FWD_DEFINED__
-typedef interface IHTMLTableRow2 IHTMLTableRow2;
+typedef struct IHTMLTableRow2 IHTMLTableRow2;
 #endif
 
 #ifndef __IHTMLTableRow3_FWD_DEFINED__
 #define __IHTMLTableRow3_FWD_DEFINED__
-typedef interface IHTMLTableRow3 IHTMLTableRow3;
+typedef struct IHTMLTableRow3 IHTMLTableRow3;
 #endif
 
 #ifndef __IHTMLTableRowMetrics_FWD_DEFINED__
 #define __IHTMLTableRowMetrics_FWD_DEFINED__
-typedef interface IHTMLTableRowMetrics IHTMLTableRowMetrics;
+typedef struct IHTMLTableRowMetrics IHTMLTableRowMetrics;
 #endif
 
 #ifndef __IHTMLTableCell_FWD_DEFINED__
 #define __IHTMLTableCell_FWD_DEFINED__
-typedef interface IHTMLTableCell IHTMLTableCell;
+typedef struct IHTMLTableCell IHTMLTableCell;
 #endif
 
 #ifndef __IHTMLTableCell2_FWD_DEFINED__
 #define __IHTMLTableCell2_FWD_DEFINED__
-typedef interface IHTMLTableCell2 IHTMLTableCell2;
+typedef struct IHTMLTableCell2 IHTMLTableCell2;
 #endif
 
 #ifndef __DispHTMLTable_FWD_DEFINED__
 #define __DispHTMLTable_FWD_DEFINED__
-typedef interface DispHTMLTable DispHTMLTable;
+typedef struct DispHTMLTable DispHTMLTable;
 #endif
 
 #ifndef __HTMLTable_FWD_DEFINED__
@@ -2263,7 +2263,7 @@
 
 #ifndef __DispHTMLTableCol_FWD_DEFINED__
 #define __DispHTMLTableCol_FWD_DEFINED__
-typedef interface DispHTMLTableCol DispHTMLTableCol;
+typedef struct DispHTMLTableCol DispHTMLTableCol;
 #endif
 
 #ifndef __HTMLTableCol_FWD_DEFINED__
@@ -2277,7 +2277,7 @@
 
 #ifndef __DispHTMLTableSection_FWD_DEFINED__
 #define __DispHTMLTableSection_FWD_DEFINED__
-typedef interface DispHTMLTableSection DispHTMLTableSection;
+typedef struct DispHTMLTableSection DispHTMLTableSection;
 #endif
 
 #ifndef __HTMLTableSection_FWD_DEFINED__
@@ -2291,7 +2291,7 @@
 
 #ifndef __DispHTMLTableRow_FWD_DEFINED__
 #define __DispHTMLTableRow_FWD_DEFINED__
-typedef interface DispHTMLTableRow DispHTMLTableRow;
+typedef struct DispHTMLTableRow DispHTMLTableRow;
 #endif
 
 #ifndef __HTMLTableRow_FWD_DEFINED__
@@ -2305,7 +2305,7 @@
 
 #ifndef __DispHTMLTableCell_FWD_DEFINED__
 #define __DispHTMLTableCell_FWD_DEFINED__
-typedef interface DispHTMLTableCell DispHTMLTableCell;
+typedef struct DispHTMLTableCell DispHTMLTableCell;
 #endif
 
 #ifndef __HTMLTableCell_FWD_DEFINED__
@@ -2319,27 +2319,27 @@
 
 #ifndef __HTMLScriptEvents2_FWD_DEFINED__
 #define __HTMLScriptEvents2_FWD_DEFINED__
-typedef interface HTMLScriptEvents2 HTMLScriptEvents2;
+typedef struct HTMLScriptEvents2 HTMLScriptEvents2;
 #endif
 
 #ifndef __HTMLScriptEvents_FWD_DEFINED__
 #define __HTMLScriptEvents_FWD_DEFINED__
-typedef interface HTMLScriptEvents HTMLScriptEvents;
+typedef struct HTMLScriptEvents HTMLScriptEvents;
 #endif
 
 #ifndef __IHTMLScriptElement_FWD_DEFINED__
 #define __IHTMLScriptElement_FWD_DEFINED__
-typedef interface IHTMLScriptElement IHTMLScriptElement;
+typedef struct IHTMLScriptElement IHTMLScriptElement;
 #endif
 
 #ifndef __IHTMLScriptElement2_FWD_DEFINED__
 #define __IHTMLScriptElement2_FWD_DEFINED__
-typedef interface IHTMLScriptElement2 IHTMLScriptElement2;
+typedef struct IHTMLScriptElement2 IHTMLScriptElement2;
 #endif
 
 #ifndef __DispHTMLScriptElement_FWD_DEFINED__
 #define __DispHTMLScriptElement_FWD_DEFINED__
-typedef interface DispHTMLScriptElement DispHTMLScriptElement;
+typedef struct DispHTMLScriptElement DispHTMLScriptElement;
 #endif
 
 #ifndef __HTMLScriptElement_FWD_DEFINED__
@@ -2353,12 +2353,12 @@
 
 #ifndef __IHTMLNoShowElement_FWD_DEFINED__
 #define __IHTMLNoShowElement_FWD_DEFINED__
-typedef interface IHTMLNoShowElement IHTMLNoShowElement;
+typedef struct IHTMLNoShowElement IHTMLNoShowElement;
 #endif
 
 #ifndef __DispHTMLNoShowElement_FWD_DEFINED__
 #define __DispHTMLNoShowElement_FWD_DEFINED__
-typedef interface DispHTMLNoShowElement DispHTMLNoShowElement;
+typedef struct DispHTMLNoShowElement DispHTMLNoShowElement;
 #endif
 
 #ifndef __HTMLNoShowElement_FWD_DEFINED__
@@ -2372,37 +2372,37 @@
 
 #ifndef __HTMLObjectElementEvents2_FWD_DEFINED__
 #define __HTMLObjectElementEvents2_FWD_DEFINED__
-typedef interface HTMLObjectElementEvents2 HTMLObjectElementEvents2;
+typedef struct HTMLObjectElementEvents2 HTMLObjectElementEvents2;
 #endif
 
 #ifndef __HTMLObjectElementEvents_FWD_DEFINED__
 #define __HTMLObjectElementEvents_FWD_DEFINED__
-typedef interface HTMLObjectElementEvents HTMLObjectElementEvents;
+typedef struct HTMLObjectElementEvents HTMLObjectElementEvents;
 #endif
 
 #ifndef __IHTMLObjectElement_FWD_DEFINED__
 #define __IHTMLObjectElement_FWD_DEFINED__
-typedef interface IHTMLObjectElement IHTMLObjectElement;
+typedef struct IHTMLObjectElement IHTMLObjectElement;
 #endif
 
 #ifndef __IHTMLObjectElement2_FWD_DEFINED__
 #define __IHTMLObjectElement2_FWD_DEFINED__
-typedef interface IHTMLObjectElement2 IHTMLObjectElement2;
+typedef struct IHTMLObjectElement2 IHTMLObjectElement2;
 #endif
 
 #ifndef __IHTMLObjectElement3_FWD_DEFINED__
 #define __IHTMLObjectElement3_FWD_DEFINED__
-typedef interface IHTMLObjectElement3 IHTMLObjectElement3;
+typedef struct IHTMLObjectElement3 IHTMLObjectElement3;
 #endif
 
 #ifndef __IHTMLParamElement_FWD_DEFINED__
 #define __IHTMLParamElement_FWD_DEFINED__
-typedef interface IHTMLParamElement IHTMLParamElement;
+typedef struct IHTMLParamElement IHTMLParamElement;
 #endif
 
 #ifndef __DispHTMLObjectElement_FWD_DEFINED__
 #define __DispHTMLObjectElement_FWD_DEFINED__
-typedef interface DispHTMLObjectElement DispHTMLObjectElement;
+typedef struct DispHTMLObjectElement DispHTMLObjectElement;
 #endif
 
 #ifndef __HTMLObjectElement_FWD_DEFINED__
@@ -2416,7 +2416,7 @@
 
 #ifndef __DispHTMLParamElement_FWD_DEFINED__
 #define __DispHTMLParamElement_FWD_DEFINED__
-typedef interface DispHTMLParamElement DispHTMLParamElement;
+typedef struct DispHTMLParamElement DispHTMLParamElement;
 #endif
 
 #ifndef __HTMLParamElement_FWD_DEFINED__
@@ -2430,27 +2430,27 @@
 
 #ifndef __HTMLFrameSiteEvents2_FWD_DEFINED__
 #define __HTMLFrameSiteEvents2_FWD_DEFINED__
-typedef interface HTMLFrameSiteEvents2 HTMLFrameSiteEvents2;
+typedef struct HTMLFrameSiteEvents2 HTMLFrameSiteEvents2;
 #endif
 
 #ifndef __HTMLFrameSiteEvents_FWD_DEFINED__
 #define __HTMLFrameSiteEvents_FWD_DEFINED__
-typedef interface HTMLFrameSiteEvents HTMLFrameSiteEvents;
+typedef struct HTMLFrameSiteEvents HTMLFrameSiteEvents;
 #endif
 
 #ifndef __IHTMLFrameBase2_FWD_DEFINED__
 #define __IHTMLFrameBase2_FWD_DEFINED__
-typedef interface IHTMLFrameBase2 IHTMLFrameBase2;
+typedef struct IHTMLFrameBase2 IHTMLFrameBase2;
 #endif
 
 #ifndef __IHTMLFrameBase3_FWD_DEFINED__
 #define __IHTMLFrameBase3_FWD_DEFINED__
-typedef interface IHTMLFrameBase3 IHTMLFrameBase3;
+typedef struct IHTMLFrameBase3 IHTMLFrameBase3;
 #endif
 
 #ifndef __DispHTMLFrameBase_FWD_DEFINED__
 #define __DispHTMLFrameBase_FWD_DEFINED__
-typedef interface DispHTMLFrameBase DispHTMLFrameBase;
+typedef struct DispHTMLFrameBase DispHTMLFrameBase;
 #endif
 
 #ifndef __HTMLFrameBase_FWD_DEFINED__
@@ -2464,17 +2464,17 @@
 
 #ifndef __IHTMLFrameElement_FWD_DEFINED__
 #define __IHTMLFrameElement_FWD_DEFINED__
-typedef interface IHTMLFrameElement IHTMLFrameElement;
+typedef struct IHTMLFrameElement IHTMLFrameElement;
 #endif
 
 #ifndef __IHTMLFrameElement2_FWD_DEFINED__
 #define __IHTMLFrameElement2_FWD_DEFINED__
-typedef interface IHTMLFrameElement2 IHTMLFrameElement2;
+typedef struct IHTMLFrameElement2 IHTMLFrameElement2;
 #endif
 
 #ifndef __DispHTMLFrameElement_FWD_DEFINED__
 #define __DispHTMLFrameElement_FWD_DEFINED__
-typedef interface DispHTMLFrameElement DispHTMLFrameElement;
+typedef struct DispHTMLFrameElement DispHTMLFrameElement;
 #endif
 
 #ifndef __HTMLFrameElement_FWD_DEFINED__
@@ -2488,17 +2488,17 @@
 
 #ifndef __IHTMLIFrameElement_FWD_DEFINED__
 #define __IHTMLIFrameElement_FWD_DEFINED__
-typedef interface IHTMLIFrameElement IHTMLIFrameElement;
+typedef struct IHTMLIFrameElement IHTMLIFrameElement;
 #endif
 
 #ifndef __IHTMLIFrameElement2_FWD_DEFINED__
 #define __IHTMLIFrameElement2_FWD_DEFINED__
-typedef interface IHTMLIFrameElement2 IHTMLIFrameElement2;
+typedef struct IHTMLIFrameElement2 IHTMLIFrameElement2;
 #endif
 
 #ifndef __DispHTMLIFrame_FWD_DEFINED__
 #define __DispHTMLIFrame_FWD_DEFINED__
-typedef interface DispHTMLIFrame DispHTMLIFrame;
+typedef struct DispHTMLIFrame DispHTMLIFrame;
 #endif
 
 #ifndef __HTMLIFrame_FWD_DEFINED__
@@ -2512,32 +2512,32 @@
 
 #ifndef __IHTMLDivPosition_FWD_DEFINED__
 #define __IHTMLDivPosition_FWD_DEFINED__
-typedef interface IHTMLDivPosition IHTMLDivPosition;
+typedef struct IHTMLDivPosition IHTMLDivPosition;
 #endif
 
 #ifndef __IHTMLFieldSetElement_FWD_DEFINED__
 #define __IHTMLFieldSetElement_FWD_DEFINED__
-typedef interface IHTMLFieldSetElement IHTMLFieldSetElement;
+typedef struct IHTMLFieldSetElement IHTMLFieldSetElement;
 #endif
 
 #ifndef __IHTMLFieldSetElement2_FWD_DEFINED__
 #define __IHTMLFieldSetElement2_FWD_DEFINED__
-typedef interface IHTMLFieldSetElement2 IHTMLFieldSetElement2;
+typedef struct IHTMLFieldSetElement2 IHTMLFieldSetElement2;
 #endif
 
 #ifndef __IHTMLLegendElement_FWD_DEFINED__
 #define __IHTMLLegendElement_FWD_DEFINED__
-typedef interface IHTMLLegendElement IHTMLLegendElement;
+typedef struct IHTMLLegendElement IHTMLLegendElement;
 #endif
 
 #ifndef __IHTMLLegendElement2_FWD_DEFINED__
 #define __IHTMLLegendElement2_FWD_DEFINED__
-typedef interface IHTMLLegendElement2 IHTMLLegendElement2;
+typedef struct IHTMLLegendElement2 IHTMLLegendElement2;
 #endif
 
 #ifndef __DispHTMLDivPosition_FWD_DEFINED__
 #define __DispHTMLDivPosition_FWD_DEFINED__
-typedef interface DispHTMLDivPosition DispHTMLDivPosition;
+typedef struct DispHTMLDivPosition DispHTMLDivPosition;
 #endif
 
 #ifndef __HTMLDivPosition_FWD_DEFINED__
@@ -2551,7 +2551,7 @@
 
 #ifndef __DispHTMLFieldSetElement_FWD_DEFINED__
 #define __DispHTMLFieldSetElement_FWD_DEFINED__
-typedef interface DispHTMLFieldSetElement DispHTMLFieldSetElement;
+typedef struct DispHTMLFieldSetElement DispHTMLFieldSetElement;
 #endif
 
 #ifndef __HTMLFieldSetElement_FWD_DEFINED__
@@ -2565,7 +2565,7 @@
 
 #ifndef __DispHTMLLegendElement_FWD_DEFINED__
 #define __DispHTMLLegendElement_FWD_DEFINED__
-typedef interface DispHTMLLegendElement DispHTMLLegendElement;
+typedef struct DispHTMLLegendElement DispHTMLLegendElement;
 #endif
 
 #ifndef __HTMLLegendElement_FWD_DEFINED__
@@ -2579,12 +2579,12 @@
 
 #ifndef __IHTMLSpanFlow_FWD_DEFINED__
 #define __IHTMLSpanFlow_FWD_DEFINED__
-typedef interface IHTMLSpanFlow IHTMLSpanFlow;
+typedef struct IHTMLSpanFlow IHTMLSpanFlow;
 #endif
 
 #ifndef __DispHTMLSpanFlow_FWD_DEFINED__
 #define __DispHTMLSpanFlow_FWD_DEFINED__
-typedef interface DispHTMLSpanFlow DispHTMLSpanFlow;
+typedef struct DispHTMLSpanFlow DispHTMLSpanFlow;
 #endif
 
 #ifndef __HTMLSpanFlow_FWD_DEFINED__
@@ -2598,17 +2598,17 @@
 
 #ifndef __IHTMLFrameSetElement_FWD_DEFINED__
 #define __IHTMLFrameSetElement_FWD_DEFINED__
-typedef interface IHTMLFrameSetElement IHTMLFrameSetElement;
+typedef struct IHTMLFrameSetElement IHTMLFrameSetElement;
 #endif
 
 #ifndef __IHTMLFrameSetElement2_FWD_DEFINED__
 #define __IHTMLFrameSetElement2_FWD_DEFINED__
-typedef interface IHTMLFrameSetElement2 IHTMLFrameSetElement2;
+typedef struct IHTMLFrameSetElement2 IHTMLFrameSetElement2;
 #endif
 
 #ifndef __DispHTMLFrameSetSite_FWD_DEFINED__
 #define __DispHTMLFrameSetSite_FWD_DEFINED__
-typedef interface DispHTMLFrameSetSite DispHTMLFrameSetSite;
+typedef struct DispHTMLFrameSetSite DispHTMLFrameSetSite;
 #endif
 
 #ifndef __HTMLFrameSetSite_FWD_DEFINED__
@@ -2622,12 +2622,12 @@
 
 #ifndef __IHTMLBGsound_FWD_DEFINED__
 #define __IHTMLBGsound_FWD_DEFINED__
-typedef interface IHTMLBGsound IHTMLBGsound;
+typedef struct IHTMLBGsound IHTMLBGsound;
 #endif
 
 #ifndef __DispHTMLBGsound_FWD_DEFINED__
 #define __DispHTMLBGsound_FWD_DEFINED__
-typedef interface DispHTMLBGsound DispHTMLBGsound;
+typedef struct DispHTMLBGsound DispHTMLBGsound;
 #endif
 
 #ifndef __HTMLBGsound_FWD_DEFINED__
@@ -2641,37 +2641,37 @@
 
 #ifndef __IHTMLFontNamesCollection_FWD_DEFINED__
 #define __IHTMLFontNamesCollection_FWD_DEFINED__
-typedef interface IHTMLFontNamesCollection IHTMLFontNamesCollection;
+typedef struct IHTMLFontNamesCollection IHTMLFontNamesCollection;
 #endif
 
 #ifndef __IHTMLFontSizesCollection_FWD_DEFINED__
 #define __IHTMLFontSizesCollection_FWD_DEFINED__
-typedef interface IHTMLFontSizesCollection IHTMLFontSizesCollection;
+typedef struct IHTMLFontSizesCollection IHTMLFontSizesCollection;
 #endif
 
 #ifndef __IHTMLOptionsHolder_FWD_DEFINED__
 #define __IHTMLOptionsHolder_FWD_DEFINED__
-typedef interface IHTMLOptionsHolder IHTMLOptionsHolder;
+typedef struct IHTMLOptionsHolder IHTMLOptionsHolder;
 #endif
 
 #ifndef __HTMLStyleElementEvents2_FWD_DEFINED__
 #define __HTMLStyleElementEvents2_FWD_DEFINED__
-typedef interface HTMLStyleElementEvents2 HTMLStyleElementEvents2;
+typedef struct HTMLStyleElementEvents2 HTMLStyleElementEvents2;
 #endif
 
 #ifndef __HTMLStyleElementEvents_FWD_DEFINED__
 #define __HTMLStyleElementEvents_FWD_DEFINED__
-typedef interface HTMLStyleElementEvents HTMLStyleElementEvents;
+typedef struct HTMLStyleElementEvents HTMLStyleElementEvents;
 #endif
 
 #ifndef __IHTMLStyleElement_FWD_DEFINED__
 #define __IHTMLStyleElement_FWD_DEFINED__
-typedef interface IHTMLStyleElement IHTMLStyleElement;
+typedef struct IHTMLStyleElement IHTMLStyleElement;
 #endif
 
 #ifndef __DispHTMLStyleElement_FWD_DEFINED__
 #define __DispHTMLStyleElement_FWD_DEFINED__
-typedef interface DispHTMLStyleElement DispHTMLStyleElement;
+typedef struct DispHTMLStyleElement DispHTMLStyleElement;
 #endif
 
 #ifndef __HTMLStyleElement_FWD_DEFINED__
@@ -2685,7 +2685,7 @@
 
 #ifndef __IHTMLStyleFontFace_FWD_DEFINED__
 #define __IHTMLStyleFontFace_FWD_DEFINED__
-typedef interface IHTMLStyleFontFace IHTMLStyleFontFace;
+typedef struct IHTMLStyleFontFace IHTMLStyleFontFace;
 #endif
 
 #ifndef __HTMLStyleFontFace_FWD_DEFINED__
@@ -2699,192 +2699,192 @@
 
 #ifndef __ICSSFilterSite_FWD_DEFINED__
 #define __ICSSFilterSite_FWD_DEFINED__
-typedef interface ICSSFilterSite ICSSFilterSite;
+typedef struct ICSSFilterSite ICSSFilterSite;
 #endif
 
 #ifndef __IMarkupPointer_FWD_DEFINED__
 #define __IMarkupPointer_FWD_DEFINED__
-typedef interface IMarkupPointer IMarkupPointer;
+typedef struct IMarkupPointer IMarkupPointer;
 #endif
 
 #ifndef __IMarkupContainer_FWD_DEFINED__
 #define __IMarkupContainer_FWD_DEFINED__
-typedef interface IMarkupContainer IMarkupContainer;
+typedef struct IMarkupContainer IMarkupContainer;
 #endif
 
 #ifndef __IMarkupContainer2_FWD_DEFINED__
 #define __IMarkupContainer2_FWD_DEFINED__
-typedef interface IMarkupContainer2 IMarkupContainer2;
+typedef struct IMarkupContainer2 IMarkupContainer2;
 #endif
 
 #ifndef __IHTMLChangeLog_FWD_DEFINED__
 #define __IHTMLChangeLog_FWD_DEFINED__
-typedef interface IHTMLChangeLog IHTMLChangeLog;
+typedef struct IHTMLChangeLog IHTMLChangeLog;
 #endif
 
 #ifndef __IHTMLChangeSink_FWD_DEFINED__
 #define __IHTMLChangeSink_FWD_DEFINED__
-typedef interface IHTMLChangeSink IHTMLChangeSink;
+typedef struct IHTMLChangeSink IHTMLChangeSink;
 #endif
 
 #ifndef __IActiveIMMApp_FWD_DEFINED__
 #define __IActiveIMMApp_FWD_DEFINED__
-typedef interface IActiveIMMApp IActiveIMMApp;
+typedef struct IActiveIMMApp IActiveIMMApp;
 #endif
 
 #ifndef __ISegmentList_FWD_DEFINED__
 #define __ISegmentList_FWD_DEFINED__
-typedef interface ISegmentList ISegmentList;
+typedef struct ISegmentList ISegmentList;
 #endif
 
 #ifndef __ISegmentListIterator_FWD_DEFINED__
 #define __ISegmentListIterator_FWD_DEFINED__
-typedef interface ISegmentListIterator ISegmentListIterator;
+typedef struct ISegmentListIterator ISegmentListIterator;
 #endif
 
 #ifndef __IHTMLCaret_FWD_DEFINED__
 #define __IHTMLCaret_FWD_DEFINED__
-typedef interface IHTMLCaret IHTMLCaret;
+typedef struct IHTMLCaret IHTMLCaret;
 #endif
 
 #ifndef __ISegment_FWD_DEFINED__
 #define __ISegment_FWD_DEFINED__
-typedef interface ISegment ISegment;
+typedef struct ISegment ISegment;
 #endif
 
 #ifndef __IElementSegment_FWD_DEFINED__
 #define __IElementSegment_FWD_DEFINED__
-typedef interface IElementSegment IElementSegment;
+typedef struct IElementSegment IElementSegment;
 #endif
 
 #ifndef __IHighlightSegment_FWD_DEFINED__
 #define __IHighlightSegment_FWD_DEFINED__
-typedef interface IHighlightSegment IHighlightSegment;
+typedef struct IHighlightSegment IHighlightSegment;
 #endif
 
 #ifndef __IHighlightRenderingServices_FWD_DEFINED__
 #define __IHighlightRenderingServices_FWD_DEFINED__
-typedef interface IHighlightRenderingServices IHighlightRenderingServices;
+typedef struct IHighlightRenderingServices IHighlightRenderingServices;
 #endif
 
 #ifndef __ILineInfo_FWD_DEFINED__
 #define __ILineInfo_FWD_DEFINED__
-typedef interface ILineInfo ILineInfo;
+typedef struct ILineInfo ILineInfo;
 #endif
 
 #ifndef __IDisplayPointer_FWD_DEFINED__
 #define __IDisplayPointer_FWD_DEFINED__
-typedef interface IDisplayPointer IDisplayPointer;
+typedef struct IDisplayPointer IDisplayPointer;
 #endif
 
 #ifndef __IDisplayServices_FWD_DEFINED__
 #define __IDisplayServices_FWD_DEFINED__
-typedef interface IDisplayServices IDisplayServices;
+typedef struct IDisplayServices IDisplayServices;
 #endif
 
 #ifndef __IHtmlDlgSafeHelper_FWD_DEFINED__
 #define __IHtmlDlgSafeHelper_FWD_DEFINED__
-typedef interface IHtmlDlgSafeHelper IHtmlDlgSafeHelper;
+typedef struct IHtmlDlgSafeHelper IHtmlDlgSafeHelper;
 #endif
 
 #ifndef __IBlockFormats_FWD_DEFINED__
 #define __IBlockFormats_FWD_DEFINED__
-typedef interface IBlockFormats IBlockFormats;
+typedef struct IBlockFormats IBlockFormats;
 #endif
 
 #ifndef __IFontNames_FWD_DEFINED__
 #define __IFontNames_FWD_DEFINED__
-typedef interface IFontNames IFontNames;
+typedef struct IFontNames IFontNames;
 #endif
 
 #ifndef __ICSSFilter_FWD_DEFINED__
 #define __ICSSFilter_FWD_DEFINED__
-typedef interface ICSSFilter ICSSFilter;
+typedef struct ICSSFilter ICSSFilter;
 #endif
 
 #ifndef __ISecureUrlHost_FWD_DEFINED__
 #define __ISecureUrlHost_FWD_DEFINED__
-typedef interface ISecureUrlHost ISecureUrlHost;
+typedef struct ISecureUrlHost ISecureUrlHost;
 #endif
 
 #ifndef __IMarkupServices_FWD_DEFINED__
 #define __IMarkupServices_FWD_DEFINED__
-typedef interface IMarkupServices IMarkupServices;
+typedef struct IMarkupServices IMarkupServices;
 #endif
 
 #ifndef __IMarkupServices2_FWD_DEFINED__
 #define __IMarkupServices2_FWD_DEFINED__
-typedef interface IMarkupServices2 IMarkupServices2;
+typedef struct IMarkupServices2 IMarkupServices2;
 #endif
 
 #ifndef __IHTMLChangePlayback_FWD_DEFINED__
 #define __IHTMLChangePlayback_FWD_DEFINED__
-typedef interface IHTMLChangePlayback IHTMLChangePlayback;
+typedef struct IHTMLChangePlayback IHTMLChangePlayback;
 #endif
 
 #ifndef __IMarkupPointer2_FWD_DEFINED__
 #define __IMarkupPointer2_FWD_DEFINED__
-typedef interface IMarkupPointer2 IMarkupPointer2;
+typedef struct IMarkupPointer2 IMarkupPointer2;
 #endif
 
 #ifndef __IMarkupTextFrags_FWD_DEFINED__
 #define __IMarkupTextFrags_FWD_DEFINED__
-typedef interface IMarkupTextFrags IMarkupTextFrags;
+typedef struct IMarkupTextFrags IMarkupTextFrags;
 #endif
 
 #ifndef __IXMLGenericParse_FWD_DEFINED__
 #define __IXMLGenericParse_FWD_DEFINED__
-typedef interface IXMLGenericParse IXMLGenericParse;
+typedef struct IXMLGenericParse IXMLGenericParse;
 #endif
 
 #ifndef __IHTMLEditHost_FWD_DEFINED__
 #define __IHTMLEditHost_FWD_DEFINED__
-typedef interface IHTMLEditHost IHTMLEditHost;
+typedef struct IHTMLEditHost IHTMLEditHost;
 #endif
 
 #ifndef __IHTMLEditHost2_FWD_DEFINED__
 #define __IHTMLEditHost2_FWD_DEFINED__
-typedef interface IHTMLEditHost2 IHTMLEditHost2;
+typedef struct IHTMLEditHost2 IHTMLEditHost2;
 #endif
 
 #ifndef __ISequenceNumber_FWD_DEFINED__
 #define __ISequenceNumber_FWD_DEFINED__
-typedef interface ISequenceNumber ISequenceNumber;
+typedef struct ISequenceNumber ISequenceNumber;
 #endif
 
 #ifndef __IIMEServices_FWD_DEFINED__
 #define __IIMEServices_FWD_DEFINED__
-typedef interface IIMEServices IIMEServices;
+typedef struct IIMEServices IIMEServices;
 #endif
 
 #ifndef __ISelectionServicesListener_FWD_DEFINED__
 #define __ISelectionServicesListener_FWD_DEFINED__
-typedef interface ISelectionServicesListener ISelectionServicesListener;
+typedef struct ISelectionServicesListener ISelectionServicesListener;
 #endif
 
 #ifndef __ISelectionServices_FWD_DEFINED__
 #define __ISelectionServices_FWD_DEFINED__
-typedef interface ISelectionServices ISelectionServices;
+typedef struct ISelectionServices ISelectionServices;
 #endif
 
 #ifndef __IHTMLEditDesigner_FWD_DEFINED__
 #define __IHTMLEditDesigner_FWD_DEFINED__
-typedef interface IHTMLEditDesigner IHTMLEditDesigner;
+typedef struct IHTMLEditDesigner IHTMLEditDesigner;
 #endif
 
 #ifndef __IHTMLEditServices_FWD_DEFINED__
 #define __IHTMLEditServices_FWD_DEFINED__
-typedef interface IHTMLEditServices IHTMLEditServices;
+typedef struct IHTMLEditServices IHTMLEditServices;
 #endif
 
 #ifndef __IHTMLEditServices2_FWD_DEFINED__
 #define __IHTMLEditServices2_FWD_DEFINED__
-typedef interface IHTMLEditServices2 IHTMLEditServices2;
+typedef struct IHTMLEditServices2 IHTMLEditServices2;
 #endif
 
 #ifndef __IHTMLComputedStyle_FWD_DEFINED__
 #define __IHTMLComputedStyle_FWD_DEFINED__
-typedef interface IHTMLComputedStyle IHTMLComputedStyle;
+typedef struct IHTMLComputedStyle IHTMLComputedStyle;
 #endif
 
 #ifndef __HtmlDlgSafeHelper_FWD_DEFINED__
@@ -2916,17 +2916,17 @@
 
 #ifndef __HTMLNamespaceEvents_FWD_DEFINED__
 #define __HTMLNamespaceEvents_FWD_DEFINED__
-typedef interface HTMLNamespaceEvents HTMLNamespaceEvents;
+typedef struct HTMLNamespaceEvents HTMLNamespaceEvents;
 #endif
 
 #ifndef __IHTMLNamespace_FWD_DEFINED__
 #define __IHTMLNamespace_FWD_DEFINED__
-typedef interface IHTMLNamespace IHTMLNamespace;
+typedef struct IHTMLNamespace IHTMLNamespace;
 #endif
 
 #ifndef __IHTMLNamespaceCollection_FWD_DEFINED__
 #define __IHTMLNamespaceCollection_FWD_DEFINED__
-typedef interface IHTMLNamespaceCollection IHTMLNamespaceCollection;
+typedef struct IHTMLNamespaceCollection IHTMLNamespaceCollection;
 #endif
 
 #ifndef __HTMLNamespace_FWD_DEFINED__
@@ -2949,52 +2949,52 @@
 
 #ifndef __IHTMLPainter_FWD_DEFINED__
 #define __IHTMLPainter_FWD_DEFINED__
-typedef interface IHTMLPainter IHTMLPainter;
+typedef struct IHTMLPainter IHTMLPainter;
 #endif
 
 #ifndef __IHTMLPaintSite_FWD_DEFINED__
 #define __IHTMLPaintSite_FWD_DEFINED__
-typedef interface IHTMLPaintSite IHTMLPaintSite;
+typedef struct IHTMLPaintSite IHTMLPaintSite;
 #endif
 
 #ifndef __IHTMLPainterEventInfo_FWD_DEFINED__
 #define __IHTMLPainterEventInfo_FWD_DEFINED__
-typedef interface IHTMLPainterEventInfo IHTMLPainterEventInfo;
+typedef struct IHTMLPainterEventInfo IHTMLPainterEventInfo;
 #endif
 
 #ifndef __IHTMLPainterOverlay_FWD_DEFINED__
 #define __IHTMLPainterOverlay_FWD_DEFINED__
-typedef interface IHTMLPainterOverlay IHTMLPainterOverlay;
+typedef struct IHTMLPainterOverlay IHTMLPainterOverlay;
 #endif
 
 #ifndef __IHTMLIPrintCollection_FWD_DEFINED__
 #define __IHTMLIPrintCollection_FWD_DEFINED__
-typedef interface IHTMLIPrintCollection IHTMLIPrintCollection;
+typedef struct IHTMLIPrintCollection IHTMLIPrintCollection;
 #endif
 
 #ifndef __IEnumPrivacyRecords_FWD_DEFINED__
 #define __IEnumPrivacyRecords_FWD_DEFINED__
-typedef interface IEnumPrivacyRecords IEnumPrivacyRecords;
+typedef struct IEnumPrivacyRecords IEnumPrivacyRecords;
 #endif
 
 #ifndef __IHTMLDialog_FWD_DEFINED__
 #define __IHTMLDialog_FWD_DEFINED__
-typedef interface IHTMLDialog IHTMLDialog;
+typedef struct IHTMLDialog IHTMLDialog;
 #endif
 
 #ifndef __IHTMLDialog2_FWD_DEFINED__
 #define __IHTMLDialog2_FWD_DEFINED__
-typedef interface IHTMLDialog2 IHTMLDialog2;
+typedef struct IHTMLDialog2 IHTMLDialog2;
 #endif
 
 #ifndef __IHTMLDialog3_FWD_DEFINED__
 #define __IHTMLDialog3_FWD_DEFINED__
-typedef interface IHTMLDialog3 IHTMLDialog3;
+typedef struct IHTMLDialog3 IHTMLDialog3;
 #endif
 
 #ifndef __IHTMLModelessInit_FWD_DEFINED__
 #define __IHTMLModelessInit_FWD_DEFINED__
-typedef interface IHTMLModelessInit IHTMLModelessInit;
+typedef struct IHTMLModelessInit IHTMLModelessInit;
 #endif
 
 #ifndef __ThreadDialogProcParam_FWD_DEFINED__
@@ -3017,12 +3017,12 @@
 
 #ifndef __IHTMLPopup_FWD_DEFINED__
 #define __IHTMLPopup_FWD_DEFINED__
-typedef interface IHTMLPopup IHTMLPopup;
+typedef struct IHTMLPopup IHTMLPopup;
 #endif
 
 #ifndef __DispHTMLPopup_FWD_DEFINED__
 #define __DispHTMLPopup_FWD_DEFINED__
-typedef interface DispHTMLPopup DispHTMLPopup;
+typedef struct DispHTMLPopup DispHTMLPopup;
 #endif
 
 #ifndef __HTMLPopup_FWD_DEFINED__
@@ -3036,22 +3036,22 @@
 
 #ifndef __IHTMLAppBehavior_FWD_DEFINED__
 #define __IHTMLAppBehavior_FWD_DEFINED__
-typedef interface IHTMLAppBehavior IHTMLAppBehavior;
+typedef struct IHTMLAppBehavior IHTMLAppBehavior;
 #endif
 
 #ifndef __IHTMLAppBehavior2_FWD_DEFINED__
 #define __IHTMLAppBehavior2_FWD_DEFINED__
-typedef interface IHTMLAppBehavior2 IHTMLAppBehavior2;
+typedef struct IHTMLAppBehavior2 IHTMLAppBehavior2;
 #endif
 
 #ifndef __IHTMLAppBehavior3_FWD_DEFINED__
 #define __IHTMLAppBehavior3_FWD_DEFINED__
-typedef interface IHTMLAppBehavior3 IHTMLAppBehavior3;
+typedef struct IHTMLAppBehavior3 IHTMLAppBehavior3;
 #endif
 
 #ifndef __DispHTMLAppBehavior_FWD_DEFINED__
 #define __DispHTMLAppBehavior_FWD_DEFINED__
-typedef interface DispHTMLAppBehavior DispHTMLAppBehavior;
+typedef struct DispHTMLAppBehavior DispHTMLAppBehavior;
 #endif
 
 #ifndef __HTMLAppBehavior_FWD_DEFINED__
@@ -3083,7 +3083,7 @@
 
 #ifndef __DispIHTMLInputButtonElement_FWD_DEFINED__
 #define __DispIHTMLInputButtonElement_FWD_DEFINED__
-typedef interface DispIHTMLInputButtonElement DispIHTMLInputButtonElement;
+typedef struct DispIHTMLInputButtonElement DispIHTMLInputButtonElement;
 #endif
 
 #ifndef __HTMLInputButtonElement_FWD_DEFINED__
@@ -3097,7 +3097,7 @@
 
 #ifndef __DispIHTMLInputTextElement_FWD_DEFINED__
 #define __DispIHTMLInputTextElement_FWD_DEFINED__
-typedef interface DispIHTMLInputTextElement DispIHTMLInputTextElement;
+typedef struct DispIHTMLInputTextElement DispIHTMLInputTextElement;
 #endif
 
 #ifndef __HTMLInputTextElement_FWD_DEFINED__
@@ -3111,7 +3111,7 @@
 
 #ifndef __DispIHTMLInputFileElement_FWD_DEFINED__
 #define __DispIHTMLInputFileElement_FWD_DEFINED__
-typedef interface DispIHTMLInputFileElement DispIHTMLInputFileElement;
+typedef struct DispIHTMLInputFileElement DispIHTMLInputFileElement;
 #endif
 
 #ifndef __HTMLInputFileElement_FWD_DEFINED__
@@ -3126,7 +3126,7 @@
 
 #ifndef __DispIHTMLOptionButtonElement_FWD_DEFINED__
 #define __DispIHTMLOptionButtonElement_FWD_DEFINED__
-typedef interface DispIHTMLOptionButtonElement DispIHTMLOptionButtonElement;
+typedef struct DispIHTMLOptionButtonElement DispIHTMLOptionButtonElement;
 #endif
 
 #ifndef __HTMLOptionButtonElement_FWD_DEFINED__
@@ -3141,7 +3141,7 @@
 
 #ifndef __DispIHTMLInputImage_FWD_DEFINED__
 #define __DispIHTMLInputImage_FWD_DEFINED__
-typedef interface DispIHTMLInputImage DispIHTMLInputImage;
+typedef struct DispIHTMLInputImage DispIHTMLInputImage;
 #endif
 
 #ifndef __HTMLInputImage_FWD_DEFINED__
@@ -3156,77 +3156,77 @@
 
 #ifndef __IElementNamespace_FWD_DEFINED__
 #define __IElementNamespace_FWD_DEFINED__
-typedef interface IElementNamespace IElementNamespace;
+typedef struct IElementNamespace IElementNamespace;
 #endif
 
 #ifndef __IElementNamespaceTable_FWD_DEFINED__
 #define __IElementNamespaceTable_FWD_DEFINED__
-typedef interface IElementNamespaceTable IElementNamespaceTable;
+typedef struct IElementNamespaceTable IElementNamespaceTable;
 #endif
 
 #ifndef __IElementNamespaceFactory_FWD_DEFINED__
 #define __IElementNamespaceFactory_FWD_DEFINED__
-typedef interface IElementNamespaceFactory IElementNamespaceFactory;
+typedef struct IElementNamespaceFactory IElementNamespaceFactory;
 #endif
 
 #ifndef __IElementNamespaceFactory2_FWD_DEFINED__
 #define __IElementNamespaceFactory2_FWD_DEFINED__
-typedef interface IElementNamespaceFactory2 IElementNamespaceFactory2;
+typedef struct IElementNamespaceFactory2 IElementNamespaceFactory2;
 #endif
 
 #ifndef __IElementNamespaceFactoryCallback_FWD_DEFINED__
 #define __IElementNamespaceFactoryCallback_FWD_DEFINED__
-typedef interface IElementNamespaceFactoryCallback IElementNamespaceFactoryCallback;
+typedef struct IElementNamespaceFactoryCallback IElementNamespaceFactoryCallback;
 #endif
 
 #ifndef __IElementBehaviorSiteOM2_FWD_DEFINED__
 #define __IElementBehaviorSiteOM2_FWD_DEFINED__
-typedef interface IElementBehaviorSiteOM2 IElementBehaviorSiteOM2;
+typedef struct IElementBehaviorSiteOM2 IElementBehaviorSiteOM2;
 #endif
 
 #ifndef __IElementBehaviorCategory_FWD_DEFINED__
 #define __IElementBehaviorCategory_FWD_DEFINED__
-typedef interface IElementBehaviorCategory IElementBehaviorCategory;
+typedef struct IElementBehaviorCategory IElementBehaviorCategory;
 #endif
 
 #ifndef __IElementBehaviorSiteCategory_FWD_DEFINED__
 #define __IElementBehaviorSiteCategory_FWD_DEFINED__
-typedef interface IElementBehaviorSiteCategory IElementBehaviorSiteCategory;
+typedef struct IElementBehaviorSiteCategory IElementBehaviorSiteCategory;
 #endif
 
 #ifndef __IElementBehaviorSubmit_FWD_DEFINED__
 #define __IElementBehaviorSubmit_FWD_DEFINED__
-typedef interface IElementBehaviorSubmit IElementBehaviorSubmit;
+typedef struct IElementBehaviorSubmit IElementBehaviorSubmit;
 #endif
 
 #ifndef __IElementBehaviorFocus_FWD_DEFINED__
 #define __IElementBehaviorFocus_FWD_DEFINED__
-typedef interface IElementBehaviorFocus IElementBehaviorFocus;
+typedef struct IElementBehaviorFocus IElementBehaviorFocus;
 #endif
 
 #ifndef __IElementBehaviorLayout_FWD_DEFINED__
 #define __IElementBehaviorLayout_FWD_DEFINED__
-typedef interface IElementBehaviorLayout IElementBehaviorLayout;
+typedef struct IElementBehaviorLayout IElementBehaviorLayout;
 #endif
 
 #ifndef __IElementBehaviorLayout2_FWD_DEFINED__
 #define __IElementBehaviorLayout2_FWD_DEFINED__
-typedef interface IElementBehaviorLayout2 IElementBehaviorLayout2;
+typedef struct IElementBehaviorLayout2 IElementBehaviorLayout2;
 #endif
 
 #ifndef __IElementBehaviorSiteLayout_FWD_DEFINED__
 #define __IElementBehaviorSiteLayout_FWD_DEFINED__
-typedef interface IElementBehaviorSiteLayout IElementBehaviorSiteLayout;
+typedef struct IElementBehaviorSiteLayout IElementBehaviorSiteLayout;
 #endif
 
 #ifndef __IElementBehaviorSiteLayout2_FWD_DEFINED__
 #define __IElementBehaviorSiteLayout2_FWD_DEFINED__
-typedef interface IElementBehaviorSiteLayout2 IElementBehaviorSiteLayout2;
+typedef struct IElementBehaviorSiteLayout2 IElementBehaviorSiteLayout2;
 #endif
 
 #ifndef __IHostBehaviorInit_FWD_DEFINED__
 #define __IHostBehaviorInit_FWD_DEFINED__
-typedef interface IHostBehaviorInit IHostBehaviorInit;
+typedef struct IHostBehaviorInit IHostBehaviorInit;
 #endif
 
 #include "ocidl.h"
@@ -3330,7 +3330,7 @@
       HRESULT (WINAPI *item)(IHTMLFiltersCollection *This,VARIANT *pvarIndex,VARIANT *pvarResult);
     END_INTERFACE
   } IHTMLFiltersCollectionVtbl;
-  interface IHTMLFiltersCollection {
+  struct IHTMLFiltersCollection {
     CONST_VTBL struct IHTMLFiltersCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4141,7 +4141,7 @@
       HRESULT (WINAPI *get_srcFilter)(IHTMLEventObj *This,IDispatch **p);
     END_INTERFACE
   } IHTMLEventObjVtbl;
-  interface IHTMLEventObj {
+  struct IHTMLEventObj {
     CONST_VTBL struct IHTMLEventObjVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4250,7 +4250,7 @@
       HRESULT (WINAPI *RegisterNotification)(IElementBehaviorSite *This,LONG lEvent);
     END_INTERFACE
   } IElementBehaviorSiteVtbl;
-  interface IElementBehaviorSite {
+  struct IElementBehaviorSite {
     CONST_VTBL struct IElementBehaviorSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4288,7 +4288,7 @@
       HRESULT (WINAPI *Detach)(IElementBehavior *This);
     END_INTERFACE
   } IElementBehaviorVtbl;
-  interface IElementBehavior {
+  struct IElementBehavior {
     CONST_VTBL struct IElementBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4325,7 +4325,7 @@
       HRESULT (WINAPI *FindBehavior)(IElementBehaviorFactory *This,BSTR bstrBehavior,BSTR bstrBehaviorUrl,IElementBehaviorSite *pSite,IElementBehavior **ppBehavior);
     END_INTERFACE
   } IElementBehaviorFactoryVtbl;
-  interface IElementBehaviorFactory {
+  struct IElementBehaviorFactory {
     CONST_VTBL struct IElementBehaviorFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4366,7 +4366,7 @@
       HRESULT (WINAPI *RegisterUrn)(IElementBehaviorSiteOM *This,LPOLESTR pchUrn);
     END_INTERFACE
   } IElementBehaviorSiteOMVtbl;
-  interface IElementBehaviorSiteOM {
+  struct IElementBehaviorSiteOM {
     CONST_VTBL struct IElementBehaviorSiteOMVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4416,7 +4416,7 @@
       HRESULT (WINAPI *HitTestPoint)(IElementBehaviorRender *This,POINT *pPoint,IUnknown *pReserved,WINBOOL *pbHit);
     END_INTERFACE
   } IElementBehaviorRenderVtbl;
-  interface IElementBehaviorRender {
+  struct IElementBehaviorRender {
     CONST_VTBL struct IElementBehaviorRenderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4457,7 +4457,7 @@
       HRESULT (WINAPI *InvalidateStyle)(IElementBehaviorSiteRender *This);
     END_INTERFACE
   } IElementBehaviorSiteRenderVtbl;
-  interface IElementBehaviorSiteRender {
+  struct IElementBehaviorSiteRender {
     CONST_VTBL struct IElementBehaviorSiteRenderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4855,7 +4855,7 @@
       HRESULT (WINAPI *toString)(IHTMLStyle *This,BSTR *String);
     END_INTERFACE
   } IHTMLStyleVtbl;
-  interface IHTMLStyle {
+  struct IHTMLStyle {
     CONST_VTBL struct IHTMLStyleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5552,7 +5552,7 @@
       HRESULT (WINAPI *get_accelerator)(IHTMLStyle2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLStyle2Vtbl;
-  interface IHTMLStyle2 {
+  struct IHTMLStyle2 {
     CONST_VTBL struct IHTMLStyle2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5835,7 +5835,7 @@
       HRESULT (WINAPI *get_textKashidaSpace)(IHTMLStyle3 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLStyle3Vtbl;
-  interface IHTMLStyle3 {
+  struct IHTMLStyle3 {
     CONST_VTBL struct IHTMLStyle3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5967,7 +5967,7 @@
       HRESULT (WINAPI *get_minHeight)(IHTMLStyle4 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLStyle4Vtbl;
-  interface IHTMLStyle4 {
+  struct IHTMLStyle4 {
     CONST_VTBL struct IHTMLStyle4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6337,7 +6337,7 @@
       HRESULT (WINAPI *removeAttribute)(IHTMLRuleStyle *This,BSTR strAttributeName,LONG lFlags,VARIANT_BOOL *pfSuccess);
     END_INTERFACE
   } IHTMLRuleStyleVtbl;
-  interface IHTMLRuleStyle {
+  struct IHTMLRuleStyle {
     CONST_VTBL struct IHTMLRuleStyleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6977,7 +6977,7 @@
       HRESULT (WINAPI *get_accelerator)(IHTMLRuleStyle2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLRuleStyle2Vtbl;
-  interface IHTMLRuleStyle2 {
+  struct IHTMLRuleStyle2 {
     CONST_VTBL struct IHTMLRuleStyle2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7251,7 +7251,7 @@
       HRESULT (WINAPI *get_textKashidaSpace)(IHTMLRuleStyle3 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLRuleStyle3Vtbl;
-  interface IHTMLRuleStyle3 {
+  struct IHTMLRuleStyle3 {
     CONST_VTBL struct IHTMLRuleStyle3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7383,7 +7383,7 @@
       HRESULT (WINAPI *get_minHeight)(IHTMLRuleStyle4 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLRuleStyle4Vtbl;
-  interface IHTMLRuleStyle4 {
+  struct IHTMLRuleStyle4 {
     CONST_VTBL struct IHTMLRuleStyle4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7428,7 +7428,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLStyle *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLStyleVtbl;
-  interface DispHTMLStyle {
+  struct DispHTMLStyle {
     CONST_VTBL struct DispHTMLStyleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7465,7 +7465,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLRuleStyle *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLRuleStyleVtbl;
-  interface DispHTMLRuleStyle {
+  struct DispHTMLRuleStyle {
     CONST_VTBL struct DispHTMLRuleStyleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7539,7 +7539,7 @@
       HRESULT (WINAPI *get_textDecoration)(IHTMLRenderStyle *This,BSTR *p);
     END_INTERFACE
   } IHTMLRenderStyleVtbl;
-  interface IHTMLRenderStyle {
+  struct IHTMLRenderStyle {
     CONST_VTBL struct IHTMLRenderStyleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7626,7 +7626,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLRenderStyle *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLRenderStyleVtbl;
-  interface DispHTMLRenderStyle {
+  struct DispHTMLRenderStyle {
     CONST_VTBL struct DispHTMLRenderStyleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7846,7 +7846,7 @@
       HRESULT (WINAPI *get_textTransform)(IHTMLCurrentStyle *This,BSTR *p);
     END_INTERFACE
   } IHTMLCurrentStyleVtbl;
-  interface IHTMLCurrentStyle {
+  struct IHTMLCurrentStyle {
     CONST_VTBL struct IHTMLCurrentStyleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8189,7 +8189,7 @@
       HRESULT (WINAPI *get_isBlock)(IHTMLCurrentStyle2 *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLCurrentStyle2Vtbl;
-  interface IHTMLCurrentStyle2 {
+  struct IHTMLCurrentStyle2 {
     CONST_VTBL struct IHTMLCurrentStyle2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8285,7 +8285,7 @@
       HRESULT (WINAPI *get_whiteSpace)(IHTMLCurrentStyle3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLCurrentStyle3Vtbl;
-  interface IHTMLCurrentStyle3 {
+  struct IHTMLCurrentStyle3 {
     CONST_VTBL struct IHTMLCurrentStyle3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8330,7 +8330,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLCurrentStyle *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLCurrentStyleVtbl;
-  interface DispHTMLCurrentStyle {
+  struct DispHTMLCurrentStyle {
     CONST_VTBL struct DispHTMLCurrentStyleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8542,7 +8542,7 @@
       HRESULT (WINAPI *get_all)(IHTMLElement *This,IDispatch **p);
     END_INTERFACE
   } IHTMLElementVtbl;
-  interface IHTMLElement {
+  struct IHTMLElement {
     CONST_VTBL struct IHTMLElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8853,7 +8853,7 @@
       HRESULT (WINAPI *get_bottom)(IHTMLRect *This,long *p);
     END_INTERFACE
   } IHTMLRectVtbl;
-  interface IHTMLRect {
+  struct IHTMLRect {
     CONST_VTBL struct IHTMLRectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8917,7 +8917,7 @@
       HRESULT (WINAPI *item)(IHTMLRectCollection *This,VARIANT *pvarIndex,VARIANT *pvarResult);
     END_INTERFACE
   } IHTMLRectCollectionVtbl;
-  interface IHTMLRectCollection {
+  struct IHTMLRectCollection {
     CONST_VTBL struct IHTMLRectCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9000,7 +9000,7 @@
       HRESULT (WINAPI *get_nextSibling)(IHTMLDOMNode *This,IHTMLDOMNode **p);
     END_INTERFACE
   } IHTMLDOMNodeVtbl;
-  interface IHTMLDOMNode {
+  struct IHTMLDOMNode {
     CONST_VTBL struct IHTMLDOMNodeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9096,7 +9096,7 @@
       HRESULT (WINAPI *get_ownerDocument)(IHTMLDOMNode2 *This,IDispatch **p);
     END_INTERFACE
   } IHTMLDOMNode2Vtbl;
-  interface IHTMLDOMNode2 {
+  struct IHTMLDOMNode2 {
     CONST_VTBL struct IHTMLDOMNode2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9141,7 +9141,7 @@
       HRESULT (WINAPI *get_specified)(IHTMLDOMAttribute *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLDOMAttributeVtbl;
-  interface IHTMLDOMAttribute {
+  struct IHTMLDOMAttribute {
     CONST_VTBL struct IHTMLDOMAttributeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9225,7 +9225,7 @@
       HRESULT (WINAPI *cloneNode)(IHTMLDOMAttribute2 *This,VARIANT_BOOL fDeep,IHTMLDOMAttribute **clonedNode);
     END_INTERFACE
   } IHTMLDOMAttribute2Vtbl;
-  interface IHTMLDOMAttribute2 {
+  struct IHTMLDOMAttribute2 {
     CONST_VTBL struct IHTMLDOMAttribute2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9326,7 +9326,7 @@
       HRESULT (WINAPI *splitText)(IHTMLDOMTextNode *This,long offset,IHTMLDOMNode **pRetNode);
     END_INTERFACE
   } IHTMLDOMTextNodeVtbl;
-  interface IHTMLDOMTextNode {
+  struct IHTMLDOMTextNode {
     CONST_VTBL struct IHTMLDOMTextNodeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9385,7 +9385,7 @@
       HRESULT (WINAPI *replaceData)(IHTMLDOMTextNode2 *This,long offset,long Count,BSTR bstrstring);
     END_INTERFACE
   } IHTMLDOMTextNode2Vtbl;
-  interface IHTMLDOMTextNode2 {
+  struct IHTMLDOMTextNode2 {
     CONST_VTBL struct IHTMLDOMTextNode2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9436,7 +9436,7 @@
       HRESULT (WINAPI *hasFeature)(IHTMLDOMImplementation *This,BSTR bstrfeature,VARIANT version,VARIANT_BOOL *pfHasFeature);
     END_INTERFACE
   } IHTMLDOMImplementationVtbl;
-  interface IHTMLDOMImplementation {
+  struct IHTMLDOMImplementation {
     CONST_VTBL struct IHTMLDOMImplementationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9472,7 +9472,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDOMAttribute *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDOMAttributeVtbl;
-  interface DispHTMLDOMAttribute {
+  struct DispHTMLDOMAttribute {
     CONST_VTBL struct DispHTMLDOMAttributeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9509,7 +9509,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDOMTextNode *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDOMTextNodeVtbl;
-  interface DispHTMLDOMTextNode {
+  struct DispHTMLDOMTextNode {
     CONST_VTBL struct DispHTMLDOMTextNodeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9546,7 +9546,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDOMImplementation *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDOMImplementationVtbl;
-  interface DispHTMLDOMImplementation {
+  struct DispHTMLDOMImplementation {
     CONST_VTBL struct DispHTMLDOMImplementationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9590,7 +9590,7 @@
       HRESULT (WINAPI *item)(IHTMLAttributeCollection *This,VARIANT *name,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLAttributeCollectionVtbl;
-  interface IHTMLAttributeCollection {
+  struct IHTMLAttributeCollection {
     CONST_VTBL struct IHTMLAttributeCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9639,7 +9639,7 @@
       HRESULT (WINAPI *removeNamedItem)(IHTMLAttributeCollection2 *This,BSTR bstrName,IHTMLDOMAttribute **newretNode);
     END_INTERFACE
   } IHTMLAttributeCollection2Vtbl;
-  interface IHTMLAttributeCollection2 {
+  struct IHTMLAttributeCollection2 {
     CONST_VTBL struct IHTMLAttributeCollection2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9688,7 +9688,7 @@
       HRESULT (WINAPI *item)(IHTMLDOMChildrenCollection *This,long index,IDispatch **ppItem);
     END_INTERFACE
   } IHTMLDOMChildrenCollectionVtbl;
-  interface IHTMLDOMChildrenCollection {
+  struct IHTMLDOMChildrenCollection {
     CONST_VTBL struct IHTMLDOMChildrenCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9730,7 +9730,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLAttributeCollection *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLAttributeCollectionVtbl;
-  interface DispHTMLAttributeCollection {
+  struct DispHTMLAttributeCollection {
     CONST_VTBL struct DispHTMLAttributeCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9767,7 +9767,7 @@
       HRESULT (WINAPI *Invoke)(DispDOMChildrenCollection *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispDOMChildrenCollectionVtbl;
-  interface DispDOMChildrenCollection {
+  struct DispDOMChildrenCollection {
     CONST_VTBL struct DispDOMChildrenCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9804,7 +9804,7 @@
       HRESULT (WINAPI *Invoke)(HTMLElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLElementEvents2Vtbl;
-  interface HTMLElementEvents2 {
+  struct HTMLElementEvents2 {
     CONST_VTBL struct HTMLElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9837,7 +9837,7 @@
       HRESULT (WINAPI *Invoke)(HTMLElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLElementEventsVtbl;
-  interface HTMLElementEvents {
+  struct HTMLElementEvents {
     CONST_VTBL struct HTMLElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9883,7 +9883,7 @@
       HRESULT (WINAPI *tags)(IHTMLElementCollection *This,VARIANT tagName,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLElementCollectionVtbl;
-  interface IHTMLElementCollection {
+  struct IHTMLElementCollection {
     CONST_VTBL struct IHTMLElementCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -10131,7 +10131,7 @@
       HRESULT (WINAPI *getElementsByTagName)(IHTMLElement2 *This,BSTR v,IHTMLElementCollection **pelColl);
     END_INTERFACE
   } IHTMLElement2Vtbl;
-  interface IHTMLElement2 {
+  struct IHTMLElement2 {
     CONST_VTBL struct IHTMLElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -10545,7 +10545,7 @@
       HRESULT (WINAPI *get_glyphMode)(IHTMLElement3 *This,LONG *p);
     END_INTERFACE
   } IHTMLElement3Vtbl;
-  interface IHTMLElement3 {
+  struct IHTMLElement3 {
     CONST_VTBL struct IHTMLElement3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -10732,7 +10732,7 @@
       HRESULT (WINAPI *get_onfocusout)(IHTMLElement4 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLElement4Vtbl;
-  interface IHTMLElement4 {
+  struct IHTMLElement4 {
     CONST_VTBL struct IHTMLElement4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -10802,7 +10802,7 @@
       HRESULT (WINAPI *SetDocumentPrinter)(IHTMLElementRender *This,BSTR bstrPrinterName,HDC hDC);
     END_INTERFACE
   } IHTMLElementRenderVtbl;
-  interface IHTMLElementRender {
+  struct IHTMLElementRender {
     CONST_VTBL struct IHTMLElementRenderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -10842,7 +10842,7 @@
       HRESULT (WINAPI *get_uniqueID)(IHTMLUniqueName *This,BSTR *p);
     END_INTERFACE
   } IHTMLUniqueNameVtbl;
-  interface IHTMLUniqueName {
+  struct IHTMLUniqueName {
     CONST_VTBL struct IHTMLUniqueNameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -10894,7 +10894,7 @@
       HRESULT (WINAPI *get_dataFormatAs)(IHTMLDatabinding *This,BSTR *p);
     END_INTERFACE
   } IHTMLDatabindingVtbl;
-  interface IHTMLDatabinding {
+  struct IHTMLDatabinding {
     CONST_VTBL struct IHTMLDatabindingVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -10948,7 +10948,7 @@
       HRESULT (WINAPI *get_Script)(IHTMLDocument *This,IDispatch **p);
     END_INTERFACE
   } IHTMLDocumentVtbl;
-  interface IHTMLDocument {
+  struct IHTMLDocument {
     CONST_VTBL struct IHTMLDocumentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11027,7 +11027,7 @@
       HRESULT (WINAPI *get_frozen)(IHTMLElementDefaults *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLElementDefaultsVtbl;
-  interface IHTMLElementDefaults {
+  struct IHTMLElementDefaults {
     CONST_VTBL struct IHTMLElementDefaultsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11123,7 +11123,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDefaults *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDefaultsVtbl;
-  interface DispHTMLDefaults {
+  struct DispHTMLDefaults {
     CONST_VTBL struct DispHTMLDefaultsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11169,7 +11169,7 @@
       HRESULT (WINAPI *get_document)(IHTCDefaultDispatch *This,IDispatch **p);
     END_INTERFACE
   } IHTCDefaultDispatchVtbl;
-  interface IHTCDefaultDispatch {
+  struct IHTCDefaultDispatch {
     CONST_VTBL struct IHTCDefaultDispatchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11221,7 +11221,7 @@
       HRESULT (WINAPI *get_value)(IHTCPropertyBehavior *This,VARIANT *p);
     END_INTERFACE
   } IHTCPropertyBehaviorVtbl;
-  interface IHTCPropertyBehavior {
+  struct IHTCPropertyBehavior {
     CONST_VTBL struct IHTCPropertyBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11263,7 +11263,7 @@
       HRESULT (WINAPI *Invoke)(IHTCMethodBehavior *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IHTCMethodBehaviorVtbl;
-  interface IHTCMethodBehavior {
+  struct IHTCMethodBehavior {
     CONST_VTBL struct IHTCMethodBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11299,7 +11299,7 @@
       HRESULT (WINAPI *fire)(IHTCEventBehavior *This,IHTMLEventObj *pvar);
     END_INTERFACE
   } IHTCEventBehaviorVtbl;
-  interface IHTCEventBehavior {
+  struct IHTCEventBehavior {
     CONST_VTBL struct IHTCEventBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11340,7 +11340,7 @@
       HRESULT (WINAPI *detachEvent)(IHTCAttachBehavior *This);
     END_INTERFACE
   } IHTCAttachBehaviorVtbl;
-  interface IHTCAttachBehavior {
+  struct IHTCAttachBehavior {
     CONST_VTBL struct IHTCAttachBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11382,7 +11382,7 @@
       HRESULT (WINAPI *fireEvent)(IHTCAttachBehavior2 *This,VARIANT evt);
     END_INTERFACE
   } IHTCAttachBehavior2Vtbl;
-  interface IHTCAttachBehavior2 {
+  struct IHTCAttachBehavior2 {
     CONST_VTBL struct IHTCAttachBehavior2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11423,7 +11423,7 @@
       HRESULT (WINAPI *get_name)(IHTCDescBehavior *This,BSTR *p);
     END_INTERFACE
   } IHTCDescBehaviorVtbl;
-  interface IHTCDescBehavior {
+  struct IHTCDescBehavior {
     CONST_VTBL struct IHTCDescBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11462,7 +11462,7 @@
       HRESULT (WINAPI *Invoke)(DispHTCDefaultDispatch *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTCDefaultDispatchVtbl;
-  interface DispHTCDefaultDispatch {
+  struct DispHTCDefaultDispatch {
     CONST_VTBL struct DispHTCDefaultDispatchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11499,7 +11499,7 @@
       HRESULT (WINAPI *Invoke)(DispHTCPropertyBehavior *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTCPropertyBehaviorVtbl;
-  interface DispHTCPropertyBehavior {
+  struct DispHTCPropertyBehavior {
     CONST_VTBL struct DispHTCPropertyBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11536,7 +11536,7 @@
       HRESULT (WINAPI *Invoke)(DispHTCMethodBehavior *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTCMethodBehaviorVtbl;
-  interface DispHTCMethodBehavior {
+  struct DispHTCMethodBehavior {
     CONST_VTBL struct DispHTCMethodBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11573,7 +11573,7 @@
       HRESULT (WINAPI *Invoke)(DispHTCEventBehavior *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTCEventBehaviorVtbl;
-  interface DispHTCEventBehavior {
+  struct DispHTCEventBehavior {
     CONST_VTBL struct DispHTCEventBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11610,7 +11610,7 @@
       HRESULT (WINAPI *Invoke)(DispHTCAttachBehavior *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTCAttachBehaviorVtbl;
-  interface DispHTCAttachBehavior {
+  struct DispHTCAttachBehavior {
     CONST_VTBL struct DispHTCAttachBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11647,7 +11647,7 @@
       HRESULT (WINAPI *Invoke)(DispHTCDescBehavior *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTCDescBehaviorVtbl;
-  interface DispHTCDescBehavior {
+  struct DispHTCDescBehavior {
     CONST_VTBL struct DispHTCDescBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11689,7 +11689,7 @@
       HRESULT (WINAPI *item)(IHTMLUrnCollection *This,long index,BSTR *ppUrn);
     END_INTERFACE
   } IHTMLUrnCollectionVtbl;
-  interface IHTMLUrnCollection {
+  struct IHTMLUrnCollection {
     CONST_VTBL struct IHTMLUrnCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11737,7 +11737,7 @@
       HRESULT (WINAPI *namedRecordset)(IHTMLGenericElement *This,BSTR dataMember,VARIANT *hierarchy,IDispatch **ppRecordset);
     END_INTERFACE
   } IHTMLGenericElementVtbl;
-  interface IHTMLGenericElement {
+  struct IHTMLGenericElement {
     CONST_VTBL struct IHTMLGenericElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11776,7 +11776,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLGenericElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLGenericElementVtbl;
-  interface DispHTMLGenericElement {
+  struct DispHTMLGenericElement {
     CONST_VTBL struct DispHTMLGenericElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11822,7 +11822,7 @@
       HRESULT (WINAPI *get_readOnly)(IHTMLStyleSheetRule *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLStyleSheetRuleVtbl;
-  interface IHTMLStyleSheetRule {
+  struct IHTMLStyleSheetRule {
     CONST_VTBL struct IHTMLStyleSheetRuleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11872,7 +11872,7 @@
       HRESULT (WINAPI *item)(IHTMLStyleSheetRulesCollection *This,long index,IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
     END_INTERFACE
   } IHTMLStyleSheetRulesCollectionVtbl;
-  interface IHTMLStyleSheetRulesCollection {
+  struct IHTMLStyleSheetRulesCollection {
     CONST_VTBL struct IHTMLStyleSheetRulesCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11924,7 +11924,7 @@
       HRESULT (WINAPI *get_pseudoClass)(IHTMLStyleSheetPage *This,BSTR *p);
     END_INTERFACE
   } IHTMLStyleSheetPageVtbl;
-  interface IHTMLStyleSheetPage {
+  struct IHTMLStyleSheetPage {
     CONST_VTBL struct IHTMLStyleSheetPageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -11968,7 +11968,7 @@
       HRESULT (WINAPI *item)(IHTMLStyleSheetPagesCollection *This,long index,IHTMLStyleSheetPage **ppHTMLStyleSheetPage);
     END_INTERFACE
   } IHTMLStyleSheetPagesCollectionVtbl;
-  interface IHTMLStyleSheetPagesCollection {
+  struct IHTMLStyleSheetPagesCollection {
     CONST_VTBL struct IHTMLStyleSheetPagesCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12022,7 +12022,7 @@
       HRESULT (WINAPI *item)(IHTMLStyleSheetsCollection *This,VARIANT *pvarIndex,VARIANT *pvarResult);
     END_INTERFACE
   } IHTMLStyleSheetsCollectionVtbl;
-  interface IHTMLStyleSheetsCollection {
+  struct IHTMLStyleSheetsCollection {
     CONST_VTBL struct IHTMLStyleSheetsCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12107,7 +12107,7 @@
       HRESULT (WINAPI *get_rules)(IHTMLStyleSheet *This,IHTMLStyleSheetRulesCollection **p);
     END_INTERFACE
   } IHTMLStyleSheetVtbl;
-  interface IHTMLStyleSheet {
+  struct IHTMLStyleSheet {
     CONST_VTBL struct IHTMLStyleSheetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12208,7 +12208,7 @@
       HRESULT (WINAPI *addPageRule)(IHTMLStyleSheet2 *This,BSTR bstrSelector,BSTR bstrStyle,long lIndex,long *plNewIndex);
     END_INTERFACE
   } IHTMLStyleSheet2Vtbl;
-  interface IHTMLStyleSheet2 {
+  struct IHTMLStyleSheet2 {
     CONST_VTBL struct IHTMLStyleSheet2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12247,7 +12247,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLStyleSheet *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLStyleSheetVtbl;
-  interface DispHTMLStyleSheet {
+  struct DispHTMLStyleSheet {
     CONST_VTBL struct DispHTMLStyleSheetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12288,7 +12288,7 @@
       HRESULT (WINAPI *Invoke)(HTMLLinkElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLLinkElementEvents2Vtbl;
-  interface HTMLLinkElementEvents2 {
+  struct HTMLLinkElementEvents2 {
     CONST_VTBL struct HTMLLinkElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12321,7 +12321,7 @@
       HRESULT (WINAPI *Invoke)(HTMLLinkElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLLinkElementEventsVtbl;
-  interface HTMLLinkElementEvents {
+  struct HTMLLinkElementEvents {
     CONST_VTBL struct HTMLLinkElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12395,7 +12395,7 @@
       HRESULT (WINAPI *get_media)(IHTMLLinkElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLLinkElementVtbl;
-  interface IHTMLLinkElement {
+  struct IHTMLLinkElement {
     CONST_VTBL struct IHTMLLinkElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12493,7 +12493,7 @@
       HRESULT (WINAPI *get_target)(IHTMLLinkElement2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLLinkElement2Vtbl;
-  interface IHTMLLinkElement2 {
+  struct IHTMLLinkElement2 {
     CONST_VTBL struct IHTMLLinkElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12541,7 +12541,7 @@
       HRESULT (WINAPI *get_hreflang)(IHTMLLinkElement3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLLinkElement3Vtbl;
-  interface IHTMLLinkElement3 {
+  struct IHTMLLinkElement3 {
     CONST_VTBL struct IHTMLLinkElement3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12586,7 +12586,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLLinkElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLLinkElementVtbl;
-  interface DispHTMLLinkElement {
+  struct DispHTMLLinkElement {
     CONST_VTBL struct DispHTMLLinkElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12684,7 +12684,7 @@
       HRESULT (WINAPI *execCommandShowHelp)(IHTMLTxtRange *This,BSTR cmdID,VARIANT_BOOL *pfRet);
     END_INTERFACE
   } IHTMLTxtRangeVtbl;
-  interface IHTMLTxtRange {
+  struct IHTMLTxtRange {
     CONST_VTBL struct IHTMLTxtRangeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12820,7 +12820,7 @@
       HRESULT (WINAPI *get_boundingHeight)(IHTMLTextRangeMetrics *This,long *p);
     END_INTERFACE
   } IHTMLTextRangeMetricsVtbl;
-  interface IHTMLTextRangeMetrics {
+  struct IHTMLTextRangeMetrics {
     CONST_VTBL struct IHTMLTextRangeMetricsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12876,7 +12876,7 @@
       HRESULT (WINAPI *getBoundingClientRect)(IHTMLTextRangeMetrics2 *This,IHTMLRect **pRect);
     END_INTERFACE
   } IHTMLTextRangeMetrics2Vtbl;
-  interface IHTMLTextRangeMetrics2 {
+  struct IHTMLTextRangeMetrics2 {
     CONST_VTBL struct IHTMLTextRangeMetrics2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12922,7 +12922,7 @@
       HRESULT (WINAPI *item)(IHTMLTxtRangeCollection *This,VARIANT *pvarIndex,VARIANT *pvarResult);
     END_INTERFACE
   } IHTMLTxtRangeCollectionVtbl;
-  interface IHTMLTxtRangeCollection {
+  struct IHTMLTxtRangeCollection {
     CONST_VTBL struct IHTMLTxtRangeCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12964,7 +12964,7 @@
       HRESULT (WINAPI *Invoke)(HTMLFormElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLFormElementEvents2Vtbl;
-  interface HTMLFormElementEvents2 {
+  struct HTMLFormElementEvents2 {
     CONST_VTBL struct HTMLFormElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -12997,7 +12997,7 @@
       HRESULT (WINAPI *Invoke)(HTMLFormElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLFormElementEventsVtbl;
-  interface HTMLFormElementEvents {
+  struct HTMLFormElementEvents {
     CONST_VTBL struct HTMLFormElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13079,7 +13079,7 @@
       HRESULT (WINAPI *tags)(IHTMLFormElement *This,VARIANT tagName,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLFormElementVtbl;
-  interface IHTMLFormElement {
+  struct IHTMLFormElement {
     CONST_VTBL struct IHTMLFormElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13191,7 +13191,7 @@
       HRESULT (WINAPI *urns)(IHTMLFormElement2 *This,VARIANT urn,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLFormElement2Vtbl;
-  interface IHTMLFormElement2 {
+  struct IHTMLFormElement2 {
     CONST_VTBL struct IHTMLFormElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13236,7 +13236,7 @@
       HRESULT (WINAPI *namedItem)(IHTMLFormElement3 *This,BSTR name,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLFormElement3Vtbl;
-  interface IHTMLFormElement3 {
+  struct IHTMLFormElement3 {
     CONST_VTBL struct IHTMLFormElement3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13279,7 +13279,7 @@
       HRESULT (WINAPI *appendItemSeparator)(IHTMLSubmitData *This);
     END_INTERFACE
   } IHTMLSubmitDataVtbl;
-  interface IHTMLSubmitData {
+  struct IHTMLSubmitData {
     CONST_VTBL struct IHTMLSubmitDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13321,7 +13321,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLFormElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLFormElementVtbl;
-  interface DispHTMLFormElement {
+  struct DispHTMLFormElement {
     CONST_VTBL struct DispHTMLFormElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13358,7 +13358,7 @@
       HRESULT (WINAPI *Invoke)(HTMLControlElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLControlElementEvents2Vtbl;
-  interface HTMLControlElementEvents2 {
+  struct HTMLControlElementEvents2 {
     CONST_VTBL struct HTMLControlElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13391,7 +13391,7 @@
       HRESULT (WINAPI *Invoke)(HTMLControlElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLControlElementEventsVtbl;
-  interface HTMLControlElementEvents {
+  struct HTMLControlElementEvents {
     CONST_VTBL struct HTMLControlElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13461,7 +13461,7 @@
       HRESULT (WINAPI *get_clientLeft)(IHTMLControlElement *This,long *p);
     END_INTERFACE
   } IHTMLControlElementVtbl;
-  interface IHTMLControlElement {
+  struct IHTMLControlElement {
     CONST_VTBL struct IHTMLControlElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13548,7 +13548,7 @@
       HRESULT (WINAPI *Invoke)(IHTMLTextElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IHTMLTextElementVtbl;
-  interface IHTMLTextElement {
+  struct IHTMLTextElement {
     CONST_VTBL struct IHTMLTextElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13581,7 +13581,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLTextElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLTextElementVtbl;
-  interface DispHTMLTextElement {
+  struct DispHTMLTextElement {
     CONST_VTBL struct DispHTMLTextElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13618,7 +13618,7 @@
       HRESULT (WINAPI *Invoke)(HTMLTextContainerEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLTextContainerEvents2Vtbl;
-  interface HTMLTextContainerEvents2 {
+  struct HTMLTextContainerEvents2 {
     CONST_VTBL struct HTMLTextContainerEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13651,7 +13651,7 @@
       HRESULT (WINAPI *Invoke)(HTMLTextContainerEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLTextContainerEventsVtbl;
-  interface HTMLTextContainerEvents {
+  struct HTMLTextContainerEvents {
     CONST_VTBL struct HTMLTextContainerEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13703,7 +13703,7 @@
       HRESULT (WINAPI *get_onscroll)(IHTMLTextContainer *This,VARIANT *p);
     END_INTERFACE
   } IHTMLTextContainerVtbl;
-  interface IHTMLTextContainer {
+  struct IHTMLTextContainer {
     CONST_VTBL struct IHTMLTextContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13794,7 +13794,7 @@
       HRESULT (WINAPI *get_length)(IHTMLControlRange *This,long *p);
     END_INTERFACE
   } IHTMLControlRangeVtbl;
-  interface IHTMLControlRange {
+  struct IHTMLControlRange {
     CONST_VTBL struct IHTMLControlRangeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13875,7 +13875,7 @@
       HRESULT (WINAPI *addElement)(IHTMLControlRange2 *This,IHTMLElement *item);
     END_INTERFACE
   } IHTMLControlRange2Vtbl;
-  interface IHTMLControlRange2 {
+  struct IHTMLControlRange2 {
     CONST_VTBL struct IHTMLControlRange2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13911,7 +13911,7 @@
       HRESULT (WINAPI *Invoke)(HTMLImgEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLImgEvents2Vtbl;
-  interface HTMLImgEvents2 {
+  struct HTMLImgEvents2 {
     CONST_VTBL struct HTMLImgEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -13944,7 +13944,7 @@
       HRESULT (WINAPI *Invoke)(HTMLImgEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLImgEventsVtbl;
-  interface HTMLImgEvents {
+  struct HTMLImgEvents {
     CONST_VTBL struct HTMLImgEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14074,7 +14074,7 @@
       HRESULT (WINAPI *get_start)(IHTMLImgElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLImgElementVtbl;
-  interface IHTMLImgElement {
+  struct IHTMLImgElement {
     CONST_VTBL struct IHTMLImgElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14256,7 +14256,7 @@
       HRESULT (WINAPI *get_longDesc)(IHTMLImgElement2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLImgElement2Vtbl;
-  interface IHTMLImgElement2 {
+  struct IHTMLImgElement2 {
     CONST_VTBL struct IHTMLImgElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14298,7 +14298,7 @@
       HRESULT (WINAPI *create)(IHTMLImageElementFactory *This,VARIANT width,VARIANT height,IHTMLImgElement **__MIDL_0011);
     END_INTERFACE
   } IHTMLImageElementFactoryVtbl;
-  interface IHTMLImageElementFactory {
+  struct IHTMLImageElementFactory {
     CONST_VTBL struct IHTMLImageElementFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14334,7 +14334,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLImg *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLImgVtbl;
-  interface DispHTMLImg {
+  struct DispHTMLImg {
     CONST_VTBL struct DispHTMLImgVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14446,7 +14446,7 @@
       HRESULT (WINAPI *createTextRange)(IHTMLBodyElement *This,IHTMLTxtRange **range);
     END_INTERFACE
   } IHTMLBodyElementVtbl;
-  interface IHTMLBodyElement {
+  struct IHTMLBodyElement {
     CONST_VTBL struct IHTMLBodyElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14593,7 +14593,7 @@
       HRESULT (WINAPI *get_onafterprint)(IHTMLBodyElement2 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLBodyElement2Vtbl;
-  interface IHTMLBodyElement2 {
+  struct IHTMLBodyElement2 {
     CONST_VTBL struct IHTMLBodyElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14638,7 +14638,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLBody *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLBodyVtbl;
-  interface DispHTMLBody {
+  struct DispHTMLBody {
     CONST_VTBL struct DispHTMLBodyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14688,7 +14688,7 @@
       HRESULT (WINAPI *get_size)(IHTMLFontElement *This,VARIANT *p);
     END_INTERFACE
   } IHTMLFontElementVtbl;
-  interface IHTMLFontElement {
+  struct IHTMLFontElement {
     CONST_VTBL struct IHTMLFontElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14739,7 +14739,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLFontElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLFontElementVtbl;
-  interface DispHTMLFontElement {
+  struct DispHTMLFontElement {
     CONST_VTBL struct DispHTMLFontElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14776,7 +14776,7 @@
       HRESULT (WINAPI *Invoke)(HTMLAnchorEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLAnchorEvents2Vtbl;
-  interface HTMLAnchorEvents2 {
+  struct HTMLAnchorEvents2 {
     CONST_VTBL struct HTMLAnchorEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14809,7 +14809,7 @@
       HRESULT (WINAPI *Invoke)(HTMLAnchorEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLAnchorEventsVtbl;
-  interface HTMLAnchorEvents {
+  struct HTMLAnchorEvents {
     CONST_VTBL struct HTMLAnchorEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -14925,7 +14925,7 @@
       HRESULT (WINAPI *blur)(IHTMLAnchorElement *This);
     END_INTERFACE
   } IHTMLAnchorElementVtbl;
-  interface IHTMLAnchorElement {
+  struct IHTMLAnchorElement {
     CONST_VTBL struct IHTMLAnchorElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15102,7 +15102,7 @@
       HRESULT (WINAPI *get_type)(IHTMLAnchorElement2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLAnchorElement2Vtbl;
-  interface IHTMLAnchorElement2 {
+  struct IHTMLAnchorElement2 {
     CONST_VTBL struct IHTMLAnchorElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15165,7 +15165,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLAnchorElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLAnchorElementVtbl;
-  interface DispHTMLAnchorElement {
+  struct DispHTMLAnchorElement {
     CONST_VTBL struct DispHTMLAnchorElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15202,7 +15202,7 @@
       HRESULT (WINAPI *Invoke)(HTMLLabelEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLLabelEvents2Vtbl;
-  interface HTMLLabelEvents2 {
+  struct HTMLLabelEvents2 {
     CONST_VTBL struct HTMLLabelEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15235,7 +15235,7 @@
       HRESULT (WINAPI *Invoke)(HTMLLabelEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLLabelEventsVtbl;
-  interface HTMLLabelEvents {
+  struct HTMLLabelEvents {
     CONST_VTBL struct HTMLLabelEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15277,7 +15277,7 @@
       HRESULT (WINAPI *get_accessKey)(IHTMLLabelElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLLabelElementVtbl;
-  interface IHTMLLabelElement {
+  struct IHTMLLabelElement {
     CONST_VTBL struct IHTMLLabelElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15325,7 +15325,7 @@
       HRESULT (WINAPI *get_form)(IHTMLLabelElement2 *This,IHTMLFormElement **p);
     END_INTERFACE
   } IHTMLLabelElement2Vtbl;
-  interface IHTMLLabelElement2 {
+  struct IHTMLLabelElement2 {
     CONST_VTBL struct IHTMLLabelElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15361,7 +15361,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLLabelElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLLabelElementVtbl;
-  interface DispHTMLLabelElement {
+  struct DispHTMLLabelElement {
     CONST_VTBL struct DispHTMLLabelElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15398,7 +15398,7 @@
       HRESULT (WINAPI *Invoke)(IHTMLListElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IHTMLListElementVtbl;
-  interface IHTMLListElement {
+  struct IHTMLListElement {
     CONST_VTBL struct IHTMLListElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15436,7 +15436,7 @@
       HRESULT (WINAPI *get_compact)(IHTMLListElement2 *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLListElement2Vtbl;
-  interface IHTMLListElement2 {
+  struct IHTMLListElement2 {
     CONST_VTBL struct IHTMLListElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15475,7 +15475,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLListElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLListElementVtbl;
-  interface DispHTMLListElement {
+  struct DispHTMLListElement {
     CONST_VTBL struct DispHTMLListElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15521,7 +15521,7 @@
       HRESULT (WINAPI *get_type)(IHTMLUListElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLUListElementVtbl;
-  interface IHTMLUListElement {
+  struct IHTMLUListElement {
     CONST_VTBL struct IHTMLUListElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15566,7 +15566,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLUListElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLUListElementVtbl;
-  interface DispHTMLUListElement {
+  struct DispHTMLUListElement {
     CONST_VTBL struct DispHTMLUListElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15616,7 +15616,7 @@
       HRESULT (WINAPI *get_type)(IHTMLOListElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLOListElementVtbl;
-  interface IHTMLOListElement {
+  struct IHTMLOListElement {
     CONST_VTBL struct IHTMLOListElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15667,7 +15667,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLOListElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLOListElementVtbl;
-  interface DispHTMLOListElement {
+  struct DispHTMLOListElement {
     CONST_VTBL struct DispHTMLOListElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15713,7 +15713,7 @@
       HRESULT (WINAPI *get_value)(IHTMLLIElement *This,long *p);
     END_INTERFACE
   } IHTMLLIElementVtbl;
-  interface IHTMLLIElement {
+  struct IHTMLLIElement {
     CONST_VTBL struct IHTMLLIElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15758,7 +15758,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLLIElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLLIElementVtbl;
-  interface DispHTMLLIElement {
+  struct DispHTMLLIElement {
     CONST_VTBL struct DispHTMLLIElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15800,7 +15800,7 @@
       HRESULT (WINAPI *get_clear)(IHTMLBlockElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLBlockElementVtbl;
-  interface IHTMLBlockElement {
+  struct IHTMLBlockElement {
     CONST_VTBL struct IHTMLBlockElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15848,7 +15848,7 @@
       HRESULT (WINAPI *get_width)(IHTMLBlockElement2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLBlockElement2Vtbl;
-  interface IHTMLBlockElement2 {
+  struct IHTMLBlockElement2 {
     CONST_VTBL struct IHTMLBlockElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15893,7 +15893,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLBlockElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLBlockElementVtbl;
-  interface DispHTMLBlockElement {
+  struct DispHTMLBlockElement {
     CONST_VTBL struct DispHTMLBlockElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15939,7 +15939,7 @@
       HRESULT (WINAPI *get_noWrap)(IHTMLDivElement *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLDivElementVtbl;
-  interface IHTMLDivElement {
+  struct IHTMLDivElement {
     CONST_VTBL struct IHTMLDivElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -15984,7 +15984,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDivElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDivElementVtbl;
-  interface DispHTMLDivElement {
+  struct DispHTMLDivElement {
     CONST_VTBL struct DispHTMLDivElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16026,7 +16026,7 @@
       HRESULT (WINAPI *get_noWrap)(IHTMLDDElement *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLDDElementVtbl;
-  interface IHTMLDDElement {
+  struct IHTMLDDElement {
     CONST_VTBL struct IHTMLDDElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16065,7 +16065,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDDElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDDElementVtbl;
-  interface DispHTMLDDElement {
+  struct DispHTMLDDElement {
     CONST_VTBL struct DispHTMLDDElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16107,7 +16107,7 @@
       HRESULT (WINAPI *get_noWrap)(IHTMLDTElement *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLDTElementVtbl;
-  interface IHTMLDTElement {
+  struct IHTMLDTElement {
     CONST_VTBL struct IHTMLDTElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16146,7 +16146,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDTElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDTElementVtbl;
-  interface DispHTMLDTElement {
+  struct DispHTMLDTElement {
     CONST_VTBL struct DispHTMLDTElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16188,7 +16188,7 @@
       HRESULT (WINAPI *get_clear)(IHTMLBRElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLBRElementVtbl;
-  interface IHTMLBRElement {
+  struct IHTMLBRElement {
     CONST_VTBL struct IHTMLBRElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16227,7 +16227,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLBRElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLBRElementVtbl;
-  interface DispHTMLBRElement {
+  struct DispHTMLBRElement {
     CONST_VTBL struct DispHTMLBRElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16269,7 +16269,7 @@
       HRESULT (WINAPI *get_compact)(IHTMLDListElement *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLDListElementVtbl;
-  interface IHTMLDListElement {
+  struct IHTMLDListElement {
     CONST_VTBL struct IHTMLDListElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16308,7 +16308,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDListElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDListElementVtbl;
-  interface DispHTMLDListElement {
+  struct DispHTMLDListElement {
     CONST_VTBL struct DispHTMLDListElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16366,7 +16366,7 @@
       HRESULT (WINAPI *get_size)(IHTMLHRElement *This,VARIANT *p);
     END_INTERFACE
   } IHTMLHRElementVtbl;
-  interface IHTMLHRElement {
+  struct IHTMLHRElement {
     CONST_VTBL struct IHTMLHRElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16429,7 +16429,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLHRElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLHRElementVtbl;
-  interface DispHTMLHRElement {
+  struct DispHTMLHRElement {
     CONST_VTBL struct DispHTMLHRElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16471,7 +16471,7 @@
       HRESULT (WINAPI *get_align)(IHTMLParaElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLParaElementVtbl;
-  interface IHTMLParaElement {
+  struct IHTMLParaElement {
     CONST_VTBL struct IHTMLParaElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16510,7 +16510,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLParaElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLParaElementVtbl;
-  interface DispHTMLParaElement {
+  struct DispHTMLParaElement {
     CONST_VTBL struct DispHTMLParaElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16550,7 +16550,7 @@
       HRESULT (WINAPI *urns)(IHTMLElementCollection2 *This,VARIANT urn,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLElementCollection2Vtbl;
-  interface IHTMLElementCollection2 {
+  struct IHTMLElementCollection2 {
     CONST_VTBL struct IHTMLElementCollection2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16589,7 +16589,7 @@
       HRESULT (WINAPI *namedItem)(IHTMLElementCollection3 *This,BSTR name,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLElementCollection3Vtbl;
-  interface IHTMLElementCollection3 {
+  struct IHTMLElementCollection3 {
     CONST_VTBL struct IHTMLElementCollection3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16625,7 +16625,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLElementCollection *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLElementCollectionVtbl;
-  interface DispHTMLElementCollection {
+  struct DispHTMLElementCollection {
     CONST_VTBL struct DispHTMLElementCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16667,7 +16667,7 @@
       HRESULT (WINAPI *get_align)(IHTMLHeaderElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLHeaderElementVtbl;
-  interface IHTMLHeaderElement {
+  struct IHTMLHeaderElement {
     CONST_VTBL struct IHTMLHeaderElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16706,7 +16706,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLHeaderElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLHeaderElementVtbl;
-  interface DispHTMLHeaderElement {
+  struct DispHTMLHeaderElement {
     CONST_VTBL struct DispHTMLHeaderElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16743,7 +16743,7 @@
       HRESULT (WINAPI *Invoke)(HTMLSelectElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLSelectElementEvents2Vtbl;
-  interface HTMLSelectElementEvents2 {
+  struct HTMLSelectElementEvents2 {
     CONST_VTBL struct HTMLSelectElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16776,7 +16776,7 @@
       HRESULT (WINAPI *Invoke)(HTMLSelectElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLSelectElementEventsVtbl;
-  interface HTMLSelectElementEvents {
+  struct HTMLSelectElementEvents {
     CONST_VTBL struct HTMLSelectElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16858,7 +16858,7 @@
       HRESULT (WINAPI *tags)(IHTMLSelectElement *This,VARIANT tagName,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLSelectElementVtbl;
-  interface IHTMLSelectElement {
+  struct IHTMLSelectElement {
     CONST_VTBL struct IHTMLSelectElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -16966,7 +16966,7 @@
       HRESULT (WINAPI *urns)(IHTMLSelectElement2 *This,VARIANT urn,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLSelectElement2Vtbl;
-  interface IHTMLSelectElement2 {
+  struct IHTMLSelectElement2 {
     CONST_VTBL struct IHTMLSelectElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17005,7 +17005,7 @@
       HRESULT (WINAPI *namedItem)(IHTMLSelectElement4 *This,BSTR name,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLSelectElement4Vtbl;
-  interface IHTMLSelectElement4 {
+  struct IHTMLSelectElement4 {
     CONST_VTBL struct IHTMLSelectElement4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17041,7 +17041,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLSelectElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLSelectElementVtbl;
-  interface DispHTMLSelectElement {
+  struct DispHTMLSelectElement {
     CONST_VTBL struct DispHTMLSelectElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17087,7 +17087,7 @@
       HRESULT (WINAPI *get_type)(IHTMLSelectionObject *This,BSTR *p);
     END_INTERFACE
   } IHTMLSelectionObjectVtbl;
-  interface IHTMLSelectionObject {
+  struct IHTMLSelectionObject {
     CONST_VTBL struct IHTMLSelectionObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17137,7 +17137,7 @@
       HRESULT (WINAPI *get_typeDetail)(IHTMLSelectionObject2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLSelectionObject2Vtbl;
-  interface IHTMLSelectionObject2 {
+  struct IHTMLSelectionObject2 {
     CONST_VTBL struct IHTMLSelectionObject2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17199,7 +17199,7 @@
       HRESULT (WINAPI *get_form)(IHTMLOptionElement *This,IHTMLFormElement **p);
     END_INTERFACE
   } IHTMLOptionElementVtbl;
-  interface IHTMLOptionElement {
+  struct IHTMLOptionElement {
     CONST_VTBL struct IHTMLOptionElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17270,7 +17270,7 @@
       HRESULT (WINAPI *get_label)(IHTMLOptionElement3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLOptionElement3Vtbl;
-  interface IHTMLOptionElement3 {
+  struct IHTMLOptionElement3 {
     CONST_VTBL struct IHTMLOptionElement3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17312,7 +17312,7 @@
       HRESULT (WINAPI *create)(IHTMLOptionElementFactory *This,VARIANT text,VARIANT value,VARIANT defaultselected,VARIANT selected,IHTMLOptionElement **__MIDL_0012);
     END_INTERFACE
   } IHTMLOptionElementFactoryVtbl;
-  interface IHTMLOptionElementFactory {
+  struct IHTMLOptionElementFactory {
     CONST_VTBL struct IHTMLOptionElementFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17348,7 +17348,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLOptionElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLOptionElementVtbl;
-  interface DispHTMLOptionElement {
+  struct DispHTMLOptionElement {
     CONST_VTBL struct DispHTMLOptionElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17389,7 +17389,7 @@
       HRESULT (WINAPI *Invoke)(HTMLButtonElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLButtonElementEvents2Vtbl;
-  interface HTMLButtonElementEvents2 {
+  struct HTMLButtonElementEvents2 {
     CONST_VTBL struct HTMLButtonElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17422,7 +17422,7 @@
       HRESULT (WINAPI *Invoke)(HTMLButtonElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLButtonElementEventsVtbl;
-  interface HTMLButtonElementEvents {
+  struct HTMLButtonElementEvents {
     CONST_VTBL struct HTMLButtonElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17455,7 +17455,7 @@
       HRESULT (WINAPI *Invoke)(HTMLInputTextElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLInputTextElementEvents2Vtbl;
-  interface HTMLInputTextElementEvents2 {
+  struct HTMLInputTextElementEvents2 {
     CONST_VTBL struct HTMLInputTextElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17488,7 +17488,7 @@
       HRESULT (WINAPI *Invoke)(HTMLOptionButtonElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLOptionButtonElementEvents2Vtbl;
-  interface HTMLOptionButtonElementEvents2 {
+  struct HTMLOptionButtonElementEvents2 {
     CONST_VTBL struct HTMLOptionButtonElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17521,7 +17521,7 @@
       HRESULT (WINAPI *Invoke)(HTMLInputFileElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLInputFileElementEvents2Vtbl;
-  interface HTMLInputFileElementEvents2 {
+  struct HTMLInputFileElementEvents2 {
     CONST_VTBL struct HTMLInputFileElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17554,7 +17554,7 @@
       HRESULT (WINAPI *Invoke)(HTMLInputImageEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLInputImageEvents2Vtbl;
-  interface HTMLInputImageEvents2 {
+  struct HTMLInputImageEvents2 {
     CONST_VTBL struct HTMLInputImageEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17587,7 +17587,7 @@
       HRESULT (WINAPI *Invoke)(HTMLInputTextElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLInputTextElementEventsVtbl;
-  interface HTMLInputTextElementEvents {
+  struct HTMLInputTextElementEvents {
     CONST_VTBL struct HTMLInputTextElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17620,7 +17620,7 @@
       HRESULT (WINAPI *Invoke)(HTMLOptionButtonElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLOptionButtonElementEventsVtbl;
-  interface HTMLOptionButtonElementEvents {
+  struct HTMLOptionButtonElementEvents {
     CONST_VTBL struct HTMLOptionButtonElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17653,7 +17653,7 @@
       HRESULT (WINAPI *Invoke)(HTMLInputFileElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLInputFileElementEventsVtbl;
-  interface HTMLInputFileElementEvents {
+  struct HTMLInputFileElementEvents {
     CONST_VTBL struct HTMLInputFileElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17686,7 +17686,7 @@
       HRESULT (WINAPI *Invoke)(HTMLInputImageEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLInputImageEventsVtbl;
-  interface HTMLInputImageEvents {
+  struct HTMLInputImageEvents {
     CONST_VTBL struct HTMLInputImageEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -17850,7 +17850,7 @@
       HRESULT (WINAPI *get_start)(IHTMLInputElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLInputElementVtbl;
-  interface IHTMLInputElement {
+  struct IHTMLInputElement {
     CONST_VTBL struct IHTMLInputElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -18087,7 +18087,7 @@
       HRESULT (WINAPI *get_useMap)(IHTMLInputElement2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLInputElement2Vtbl;
-  interface IHTMLInputElement2 {
+  struct IHTMLInputElement2 {
     CONST_VTBL struct IHTMLInputElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -18155,7 +18155,7 @@
       HRESULT (WINAPI *createTextRange)(IHTMLInputButtonElement *This,IHTMLTxtRange **range);
     END_INTERFACE
   } IHTMLInputButtonElementVtbl;
-  interface IHTMLInputButtonElement {
+  struct IHTMLInputButtonElement {
     CONST_VTBL struct IHTMLInputButtonElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -18244,7 +18244,7 @@
       HRESULT (WINAPI *createTextRange)(IHTMLInputHiddenElement *This,IHTMLTxtRange **range);
     END_INTERFACE
   } IHTMLInputHiddenElementVtbl;
-  interface IHTMLInputHiddenElement {
+  struct IHTMLInputHiddenElement {
     CONST_VTBL struct IHTMLInputHiddenElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -18359,7 +18359,7 @@
       HRESULT (WINAPI *createTextRange)(IHTMLInputTextElement *This,IHTMLTxtRange **range);
     END_INTERFACE
   } IHTMLInputTextElementVtbl;
-  interface IHTMLInputTextElement {
+  struct IHTMLInputTextElement {
     CONST_VTBL struct IHTMLInputTextElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -18503,7 +18503,7 @@
       HRESULT (WINAPI *get_value)(IHTMLInputFileElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLInputFileElementVtbl;
-  interface IHTMLInputFileElement {
+  struct IHTMLInputFileElement {
     CONST_VTBL struct IHTMLInputFileElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -18630,7 +18630,7 @@
       HRESULT (WINAPI *get_form)(IHTMLOptionButtonElement *This,IHTMLFormElement **p);
     END_INTERFACE
   } IHTMLOptionButtonElementVtbl;
-  interface IHTMLOptionButtonElement {
+  struct IHTMLOptionButtonElement {
     CONST_VTBL struct IHTMLOptionButtonElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -18796,7 +18796,7 @@
       HRESULT (WINAPI *get_start)(IHTMLInputImage *This,BSTR *p);
     END_INTERFACE
   } IHTMLInputImageVtbl;
-  interface IHTMLInputImage {
+  struct IHTMLInputImage {
     CONST_VTBL struct IHTMLInputImageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -18946,7 +18946,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLInputElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLInputElementVtbl;
-  interface DispHTMLInputElement {
+  struct DispHTMLInputElement {
     CONST_VTBL struct DispHTMLInputElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19036,7 +19036,7 @@
       HRESULT (WINAPI *createTextRange)(IHTMLTextAreaElement *This,IHTMLTxtRange **range);
     END_INTERFACE
   } IHTMLTextAreaElementVtbl;
-  interface IHTMLTextAreaElement {
+  struct IHTMLTextAreaElement {
     CONST_VTBL struct IHTMLTextAreaElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19147,7 +19147,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLTextAreaElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLTextAreaElementVtbl;
-  interface DispHTMLTextAreaElement {
+  struct DispHTMLTextAreaElement {
     CONST_VTBL struct DispHTMLTextAreaElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19184,7 +19184,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLRichtextElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLRichtextElementVtbl;
-  interface DispHTMLRichtextElement {
+  struct DispHTMLRichtextElement {
     CONST_VTBL struct DispHTMLRichtextElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19246,7 +19246,7 @@
       HRESULT (WINAPI *createTextRange)(IHTMLButtonElement *This,IHTMLTxtRange **range);
     END_INTERFACE
   } IHTMLButtonElementVtbl;
-  interface IHTMLButtonElement {
+  struct IHTMLButtonElement {
     CONST_VTBL struct IHTMLButtonElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19312,7 +19312,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLButtonElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLButtonElementVtbl;
-  interface DispHTMLButtonElement {
+  struct DispHTMLButtonElement {
     CONST_VTBL struct DispHTMLButtonElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19349,7 +19349,7 @@
       HRESULT (WINAPI *Invoke)(HTMLMarqueeElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLMarqueeElementEvents2Vtbl;
-  interface HTMLMarqueeElementEvents2 {
+  struct HTMLMarqueeElementEvents2 {
     CONST_VTBL struct HTMLMarqueeElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19382,7 +19382,7 @@
       HRESULT (WINAPI *Invoke)(HTMLMarqueeElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLMarqueeElementEventsVtbl;
-  interface HTMLMarqueeElementEvents {
+  struct HTMLMarqueeElementEvents {
     CONST_VTBL struct HTMLMarqueeElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19476,7 +19476,7 @@
       HRESULT (WINAPI *stop)(IHTMLMarqueeElement *This);
     END_INTERFACE
   } IHTMLMarqueeElementVtbl;
-  interface IHTMLMarqueeElement {
+  struct IHTMLMarqueeElement {
     CONST_VTBL struct IHTMLMarqueeElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19599,7 +19599,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLMarqueeElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLMarqueeElementVtbl;
-  interface DispHTMLMarqueeElement {
+  struct DispHTMLMarqueeElement {
     CONST_VTBL struct DispHTMLMarqueeElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19641,7 +19641,7 @@
       HRESULT (WINAPI *get_version)(IHTMLHtmlElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLHtmlElementVtbl;
-  interface IHTMLHtmlElement {
+  struct IHTMLHtmlElement {
     CONST_VTBL struct IHTMLHtmlElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19685,7 +19685,7 @@
       HRESULT (WINAPI *get_profile)(IHTMLHeadElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLHeadElementVtbl;
-  interface IHTMLHeadElement {
+  struct IHTMLHeadElement {
     CONST_VTBL struct IHTMLHeadElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19729,7 +19729,7 @@
       HRESULT (WINAPI *get_text)(IHTMLTitleElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLTitleElementVtbl;
-  interface IHTMLTitleElement {
+  struct IHTMLTitleElement {
     CONST_VTBL struct IHTMLTitleElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19789,7 +19789,7 @@
       HRESULT (WINAPI *get_charset)(IHTMLMetaElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLMetaElementVtbl;
-  interface IHTMLMetaElement {
+  struct IHTMLMetaElement {
     CONST_VTBL struct IHTMLMetaElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19857,7 +19857,7 @@
       HRESULT (WINAPI *get_scheme)(IHTMLMetaElement2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLMetaElement2Vtbl;
-  interface IHTMLMetaElement2 {
+  struct IHTMLMetaElement2 {
     CONST_VTBL struct IHTMLMetaElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19905,7 +19905,7 @@
       HRESULT (WINAPI *get_target)(IHTMLBaseElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLBaseElementVtbl;
-  interface IHTMLBaseElement {
+  struct IHTMLBaseElement {
     CONST_VTBL struct IHTMLBaseElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -19959,7 +19959,7 @@
       HRESULT (WINAPI *get_action)(IHTMLIsIndexElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLIsIndexElementVtbl;
-  interface IHTMLIsIndexElement {
+  struct IHTMLIsIndexElement {
     CONST_VTBL struct IHTMLIsIndexElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20007,7 +20007,7 @@
       HRESULT (WINAPI *get_form)(IHTMLIsIndexElement2 *This,IHTMLFormElement **p);
     END_INTERFACE
   } IHTMLIsIndexElement2Vtbl;
-  interface IHTMLIsIndexElement2 {
+  struct IHTMLIsIndexElement2 {
     CONST_VTBL struct IHTMLIsIndexElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20048,7 +20048,7 @@
       HRESULT (WINAPI *get_n)(IHTMLNextIdElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLNextIdElementVtbl;
-  interface IHTMLNextIdElement {
+  struct IHTMLNextIdElement {
     CONST_VTBL struct IHTMLNextIdElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20087,7 +20087,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLHtmlElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLHtmlElementVtbl;
-  interface DispHTMLHtmlElement {
+  struct DispHTMLHtmlElement {
     CONST_VTBL struct DispHTMLHtmlElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20124,7 +20124,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLHeadElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLHeadElementVtbl;
-  interface DispHTMLHeadElement {
+  struct DispHTMLHeadElement {
     CONST_VTBL struct DispHTMLHeadElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20161,7 +20161,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLTitleElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLTitleElementVtbl;
-  interface DispHTMLTitleElement {
+  struct DispHTMLTitleElement {
     CONST_VTBL struct DispHTMLTitleElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20198,7 +20198,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLMetaElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLMetaElementVtbl;
-  interface DispHTMLMetaElement {
+  struct DispHTMLMetaElement {
     CONST_VTBL struct DispHTMLMetaElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20235,7 +20235,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLBaseElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLBaseElementVtbl;
-  interface DispHTMLBaseElement {
+  struct DispHTMLBaseElement {
     CONST_VTBL struct DispHTMLBaseElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20272,7 +20272,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLIsIndexElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLIsIndexElementVtbl;
-  interface DispHTMLIsIndexElement {
+  struct DispHTMLIsIndexElement {
     CONST_VTBL struct DispHTMLIsIndexElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20309,7 +20309,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLNextIdElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLNextIdElementVtbl;
-  interface DispHTMLNextIdElement {
+  struct DispHTMLNextIdElement {
     CONST_VTBL struct DispHTMLNextIdElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20359,7 +20359,7 @@
       HRESULT (WINAPI *get_size)(IHTMLBaseFontElement *This,long *p);
     END_INTERFACE
   } IHTMLBaseFontElementVtbl;
-  interface IHTMLBaseFontElement {
+  struct IHTMLBaseFontElement {
     CONST_VTBL struct IHTMLBaseFontElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20410,7 +20410,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLBaseFontElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLBaseFontElementVtbl;
-  interface DispHTMLBaseFontElement {
+  struct DispHTMLBaseFontElement {
     CONST_VTBL struct DispHTMLBaseFontElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20447,7 +20447,7 @@
       HRESULT (WINAPI *Invoke)(IHTMLUnknownElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IHTMLUnknownElementVtbl;
-  interface IHTMLUnknownElement {
+  struct IHTMLUnknownElement {
     CONST_VTBL struct IHTMLUnknownElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20480,7 +20480,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLUnknownElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLUnknownElementVtbl;
-  interface DispHTMLUnknownElement {
+  struct DispHTMLUnknownElement {
     CONST_VTBL struct DispHTMLUnknownElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20526,7 +20526,7 @@
       HRESULT (WINAPI *go)(IOmHistory *This,VARIANT *pvargdistance);
     END_INTERFACE
   } IOmHistoryVtbl;
-  interface IOmHistory {
+  struct IOmHistory {
     CONST_VTBL struct IOmHistoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20574,7 +20574,7 @@
       HRESULT (WINAPI *get_length)(IHTMLMimeTypesCollection *This,long *p);
     END_INTERFACE
   } IHTMLMimeTypesCollectionVtbl;
-  interface IHTMLMimeTypesCollection {
+  struct IHTMLMimeTypesCollection {
     CONST_VTBL struct IHTMLMimeTypesCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20615,7 +20615,7 @@
       HRESULT (WINAPI *refresh)(IHTMLPluginsCollection *This,VARIANT_BOOL reload);
     END_INTERFACE
   } IHTMLPluginsCollectionVtbl;
-  interface IHTMLPluginsCollection {
+  struct IHTMLPluginsCollection {
     CONST_VTBL struct IHTMLPluginsCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20673,7 +20673,7 @@
       HRESULT (WINAPI *doWriteRequest)(IHTMLOpsProfile *This,VARIANT_BOOL *success);
     END_INTERFACE
   } IHTMLOpsProfileVtbl;
-  interface IHTMLOpsProfile {
+  struct IHTMLOpsProfile {
     CONST_VTBL struct IHTMLOpsProfileVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20774,7 +20774,7 @@
       HRESULT (WINAPI *get_userProfile)(IOmNavigator *This,IHTMLOpsProfile **p);
     END_INTERFACE
   } IOmNavigatorVtbl;
-  interface IOmNavigator {
+  struct IOmNavigator {
     CONST_VTBL struct IOmNavigatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -20908,7 +20908,7 @@
       HRESULT (WINAPI *toString)(IHTMLLocation *This,BSTR *string);
     END_INTERFACE
   } IHTMLLocationVtbl;
-  interface IHTMLLocation {
+  struct IHTMLLocation {
     CONST_VTBL struct IHTMLLocationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -21032,7 +21032,7 @@
       HRESULT (WINAPI *item)(IHTMLBookmarkCollection *This,long index,VARIANT *pVarBookmark);
     END_INTERFACE
   } IHTMLBookmarkCollectionVtbl;
-  interface IHTMLBookmarkCollection {
+  struct IHTMLBookmarkCollection {
     CONST_VTBL struct IHTMLBookmarkCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -21089,7 +21089,7 @@
       HRESULT (WINAPI *get_effectAllowed)(IHTMLDataTransfer *This,BSTR *p);
     END_INTERFACE
   } IHTMLDataTransferVtbl;
-  interface IHTMLDataTransfer {
+  struct IHTMLDataTransfer {
     CONST_VTBL struct IHTMLDataTransferVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -21256,7 +21256,7 @@
       HRESULT (WINAPI *get_dataTransfer)(IHTMLEventObj2 *This,IHTMLDataTransfer **p);
     END_INTERFACE
   } IHTMLEventObj2Vtbl;
-  interface IHTMLEventObj2 {
+  struct IHTMLEventObj2 {
     CONST_VTBL struct IHTMLEventObj2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -21490,7 +21490,7 @@
       HRESULT (WINAPI *get_nextPage)(IHTMLEventObj3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLEventObj3Vtbl;
-  interface IHTMLEventObj3 {
+  struct IHTMLEventObj3 {
     CONST_VTBL struct IHTMLEventObj3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -21574,7 +21574,7 @@
       HRESULT (WINAPI *get_wheelDelta)(IHTMLEventObj4 *This,long *p);
     END_INTERFACE
   } IHTMLEventObj4Vtbl;
-  interface IHTMLEventObj4 {
+  struct IHTMLEventObj4 {
     CONST_VTBL struct IHTMLEventObj4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -21610,7 +21610,7 @@
       HRESULT (WINAPI *Invoke)(DispCEventObj *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispCEventObjVtbl;
-  interface DispCEventObj {
+  struct DispCEventObj {
     CONST_VTBL struct DispCEventObjVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -21647,7 +21647,7 @@
       HRESULT (WINAPI *Invoke)(HTMLWindowEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLWindowEvents2Vtbl;
-  interface HTMLWindowEvents2 {
+  struct HTMLWindowEvents2 {
     CONST_VTBL struct HTMLWindowEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -21680,7 +21680,7 @@
       HRESULT (WINAPI *Invoke)(HTMLWindowEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLWindowEventsVtbl;
-  interface HTMLWindowEvents {
+  struct HTMLWindowEvents {
     CONST_VTBL struct HTMLWindowEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -21931,7 +21931,7 @@
       HRESULT (WINAPI *createStyleSheet)(IHTMLDocument2 *This,BSTR bstrHref,long lIndex,IHTMLStyleSheet **ppnewStyleSheet);
     END_INTERFACE
   } IHTMLDocument2Vtbl;
-  interface IHTMLDocument2 {
+  struct IHTMLDocument2 {
     CONST_VTBL struct IHTMLDocument2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -22294,7 +22294,7 @@
       HRESULT (WINAPI *get_length)(IHTMLFramesCollection2 *This,long *p);
     END_INTERFACE
   } IHTMLFramesCollection2Vtbl;
-  interface IHTMLFramesCollection2 {
+  struct IHTMLFramesCollection2 {
     CONST_VTBL struct IHTMLFramesCollection2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -22472,7 +22472,7 @@
       HRESULT (WINAPI *get_external)(IHTMLWindow2 *This,IDispatch **p);
     END_INTERFACE
   } IHTMLWindow2Vtbl;
-  interface IHTMLWindow2 {
+  struct IHTMLWindow2 {
     CONST_VTBL struct IHTMLWindow2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -22738,7 +22738,7 @@
       HRESULT (WINAPI *showModelessDialog)(IHTMLWindow3 *This,BSTR url,VARIANT *varArgIn,VARIANT *options,IHTMLWindow2 **pDialog);
     END_INTERFACE
   } IHTMLWindow3Vtbl;
-  interface IHTMLWindow3 {
+  struct IHTMLWindow3 {
     CONST_VTBL struct IHTMLWindow3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -22847,7 +22847,7 @@
       HRESULT (WINAPI *get_scrolling)(IHTMLFrameBase *This,BSTR *p);
     END_INTERFACE
   } IHTMLFrameBaseVtbl;
-  interface IHTMLFrameBase {
+  struct IHTMLFrameBase {
     CONST_VTBL struct IHTMLFrameBaseVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -22955,7 +22955,7 @@
       HRESULT (WINAPI *get_fontSmoothingEnabled)(IHTMLScreen *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLScreenVtbl;
-  interface IHTMLScreen {
+  struct IHTMLScreen {
     CONST_VTBL struct IHTMLScreenVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23027,7 +23027,7 @@
       HRESULT (WINAPI *get_deviceYDPI)(IHTMLScreen2 *This,long *p);
     END_INTERFACE
   } IHTMLScreen2Vtbl;
-  interface IHTMLScreen2 {
+  struct IHTMLScreen2 {
     CONST_VTBL struct IHTMLScreen2Vtbl *lpVtbl;
   };
 
@@ -23080,7 +23080,7 @@
       HRESULT (WINAPI *get_frameElement)(IHTMLWindow4 *This,IHTMLFrameBase **p);
     END_INTERFACE
   } IHTMLWindow4Vtbl;
-  interface IHTMLWindow4 {
+  struct IHTMLWindow4 {
     CONST_VTBL struct IHTMLWindow4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23125,7 +23125,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLScreen *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLScreenVtbl;
-  interface DispHTMLScreen {
+  struct DispHTMLScreen {
     CONST_VTBL struct DispHTMLScreenVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23163,7 +23163,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLWindow2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLWindow2Vtbl;
-  interface DispHTMLWindow2 {
+  struct DispHTMLWindow2 {
     CONST_VTBL struct DispHTMLWindow2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23201,7 +23201,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLWindowProxy *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLWindowProxyVtbl;
-  interface DispHTMLWindowProxy {
+  struct DispHTMLWindowProxy {
     CONST_VTBL struct DispHTMLWindowProxyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23239,7 +23239,7 @@
       HRESULT (WINAPI *Invoke)(HTMLDocumentEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLDocumentEvents2Vtbl;
-  interface HTMLDocumentEvents2 {
+  struct HTMLDocumentEvents2 {
     CONST_VTBL struct HTMLDocumentEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23272,7 +23272,7 @@
       HRESULT (WINAPI *Invoke)(HTMLDocumentEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLDocumentEventsVtbl;
-  interface HTMLDocumentEvents {
+  struct HTMLDocumentEvents {
     CONST_VTBL struct HTMLDocumentEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23388,7 +23388,7 @@
       HRESULT (WINAPI *getElementsByTagName)(IHTMLDocument3 *This,BSTR v,IHTMLElementCollection **pelColl);
     END_INTERFACE
   } IHTMLDocument3Vtbl;
-  interface IHTMLDocument3 {
+  struct IHTMLDocument3 {
     CONST_VTBL struct IHTMLDocument3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23574,7 +23574,7 @@
       HRESULT (WINAPI *get_URLUnencoded)(IHTMLDocument4 *This,BSTR *p);
     END_INTERFACE
   } IHTMLDocument4Vtbl;
-  interface IHTMLDocument4 {
+  struct IHTMLDocument4 {
     CONST_VTBL struct IHTMLDocument4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23689,7 +23689,7 @@
       HRESULT (WINAPI *get_compatMode)(IHTMLDocument5 *This,BSTR *p);
     END_INTERFACE
   } IHTMLDocument5Vtbl;
-  interface IHTMLDocument5 {
+  struct IHTMLDocument5 {
     CONST_VTBL struct IHTMLDocument5Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23780,7 +23780,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDocument *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDocumentVtbl;
-  interface DispHTMLDocument {
+  struct DispHTMLDocument {
     CONST_VTBL struct DispHTMLDocumentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23818,7 +23818,7 @@
       HRESULT (WINAPI *Invoke)(DWebBridgeEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DWebBridgeEventsVtbl;
-  interface DWebBridgeEvents {
+  struct DWebBridgeEvents {
     CONST_VTBL struct DWebBridgeEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23870,7 +23870,7 @@
       HRESULT (WINAPI *AboutBox)(IWebBridge *This);
     END_INTERFACE
   } IWebBridgeVtbl;
-  interface IWebBridge {
+  struct IWebBridge {
     CONST_VTBL struct IWebBridgeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -23955,7 +23955,7 @@
       HRESULT (WINAPI *get_onvisibilitychange)(IWBScriptControl *This,VARIANT *p);
     END_INTERFACE
   } IWBScriptControlVtbl;
-  interface IWBScriptControl {
+  struct IWBScriptControl {
     CONST_VTBL struct IWBScriptControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24059,7 +24059,7 @@
       HRESULT (WINAPI *get_height)(IHTMLEmbedElement *This,VARIANT *p);
     END_INTERFACE
   } IHTMLEmbedElementVtbl;
-  interface IHTMLEmbedElement {
+  struct IHTMLEmbedElement {
     CONST_VTBL struct IHTMLEmbedElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24135,7 +24135,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLEmbed *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLEmbedVtbl;
-  interface DispHTMLEmbed {
+  struct DispHTMLEmbed {
     CONST_VTBL struct DispHTMLEmbedVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24173,7 +24173,7 @@
       HRESULT (WINAPI *Invoke)(HTMLMapEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLMapEvents2Vtbl;
-  interface HTMLMapEvents2 {
+  struct HTMLMapEvents2 {
     CONST_VTBL struct HTMLMapEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24206,7 +24206,7 @@
       HRESULT (WINAPI *Invoke)(HTMLMapEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLMapEventsVtbl;
-  interface HTMLMapEvents {
+  struct HTMLMapEvents {
     CONST_VTBL struct HTMLMapEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24254,7 +24254,7 @@
       HRESULT (WINAPI *remove)(IHTMLAreasCollection *This,long index);
     END_INTERFACE
   } IHTMLAreasCollectionVtbl;
-  interface IHTMLAreasCollection {
+  struct IHTMLAreasCollection {
     CONST_VTBL struct IHTMLAreasCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24312,7 +24312,7 @@
       HRESULT (WINAPI *urns)(IHTMLAreasCollection2 *This,VARIANT urn,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLAreasCollection2Vtbl;
-  interface IHTMLAreasCollection2 {
+  struct IHTMLAreasCollection2 {
     CONST_VTBL struct IHTMLAreasCollection2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24352,7 +24352,7 @@
       HRESULT (WINAPI *namedItem)(IHTMLAreasCollection3 *This,BSTR name,IDispatch **pdisp);
     END_INTERFACE
   } IHTMLAreasCollection3Vtbl;
-  interface IHTMLAreasCollection3 {
+  struct IHTMLAreasCollection3 {
     CONST_VTBL struct IHTMLAreasCollection3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24396,7 +24396,7 @@
       HRESULT (WINAPI *get_name)(IHTMLMapElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLMapElementVtbl;
-  interface IHTMLMapElement {
+  struct IHTMLMapElement {
     CONST_VTBL struct IHTMLMapElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24439,7 +24439,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLAreasCollection *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLAreasCollectionVtbl;
-  interface DispHTMLAreasCollection {
+  struct DispHTMLAreasCollection {
     CONST_VTBL struct DispHTMLAreasCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24477,7 +24477,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLMapElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLMapElementVtbl;
-  interface DispHTMLMapElement {
+  struct DispHTMLMapElement {
     CONST_VTBL struct DispHTMLMapElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24515,7 +24515,7 @@
       HRESULT (WINAPI *Invoke)(HTMLAreaEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLAreaEvents2Vtbl;
-  interface HTMLAreaEvents2 {
+  struct HTMLAreaEvents2 {
     CONST_VTBL struct HTMLAreaEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24548,7 +24548,7 @@
       HRESULT (WINAPI *Invoke)(HTMLAreaEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLAreaEventsVtbl;
-  interface HTMLAreaEvents {
+  struct HTMLAreaEvents {
     CONST_VTBL struct HTMLAreaEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24650,7 +24650,7 @@
       HRESULT (WINAPI *blur)(IHTMLAreaElement *This);
     END_INTERFACE
   } IHTMLAreaElementVtbl;
-  interface IHTMLAreaElement {
+  struct IHTMLAreaElement {
     CONST_VTBL struct IHTMLAreaElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24786,7 +24786,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLAreaElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLAreaElementVtbl;
-  interface DispHTMLAreaElement {
+  struct DispHTMLAreaElement {
     CONST_VTBL struct DispHTMLAreaElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24833,7 +24833,7 @@
       HRESULT (WINAPI *get_vAlign)(IHTMLTableCaption *This,BSTR *p);
     END_INTERFACE
   } IHTMLTableCaptionVtbl;
-  interface IHTMLTableCaption {
+  struct IHTMLTableCaption {
     CONST_VTBL struct IHTMLTableCaptionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24879,7 +24879,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLTableCaption *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLTableCaptionVtbl;
-  interface DispHTMLTableCaption {
+  struct DispHTMLTableCaption {
     CONST_VTBL struct DispHTMLTableCaptionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24926,7 +24926,7 @@
       HRESULT (WINAPI *get_atomic)(IHTMLCommentElement *This,long *p);
     END_INTERFACE
   } IHTMLCommentElementVtbl;
-  interface IHTMLCommentElement {
+  struct IHTMLCommentElement {
     CONST_VTBL struct IHTMLCommentElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -24989,7 +24989,7 @@
       HRESULT (WINAPI *replaceData)(IHTMLCommentElement2 *This,long offset,long Count,BSTR bstrstring);
     END_INTERFACE
   } IHTMLCommentElement2Vtbl;
-  interface IHTMLCommentElement2 {
+  struct IHTMLCommentElement2 {
     CONST_VTBL struct IHTMLCommentElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25047,7 +25047,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLCommentElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLCommentElementVtbl;
-  interface DispHTMLCommentElement {
+  struct DispHTMLCommentElement {
     CONST_VTBL struct DispHTMLCommentElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25085,7 +25085,7 @@
       HRESULT (WINAPI *Invoke)(IHTMLPhraseElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IHTMLPhraseElementVtbl;
-  interface IHTMLPhraseElement {
+  struct IHTMLPhraseElement {
     CONST_VTBL struct IHTMLPhraseElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25127,7 +25127,7 @@
       HRESULT (WINAPI *get_dateTime)(IHTMLPhraseElement2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLPhraseElement2Vtbl;
-  interface IHTMLPhraseElement2 {
+  struct IHTMLPhraseElement2 {
     CONST_VTBL struct IHTMLPhraseElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25173,7 +25173,7 @@
       HRESULT (WINAPI *Invoke)(IHTMLSpanElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IHTMLSpanElementVtbl;
-  interface IHTMLSpanElement {
+  struct IHTMLSpanElement {
     CONST_VTBL struct IHTMLSpanElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25206,7 +25206,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLPhraseElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLPhraseElementVtbl;
-  interface DispHTMLPhraseElement {
+  struct DispHTMLPhraseElement {
     CONST_VTBL struct DispHTMLPhraseElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25244,7 +25244,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLSpanElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLSpanElementVtbl;
-  interface DispHTMLSpanElement {
+  struct DispHTMLSpanElement {
     CONST_VTBL struct DispHTMLSpanElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25282,7 +25282,7 @@
       HRESULT (WINAPI *Invoke)(HTMLTableEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLTableEvents2Vtbl;
-  interface HTMLTableEvents2 {
+  struct HTMLTableEvents2 {
     CONST_VTBL struct HTMLTableEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25315,7 +25315,7 @@
       HRESULT (WINAPI *Invoke)(HTMLTableEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLTableEventsVtbl;
-  interface HTMLTableEvents {
+  struct HTMLTableEvents {
     CONST_VTBL struct HTMLTableEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25367,7 +25367,7 @@
       HRESULT (WINAPI *deleteRow)(IHTMLTableSection *This,long index);
     END_INTERFACE
   } IHTMLTableSectionVtbl;
-  interface IHTMLTableSection {
+  struct IHTMLTableSection {
     CONST_VTBL struct IHTMLTableSectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25527,7 +25527,7 @@
       HRESULT (WINAPI *get_onreadystatechange)(IHTMLTable *This,VARIANT *p);
     END_INTERFACE
   } IHTMLTableVtbl;
-  interface IHTMLTable {
+  struct IHTMLTable {
     CONST_VTBL struct IHTMLTableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25717,7 +25717,7 @@
       HRESULT (WINAPI *moveRow)(IHTMLTable2 *This,long indexFrom,long indexTo,IDispatch **row);
     END_INTERFACE
   } IHTMLTable2Vtbl;
-  interface IHTMLTable2 {
+  struct IHTMLTable2 {
     CONST_VTBL struct IHTMLTable2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25768,7 +25768,7 @@
       HRESULT (WINAPI *get_summary)(IHTMLTable3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLTable3Vtbl;
-  interface IHTMLTable3 {
+  struct IHTMLTable3 {
     CONST_VTBL struct IHTMLTable3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25825,7 +25825,7 @@
       HRESULT (WINAPI *get_vAlign)(IHTMLTableCol *This,BSTR *p);
     END_INTERFACE
   } IHTMLTableColVtbl;
-  interface IHTMLTableCol {
+  struct IHTMLTableCol {
     CONST_VTBL struct IHTMLTableColVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25891,7 +25891,7 @@
       HRESULT (WINAPI *get_chOff)(IHTMLTableCol2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLTableCol2Vtbl;
-  interface IHTMLTableCol2 {
+  struct IHTMLTableCol2 {
     CONST_VTBL struct IHTMLTableCol2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25940,7 +25940,7 @@
       HRESULT (WINAPI *moveRow)(IHTMLTableSection2 *This,long indexFrom,long indexTo,IDispatch **row);
     END_INTERFACE
   } IHTMLTableSection2Vtbl;
-  interface IHTMLTableSection2 {
+  struct IHTMLTableSection2 {
     CONST_VTBL struct IHTMLTableSection2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -25986,7 +25986,7 @@
       HRESULT (WINAPI *get_chOff)(IHTMLTableSection3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLTableSection3Vtbl;
-  interface IHTMLTableSection3 {
+  struct IHTMLTableSection3 {
     CONST_VTBL struct IHTMLTableSection3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26067,7 +26067,7 @@
       HRESULT (WINAPI *deleteCell)(IHTMLTableRow *This,long index);
     END_INTERFACE
   } IHTMLTableRowVtbl;
-  interface IHTMLTableRow {
+  struct IHTMLTableRow {
     CONST_VTBL struct IHTMLTableRowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26157,7 +26157,7 @@
       HRESULT (WINAPI *get_height)(IHTMLTableRow2 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLTableRow2Vtbl;
-  interface IHTMLTableRow2 {
+  struct IHTMLTableRow2 {
     CONST_VTBL struct IHTMLTableRow2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26206,7 +26206,7 @@
       HRESULT (WINAPI *get_chOff)(IHTMLTableRow3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLTableRow3Vtbl;
-  interface IHTMLTableRow3 {
+  struct IHTMLTableRow3 {
     CONST_VTBL struct IHTMLTableRow3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26261,7 +26261,7 @@
       HRESULT (WINAPI *get_clientLeft)(IHTMLTableRowMetrics *This,long *p);
     END_INTERFACE
   } IHTMLTableRowMetricsVtbl;
-  interface IHTMLTableRowMetrics {
+  struct IHTMLTableRowMetrics {
     CONST_VTBL struct IHTMLTableRowMetricsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26358,7 +26358,7 @@
       HRESULT (WINAPI *get_cellIndex)(IHTMLTableCell *This,long *p);
     END_INTERFACE
   } IHTMLTableCellVtbl;
-  interface IHTMLTableCell {
+  struct IHTMLTableCell {
     CONST_VTBL struct IHTMLTableCellVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26492,7 +26492,7 @@
       HRESULT (WINAPI *get_scope)(IHTMLTableCell2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLTableCell2Vtbl;
-  interface IHTMLTableCell2 {
+  struct IHTMLTableCell2 {
     CONST_VTBL struct IHTMLTableCell2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26562,7 +26562,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLTable *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLTableVtbl;
-  interface DispHTMLTable {
+  struct DispHTMLTable {
     CONST_VTBL struct DispHTMLTableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26600,7 +26600,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLTableCol *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLTableColVtbl;
-  interface DispHTMLTableCol {
+  struct DispHTMLTableCol {
     CONST_VTBL struct DispHTMLTableColVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26638,7 +26638,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLTableSection *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLTableSectionVtbl;
-  interface DispHTMLTableSection {
+  struct DispHTMLTableSection {
     CONST_VTBL struct DispHTMLTableSectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26676,7 +26676,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLTableRow *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLTableRowVtbl;
-  interface DispHTMLTableRow {
+  struct DispHTMLTableRow {
     CONST_VTBL struct DispHTMLTableRowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26714,7 +26714,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLTableCell *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLTableCellVtbl;
-  interface DispHTMLTableCell {
+  struct DispHTMLTableCell {
     CONST_VTBL struct DispHTMLTableCellVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26752,7 +26752,7 @@
       HRESULT (WINAPI *Invoke)(HTMLScriptEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLScriptEvents2Vtbl;
-  interface HTMLScriptEvents2 {
+  struct HTMLScriptEvents2 {
     CONST_VTBL struct HTMLScriptEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26785,7 +26785,7 @@
       HRESULT (WINAPI *Invoke)(HTMLScriptEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLScriptEventsVtbl;
-  interface HTMLScriptEvents {
+  struct HTMLScriptEvents {
     CONST_VTBL struct HTMLScriptEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26849,7 +26849,7 @@
       HRESULT (WINAPI *get_type)(IHTMLScriptElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLScriptElementVtbl;
-  interface IHTMLScriptElement {
+  struct IHTMLScriptElement {
     CONST_VTBL struct IHTMLScriptElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26933,7 +26933,7 @@
       HRESULT (WINAPI *get_charset)(IHTMLScriptElement2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLScriptElement2Vtbl;
-  interface IHTMLScriptElement2 {
+  struct IHTMLScriptElement2 {
     CONST_VTBL struct IHTMLScriptElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -26973,7 +26973,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLScriptElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLScriptElementVtbl;
-  interface DispHTMLScriptElement {
+  struct DispHTMLScriptElement {
     CONST_VTBL struct DispHTMLScriptElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27011,7 +27011,7 @@
       HRESULT (WINAPI *Invoke)(IHTMLNoShowElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IHTMLNoShowElementVtbl;
-  interface IHTMLNoShowElement {
+  struct IHTMLNoShowElement {
     CONST_VTBL struct IHTMLNoShowElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27044,7 +27044,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLNoShowElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLNoShowElementVtbl;
-  interface DispHTMLNoShowElement {
+  struct DispHTMLNoShowElement {
     CONST_VTBL struct DispHTMLNoShowElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27082,7 +27082,7 @@
       HRESULT (WINAPI *Invoke)(HTMLObjectElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLObjectElementEvents2Vtbl;
-  interface HTMLObjectElementEvents2 {
+  struct HTMLObjectElementEvents2 {
     CONST_VTBL struct HTMLObjectElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27115,7 +27115,7 @@
       HRESULT (WINAPI *Invoke)(HTMLObjectElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLObjectElementEventsVtbl;
-  interface HTMLObjectElementEvents {
+  struct HTMLObjectElementEvents {
     CONST_VTBL struct HTMLObjectElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27217,7 +27217,7 @@
       HRESULT (WINAPI *get_hspace)(IHTMLObjectElement *This,long *p);
     END_INTERFACE
   } IHTMLObjectElementVtbl;
-  interface IHTMLObjectElement {
+  struct IHTMLObjectElement {
     CONST_VTBL struct IHTMLObjectElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27364,7 +27364,7 @@
       HRESULT (WINAPI *get_data)(IHTMLObjectElement2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLObjectElement2Vtbl;
-  interface IHTMLObjectElement2 {
+  struct IHTMLObjectElement2 {
     CONST_VTBL struct IHTMLObjectElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27438,7 +27438,7 @@
       HRESULT (WINAPI *get_useMap)(IHTMLObjectElement3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLObjectElement3Vtbl;
-  interface IHTMLObjectElement3 {
+  struct IHTMLObjectElement3 {
     CONST_VTBL struct IHTMLObjectElement3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27525,7 +27525,7 @@
       HRESULT (WINAPI *get_valueType)(IHTMLParamElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLParamElementVtbl;
-  interface IHTMLParamElement {
+  struct IHTMLParamElement {
     CONST_VTBL struct IHTMLParamElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27583,7 +27583,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLObjectElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLObjectElementVtbl;
-  interface DispHTMLObjectElement {
+  struct DispHTMLObjectElement {
     CONST_VTBL struct DispHTMLObjectElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27621,7 +27621,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLParamElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLParamElementVtbl;
-  interface DispHTMLParamElement {
+  struct DispHTMLParamElement {
     CONST_VTBL struct DispHTMLParamElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27659,7 +27659,7 @@
       HRESULT (WINAPI *Invoke)(HTMLFrameSiteEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLFrameSiteEvents2Vtbl;
-  interface HTMLFrameSiteEvents2 {
+  struct HTMLFrameSiteEvents2 {
     CONST_VTBL struct HTMLFrameSiteEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27692,7 +27692,7 @@
       HRESULT (WINAPI *Invoke)(HTMLFrameSiteEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLFrameSiteEventsVtbl;
-  interface HTMLFrameSiteEvents {
+  struct HTMLFrameSiteEvents {
     CONST_VTBL struct HTMLFrameSiteEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27742,7 +27742,7 @@
       HRESULT (WINAPI *get_allowTransparency)(IHTMLFrameBase2 *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLFrameBase2Vtbl;
-  interface IHTMLFrameBase2 {
+  struct IHTMLFrameBase2 {
     CONST_VTBL struct IHTMLFrameBase2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27805,7 +27805,7 @@
       HRESULT (WINAPI *get_longDesc)(IHTMLFrameBase3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLFrameBase3Vtbl;
-  interface IHTMLFrameBase3 {
+  struct IHTMLFrameBase3 {
     CONST_VTBL struct IHTMLFrameBase3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27845,7 +27845,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLFrameBase *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLFrameBaseVtbl;
-  interface DispHTMLFrameBase {
+  struct DispHTMLFrameBase {
     CONST_VTBL struct DispHTMLFrameBaseVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27888,7 +27888,7 @@
       HRESULT (WINAPI *get_borderColor)(IHTMLFrameElement *This,VARIANT *p);
     END_INTERFACE
   } IHTMLFrameElementVtbl;
-  interface IHTMLFrameElement {
+  struct IHTMLFrameElement {
     CONST_VTBL struct IHTMLFrameElementVtbl *lpVtbl;
   };
 
@@ -27938,7 +27938,7 @@
       HRESULT (WINAPI *get_width)(IHTMLFrameElement2 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLFrameElement2Vtbl;
-  interface IHTMLFrameElement2 {
+  struct IHTMLFrameElement2 {
     CONST_VTBL struct IHTMLFrameElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -27984,7 +27984,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLFrameElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLFrameElementVtbl;
-  interface DispHTMLFrameElement {
+  struct DispHTMLFrameElement {
     CONST_VTBL struct DispHTMLFrameElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28035,7 +28035,7 @@
       HRESULT (WINAPI *get_align)(IHTMLIFrameElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLIFrameElementVtbl;
-  interface IHTMLIFrameElement {
+  struct IHTMLIFrameElement {
     CONST_VTBL struct IHTMLIFrameElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28096,7 +28096,7 @@
       HRESULT (WINAPI *get_width)(IHTMLIFrameElement2 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLIFrameElement2Vtbl;
-  interface IHTMLIFrameElement2 {
+  struct IHTMLIFrameElement2 {
     CONST_VTBL struct IHTMLIFrameElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28142,7 +28142,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLIFrame *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLIFrameVtbl;
-  interface DispHTMLIFrame {
+  struct DispHTMLIFrame {
     CONST_VTBL struct DispHTMLIFrameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28185,7 +28185,7 @@
       HRESULT (WINAPI *get_align)(IHTMLDivPosition *This,BSTR *p);
     END_INTERFACE
   } IHTMLDivPositionVtbl;
-  interface IHTMLDivPosition {
+  struct IHTMLDivPosition {
     CONST_VTBL struct IHTMLDivPositionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28230,7 +28230,7 @@
       HRESULT (WINAPI *get_align)(IHTMLFieldSetElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLFieldSetElementVtbl;
-  interface IHTMLFieldSetElement {
+  struct IHTMLFieldSetElement {
     CONST_VTBL struct IHTMLFieldSetElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28273,7 +28273,7 @@
       HRESULT (WINAPI *get_form)(IHTMLFieldSetElement2 *This,IHTMLFormElement **p);
     END_INTERFACE
   } IHTMLFieldSetElement2Vtbl;
-  interface IHTMLFieldSetElement2 {
+  struct IHTMLFieldSetElement2 {
     CONST_VTBL struct IHTMLFieldSetElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28315,7 +28315,7 @@
       HRESULT (WINAPI *get_align)(IHTMLLegendElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLLegendElementVtbl;
-  interface IHTMLLegendElement {
+  struct IHTMLLegendElement {
     CONST_VTBL struct IHTMLLegendElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28358,7 +28358,7 @@
       HRESULT (WINAPI *get_form)(IHTMLLegendElement2 *This,IHTMLFormElement **p);
     END_INTERFACE
   } IHTMLLegendElement2Vtbl;
-  interface IHTMLLegendElement2 {
+  struct IHTMLLegendElement2 {
     CONST_VTBL struct IHTMLLegendElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28395,7 +28395,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLDivPosition *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLDivPositionVtbl;
-  interface DispHTMLDivPosition {
+  struct DispHTMLDivPosition {
     CONST_VTBL struct DispHTMLDivPositionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28433,7 +28433,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLFieldSetElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLFieldSetElementVtbl;
-  interface DispHTMLFieldSetElement {
+  struct DispHTMLFieldSetElement {
     CONST_VTBL struct DispHTMLFieldSetElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28471,7 +28471,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLLegendElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLLegendElementVtbl;
-  interface DispHTMLLegendElement {
+  struct DispHTMLLegendElement {
     CONST_VTBL struct DispHTMLLegendElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28514,7 +28514,7 @@
       HRESULT (WINAPI *get_align)(IHTMLSpanFlow *This,BSTR *p);
     END_INTERFACE
   } IHTMLSpanFlowVtbl;
-  interface IHTMLSpanFlow {
+  struct IHTMLSpanFlow {
     CONST_VTBL struct IHTMLSpanFlowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28554,7 +28554,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLSpanFlow *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLSpanFlowVtbl;
-  interface DispHTMLSpanFlow {
+  struct DispHTMLSpanFlow {
     CONST_VTBL struct DispHTMLSpanFlowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28633,7 +28633,7 @@
       HRESULT (WINAPI *get_onbeforeunload)(IHTMLFrameSetElement *This,VARIANT *p);
     END_INTERFACE
   } IHTMLFrameSetElementVtbl;
-  interface IHTMLFrameSetElement {
+  struct IHTMLFrameSetElement {
     CONST_VTBL struct IHTMLFrameSetElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28736,7 +28736,7 @@
       HRESULT (WINAPI *get_onafterprint)(IHTMLFrameSetElement2 *This,VARIANT *p);
     END_INTERFACE
   } IHTMLFrameSetElement2Vtbl;
-  interface IHTMLFrameSetElement2 {
+  struct IHTMLFrameSetElement2 {
     CONST_VTBL struct IHTMLFrameSetElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28782,7 +28782,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLFrameSetSite *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLFrameSetSiteVtbl;
-  interface DispHTMLFrameSetSite {
+  struct DispHTMLFrameSetSite {
     CONST_VTBL struct DispHTMLFrameSetSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28837,7 +28837,7 @@
       HRESULT (WINAPI *get_balance)(IHTMLBGsound *This,VARIANT *p);
     END_INTERFACE
   } IHTMLBGsoundVtbl;
-  interface IHTMLBGsound {
+  struct IHTMLBGsound {
     CONST_VTBL struct IHTMLBGsoundVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28895,7 +28895,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLBGsound *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLBGsoundVtbl;
-  interface DispHTMLBGsound {
+  struct DispHTMLBGsound {
     CONST_VTBL struct DispHTMLBGsoundVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28940,7 +28940,7 @@
       HRESULT (WINAPI *item)(IHTMLFontNamesCollection *This,long index,BSTR *pBstr);
     END_INTERFACE
   } IHTMLFontNamesCollectionVtbl;
-  interface IHTMLFontNamesCollection {
+  struct IHTMLFontNamesCollection {
     CONST_VTBL struct IHTMLFontNamesCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -28992,7 +28992,7 @@
       HRESULT (WINAPI *item)(IHTMLFontSizesCollection *This,long index,long *plSize);
     END_INTERFACE
   } IHTMLFontSizesCollectionVtbl;
-  interface IHTMLFontSizesCollection {
+  struct IHTMLFontSizesCollection {
     CONST_VTBL struct IHTMLFontSizesCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29093,7 +29093,7 @@
       HRESULT (WINAPI *get_secureConnectionInfo)(IHTMLOptionsHolder *This,BSTR *p);
     END_INTERFACE
   } IHTMLOptionsHolderVtbl;
-  interface IHTMLOptionsHolder {
+  struct IHTMLOptionsHolder {
     CONST_VTBL struct IHTMLOptionsHolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29208,7 +29208,7 @@
       HRESULT (WINAPI *Invoke)(HTMLStyleElementEvents2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLStyleElementEvents2Vtbl;
-  interface HTMLStyleElementEvents2 {
+  struct HTMLStyleElementEvents2 {
     CONST_VTBL struct HTMLStyleElementEvents2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29241,7 +29241,7 @@
       HRESULT (WINAPI *Invoke)(HTMLStyleElementEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLStyleElementEventsVtbl;
-  interface HTMLStyleElementEvents {
+  struct HTMLStyleElementEvents {
     CONST_VTBL struct HTMLStyleElementEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29303,7 +29303,7 @@
       HRESULT (WINAPI *get_media)(IHTMLStyleElement *This,BSTR *p);
     END_INTERFACE
   } IHTMLStyleElementVtbl;
-  interface IHTMLStyleElement {
+  struct IHTMLStyleElement {
     CONST_VTBL struct IHTMLStyleElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29379,7 +29379,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLStyleElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLStyleElementVtbl;
-  interface DispHTMLStyleElement {
+  struct DispHTMLStyleElement {
     CONST_VTBL struct DispHTMLStyleElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29421,7 +29421,7 @@
       HRESULT (WINAPI *get_fontsrc)(IHTMLStyleFontFace *This,BSTR *p);
     END_INTERFACE
   } IHTMLStyleFontFaceVtbl;
-  interface IHTMLStyleFontFace {
+  struct IHTMLStyleFontFace {
     CONST_VTBL struct IHTMLStyleFontFaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29467,7 +29467,7 @@
       HRESULT (WINAPI *FireOnFilterChangeEvent)(ICSSFilterSite *This);
     END_INTERFACE
   } ICSSFilterSiteVtbl;
-  interface ICSSFilterSite {
+  struct ICSSFilterSite {
     CONST_VTBL struct ICSSFilterSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29542,7 +29542,7 @@
       HRESULT (WINAPI *FindText)(IMarkupPointer *This,OLECHAR *pchFindText,DWORD dwFlags,IMarkupPointer *pIEndMatch,IMarkupPointer *pIEndSearch);
     END_INTERFACE
   } IMarkupPointerVtbl;
-  interface IMarkupPointer {
+  struct IMarkupPointer {
     CONST_VTBL struct IMarkupPointerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29634,7 +29634,7 @@
       HRESULT (WINAPI *OwningDoc)(IMarkupContainer *This,IHTMLDocument2 **ppDoc);
     END_INTERFACE
   } IMarkupContainerVtbl;
-  interface IMarkupContainer {
+  struct IMarkupContainer {
     CONST_VTBL struct IMarkupContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29677,7 +29677,7 @@
       HRESULT (WINAPI *GetMasterElement)(IMarkupContainer2 *This,IHTMLElement **ppElementMaster);
     END_INTERFACE
   } IMarkupContainer2Vtbl;
-  interface IMarkupContainer2 {
+  struct IMarkupContainer2 {
     CONST_VTBL struct IMarkupContainer2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29725,7 +29725,7 @@
       HRESULT (WINAPI *GetNextChange)(IHTMLChangeLog *This,BYTE *pbBuffer,long nBufferSize,long *pnRecordLength);
     END_INTERFACE
   } IHTMLChangeLogVtbl;
-  interface IHTMLChangeLog {
+  struct IHTMLChangeLog {
     CONST_VTBL struct IHTMLChangeLogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29757,7 +29757,7 @@
       HRESULT (WINAPI *Notify)(IHTMLChangeSink *This);
     END_INTERFACE
   } IHTMLChangeSinkVtbl;
-  interface IHTMLChangeSink {
+  struct IHTMLChangeSink {
     CONST_VTBL struct IHTMLChangeSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -29923,7 +29923,7 @@
       HRESULT (WINAPI *EnumInputContext)(IActiveIMMApp *This,DWORD idThread,IEnumInputContext **ppEnum);
     END_INTERFACE
   } IActiveIMMAppVtbl;
-  interface IActiveIMMApp {
+  struct IActiveIMMApp {
     CONST_VTBL struct IActiveIMMAppVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30160,7 +30160,7 @@
       HRESULT (WINAPI *IsEmpty)(ISegmentList *This,WINBOOL *pfEmpty);
     END_INTERFACE
   } ISegmentListVtbl;
-  interface ISegmentList {
+  struct ISegmentList {
     CONST_VTBL struct ISegmentListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30204,7 +30204,7 @@
       HRESULT (WINAPI *Advance)(ISegmentListIterator *This);
     END_INTERFACE
   } ISegmentListIteratorVtbl;
-  interface ISegmentListIterator {
+  struct ISegmentListIterator {
     CONST_VTBL struct ISegmentListIteratorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30267,7 +30267,7 @@
       HRESULT (WINAPI *SetCaretDirection)(IHTMLCaret *This,CARET_DIRECTION eDir);
     END_INTERFACE
   } IHTMLCaretVtbl;
-  interface IHTMLCaret {
+  struct IHTMLCaret {
     CONST_VTBL struct IHTMLCaretVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30332,7 +30332,7 @@
       HRESULT (WINAPI *GetPointers)(ISegment *This,IMarkupPointer *pIStart,IMarkupPointer *pIEnd);
     END_INTERFACE
   } ISegmentVtbl;
-  interface ISegment {
+  struct ISegment {
     CONST_VTBL struct ISegmentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30369,7 +30369,7 @@
       HRESULT (WINAPI *IsPrimary)(IElementSegment *This,WINBOOL *pfPrimary);
     END_INTERFACE
   } IElementSegmentVtbl;
-  interface IElementSegment {
+  struct IElementSegment {
     CONST_VTBL struct IElementSegmentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30406,7 +30406,7 @@
       HRESULT (WINAPI *GetPointers)(IHighlightSegment *This,IMarkupPointer *pIStart,IMarkupPointer *pIEnd);
     END_INTERFACE
   } IHighlightSegmentVtbl;
-  interface IHighlightSegment {
+  struct IHighlightSegment {
     CONST_VTBL struct IHighlightSegmentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30439,7 +30439,7 @@
       HRESULT (WINAPI *RemoveSegment)(IHighlightRenderingServices *This,IHighlightSegment *pISegment);
     END_INTERFACE
   } IHighlightRenderingServicesVtbl;
-  interface IHighlightRenderingServices {
+  struct IHighlightRenderingServices {
     CONST_VTBL struct IHighlightRenderingServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30485,7 +30485,7 @@
       HRESULT (WINAPI *get_lineDirection)(ILineInfo *This,LONG *p);
     END_INTERFACE
   } ILineInfoVtbl;
-  interface ILineInfo {
+  struct ILineInfo {
     CONST_VTBL struct ILineInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30565,7 +30565,7 @@
       HRESULT (WINAPI *QueryBreaks)(IDisplayPointer *This,DWORD *pdwBreaks);
     END_INTERFACE
   } IDisplayPointerVtbl;
-  interface IDisplayPointer {
+  struct IDisplayPointer {
     CONST_VTBL struct IDisplayPointerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30663,7 +30663,7 @@
       HRESULT (WINAPI *HasFlowLayout)(IDisplayServices *This,IHTMLElement *pIElement,WINBOOL *pfHasFlowLayout);
     END_INTERFACE
   } IDisplayServicesVtbl;
-  interface IDisplayServices {
+  struct IDisplayServices {
     CONST_VTBL struct IDisplayServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30723,7 +30723,7 @@
       HRESULT (WINAPI *get_BlockFormats)(IHtmlDlgSafeHelper *This,IDispatch **p);
     END_INTERFACE
   } IHtmlDlgSafeHelperVtbl;
-  interface IHtmlDlgSafeHelper {
+  struct IHtmlDlgSafeHelper {
     CONST_VTBL struct IHtmlDlgSafeHelperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30776,7 +30776,7 @@
       HRESULT (WINAPI *Item)(IBlockFormats *This,VARIANT *pvarIndex,BSTR *pbstrBlockFormat);
     END_INTERFACE
   } IBlockFormatsVtbl;
-  interface IBlockFormats {
+  struct IBlockFormats {
     CONST_VTBL struct IBlockFormatsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30826,7 +30826,7 @@
       HRESULT (WINAPI *Item)(IFontNames *This,VARIANT *pvarIndex,BSTR *pbstrFontName);
     END_INTERFACE
   } IFontNamesVtbl;
-  interface IFontNames {
+  struct IFontNames {
     CONST_VTBL struct IFontNamesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30870,7 +30870,7 @@
       HRESULT (WINAPI *OnAmbientPropertyChange)(ICSSFilter *This,LONG dispid);
     END_INTERFACE
   } ICSSFilterVtbl;
-  interface ICSSFilter {
+  struct ICSSFilter {
     CONST_VTBL struct ICSSFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30905,7 +30905,7 @@
       HRESULT (WINAPI *ValidateSecureUrl)(ISecureUrlHost *This,WINBOOL *pfAllow,OLECHAR *pchUrlInQuestion,DWORD dwFlags);
     END_INTERFACE
   } ISecureUrlHostVtbl;
-  interface ISecureUrlHost {
+  struct ISecureUrlHost {
     CONST_VTBL struct ISecureUrlHostVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -30975,7 +30975,7 @@
       HRESULT (WINAPI *EndUndoUnit)(IMarkupServices *This);
     END_INTERFACE
   } IMarkupServicesVtbl;
-  interface IMarkupServices {
+  struct IMarkupServices {
     CONST_VTBL struct IMarkupServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31088,7 +31088,7 @@
       HRESULT (WINAPI *SaveSegmentsToClipboard)(IMarkupServices2 *This,ISegmentList *pSegmentList,DWORD dwFlags);
     END_INTERFACE
   } IMarkupServices2Vtbl;
-  interface IMarkupServices2 {
+  struct IMarkupServices2 {
     CONST_VTBL struct IMarkupServices2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31146,7 +31146,7 @@
       HRESULT (WINAPI *ExecChange)(IHTMLChangePlayback *This,BYTE *pbRecord,WINBOOL fForward);
     END_INTERFACE
   } IHTMLChangePlaybackVtbl;
-  interface IHTMLChangePlayback {
+  struct IHTMLChangePlayback {
     CONST_VTBL struct IHTMLChangePlaybackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31209,7 +31209,7 @@
       HRESULT (WINAPI *MoveToContent)(IMarkupPointer2 *This,IHTMLElement *pIElement,WINBOOL fAtStart);
     END_INTERFACE
   } IMarkupPointer2Vtbl;
-  interface IMarkupPointer2 {
+  struct IMarkupPointer2 {
     CONST_VTBL struct IMarkupPointer2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31285,7 +31285,7 @@
       HRESULT (WINAPI *FindTextFragFromMarkupPointer)(IMarkupTextFrags *This,IMarkupPointer *pPointerFind,long *piFrag,WINBOOL *pfFragFound);
     END_INTERFACE
   } IMarkupTextFragsVtbl;
-  interface IMarkupTextFrags {
+  struct IMarkupTextFrags {
     CONST_VTBL struct IMarkupTextFragsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31329,7 +31329,7 @@
       HRESULT (WINAPI *SetGenericParse)(IXMLGenericParse *This,VARIANT_BOOL fDoGeneric);
     END_INTERFACE
   } IXMLGenericParseVtbl;
-  interface IXMLGenericParse {
+  struct IXMLGenericParse {
     CONST_VTBL struct IXMLGenericParseVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31361,7 +31361,7 @@
       HRESULT (WINAPI *SnapRect)(IHTMLEditHost *This,IHTMLElement *pIElement,RECT *prcNew,ELEMENT_CORNER eHandle);
     END_INTERFACE
   } IHTMLEditHostVtbl;
-  interface IHTMLEditHost {
+  struct IHTMLEditHost {
     CONST_VTBL struct IHTMLEditHostVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31394,7 +31394,7 @@
       HRESULT (WINAPI *PreDrag)(IHTMLEditHost2 *This);
     END_INTERFACE
   } IHTMLEditHost2Vtbl;
-  interface IHTMLEditHost2 {
+  struct IHTMLEditHost2 {
     CONST_VTBL struct IHTMLEditHost2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31427,7 +31427,7 @@
       HRESULT (WINAPI *GetSequenceNumber)(ISequenceNumber *This,long nCurrent,long *pnNew);
     END_INTERFACE
   } ISequenceNumberVtbl;
-  interface ISequenceNumber {
+  struct ISequenceNumber {
     CONST_VTBL struct ISequenceNumberVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31459,7 +31459,7 @@
       HRESULT (WINAPI *GetActiveIMM)(IIMEServices *This,IActiveIMMApp **ppActiveIMM);
     END_INTERFACE
   } IIMEServicesVtbl;
-  interface IIMEServices {
+  struct IIMEServices {
     CONST_VTBL struct IIMEServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31499,7 +31499,7 @@
       HRESULT (WINAPI *GetTypeDetail)(ISelectionServicesListener *This,BSTR *pTypeDetail);
     END_INTERFACE
   } ISelectionServicesListenerVtbl;
-  interface ISelectionServicesListener {
+  struct ISelectionServicesListener {
     CONST_VTBL struct ISelectionServicesListenerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31553,7 +31553,7 @@
       HRESULT (WINAPI *GetSelectionServicesListener)(ISelectionServices *This,ISelectionServicesListener **ppISelectionServicesListener);
     END_INTERFACE
   } ISelectionServicesVtbl;
-  interface ISelectionServices {
+  struct ISelectionServices {
     CONST_VTBL struct ISelectionServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31606,7 +31606,7 @@
       HRESULT (WINAPI *PostEditorEventNotify)(IHTMLEditDesigner *This,DISPID inEvtDispId,IHTMLEventObj *pIEventObj);
     END_INTERFACE
   } IHTMLEditDesignerVtbl;
-  interface IHTMLEditDesigner {
+  struct IHTMLEditDesigner {
     CONST_VTBL struct IHTMLEditDesignerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31657,7 +31657,7 @@
       HRESULT (WINAPI *SelectRange)(IHTMLEditServices *This,IMarkupPointer *pStart,IMarkupPointer *pEnd,SELECTION_TYPE eType);
     END_INTERFACE
   } IHTMLEditServicesVtbl;
-  interface IHTMLEditServices {
+  struct IHTMLEditServices {
     CONST_VTBL struct IHTMLEditServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31716,7 +31716,7 @@
       HRESULT (WINAPI *UnFreezeVirtualCaretPos)(IHTMLEditServices2 *This,WINBOOL fReset);
     END_INTERFACE
   } IHTMLEditServices2Vtbl;
-  interface IHTMLEditServices2 {
+  struct IHTMLEditServices2 {
     CONST_VTBL struct IHTMLEditServices2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31799,7 +31799,7 @@
       HRESULT (WINAPI *IsEqual)(IHTMLComputedStyle *This,IHTMLComputedStyle *pComputedStyle,VARIANT_BOOL *pfEqual);
     END_INTERFACE
   } IHTMLComputedStyleVtbl;
-  interface IHTMLComputedStyle {
+  struct IHTMLComputedStyle {
     CONST_VTBL struct IHTMLComputedStyleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31899,7 +31899,7 @@
       HRESULT (WINAPI *Invoke)(HTMLNamespaceEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } HTMLNamespaceEventsVtbl;
-  interface HTMLNamespaceEvents {
+  struct HTMLNamespaceEvents {
     CONST_VTBL struct HTMLNamespaceEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -31951,7 +31951,7 @@
       HRESULT (WINAPI *detachEvent)(IHTMLNamespace *This,BSTR event,IDispatch *pDisp);
     END_INTERFACE
   } IHTMLNamespaceVtbl;
-  interface IHTMLNamespace {
+  struct IHTMLNamespace {
     CONST_VTBL struct IHTMLNamespaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32019,7 +32019,7 @@
       HRESULT (WINAPI *add)(IHTMLNamespaceCollection *This,BSTR bstrNamespace,BSTR bstrUrn,VARIANT implementationUrl,IDispatch **ppNamespace);
     END_INTERFACE
   } IHTMLNamespaceCollectionVtbl;
-  interface IHTMLNamespaceCollection {
+  struct IHTMLNamespaceCollection {
     CONST_VTBL struct IHTMLNamespaceCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32076,7 +32076,7 @@
       HRESULT (WINAPI *HitTestPoint)(IHTMLPainter *This,POINT pt,WINBOOL *pbHit,LONG *plPartID);
     END_INTERFACE
   } IHTMLPainterVtbl;
-  interface IHTMLPainter {
+  struct IHTMLPainter {
     CONST_VTBL struct IHTMLPainterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32129,7 +32129,7 @@
       HRESULT (WINAPI *GetHitTestCookie)(IHTMLPaintSite *This,LONG *plCookie);
     END_INTERFACE
   } IHTMLPaintSiteVtbl;
-  interface IHTMLPaintSite {
+  struct IHTMLPaintSite {
     CONST_VTBL struct IHTMLPaintSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32185,7 +32185,7 @@
       HRESULT (WINAPI *StringFromPartID)(IHTMLPainterEventInfo *This,LONG lPartID,BSTR *pbstrPart);
     END_INTERFACE
   } IHTMLPainterEventInfoVtbl;
-  interface IHTMLPainterEventInfo {
+  struct IHTMLPainterEventInfo {
     CONST_VTBL struct IHTMLPainterEventInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32226,7 +32226,7 @@
       HRESULT (WINAPI *OnMove)(IHTMLPainterOverlay *This,RECT rcDevice);
     END_INTERFACE
   } IHTMLPainterOverlayVtbl;
-  interface IHTMLPainterOverlay {
+  struct IHTMLPainterOverlay {
     CONST_VTBL struct IHTMLPainterOverlayVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32266,7 +32266,7 @@
       HRESULT (WINAPI *item)(IHTMLIPrintCollection *This,long index,IUnknown **ppIPrint);
     END_INTERFACE
   } IHTMLIPrintCollectionVtbl;
-  interface IHTMLIPrintCollection {
+  struct IHTMLIPrintCollection {
     CONST_VTBL struct IHTMLIPrintCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32314,7 +32314,7 @@
       HRESULT (WINAPI *Next)(IEnumPrivacyRecords *This,BSTR *pbstrUrl,BSTR *pbstrPolicyRef,LONG *pdwReserved,DWORD *pdwPrivacyFlags);
     END_INTERFACE
   } IEnumPrivacyRecordsVtbl;
-  interface IEnumPrivacyRecords {
+  struct IEnumPrivacyRecords {
     CONST_VTBL struct IEnumPrivacyRecordsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32385,7 +32385,7 @@
       HRESULT (WINAPI *toString)(IHTMLDialog *This,BSTR *String);
     END_INTERFACE
   } IHTMLDialogVtbl;
-  interface IHTMLDialog {
+  struct IHTMLDialog {
     CONST_VTBL struct IHTMLDialogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32470,7 +32470,7 @@
       HRESULT (WINAPI *get_resizable)(IHTMLDialog2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLDialog2Vtbl;
-  interface IHTMLDialog2 {
+  struct IHTMLDialog2 {
     CONST_VTBL struct IHTMLDialog2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32525,7 +32525,7 @@
       HRESULT (WINAPI *get_dialogHide)(IHTMLDialog3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLDialog3Vtbl;
-  interface IHTMLDialog3 {
+  struct IHTMLDialog3 {
     CONST_VTBL struct IHTMLDialog3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32580,7 +32580,7 @@
       HRESULT (WINAPI *get_document)(IHTMLModelessInit *This,IUnknown **p);
     END_INTERFACE
   } IHTMLModelessInitVtbl;
-  interface IHTMLModelessInit {
+  struct IHTMLModelessInit {
     CONST_VTBL struct IHTMLModelessInitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32644,7 +32644,7 @@
       HRESULT (WINAPI *get_isOpen)(IHTMLPopup *This,VARIANT_BOOL *p);
     END_INTERFACE
   } IHTMLPopupVtbl;
-  interface IHTMLPopup {
+  struct IHTMLPopup {
     CONST_VTBL struct IHTMLPopupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32690,7 +32690,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLPopup *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLPopupVtbl;
-  interface DispHTMLPopup {
+  struct DispHTMLPopup {
     CONST_VTBL struct DispHTMLPopupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32779,7 +32779,7 @@
       HRESULT (WINAPI *get_commandLine)(IHTMLAppBehavior *This,BSTR *p);
     END_INTERFACE
   } IHTMLAppBehaviorVtbl;
-  interface IHTMLAppBehavior {
+  struct IHTMLAppBehavior {
     CONST_VTBL struct IHTMLAppBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32909,7 +32909,7 @@
       HRESULT (WINAPI *get_selection)(IHTMLAppBehavior2 *This,BSTR *p);
     END_INTERFACE
   } IHTMLAppBehavior2Vtbl;
-  interface IHTMLAppBehavior2 {
+  struct IHTMLAppBehavior2 {
     CONST_VTBL struct IHTMLAppBehavior2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -32978,7 +32978,7 @@
       HRESULT (WINAPI *get_navigable)(IHTMLAppBehavior3 *This,BSTR *p);
     END_INTERFACE
   } IHTMLAppBehavior3Vtbl;
-  interface IHTMLAppBehavior3 {
+  struct IHTMLAppBehavior3 {
     CONST_VTBL struct IHTMLAppBehavior3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33018,7 +33018,7 @@
       HRESULT (WINAPI *Invoke)(DispHTMLAppBehavior *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispHTMLAppBehaviorVtbl;
-  interface DispHTMLAppBehavior {
+  struct DispHTMLAppBehavior {
     CONST_VTBL struct DispHTMLAppBehaviorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33064,7 +33064,7 @@
       HRESULT (WINAPI *Invoke)(DispIHTMLInputButtonElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispIHTMLInputButtonElementVtbl;
-  interface DispIHTMLInputButtonElement {
+  struct DispIHTMLInputButtonElement {
     CONST_VTBL struct DispIHTMLInputButtonElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33102,7 +33102,7 @@
       HRESULT (WINAPI *Invoke)(DispIHTMLInputTextElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispIHTMLInputTextElementVtbl;
-  interface DispIHTMLInputTextElement {
+  struct DispIHTMLInputTextElement {
     CONST_VTBL struct DispIHTMLInputTextElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33140,7 +33140,7 @@
       HRESULT (WINAPI *Invoke)(DispIHTMLInputFileElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispIHTMLInputFileElementVtbl;
-  interface DispIHTMLInputFileElement {
+  struct DispIHTMLInputFileElement {
     CONST_VTBL struct DispIHTMLInputFileElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33178,7 +33178,7 @@
       HRESULT (WINAPI *Invoke)(DispIHTMLOptionButtonElement *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispIHTMLOptionButtonElementVtbl;
-  interface DispIHTMLOptionButtonElement {
+  struct DispIHTMLOptionButtonElement {
     CONST_VTBL struct DispIHTMLOptionButtonElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33216,7 +33216,7 @@
       HRESULT (WINAPI *Invoke)(DispIHTMLInputImage *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DispIHTMLInputImageVtbl;
-  interface DispIHTMLInputImage {
+  struct DispIHTMLInputImage {
     CONST_VTBL struct DispIHTMLInputImageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33253,7 +33253,7 @@
       HRESULT (WINAPI *AddTag)(IElementNamespace *This,BSTR bstrTagName,LONG lFlags);
     END_INTERFACE
   } IElementNamespaceVtbl;
-  interface IElementNamespace {
+  struct IElementNamespace {
     CONST_VTBL struct IElementNamespaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33285,7 +33285,7 @@
       HRESULT (WINAPI *AddNamespace)(IElementNamespaceTable *This,BSTR bstrNamespace,BSTR bstrUrn,LONG lFlags,VARIANT *pvarFactory);
     END_INTERFACE
   } IElementNamespaceTableVtbl;
-  interface IElementNamespaceTable {
+  struct IElementNamespaceTable {
     CONST_VTBL struct IElementNamespaceTableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33317,7 +33317,7 @@
       HRESULT (WINAPI *Create)(IElementNamespaceFactory *This,IElementNamespace *pNamespace);
     END_INTERFACE
   } IElementNamespaceFactoryVtbl;
-  interface IElementNamespaceFactory {
+  struct IElementNamespaceFactory {
     CONST_VTBL struct IElementNamespaceFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33350,7 +33350,7 @@
       HRESULT (WINAPI *CreateWithImplementation)(IElementNamespaceFactory2 *This,IElementNamespace *pNamespace,BSTR bstrImplementation);
     END_INTERFACE
   } IElementNamespaceFactory2Vtbl;
-  interface IElementNamespaceFactory2 {
+  struct IElementNamespaceFactory2 {
     CONST_VTBL struct IElementNamespaceFactory2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33383,7 +33383,7 @@
       HRESULT (WINAPI *Resolve)(IElementNamespaceFactoryCallback *This,BSTR bstrNamespace,BSTR bstrTagName,BSTR bstrAttrs,IElementNamespace *pNamespace);
     END_INTERFACE
   } IElementNamespaceFactoryCallbackVtbl;
-  interface IElementNamespaceFactoryCallback {
+  struct IElementNamespaceFactoryCallback {
     CONST_VTBL struct IElementNamespaceFactoryCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33421,7 +33421,7 @@
       HRESULT (WINAPI *GetDefaults)(IElementBehaviorSiteOM2 *This,IHTMLElementDefaults **ppDefaults);
     END_INTERFACE
   } IElementBehaviorSiteOM2Vtbl;
-  interface IElementBehaviorSiteOM2 {
+  struct IElementBehaviorSiteOM2 {
     CONST_VTBL struct IElementBehaviorSiteOM2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33459,7 +33459,7 @@
       HRESULT (WINAPI *GetCategory)(IElementBehaviorCategory *This,LPOLESTR *ppchCategory);
     END_INTERFACE
   } IElementBehaviorCategoryVtbl;
-  interface IElementBehaviorCategory {
+  struct IElementBehaviorCategory {
     CONST_VTBL struct IElementBehaviorCategoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33491,7 +33491,7 @@
       HRESULT (WINAPI *GetRelatedBehaviors)(IElementBehaviorSiteCategory *This,LONG lDirection,LPOLESTR pchCategory,IEnumUnknown **ppEnumerator);
     END_INTERFACE
   } IElementBehaviorSiteCategoryVtbl;
-  interface IElementBehaviorSiteCategory {
+  struct IElementBehaviorSiteCategory {
     CONST_VTBL struct IElementBehaviorSiteCategoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33525,7 +33525,7 @@
       HRESULT (WINAPI *Reset)(IElementBehaviorSubmit *This);
     END_INTERFACE
   } IElementBehaviorSubmitVtbl;
-  interface IElementBehaviorSubmit {
+  struct IElementBehaviorSubmit {
     CONST_VTBL struct IElementBehaviorSubmitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33560,7 +33560,7 @@
       HRESULT (WINAPI *GetFocusRect)(IElementBehaviorFocus *This,RECT *pRect);
     END_INTERFACE
   } IElementBehaviorFocusVtbl;
-  interface IElementBehaviorFocus {
+  struct IElementBehaviorFocus {
     CONST_VTBL struct IElementBehaviorFocusVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33598,7 +33598,7 @@
       HRESULT (WINAPI *MapSize)(IElementBehaviorLayout *This,SIZE *psizeIn,RECT *prcOut);
     END_INTERFACE
   } IElementBehaviorLayoutVtbl;
-  interface IElementBehaviorLayout {
+  struct IElementBehaviorLayout {
     CONST_VTBL struct IElementBehaviorLayoutVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33639,7 +33639,7 @@
       HRESULT (WINAPI *GetTextDescent)(IElementBehaviorLayout2 *This,LONG *plDescent);
     END_INTERFACE
   } IElementBehaviorLayout2Vtbl;
-  interface IElementBehaviorLayout2 {
+  struct IElementBehaviorLayout2 {
     CONST_VTBL struct IElementBehaviorLayout2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33675,7 +33675,7 @@
       HRESULT (WINAPI *GetMediaResolution)(IElementBehaviorSiteLayout *This,SIZE *psizeResolution);
     END_INTERFACE
   } IElementBehaviorSiteLayoutVtbl;
-  interface IElementBehaviorSiteLayout {
+  struct IElementBehaviorSiteLayout {
     CONST_VTBL struct IElementBehaviorSiteLayoutVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33713,7 +33713,7 @@
       HRESULT (WINAPI *GetFontInfo)(IElementBehaviorSiteLayout2 *This,LOGFONTW *plf);
     END_INTERFACE
   } IElementBehaviorSiteLayout2Vtbl;
-  interface IElementBehaviorSiteLayout2 {
+  struct IElementBehaviorSiteLayout2 {
     CONST_VTBL struct IElementBehaviorSiteLayout2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -33745,7 +33745,7 @@
       HRESULT (WINAPI *PopulateNamespaceTable)(IHostBehaviorInit *This);
     END_INTERFACE
   } IHostBehaviorInitVtbl;
-  interface IHostBehaviorInit {
+  struct IHostBehaviorInit {
     CONST_VTBL struct IHostBehaviorInitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msimcntl.h b/mingw-w64-headers/include/msimcntl.h
index 6b10a6f..e68e63b 100755
--- a/mingw-w64-headers/include/msimcntl.h
+++ b/mingw-w64-headers/include/msimcntl.h
@@ -15,27 +15,27 @@
 
 #ifndef ___IUseIMBase_FWD_DEFINED__
 #define ___IUseIMBase_FWD_DEFINED__
-typedef interface _IUseIMBase _IUseIMBase;
+typedef struct _IUseIMBase _IUseIMBase;
 #endif
 
 #ifndef __IMSIMContactView_FWD_DEFINED__
 #define __IMSIMContactView_FWD_DEFINED__
-typedef interface IMSIMContactView IMSIMContactView;
+typedef struct IMSIMContactView IMSIMContactView;
 #endif
 
 #ifndef __DMSIMContactViewEvents_FWD_DEFINED__
 #define __DMSIMContactViewEvents_FWD_DEFINED__
-typedef interface DMSIMContactViewEvents DMSIMContactViewEvents;
+typedef struct DMSIMContactViewEvents DMSIMContactViewEvents;
 #endif
 
 #ifndef __IMSIMMessageView_FWD_DEFINED__
 #define __IMSIMMessageView_FWD_DEFINED__
-typedef interface IMSIMMessageView IMSIMMessageView;
+typedef struct IMSIMMessageView IMSIMMessageView;
 #endif
 
 #ifndef __DMSIMMessageViewEvents_FWD_DEFINED__
 #define __DMSIMMessageViewEvents_FWD_DEFINED__
-typedef interface DMSIMMessageViewEvents DMSIMMessageViewEvents;
+typedef struct DMSIMMessageViewEvents DMSIMMessageViewEvents;
 #endif
 
 #ifndef __MSIMContactView_FWD_DEFINED__
@@ -60,17 +60,17 @@
 
 #ifndef __IIMSafeContact_FWD_DEFINED__
 #define __IIMSafeContact_FWD_DEFINED__
-typedef interface IIMSafeContact IIMSafeContact;
+typedef struct IIMSafeContact IIMSafeContact;
 #endif
 
 #ifndef __IMSIMContactList_FWD_DEFINED__
 #define __IMSIMContactList_FWD_DEFINED__
-typedef interface IMSIMContactList IMSIMContactList;
+typedef struct IMSIMContactList IMSIMContactList;
 #endif
 
 #ifndef __DIMContactListEvents_FWD_DEFINED__
 #define __DIMContactListEvents_FWD_DEFINED__
-typedef interface DIMContactListEvents DIMContactListEvents;
+typedef struct DIMContactListEvents DIMContactListEvents;
 #endif
 
 #ifndef __MSIMContactList_FWD_DEFINED__
@@ -192,7 +192,7 @@
       HRESULT (WINAPI *SetLocalState)(_IUseIMBase *This,long lState,VARIANT varDescription,VARIANT varData);
     END_INTERFACE
   } _IUseIMBaseVtbl;
-  interface _IUseIMBase {
+  struct _IUseIMBase {
     CONST_VTBL struct _IUseIMBaseVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -346,7 +346,7 @@
       HRESULT (WINAPI *put_AcceptMessages)(IMSIMContactView *This,VARIANT_BOOL newVal);
     END_INTERFACE
   } IMSIMContactViewVtbl;
-  interface IMSIMContactView {
+  struct IMSIMContactView {
     CONST_VTBL struct IMSIMContactViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -504,7 +504,7 @@
       HRESULT (WINAPI *Invoke)(DMSIMContactViewEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DMSIMContactViewEventsVtbl;
-  interface DMSIMContactViewEvents {
+  struct DMSIMContactViewEvents {
     CONST_VTBL struct DMSIMContactViewEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -611,7 +611,7 @@
       HRESULT (WINAPI *get_InSession)(IMSIMMessageView *This,VARIANT_BOOL *pVal);
     END_INTERFACE
   } IMSIMMessageViewVtbl;
-  interface IMSIMMessageView {
+  struct IMSIMMessageView {
     CONST_VTBL struct IMSIMMessageViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -748,7 +748,7 @@
       HRESULT (WINAPI *Invoke)(DMSIMMessageViewEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DMSIMMessageViewEventsVtbl;
-  interface DMSIMMessageViewEvents {
+  struct DMSIMMessageViewEvents {
     CONST_VTBL struct DMSIMMessageViewEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -807,7 +807,7 @@
       HRESULT (WINAPI *LaunchNetMeeting)(IIMSafeContact *This);
     END_INTERFACE
   } IIMSafeContactVtbl;
-  interface IIMSafeContact {
+  struct IIMSafeContact {
     CONST_VTBL struct IIMSafeContactVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -908,7 +908,7 @@
       HRESULT (WINAPI *get_LocalLogonName)(IMSIMContactList *This,BSTR *pval);
     END_INTERFACE
   } IMSIMContactListVtbl;
-  interface IMSIMContactList {
+  struct IMSIMContactList {
     CONST_VTBL struct IMSIMContactListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1000,7 +1000,7 @@
       HRESULT (WINAPI *Invoke)(DIMContactListEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DIMContactListEventsVtbl;
-  interface DIMContactListEvents {
+  struct DIMContactListEvents {
     CONST_VTBL struct DIMContactListEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msimcsdk.h b/mingw-w64-headers/include/msimcsdk.h
index 2c140b8..e90276a 100755
--- a/mingw-w64-headers/include/msimcsdk.h
+++ b/mingw-w64-headers/include/msimcsdk.h
@@ -15,52 +15,52 @@
 
 #ifndef __IMSIMHost_FWD_DEFINED__
 #define __IMSIMHost_FWD_DEFINED__
-typedef interface IMSIMHost IMSIMHost;
+typedef struct IMSIMHost IMSIMHost;
 #endif
 
 #ifndef __DMSIMHostEvents_FWD_DEFINED__
 #define __DMSIMHostEvents_FWD_DEFINED__
-typedef interface DMSIMHostEvents DMSIMHostEvents;
+typedef struct DMSIMHostEvents DMSIMHostEvents;
 #endif
 
 #ifndef __IMSIMWindow_FWD_DEFINED__
 #define __IMSIMWindow_FWD_DEFINED__
-typedef interface IMSIMWindow IMSIMWindow;
+typedef struct IMSIMWindow IMSIMWindow;
 #endif
 
 #ifndef __DMSIMWindowEvents_FWD_DEFINED__
 #define __DMSIMWindowEvents_FWD_DEFINED__
-typedef interface DMSIMWindowEvents DMSIMWindowEvents;
+typedef struct DMSIMWindowEvents DMSIMWindowEvents;
 #endif
 
 #ifndef __IIMService_FWD_DEFINED__
 #define __IIMService_FWD_DEFINED__
-typedef interface IIMService IIMService;
+typedef struct IIMService IIMService;
 #endif
 
 #ifndef __DIMServiceEvents_FWD_DEFINED__
 #define __DIMServiceEvents_FWD_DEFINED__
-typedef interface DIMServiceEvents DIMServiceEvents;
+typedef struct DIMServiceEvents DIMServiceEvents;
 #endif
 
 #ifndef __IIMContact_FWD_DEFINED__
 #define __IIMContact_FWD_DEFINED__
-typedef interface IIMContact IIMContact;
+typedef struct IIMContact IIMContact;
 #endif
 
 #ifndef __IIMContacts_FWD_DEFINED__
 #define __IIMContacts_FWD_DEFINED__
-typedef interface IIMContacts IIMContacts;
+typedef struct IIMContacts IIMContacts;
 #endif
 
 #ifndef __IIMSession_FWD_DEFINED__
 #define __IIMSession_FWD_DEFINED__
-typedef interface IIMSession IIMSession;
+typedef struct IIMSession IIMSession;
 #endif
 
 #ifndef __IIMSessions_FWD_DEFINED__
 #define __IIMSessions_FWD_DEFINED__
-typedef interface IIMSessions IIMSessions;
+typedef struct IIMSessions IIMSessions;
 #endif
 
 #ifndef __MSIMHost_FWD_DEFINED__
@@ -247,7 +247,7 @@
       HRESULT (WINAPI *HostWindowEx)(IMSIMHost *This,BSTR bstrControl,long lStyle,long lExStyle,IStream *pStream,IMSIMWindow **ppMSIMWindow,IUnknown **ppUnk,REFIID iidAdvise,IUnknown *punkSink);
     END_INTERFACE
   } IMSIMHostVtbl;
-  interface IMSIMHost {
+  struct IMSIMHost {
     CONST_VTBL struct IMSIMHostVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -301,7 +301,7 @@
       HRESULT (WINAPI *Invoke)(DMSIMHostEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DMSIMHostEventsVtbl;
-  interface DMSIMHostEvents {
+  struct DMSIMHostEvents {
     CONST_VTBL struct DMSIMHostEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -364,7 +364,7 @@
       HRESULT (WINAPI *get_Window)(IMSIMWindow *This,long *pVal);
     END_INTERFACE
   } IMSIMWindowVtbl;
-  interface IMSIMWindow {
+  struct IMSIMWindow {
     CONST_VTBL struct IMSIMWindowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -439,7 +439,7 @@
       HRESULT (WINAPI *Invoke)(DMSIMWindowEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DMSIMWindowEventsVtbl;
-  interface DMSIMWindowEvents {
+  struct DMSIMWindowEvents {
     CONST_VTBL struct DMSIMWindowEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -513,7 +513,7 @@
       HRESULT (WINAPI *put_BlockByDefault)(IIMService *This,VARIANT_BOOL newVal);
     END_INTERFACE
   } IIMServiceVtbl;
-  interface IIMService {
+  struct IIMService {
     CONST_VTBL struct IIMServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -606,7 +606,7 @@
       HRESULT (WINAPI *Invoke)(DIMServiceEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DIMServiceEventsVtbl;
-  interface DIMServiceEvents {
+  struct DIMServiceEvents {
     CONST_VTBL struct DIMServiceEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -654,7 +654,7 @@
       HRESULT (WINAPI *get_Service)(IIMContact *This,IDispatch **ppService);
     END_INTERFACE
   } IIMContactVtbl;
-  interface IIMContact {
+  struct IIMContact {
     CONST_VTBL struct IIMContactVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -727,7 +727,7 @@
       HRESULT (WINAPI *get__NewEnum)(IIMContacts *This,IUnknown **ppVal);
     END_INTERFACE
   } IIMContactsVtbl;
-  interface IIMContacts {
+  struct IIMContacts {
     CONST_VTBL struct IIMContactsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -802,7 +802,7 @@
       HRESULT (WINAPI *SendText)(IIMSession *This,BSTR bstrMsgHeader,BSTR bstrMsgText,IM_MSG_TYPE MsgType,LONG *plCookie);
     END_INTERFACE
   } IIMSessionVtbl;
-  interface IIMSession {
+  struct IIMSession {
     CONST_VTBL struct IIMSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -863,7 +863,7 @@
       HRESULT (WINAPI *get__NewEnum)(IIMSessions *This,IUnknown **ppUnknown);
     END_INTERFACE
   } IIMSessionsVtbl;
-  interface IIMSessions {
+  struct IIMSessions {
     CONST_VTBL struct IIMSessionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msp.h b/mingw-w64-headers/include/msp.h
index aa045fe..c8e13e0 100755
--- a/mingw-w64-headers/include/msp.h
+++ b/mingw-w64-headers/include/msp.h
@@ -24,17 +24,17 @@
 
 #ifndef __ITPluggableTerminalEventSink_FWD_DEFINED__
 #define __ITPluggableTerminalEventSink_FWD_DEFINED__
-typedef interface ITPluggableTerminalEventSink ITPluggableTerminalEventSink;
+typedef struct ITPluggableTerminalEventSink ITPluggableTerminalEventSink;
 #endif
 
 #ifndef __ITPluggableTerminalEventSinkRegistration_FWD_DEFINED__
 #define __ITPluggableTerminalEventSinkRegistration_FWD_DEFINED__
-typedef interface ITPluggableTerminalEventSinkRegistration ITPluggableTerminalEventSinkRegistration;
+typedef struct ITPluggableTerminalEventSinkRegistration ITPluggableTerminalEventSinkRegistration;
 #endif
 
 #ifndef __ITMSPAddress_FWD_DEFINED__
 #define __ITMSPAddress_FWD_DEFINED__
-typedef interface ITMSPAddress ITMSPAddress;
+typedef struct ITMSPAddress ITMSPAddress;
 #endif
 
 #include "tapi3if.h"
@@ -136,7 +136,7 @@
       HRESULT (WINAPI *FireEvent)(ITPluggableTerminalEventSink *This,const MSP_EVENT_INFO *pMspEventInfo);
     END_INTERFACE
   } ITPluggableTerminalEventSinkVtbl;
-  interface ITPluggableTerminalEventSink {
+  struct ITPluggableTerminalEventSink {
     CONST_VTBL struct ITPluggableTerminalEventSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -169,7 +169,7 @@
       HRESULT (WINAPI *UnregisterSink)(ITPluggableTerminalEventSinkRegistration *This);
     END_INTERFACE
   } ITPluggableTerminalEventSinkRegistrationVtbl;
-  interface ITPluggableTerminalEventSinkRegistration {
+  struct ITPluggableTerminalEventSinkRegistration {
     CONST_VTBL struct ITPluggableTerminalEventSinkRegistrationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -213,7 +213,7 @@
       HRESULT (WINAPI *GetEvent)(ITMSPAddress *This,DWORD *pdwSize,byte *pEventBuffer);
     END_INTERFACE
   } ITMSPAddressVtbl;
-  interface ITMSPAddress {
+  struct ITMSPAddress {
     CONST_VTBL struct ITMSPAddressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mstask.h b/mingw-w64-headers/include/mstask.h
index 36e9a8d..ee3323a 100755
--- a/mingw-w64-headers/include/mstask.h
+++ b/mingw-w64-headers/include/mstask.h
@@ -24,32 +24,32 @@
 
 #ifndef __ITaskTrigger_FWD_DEFINED__
 #define __ITaskTrigger_FWD_DEFINED__
-typedef interface ITaskTrigger ITaskTrigger;
+typedef struct ITaskTrigger ITaskTrigger;
 #endif
 
 #ifndef __IScheduledWorkItem_FWD_DEFINED__
 #define __IScheduledWorkItem_FWD_DEFINED__
-typedef interface IScheduledWorkItem IScheduledWorkItem;
+typedef struct IScheduledWorkItem IScheduledWorkItem;
 #endif
 
 #ifndef __ITask_FWD_DEFINED__
 #define __ITask_FWD_DEFINED__
-typedef interface ITask ITask;
+typedef struct ITask ITask;
 #endif
 
 #ifndef __IEnumWorkItems_FWD_DEFINED__
 #define __IEnumWorkItems_FWD_DEFINED__
-typedef interface IEnumWorkItems IEnumWorkItems;
+typedef struct IEnumWorkItems IEnumWorkItems;
 #endif
 
 #ifndef __ITaskScheduler_FWD_DEFINED__
 #define __ITaskScheduler_FWD_DEFINED__
-typedef interface ITaskScheduler ITaskScheduler;
+typedef struct ITaskScheduler ITaskScheduler;
 #endif
 
 #ifndef __IProvideTaskPage_FWD_DEFINED__
 #define __IProvideTaskPage_FWD_DEFINED__
-typedef interface IProvideTaskPage IProvideTaskPage;
+typedef struct IProvideTaskPage IProvideTaskPage;
 #endif
 
 #include "oaidl.h"
@@ -186,7 +186,7 @@
       HRESULT (WINAPI *GetTriggerString)(ITaskTrigger *This,LPWSTR *ppwszTrigger);
     END_INTERFACE
   } ITaskTriggerVtbl;
-  interface ITaskTrigger {
+  struct ITaskTrigger {
     CONST_VTBL struct ITaskTriggerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -282,7 +282,7 @@
       HRESULT (WINAPI *GetAccountInformation)(IScheduledWorkItem *This,LPWSTR *ppwszAccountName);
     END_INTERFACE
   } IScheduledWorkItemVtbl;
-  interface IScheduledWorkItem {
+  struct IScheduledWorkItem {
     CONST_VTBL struct IScheduledWorkItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -453,7 +453,7 @@
       HRESULT (WINAPI *GetMaxRunTime)(ITask *This,DWORD *pdwMaxRunTimeMS);
     END_INTERFACE
   } ITaskVtbl;
-  interface ITask {
+  struct ITask {
     CONST_VTBL struct ITaskVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -557,7 +557,7 @@
       HRESULT (WINAPI *Clone)(IEnumWorkItems *This,IEnumWorkItems **ppEnumWorkItems);
     END_INTERFACE
   } IEnumWorkItemsVtbl;
-  interface IEnumWorkItems {
+  struct IEnumWorkItems {
     CONST_VTBL struct IEnumWorkItemsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -616,7 +616,7 @@
       HRESULT (WINAPI *IsOfType)(ITaskScheduler *This,LPCWSTR pwszName,REFIID riid);
     END_INTERFACE
   } ITaskSchedulerVtbl;
-  interface ITaskScheduler {
+  struct ITaskScheduler {
     CONST_VTBL struct ITaskSchedulerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -685,7 +685,7 @@
       HRESULT (WINAPI *GetPage)(IProvideTaskPage *This,TASKPAGE tpType,WINBOOL fPersistChanges,HPROPSHEETPAGE *phPage);
     END_INTERFACE
   } IProvideTaskPageVtbl;
-  interface IProvideTaskPage {
+  struct IProvideTaskPage {
     CONST_VTBL struct IProvideTaskPageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msxml.h b/mingw-w64-headers/include/msxml.h
index 35e4795..4038eec 100755
--- a/mingw-w64-headers/include/msxml.h
+++ b/mingw-w64-headers/include/msxml.h
@@ -15,102 +15,102 @@
 
 #ifndef __IXMLDOMImplementation_FWD_DEFINED__
 #define __IXMLDOMImplementation_FWD_DEFINED__
-typedef interface IXMLDOMImplementation IXMLDOMImplementation;
+typedef struct IXMLDOMImplementation IXMLDOMImplementation;
 #endif
 
 #ifndef __IXMLDOMNode_FWD_DEFINED__
 #define __IXMLDOMNode_FWD_DEFINED__
-typedef interface IXMLDOMNode IXMLDOMNode;
+typedef struct IXMLDOMNode IXMLDOMNode;
 #endif
 
 #ifndef __IXMLDOMDocumentFragment_FWD_DEFINED__
 #define __IXMLDOMDocumentFragment_FWD_DEFINED__
-typedef interface IXMLDOMDocumentFragment IXMLDOMDocumentFragment;
+typedef struct IXMLDOMDocumentFragment IXMLDOMDocumentFragment;
 #endif
 
 #ifndef __IXMLDOMDocument_FWD_DEFINED__
 #define __IXMLDOMDocument_FWD_DEFINED__
-typedef interface IXMLDOMDocument IXMLDOMDocument;
+typedef struct IXMLDOMDocument IXMLDOMDocument;
 #endif
 
 #ifndef __IXMLDOMNodeList_FWD_DEFINED__
 #define __IXMLDOMNodeList_FWD_DEFINED__
-typedef interface IXMLDOMNodeList IXMLDOMNodeList;
+typedef struct IXMLDOMNodeList IXMLDOMNodeList;
 #endif
 
 #ifndef __IXMLDOMNamedNodeMap_FWD_DEFINED__
 #define __IXMLDOMNamedNodeMap_FWD_DEFINED__
-typedef interface IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap;
+typedef struct IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap;
 #endif
 
 #ifndef __IXMLDOMCharacterData_FWD_DEFINED__
 #define __IXMLDOMCharacterData_FWD_DEFINED__
-typedef interface IXMLDOMCharacterData IXMLDOMCharacterData;
+typedef struct IXMLDOMCharacterData IXMLDOMCharacterData;
 #endif
 
 #ifndef __IXMLDOMAttribute_FWD_DEFINED__
 #define __IXMLDOMAttribute_FWD_DEFINED__
-typedef interface IXMLDOMAttribute IXMLDOMAttribute;
+typedef struct IXMLDOMAttribute IXMLDOMAttribute;
 #endif
 
 #ifndef __IXMLDOMElement_FWD_DEFINED__
 #define __IXMLDOMElement_FWD_DEFINED__
-typedef interface IXMLDOMElement IXMLDOMElement;
+typedef struct IXMLDOMElement IXMLDOMElement;
 #endif
 
 #ifndef __IXMLDOMText_FWD_DEFINED__
 #define __IXMLDOMText_FWD_DEFINED__
-typedef interface IXMLDOMText IXMLDOMText;
+typedef struct IXMLDOMText IXMLDOMText;
 #endif
 
 #ifndef __IXMLDOMComment_FWD_DEFINED__
 #define __IXMLDOMComment_FWD_DEFINED__
-typedef interface IXMLDOMComment IXMLDOMComment;
+typedef struct IXMLDOMComment IXMLDOMComment;
 #endif
 
 #ifndef __IXMLDOMProcessingInstruction_FWD_DEFINED__
 #define __IXMLDOMProcessingInstruction_FWD_DEFINED__
-typedef interface IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction;
+typedef struct IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction;
 #endif
 
 #ifndef __IXMLDOMCDATASection_FWD_DEFINED__
 #define __IXMLDOMCDATASection_FWD_DEFINED__
-typedef interface IXMLDOMCDATASection IXMLDOMCDATASection;
+typedef struct IXMLDOMCDATASection IXMLDOMCDATASection;
 #endif
 
 #ifndef __IXMLDOMDocumentType_FWD_DEFINED__
 #define __IXMLDOMDocumentType_FWD_DEFINED__
-typedef interface IXMLDOMDocumentType IXMLDOMDocumentType;
+typedef struct IXMLDOMDocumentType IXMLDOMDocumentType;
 #endif
 
 #ifndef __IXMLDOMNotation_FWD_DEFINED__
 #define __IXMLDOMNotation_FWD_DEFINED__
-typedef interface IXMLDOMNotation IXMLDOMNotation;
+typedef struct IXMLDOMNotation IXMLDOMNotation;
 #endif
 
 #ifndef __IXMLDOMEntity_FWD_DEFINED__
 #define __IXMLDOMEntity_FWD_DEFINED__
-typedef interface IXMLDOMEntity IXMLDOMEntity;
+typedef struct IXMLDOMEntity IXMLDOMEntity;
 #endif
 
 #ifndef __IXMLDOMEntityReference_FWD_DEFINED__
 #define __IXMLDOMEntityReference_FWD_DEFINED__
-typedef interface IXMLDOMEntityReference IXMLDOMEntityReference;
+typedef struct IXMLDOMEntityReference IXMLDOMEntityReference;
 #endif
 
 #ifndef __IXMLDOMParseError_FWD_DEFINED__
 #define __IXMLDOMParseError_FWD_DEFINED__
-typedef interface IXMLDOMParseError IXMLDOMParseError;
+typedef struct IXMLDOMParseError IXMLDOMParseError;
 #endif
 
 #ifndef __IXTLRuntime_FWD_DEFINED__
 #define __IXTLRuntime_FWD_DEFINED__
-typedef interface IXTLRuntime IXTLRuntime;
+typedef struct IXTLRuntime IXTLRuntime;
 #endif
 
 #ifndef __XMLDOMDocumentEvents_FWD_DEFINED__
 #define __XMLDOMDocumentEvents_FWD_DEFINED__
-typedef interface XMLDOMDocumentEvents XMLDOMDocumentEvents;
+typedef struct XMLDOMDocumentEvents XMLDOMDocumentEvents;
 #endif
 
 #ifndef __DOMDocument_FWD_DEFINED__
@@ -133,7 +133,7 @@
 
 #ifndef __IXMLHttpRequest_FWD_DEFINED__
 #define __IXMLHttpRequest_FWD_DEFINED__
-typedef interface IXMLHttpRequest IXMLHttpRequest;
+typedef struct IXMLHttpRequest IXMLHttpRequest;
 #endif
 
 #ifndef __XMLHTTPRequest_FWD_DEFINED__
@@ -147,7 +147,7 @@
 
 #ifndef __IXMLDSOControl_FWD_DEFINED__
 #define __IXMLDSOControl_FWD_DEFINED__
-typedef interface IXMLDSOControl IXMLDSOControl;
+typedef struct IXMLDSOControl IXMLDSOControl;
 #endif
 
 #ifndef __XMLDSOControl_FWD_DEFINED__
@@ -161,37 +161,37 @@
 
 #ifndef __IXMLElementCollection_FWD_DEFINED__
 #define __IXMLElementCollection_FWD_DEFINED__
-typedef interface IXMLElementCollection IXMLElementCollection;
+typedef struct IXMLElementCollection IXMLElementCollection;
 #endif
 
 #ifndef __IXMLDocument_FWD_DEFINED__
 #define __IXMLDocument_FWD_DEFINED__
-typedef interface IXMLDocument IXMLDocument;
+typedef struct IXMLDocument IXMLDocument;
 #endif
 
 #ifndef __IXMLDocument2_FWD_DEFINED__
 #define __IXMLDocument2_FWD_DEFINED__
-typedef interface IXMLDocument2 IXMLDocument2;
+typedef struct IXMLDocument2 IXMLDocument2;
 #endif
 
 #ifndef __IXMLElement_FWD_DEFINED__
 #define __IXMLElement_FWD_DEFINED__
-typedef interface IXMLElement IXMLElement;
+typedef struct IXMLElement IXMLElement;
 #endif
 
 #ifndef __IXMLElement2_FWD_DEFINED__
 #define __IXMLElement2_FWD_DEFINED__
-typedef interface IXMLElement2 IXMLElement2;
+typedef struct IXMLElement2 IXMLElement2;
 #endif
 
 #ifndef __IXMLAttribute_FWD_DEFINED__
 #define __IXMLAttribute_FWD_DEFINED__
-typedef interface IXMLAttribute IXMLAttribute;
+typedef struct IXMLAttribute IXMLAttribute;
 #endif
 
 #ifndef __IXMLError_FWD_DEFINED__
 #define __IXMLError_FWD_DEFINED__
-typedef interface IXMLError IXMLError;
+typedef struct IXMLError IXMLError;
 #endif
 
 #ifndef __XMLDocument_FWD_DEFINED__
@@ -268,7 +268,7 @@
       HRESULT (WINAPI *hasFeature)(IXMLDOMImplementation *This,BSTR feature,BSTR version,VARIANT_BOOL *hasFeature);
     END_INTERFACE
   } IXMLDOMImplementationVtbl;
-  interface IXMLDOMImplementation {
+  struct IXMLDOMImplementation {
     CONST_VTBL struct IXMLDOMImplementationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -377,7 +377,7 @@
       HRESULT (WINAPI *transformNodeToObject)(IXMLDOMNode *This,IXMLDOMNode *stylesheet,VARIANT outputObject);
     END_INTERFACE
   } IXMLDOMNodeVtbl;
-  interface IXMLDOMNode {
+  struct IXMLDOMNode {
     CONST_VTBL struct IXMLDOMNodeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -554,7 +554,7 @@
       HRESULT (WINAPI *transformNodeToObject)(IXMLDOMDocumentFragment *This,IXMLDOMNode *stylesheet,VARIANT outputObject);
     END_INTERFACE
   } IXMLDOMDocumentFragmentVtbl;
-  interface IXMLDOMDocumentFragment {
+  struct IXMLDOMDocumentFragment {
     CONST_VTBL struct IXMLDOMDocumentFragmentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -726,7 +726,7 @@
       HRESULT (WINAPI *put_ontransformnode)(IXMLDOMDocument *This,VARIANT ontransformnodeSink);
     END_INTERFACE
   } IXMLDOMDocumentVtbl;
-  interface IXMLDOMDocument {
+  struct IXMLDOMDocument {
     CONST_VTBL struct IXMLDOMDocumentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -905,7 +905,7 @@
       HRESULT (WINAPI *get__newEnum)(IXMLDOMNodeList *This,IUnknown **ppUnk);
     END_INTERFACE
   } IXMLDOMNodeListVtbl;
-  interface IXMLDOMNodeList {
+  struct IXMLDOMNodeList {
     CONST_VTBL struct IXMLDOMNodeListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -974,7 +974,7 @@
       HRESULT (WINAPI *get__newEnum)(IXMLDOMNamedNodeMap *This,IUnknown **ppUnk);
     END_INTERFACE
   } IXMLDOMNamedNodeMapVtbl;
-  interface IXMLDOMNamedNodeMap {
+  struct IXMLDOMNamedNodeMap {
     CONST_VTBL struct IXMLDOMNamedNodeMapVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1090,7 +1090,7 @@
       HRESULT (WINAPI *replaceData)(IXMLDOMCharacterData *This,long offset,long count,BSTR data);
     END_INTERFACE
   } IXMLDOMCharacterDataVtbl;
-  interface IXMLDOMCharacterData {
+  struct IXMLDOMCharacterData {
     CONST_VTBL struct IXMLDOMCharacterDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1226,7 +1226,7 @@
       HRESULT (WINAPI *put_value)(IXMLDOMAttribute *This,VARIANT attributeValue);
     END_INTERFACE
   } IXMLDOMAttributeVtbl;
-  interface IXMLDOMAttribute {
+  struct IXMLDOMAttribute {
     CONST_VTBL struct IXMLDOMAttributeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1359,7 +1359,7 @@
       HRESULT (WINAPI *normalize)(IXMLDOMElement *This);
     END_INTERFACE
   } IXMLDOMElementVtbl;
-  interface IXMLDOMElement {
+  struct IXMLDOMElement {
     CONST_VTBL struct IXMLDOMElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1502,7 +1502,7 @@
       HRESULT (WINAPI *splitText)(IXMLDOMText *This,long offset,IXMLDOMText **rightHandTextNode);
     END_INTERFACE
   } IXMLDOMTextVtbl;
-  interface IXMLDOMText {
+  struct IXMLDOMText {
     CONST_VTBL struct IXMLDOMTextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1626,7 +1626,7 @@
       HRESULT (WINAPI *replaceData)(IXMLDOMComment *This,long offset,long count,BSTR data);
     END_INTERFACE
   } IXMLDOMCommentVtbl;
-  interface IXMLDOMComment {
+  struct IXMLDOMComment {
     CONST_VTBL struct IXMLDOMCommentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1746,7 +1746,7 @@
       HRESULT (WINAPI *put_data)(IXMLDOMProcessingInstruction *This,BSTR value);
     END_INTERFACE
   } IXMLDOMProcessingInstructionVtbl;
-  interface IXMLDOMProcessingInstruction {
+  struct IXMLDOMProcessingInstruction {
     CONST_VTBL struct IXMLDOMProcessingInstructionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1869,7 +1869,7 @@
       HRESULT (WINAPI *splitText)(IXMLDOMCDATASection *This,long offset,IXMLDOMText **rightHandTextNode);
     END_INTERFACE
   } IXMLDOMCDATASectionVtbl;
-  interface IXMLDOMCDATASection {
+  struct IXMLDOMCDATASection {
     CONST_VTBL struct IXMLDOMCDATASectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1990,7 +1990,7 @@
       HRESULT (WINAPI *get_notations)(IXMLDOMDocumentType *This,IXMLDOMNamedNodeMap **notationMap);
     END_INTERFACE
   } IXMLDOMDocumentTypeVtbl;
-  interface IXMLDOMDocumentType {
+  struct IXMLDOMDocumentType {
     CONST_VTBL struct IXMLDOMDocumentTypeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2109,7 +2109,7 @@
       HRESULT (WINAPI *get_systemId)(IXMLDOMNotation *This,VARIANT *systemID);
     END_INTERFACE
   } IXMLDOMNotationVtbl;
-  interface IXMLDOMNotation {
+  struct IXMLDOMNotation {
     CONST_VTBL struct IXMLDOMNotationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2227,7 +2227,7 @@
       HRESULT (WINAPI *get_notationName)(IXMLDOMEntity *This,BSTR *name);
     END_INTERFACE
   } IXMLDOMEntityVtbl;
-  interface IXMLDOMEntity {
+  struct IXMLDOMEntity {
     CONST_VTBL struct IXMLDOMEntityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2341,7 +2341,7 @@
       HRESULT (WINAPI *transformNodeToObject)(IXMLDOMEntityReference *This,IXMLDOMNode *stylesheet,VARIANT outputObject);
     END_INTERFACE
   } IXMLDOMEntityReferenceVtbl;
-  interface IXMLDOMEntityReference {
+  struct IXMLDOMEntityReference {
     CONST_VTBL struct IXMLDOMEntityReferenceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2425,7 +2425,7 @@
       HRESULT (WINAPI *get_filepos)(IXMLDOMParseError *This,long *filePosition);
     END_INTERFACE
   } IXMLDOMParseErrorVtbl;
-  interface IXMLDOMParseError {
+  struct IXMLDOMParseError {
     CONST_VTBL struct IXMLDOMParseErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2534,7 +2534,7 @@
       HRESULT (WINAPI *formatTime)(IXTLRuntime *This,VARIANT varTime,BSTR bstrFormat,VARIANT varDestLocale,BSTR *pbstrFormattedString);
     END_INTERFACE
   } IXTLRuntimeVtbl;
-  interface IXTLRuntime {
+  struct IXTLRuntime {
     CONST_VTBL struct IXTLRuntimeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2630,7 +2630,7 @@
       HRESULT (WINAPI *Invoke)(XMLDOMDocumentEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } XMLDOMDocumentEventsVtbl;
-  interface XMLDOMDocumentEvents {
+  struct XMLDOMDocumentEvents {
     CONST_VTBL struct XMLDOMDocumentEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2701,7 +2701,7 @@
       HRESULT (WINAPI *put_onreadystatechange)(IXMLHttpRequest *This,IDispatch *pReadyStateSink);
     END_INTERFACE
   } IXMLHttpRequestVtbl;
-  interface IXMLHttpRequest {
+  struct IXMLHttpRequest {
     CONST_VTBL struct IXMLHttpRequestVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2792,7 +2792,7 @@
       HRESULT (WINAPI *get_readyState)(IXMLDSOControl *This,long *state);
     END_INTERFACE
   } IXMLDSOControlVtbl;
-  interface IXMLDSOControl {
+  struct IXMLDSOControl {
     CONST_VTBL struct IXMLDSOControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2854,7 +2854,7 @@
       HRESULT (WINAPI *item)(IXMLElementCollection *This,VARIANT var1,VARIANT var2,IDispatch **ppDisp);
     END_INTERFACE
   } IXMLElementCollectionVtbl;
-  interface IXMLElementCollection {
+  struct IXMLElementCollection {
     CONST_VTBL struct IXMLElementCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2928,7 +2928,7 @@
       HRESULT (WINAPI *createElement)(IXMLDocument *This,VARIANT vType,VARIANT var1,IXMLElement **ppElem);
     END_INTERFACE
   } IXMLDocumentVtbl;
-  interface IXMLDocument {
+  struct IXMLDocument {
     CONST_VTBL struct IXMLDocumentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3036,7 +3036,7 @@
       HRESULT (WINAPI *put_async)(IXMLDocument2 *This,VARIANT_BOOL f);
     END_INTERFACE
   } IXMLDocument2Vtbl;
-  interface IXMLDocument2 {
+  struct IXMLDocument2 {
     CONST_VTBL struct IXMLDocument2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3142,7 +3142,7 @@
       HRESULT (WINAPI *removeChild)(IXMLElement *This,IXMLElement *pChildElem);
     END_INTERFACE
   } IXMLElementVtbl;
-  interface IXMLElement {
+  struct IXMLElement {
     CONST_VTBL struct IXMLElementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3238,7 +3238,7 @@
       HRESULT (WINAPI *get_attributes)(IXMLElement2 *This,IXMLElementCollection **pp);
     END_INTERFACE
   } IXMLElement2Vtbl;
-  interface IXMLElement2 {
+  struct IXMLElement2 {
     CONST_VTBL struct IXMLElement2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3315,7 +3315,7 @@
       HRESULT (WINAPI *get_value)(IXMLAttribute *This,BSTR *v);
     END_INTERFACE
   } IXMLAttributeVtbl;
-  interface IXMLAttribute {
+  struct IXMLAttribute {
     CONST_VTBL struct IXMLAttributeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3353,7 +3353,7 @@
       HRESULT (WINAPI *GetErrorInfo)(IXMLError *This,XML_ERROR *pErrorReturn);
     END_INTERFACE
   } IXMLErrorVtbl;
-  interface IXMLError {
+  struct IXMLError {
     CONST_VTBL struct IXMLErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/msxml2.h b/mingw-w64-headers/include/msxml2.h
index ed33fe1..72ef520 100755
--- a/mingw-w64-headers/include/msxml2.h
+++ b/mingw-w64-headers/include/msxml2.h
@@ -15,392 +15,392 @@
 
 #ifndef __IXMLDOMImplementation_FWD_DEFINED__
 #define __IXMLDOMImplementation_FWD_DEFINED__
-typedef interface IXMLDOMImplementation IXMLDOMImplementation;
+typedef struct IXMLDOMImplementation IXMLDOMImplementation;
 #endif
 
 #ifndef __IXMLDOMNode_FWD_DEFINED__
 #define __IXMLDOMNode_FWD_DEFINED__
-typedef interface IXMLDOMNode IXMLDOMNode;
+typedef struct IXMLDOMNode IXMLDOMNode;
 #endif
 
 #ifndef __IXMLDOMDocumentFragment_FWD_DEFINED__
 #define __IXMLDOMDocumentFragment_FWD_DEFINED__
-typedef interface IXMLDOMDocumentFragment IXMLDOMDocumentFragment;
+typedef struct IXMLDOMDocumentFragment IXMLDOMDocumentFragment;
 #endif
 
 #ifndef __IXMLDOMDocument_FWD_DEFINED__
 #define __IXMLDOMDocument_FWD_DEFINED__
-typedef interface IXMLDOMDocument IXMLDOMDocument;
+typedef struct IXMLDOMDocument IXMLDOMDocument;
 #endif
 
 #ifndef __IXMLDOMDocument2_FWD_DEFINED__
 #define __IXMLDOMDocument2_FWD_DEFINED__
-typedef interface IXMLDOMDocument2 IXMLDOMDocument2;
+typedef struct IXMLDOMDocument2 IXMLDOMDocument2;
 #endif
 
 #ifndef __IXMLDOMNodeList_FWD_DEFINED__
 #define __IXMLDOMNodeList_FWD_DEFINED__
-typedef interface IXMLDOMNodeList IXMLDOMNodeList;
+typedef struct IXMLDOMNodeList IXMLDOMNodeList;
 #endif
 
 #ifndef __IXMLDOMNamedNodeMap_FWD_DEFINED__
 #define __IXMLDOMNamedNodeMap_FWD_DEFINED__
-typedef interface IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap;
+typedef struct IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap;
 #endif
 
 #ifndef __IXMLDOMCharacterData_FWD_DEFINED__
 #define __IXMLDOMCharacterData_FWD_DEFINED__
-typedef interface IXMLDOMCharacterData IXMLDOMCharacterData;
+typedef struct IXMLDOMCharacterData IXMLDOMCharacterData;
 #endif
 
 #ifndef __IXMLDOMAttribute_FWD_DEFINED__
 #define __IXMLDOMAttribute_FWD_DEFINED__
-typedef interface IXMLDOMAttribute IXMLDOMAttribute;
+typedef struct IXMLDOMAttribute IXMLDOMAttribute;
 #endif
 
 #ifndef __IXMLDOMElement_FWD_DEFINED__
 #define __IXMLDOMElement_FWD_DEFINED__
-typedef interface IXMLDOMElement IXMLDOMElement;
+typedef struct IXMLDOMElement IXMLDOMElement;
 #endif
 
 #ifndef __IXMLDOMText_FWD_DEFINED__
 #define __IXMLDOMText_FWD_DEFINED__
-typedef interface IXMLDOMText IXMLDOMText;
+typedef struct IXMLDOMText IXMLDOMText;
 #endif
 
 #ifndef __IXMLDOMComment_FWD_DEFINED__
 #define __IXMLDOMComment_FWD_DEFINED__
-typedef interface IXMLDOMComment IXMLDOMComment;
+typedef struct IXMLDOMComment IXMLDOMComment;
 #endif
 
 #ifndef __IXMLDOMProcessingInstruction_FWD_DEFINED__
 #define __IXMLDOMProcessingInstruction_FWD_DEFINED__
-typedef interface IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction;
+typedef struct IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction;
 #endif
 
 #ifndef __IXMLDOMCDATASection_FWD_DEFINED__
 #define __IXMLDOMCDATASection_FWD_DEFINED__
-typedef interface IXMLDOMCDATASection IXMLDOMCDATASection;
+typedef struct IXMLDOMCDATASection IXMLDOMCDATASection;
 #endif
 
 #ifndef __IXMLDOMDocumentType_FWD_DEFINED__
 #define __IXMLDOMDocumentType_FWD_DEFINED__
-typedef interface IXMLDOMDocumentType IXMLDOMDocumentType;
+typedef struct IXMLDOMDocumentType IXMLDOMDocumentType;
 #endif
 
 #ifndef __IXMLDOMNotation_FWD_DEFINED__
 #define __IXMLDOMNotation_FWD_DEFINED__
-typedef interface IXMLDOMNotation IXMLDOMNotation;
+typedef struct IXMLDOMNotation IXMLDOMNotation;
 #endif
 
 #ifndef __IXMLDOMEntity_FWD_DEFINED__
 #define __IXMLDOMEntity_FWD_DEFINED__
-typedef interface IXMLDOMEntity IXMLDOMEntity;
+typedef struct IXMLDOMEntity IXMLDOMEntity;
 #endif
 
 #ifndef __IXMLDOMEntityReference_FWD_DEFINED__
 #define __IXMLDOMEntityReference_FWD_DEFINED__
-typedef interface IXMLDOMEntityReference IXMLDOMEntityReference;
+typedef struct IXMLDOMEntityReference IXMLDOMEntityReference;
 #endif
 
 #ifndef __IXMLDOMParseError_FWD_DEFINED__
 #define __IXMLDOMParseError_FWD_DEFINED__
-typedef interface IXMLDOMParseError IXMLDOMParseError;
+typedef struct IXMLDOMParseError IXMLDOMParseError;
 #endif
 
 #ifndef __IXMLDOMSchemaCollection_FWD_DEFINED__
 #define __IXMLDOMSchemaCollection_FWD_DEFINED__
-typedef interface IXMLDOMSchemaCollection IXMLDOMSchemaCollection;
+typedef struct IXMLDOMSchemaCollection IXMLDOMSchemaCollection;
 #endif
 
 #ifndef __IXTLRuntime_FWD_DEFINED__
 #define __IXTLRuntime_FWD_DEFINED__
-typedef interface IXTLRuntime IXTLRuntime;
+typedef struct IXTLRuntime IXTLRuntime;
 #endif
 
 #ifndef __IXSLTemplate_FWD_DEFINED__
 #define __IXSLTemplate_FWD_DEFINED__
-typedef interface IXSLTemplate IXSLTemplate;
+typedef struct IXSLTemplate IXSLTemplate;
 #endif
 
 #ifndef __IXSLProcessor_FWD_DEFINED__
 #define __IXSLProcessor_FWD_DEFINED__
-typedef interface IXSLProcessor IXSLProcessor;
+typedef struct IXSLProcessor IXSLProcessor;
 #endif
 
 #ifndef __ISAXXMLReader_FWD_DEFINED__
 #define __ISAXXMLReader_FWD_DEFINED__
-typedef interface ISAXXMLReader ISAXXMLReader;
+typedef struct ISAXXMLReader ISAXXMLReader;
 #endif
 
 #ifndef __ISAXXMLFilter_FWD_DEFINED__
 #define __ISAXXMLFilter_FWD_DEFINED__
-typedef interface ISAXXMLFilter ISAXXMLFilter;
+typedef struct ISAXXMLFilter ISAXXMLFilter;
 #endif
 
 #ifndef __ISAXLocator_FWD_DEFINED__
 #define __ISAXLocator_FWD_DEFINED__
-typedef interface ISAXLocator ISAXLocator;
+typedef struct ISAXLocator ISAXLocator;
 #endif
 
 #ifndef __ISAXEntityResolver_FWD_DEFINED__
 #define __ISAXEntityResolver_FWD_DEFINED__
-typedef interface ISAXEntityResolver ISAXEntityResolver;
+typedef struct ISAXEntityResolver ISAXEntityResolver;
 #endif
 
 #ifndef __ISAXContentHandler_FWD_DEFINED__
 #define __ISAXContentHandler_FWD_DEFINED__
-typedef interface ISAXContentHandler ISAXContentHandler;
+typedef struct ISAXContentHandler ISAXContentHandler;
 #endif
 
 #ifndef __ISAXDTDHandler_FWD_DEFINED__
 #define __ISAXDTDHandler_FWD_DEFINED__
-typedef interface ISAXDTDHandler ISAXDTDHandler;
+typedef struct ISAXDTDHandler ISAXDTDHandler;
 #endif
 
 #ifndef __ISAXErrorHandler_FWD_DEFINED__
 #define __ISAXErrorHandler_FWD_DEFINED__
-typedef interface ISAXErrorHandler ISAXErrorHandler;
+typedef struct ISAXErrorHandler ISAXErrorHandler;
 #endif
 
 #ifndef __ISAXLexicalHandler_FWD_DEFINED__
 #define __ISAXLexicalHandler_FWD_DEFINED__
-typedef interface ISAXLexicalHandler ISAXLexicalHandler;
+typedef struct ISAXLexicalHandler ISAXLexicalHandler;
 #endif
 
 #ifndef __ISAXDeclHandler_FWD_DEFINED__
 #define __ISAXDeclHandler_FWD_DEFINED__
-typedef interface ISAXDeclHandler ISAXDeclHandler;
+typedef struct ISAXDeclHandler ISAXDeclHandler;
 #endif
 
 #ifndef __ISAXAttributes_FWD_DEFINED__
 #define __ISAXAttributes_FWD_DEFINED__
-typedef interface ISAXAttributes ISAXAttributes;
+typedef struct ISAXAttributes ISAXAttributes;
 #endif
 
 #ifndef __IVBSAXXMLReader_FWD_DEFINED__
 #define __IVBSAXXMLReader_FWD_DEFINED__
-typedef interface IVBSAXXMLReader IVBSAXXMLReader;
+typedef struct IVBSAXXMLReader IVBSAXXMLReader;
 #endif
 
 #ifndef __IVBSAXXMLFilter_FWD_DEFINED__
 #define __IVBSAXXMLFilter_FWD_DEFINED__
-typedef interface IVBSAXXMLFilter IVBSAXXMLFilter;
+typedef struct IVBSAXXMLFilter IVBSAXXMLFilter;
 #endif
 
 #ifndef __IVBSAXLocator_FWD_DEFINED__
 #define __IVBSAXLocator_FWD_DEFINED__
-typedef interface IVBSAXLocator IVBSAXLocator;
+typedef struct IVBSAXLocator IVBSAXLocator;
 #endif
 
 #ifndef __IVBSAXEntityResolver_FWD_DEFINED__
 #define __IVBSAXEntityResolver_FWD_DEFINED__
-typedef interface IVBSAXEntityResolver IVBSAXEntityResolver;
+typedef struct IVBSAXEntityResolver IVBSAXEntityResolver;
 #endif
 
 #ifndef __IVBSAXContentHandler_FWD_DEFINED__
 #define __IVBSAXContentHandler_FWD_DEFINED__
-typedef interface IVBSAXContentHandler IVBSAXContentHandler;
+typedef struct IVBSAXContentHandler IVBSAXContentHandler;
 #endif
 
 #ifndef __IVBSAXDTDHandler_FWD_DEFINED__
 #define __IVBSAXDTDHandler_FWD_DEFINED__
-typedef interface IVBSAXDTDHandler IVBSAXDTDHandler;
+typedef struct IVBSAXDTDHandler IVBSAXDTDHandler;
 #endif
 
 #ifndef __IVBSAXErrorHandler_FWD_DEFINED__
 #define __IVBSAXErrorHandler_FWD_DEFINED__
-typedef interface IVBSAXErrorHandler IVBSAXErrorHandler;
+typedef struct IVBSAXErrorHandler IVBSAXErrorHandler;
 #endif
 
 #ifndef __IVBSAXLexicalHandler_FWD_DEFINED__
 #define __IVBSAXLexicalHandler_FWD_DEFINED__
-typedef interface IVBSAXLexicalHandler IVBSAXLexicalHandler;
+typedef struct IVBSAXLexicalHandler IVBSAXLexicalHandler;
 #endif
 
 #ifndef __IVBSAXDeclHandler_FWD_DEFINED__
 #define __IVBSAXDeclHandler_FWD_DEFINED__
-typedef interface IVBSAXDeclHandler IVBSAXDeclHandler;
+typedef struct IVBSAXDeclHandler IVBSAXDeclHandler;
 #endif
 
 #ifndef __IVBSAXAttributes_FWD_DEFINED__
 #define __IVBSAXAttributes_FWD_DEFINED__
-typedef interface IVBSAXAttributes IVBSAXAttributes;
+typedef struct IVBSAXAttributes IVBSAXAttributes;
 #endif
 
 #ifndef __IMXWriter_FWD_DEFINED__
 #define __IMXWriter_FWD_DEFINED__
-typedef interface IMXWriter IMXWriter;
+typedef struct IMXWriter IMXWriter;
 #endif
 
 #ifndef __IMXAttributes_FWD_DEFINED__
 #define __IMXAttributes_FWD_DEFINED__
-typedef interface IMXAttributes IMXAttributes;
+typedef struct IMXAttributes IMXAttributes;
 #endif
 
 #ifndef __IMXReaderControl_FWD_DEFINED__
 #define __IMXReaderControl_FWD_DEFINED__
-typedef interface IMXReaderControl IMXReaderControl;
+typedef struct IMXReaderControl IMXReaderControl;
 #endif
 
 #ifndef __IMXSchemaDeclHandler_FWD_DEFINED__
 #define __IMXSchemaDeclHandler_FWD_DEFINED__
-typedef interface IMXSchemaDeclHandler IMXSchemaDeclHandler;
+typedef struct IMXSchemaDeclHandler IMXSchemaDeclHandler;
 #endif
 
 #ifndef __IXMLDOMSchemaCollection2_FWD_DEFINED__
 #define __IXMLDOMSchemaCollection2_FWD_DEFINED__
-typedef interface IXMLDOMSchemaCollection2 IXMLDOMSchemaCollection2;
+typedef struct IXMLDOMSchemaCollection2 IXMLDOMSchemaCollection2;
 #endif
 
 #ifndef __ISchemaStringCollection_FWD_DEFINED__
 #define __ISchemaStringCollection_FWD_DEFINED__
-typedef interface ISchemaStringCollection ISchemaStringCollection;
+typedef struct ISchemaStringCollection ISchemaStringCollection;
 #endif
 
 #ifndef __ISchemaItemCollection_FWD_DEFINED__
 #define __ISchemaItemCollection_FWD_DEFINED__
-typedef interface ISchemaItemCollection ISchemaItemCollection;
+typedef struct ISchemaItemCollection ISchemaItemCollection;
 #endif
 
 #ifndef __ISchemaItem_FWD_DEFINED__
 #define __ISchemaItem_FWD_DEFINED__
-typedef interface ISchemaItem ISchemaItem;
+typedef struct ISchemaItem ISchemaItem;
 #endif
 
 #ifndef __ISchema_FWD_DEFINED__
 #define __ISchema_FWD_DEFINED__
-typedef interface ISchema ISchema;
+typedef struct ISchema ISchema;
 #endif
 
 #ifndef __ISchemaParticle_FWD_DEFINED__
 #define __ISchemaParticle_FWD_DEFINED__
-typedef interface ISchemaParticle ISchemaParticle;
+typedef struct ISchemaParticle ISchemaParticle;
 #endif
 
 #ifndef __ISchemaAttribute_FWD_DEFINED__
 #define __ISchemaAttribute_FWD_DEFINED__
-typedef interface ISchemaAttribute ISchemaAttribute;
+typedef struct ISchemaAttribute ISchemaAttribute;
 #endif
 
 #ifndef __ISchemaElement_FWD_DEFINED__
 #define __ISchemaElement_FWD_DEFINED__
-typedef interface ISchemaElement ISchemaElement;
+typedef struct ISchemaElement ISchemaElement;
 #endif
 
 #ifndef __ISchemaType_FWD_DEFINED__
 #define __ISchemaType_FWD_DEFINED__
-typedef interface ISchemaType ISchemaType;
+typedef struct ISchemaType ISchemaType;
 #endif
 
 #ifndef __ISchemaComplexType_FWD_DEFINED__
 #define __ISchemaComplexType_FWD_DEFINED__
-typedef interface ISchemaComplexType ISchemaComplexType;
+typedef struct ISchemaComplexType ISchemaComplexType;
 #endif
 
 #ifndef __ISchemaAttributeGroup_FWD_DEFINED__
 #define __ISchemaAttributeGroup_FWD_DEFINED__
-typedef interface ISchemaAttributeGroup ISchemaAttributeGroup;
+typedef struct ISchemaAttributeGroup ISchemaAttributeGroup;
 #endif
 
 #ifndef __ISchemaModelGroup_FWD_DEFINED__
 #define __ISchemaModelGroup_FWD_DEFINED__
-typedef interface ISchemaModelGroup ISchemaModelGroup;
+typedef struct ISchemaModelGroup ISchemaModelGroup;
 #endif
 
 #ifndef __ISchemaAny_FWD_DEFINED__
 #define __ISchemaAny_FWD_DEFINED__
-typedef interface ISchemaAny ISchemaAny;
+typedef struct ISchemaAny ISchemaAny;
 #endif
 
 #ifndef __ISchemaIdentityConstraint_FWD_DEFINED__
 #define __ISchemaIdentityConstraint_FWD_DEFINED__
-typedef interface ISchemaIdentityConstraint ISchemaIdentityConstraint;
+typedef struct ISchemaIdentityConstraint ISchemaIdentityConstraint;
 #endif
 
 #ifndef __ISchemaNotation_FWD_DEFINED__
 #define __ISchemaNotation_FWD_DEFINED__
-typedef interface ISchemaNotation ISchemaNotation;
+typedef struct ISchemaNotation ISchemaNotation;
 #endif
 
 #ifndef __IXMLElementCollection_FWD_DEFINED__
 #define __IXMLElementCollection_FWD_DEFINED__
-typedef interface IXMLElementCollection IXMLElementCollection;
+typedef struct IXMLElementCollection IXMLElementCollection;
 #endif
 
 #ifndef __IXMLDocument_FWD_DEFINED__
 #define __IXMLDocument_FWD_DEFINED__
-typedef interface IXMLDocument IXMLDocument;
+typedef struct IXMLDocument IXMLDocument;
 #endif
 
 #ifndef __IXMLDocument2_FWD_DEFINED__
 #define __IXMLDocument2_FWD_DEFINED__
-typedef interface IXMLDocument2 IXMLDocument2;
+typedef struct IXMLDocument2 IXMLDocument2;
 #endif
 
 #ifndef __IXMLElement_FWD_DEFINED__
 #define __IXMLElement_FWD_DEFINED__
-typedef interface IXMLElement IXMLElement;
+typedef struct IXMLElement IXMLElement;
 #endif
 
 #ifndef __IXMLElement2_FWD_DEFINED__
 #define __IXMLElement2_FWD_DEFINED__
-typedef interface IXMLElement2 IXMLElement2;
+typedef struct IXMLElement2 IXMLElement2;
 #endif
 
 #ifndef __IXMLAttribute_FWD_DEFINED__
 #define __IXMLAttribute_FWD_DEFINED__
-typedef interface IXMLAttribute IXMLAttribute;
+typedef struct IXMLAttribute IXMLAttribute;
 #endif
 
 #ifndef __IXMLError_FWD_DEFINED__
 #define __IXMLError_FWD_DEFINED__
-typedef interface IXMLError IXMLError;
+typedef struct IXMLError IXMLError;
 #endif
 
 #ifndef __IXMLDOMSelection_FWD_DEFINED__
 #define __IXMLDOMSelection_FWD_DEFINED__
-typedef interface IXMLDOMSelection IXMLDOMSelection;
+typedef struct IXMLDOMSelection IXMLDOMSelection;
 #endif
 
 #ifndef __XMLDOMDocumentEvents_FWD_DEFINED__
 #define __XMLDOMDocumentEvents_FWD_DEFINED__
-typedef interface XMLDOMDocumentEvents XMLDOMDocumentEvents;
+typedef struct XMLDOMDocumentEvents XMLDOMDocumentEvents;
 #endif
 
 #ifndef __IDSOControl_FWD_DEFINED__
 #define __IDSOControl_FWD_DEFINED__
-typedef interface IDSOControl IDSOControl;
+typedef struct IDSOControl IDSOControl;
 #endif
 
 #ifndef __IXMLHTTPRequest_FWD_DEFINED__
 #define __IXMLHTTPRequest_FWD_DEFINED__
-typedef interface IXMLHTTPRequest IXMLHTTPRequest;
+typedef struct IXMLHTTPRequest IXMLHTTPRequest;
 #endif
 
 #ifndef __IServerXMLHTTPRequest_FWD_DEFINED__
 #define __IServerXMLHTTPRequest_FWD_DEFINED__
-typedef interface IServerXMLHTTPRequest IServerXMLHTTPRequest;
+typedef struct IServerXMLHTTPRequest IServerXMLHTTPRequest;
 #endif
 
 #ifndef __IServerXMLHTTPRequest2_FWD_DEFINED__
 #define __IServerXMLHTTPRequest2_FWD_DEFINED__
-typedef interface IServerXMLHTTPRequest2 IServerXMLHTTPRequest2;
+typedef struct IServerXMLHTTPRequest2 IServerXMLHTTPRequest2;
 #endif
 
 #ifndef __IMXNamespacePrefixes_FWD_DEFINED__
 #define __IMXNamespacePrefixes_FWD_DEFINED__
-typedef interface IMXNamespacePrefixes IMXNamespacePrefixes;
+typedef struct IMXNamespacePrefixes IMXNamespacePrefixes;
 #endif
 
 #ifndef __IVBMXNamespaceManager_FWD_DEFINED__
 #define __IVBMXNamespaceManager_FWD_DEFINED__
-typedef interface IVBMXNamespaceManager IVBMXNamespaceManager;
+typedef struct IVBMXNamespaceManager IVBMXNamespaceManager;
 #endif
 
 #ifndef __IMXNamespaceManager_FWD_DEFINED__
 #define __IMXNamespaceManager_FWD_DEFINED__
-typedef interface IMXNamespaceManager IMXNamespaceManager;
+typedef struct IMXNamespaceManager IMXNamespaceManager;
 #endif
 
 #ifndef __DOMDocument_FWD_DEFINED__
@@ -929,7 +929,7 @@
 	HRESULT (WINAPI *hasFeature)(IXMLDOMImplementation *This,BSTR feature,BSTR version,VARIANT_BOOL *hasFeature);
       END_INTERFACE
     } IXMLDOMImplementationVtbl;
-    interface IXMLDOMImplementation {
+    struct IXMLDOMImplementation {
       CONST_VTBL struct IXMLDOMImplementationVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -1038,7 +1038,7 @@
 	HRESULT (WINAPI *transformNodeToObject)(IXMLDOMNode *This,IXMLDOMNode *stylesheet,VARIANT outputObject);
       END_INTERFACE
     } IXMLDOMNodeVtbl;
-    interface IXMLDOMNode {
+    struct IXMLDOMNode {
       CONST_VTBL struct IXMLDOMNodeVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -1215,7 +1215,7 @@
 	HRESULT (WINAPI *transformNodeToObject)(IXMLDOMDocumentFragment *This,IXMLDOMNode *stylesheet,VARIANT outputObject);
       END_INTERFACE
     } IXMLDOMDocumentFragmentVtbl;
-    interface IXMLDOMDocumentFragment {
+    struct IXMLDOMDocumentFragment {
       CONST_VTBL struct IXMLDOMDocumentFragmentVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -1387,7 +1387,7 @@
 	HRESULT (WINAPI *put_ontransformnode)(IXMLDOMDocument *This,VARIANT ontransformnodeSink);
       END_INTERFACE
     } IXMLDOMDocumentVtbl;
-    interface IXMLDOMDocument {
+    struct IXMLDOMDocument {
       CONST_VTBL struct IXMLDOMDocumentVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -1637,7 +1637,7 @@
 	HRESULT (WINAPI *getProperty)(IXMLDOMDocument2 *This,BSTR name,VARIANT *value);
       END_INTERFACE
     } IXMLDOMDocument2Vtbl;
-    interface IXMLDOMDocument2 {
+    struct IXMLDOMDocument2 {
       CONST_VTBL struct IXMLDOMDocument2Vtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -1768,7 +1768,7 @@
 	HRESULT (WINAPI *get__newEnum)(IXMLDOMNodeList *This,IUnknown **ppUnk);
       END_INTERFACE
     } IXMLDOMNodeListVtbl;
-    interface IXMLDOMNodeList {
+    struct IXMLDOMNodeList {
       CONST_VTBL struct IXMLDOMNodeListVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -1837,7 +1837,7 @@
 	HRESULT (WINAPI *get__newEnum)(IXMLDOMNamedNodeMap *This,IUnknown **ppUnk);
       END_INTERFACE
     } IXMLDOMNamedNodeMapVtbl;
-    interface IXMLDOMNamedNodeMap {
+    struct IXMLDOMNamedNodeMap {
       CONST_VTBL struct IXMLDOMNamedNodeMapVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -1953,7 +1953,7 @@
 	HRESULT (WINAPI *replaceData)(IXMLDOMCharacterData *This,long offset,long count,BSTR data);
       END_INTERFACE
     } IXMLDOMCharacterDataVtbl;
-    interface IXMLDOMCharacterData {
+    struct IXMLDOMCharacterData {
       CONST_VTBL struct IXMLDOMCharacterDataVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -2089,7 +2089,7 @@
 	HRESULT (WINAPI *put_value)(IXMLDOMAttribute *This,VARIANT attributeValue);
       END_INTERFACE
     } IXMLDOMAttributeVtbl;
-    interface IXMLDOMAttribute {
+    struct IXMLDOMAttribute {
       CONST_VTBL struct IXMLDOMAttributeVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -2222,7 +2222,7 @@
 	HRESULT (WINAPI *normalize)(IXMLDOMElement *This);
       END_INTERFACE
     } IXMLDOMElementVtbl;
-    interface IXMLDOMElement {
+    struct IXMLDOMElement {
       CONST_VTBL struct IXMLDOMElementVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -2365,7 +2365,7 @@
 	HRESULT (WINAPI *splitText)(IXMLDOMText *This,long offset,IXMLDOMText **rightHandTextNode);
       END_INTERFACE
     } IXMLDOMTextVtbl;
-    interface IXMLDOMText {
+    struct IXMLDOMText {
       CONST_VTBL struct IXMLDOMTextVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -2490,7 +2490,7 @@
 	HRESULT (WINAPI *replaceData)(IXMLDOMComment *This,long offset,long count,BSTR data);
       END_INTERFACE
     } IXMLDOMCommentVtbl;
-    interface IXMLDOMComment {
+    struct IXMLDOMComment {
       CONST_VTBL struct IXMLDOMCommentVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -2610,7 +2610,7 @@
 	HRESULT (WINAPI *put_data)(IXMLDOMProcessingInstruction *This,BSTR value);
       END_INTERFACE
     } IXMLDOMProcessingInstructionVtbl;
-    interface IXMLDOMProcessingInstruction {
+    struct IXMLDOMProcessingInstruction {
       CONST_VTBL struct IXMLDOMProcessingInstructionVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -2733,7 +2733,7 @@
 	HRESULT (WINAPI *splitText)(IXMLDOMCDATASection *This,long offset,IXMLDOMText **rightHandTextNode);
       END_INTERFACE
     } IXMLDOMCDATASectionVtbl;
-    interface IXMLDOMCDATASection {
+    struct IXMLDOMCDATASection {
       CONST_VTBL struct IXMLDOMCDATASectionVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -2854,7 +2854,7 @@
 	HRESULT (WINAPI *get_notations)(IXMLDOMDocumentType *This,IXMLDOMNamedNodeMap **notationMap);
       END_INTERFACE
     } IXMLDOMDocumentTypeVtbl;
-    interface IXMLDOMDocumentType {
+    struct IXMLDOMDocumentType {
       CONST_VTBL struct IXMLDOMDocumentTypeVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -2974,7 +2974,7 @@
 	HRESULT (WINAPI *get_systemId)(IXMLDOMNotation *This,VARIANT *systemID);
       END_INTERFACE
     } IXMLDOMNotationVtbl;
-    interface IXMLDOMNotation {
+    struct IXMLDOMNotation {
       CONST_VTBL struct IXMLDOMNotationVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3092,7 +3092,7 @@
 	HRESULT (WINAPI *get_notationName)(IXMLDOMEntity *This,BSTR *name);
       END_INTERFACE
     } IXMLDOMEntityVtbl;
-    interface IXMLDOMEntity {
+    struct IXMLDOMEntity {
       CONST_VTBL struct IXMLDOMEntityVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3206,7 +3206,7 @@
 	HRESULT (WINAPI *transformNodeToObject)(IXMLDOMEntityReference *This,IXMLDOMNode *stylesheet,VARIANT outputObject);
       END_INTERFACE
     } IXMLDOMEntityReferenceVtbl;
-    interface IXMLDOMEntityReference {
+    struct IXMLDOMEntityReference {
       CONST_VTBL struct IXMLDOMEntityReferenceVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3290,7 +3290,7 @@
 	HRESULT (WINAPI *get_filepos)(IXMLDOMParseError *This,long *filePosition);
       END_INTERFACE
     } IXMLDOMParseErrorVtbl;
-    interface IXMLDOMParseError {
+    struct IXMLDOMParseError {
       CONST_VTBL struct IXMLDOMParseErrorVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3359,7 +3359,7 @@
 	HRESULT (WINAPI *get__newEnum)(IXMLDOMSchemaCollection *This,IUnknown **ppUnk);
       END_INTERFACE
     } IXMLDOMSchemaCollectionVtbl;
-    interface IXMLDOMSchemaCollection {
+    struct IXMLDOMSchemaCollection {
       CONST_VTBL struct IXMLDOMSchemaCollectionVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3468,7 +3468,7 @@
 	HRESULT (WINAPI *formatTime)(IXTLRuntime *This,VARIANT varTime,BSTR bstrFormat,VARIANT varDestLocale,BSTR *pbstrFormattedString);
       END_INTERFACE
     } IXTLRuntimeVtbl;
-    interface IXTLRuntime {
+    struct IXTLRuntime {
       CONST_VTBL struct IXTLRuntimeVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3571,7 +3571,7 @@
 	HRESULT (WINAPI *createProcessor)(IXSLTemplate *This,IXSLProcessor **ppProcessor);
       END_INTERFACE
     } IXSLTemplateVtbl;
-    interface IXSLTemplate {
+    struct IXSLTemplate {
       CONST_VTBL struct IXSLTemplateVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3642,7 +3642,7 @@
 	HRESULT (WINAPI *get_stylesheet)(IXSLProcessor *This,IXMLDOMNode **stylesheet);
       END_INTERFACE
     } IXSLProcessorVtbl;
-    interface IXSLProcessor {
+    struct IXSLProcessor {
       CONST_VTBL struct IXSLProcessorVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3750,7 +3750,7 @@
 	HRESULT (WINAPI *parseURL)(ISAXXMLReader *This,const wchar_t *pwchUrl);
       END_INTERFACE
     } ISAXXMLReaderVtbl;
-    interface ISAXXMLReader {
+    struct ISAXXMLReader {
       CONST_VTBL struct ISAXXMLReaderVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3852,7 +3852,7 @@
 	HRESULT (WINAPI *putParent)(ISAXXMLFilter *This,ISAXXMLReader *pReader);
       END_INTERFACE
     } ISAXXMLFilterVtbl;
-    interface ISAXXMLFilter {
+    struct ISAXXMLFilter {
       CONST_VTBL struct ISAXXMLFilterVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3910,7 +3910,7 @@
 	HRESULT (WINAPI *getSystemId)(ISAXLocator *This,const wchar_t **ppwchSystemId);
       END_INTERFACE
     } ISAXLocatorVtbl;
-    interface ISAXLocator {
+    struct ISAXLocator {
       CONST_VTBL struct ISAXLocatorVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -3950,7 +3950,7 @@
 	HRESULT (WINAPI *resolveEntity)(ISAXEntityResolver *This,const wchar_t *pwchPublicId,const wchar_t *pwchSystemId,VARIANT *pvarInput);
       END_INTERFACE
     } ISAXEntityResolverVtbl;
-    interface ISAXEntityResolver {
+    struct ISAXEntityResolver {
       CONST_VTBL struct ISAXEntityResolverVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4001,7 +4001,7 @@
 	HRESULT (WINAPI *skippedEntity)(ISAXContentHandler *This,const wchar_t *pwchName,int cchName);
       END_INTERFACE
     } ISAXContentHandlerVtbl;
-    interface ISAXContentHandler {
+    struct ISAXContentHandler {
       CONST_VTBL struct ISAXContentHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4064,7 +4064,7 @@
 	HRESULT (WINAPI *unparsedEntityDecl)(ISAXDTDHandler *This,const wchar_t *pwchName,int cchName,const wchar_t *pwchPublicId,int cchPublicId,const wchar_t *pwchSystemId,int cchSystemId,const wchar_t *pwchNotationName,int cchNotationName);
       END_INTERFACE
     } ISAXDTDHandlerVtbl;
-    interface ISAXDTDHandler {
+    struct ISAXDTDHandler {
       CONST_VTBL struct ISAXDTDHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4102,7 +4102,7 @@
 	HRESULT (WINAPI *ignorableWarning)(ISAXErrorHandler *This,ISAXLocator *pLocator,const wchar_t *pwchErrorMessage,HRESULT hrErrorCode);
       END_INTERFACE
     } ISAXErrorHandlerVtbl;
-    interface ISAXErrorHandler {
+    struct ISAXErrorHandler {
       CONST_VTBL struct ISAXErrorHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4151,7 +4151,7 @@
 	HRESULT (WINAPI *comment)(ISAXLexicalHandler *This,const wchar_t *pwchChars,int cchChars);
       END_INTERFACE
     } ISAXLexicalHandlerVtbl;
-    interface ISAXLexicalHandler {
+    struct ISAXLexicalHandler {
       CONST_VTBL struct ISAXLexicalHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4206,7 +4206,7 @@
 	HRESULT (WINAPI *externalEntityDecl)(ISAXDeclHandler *This,const wchar_t *pwchName,int cchName,const wchar_t *pwchPublicId,int cchPublicId,const wchar_t *pwchSystemId,int cchSystemId);
       END_INTERFACE
     } ISAXDeclHandlerVtbl;
-    interface ISAXDeclHandler {
+    struct ISAXDeclHandler {
       CONST_VTBL struct ISAXDeclHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4270,7 +4270,7 @@
 	HRESULT (WINAPI *getValueFromQName)(ISAXAttributes *This,const wchar_t *pwchQName,int cchQName,const wchar_t **ppwchValue,int *pcchValue);
       END_INTERFACE
     } ISAXAttributesVtbl;
-    interface ISAXAttributes {
+    struct ISAXAttributes {
       CONST_VTBL struct ISAXAttributesVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4375,7 +4375,7 @@
 	HRESULT (WINAPI *parseURL)(IVBSAXXMLReader *This,BSTR strURL);
       END_INTERFACE
     } IVBSAXXMLReaderVtbl;
-    interface IVBSAXXMLReader {
+    struct IVBSAXXMLReader {
       CONST_VTBL struct IVBSAXXMLReaderVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4467,7 +4467,7 @@
 	HRESULT (WINAPI *putref_parent)(IVBSAXXMLFilter *This,IVBSAXXMLReader *oReader);
       END_INTERFACE
     } IVBSAXXMLFilterVtbl;
-    interface IVBSAXXMLFilter {
+    struct IVBSAXXMLFilter {
       CONST_VTBL struct IVBSAXXMLFilterVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4515,7 +4515,7 @@
 	HRESULT (WINAPI *get_systemId)(IVBSAXLocator *This,BSTR *strSystemId);
       END_INTERFACE
     } IVBSAXLocatorVtbl;
-    interface IVBSAXLocator {
+    struct IVBSAXLocator {
       CONST_VTBL struct IVBSAXLocatorVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4563,7 +4563,7 @@
 	HRESULT (WINAPI *resolveEntity)(IVBSAXEntityResolver *This,BSTR *strPublicId,BSTR *strSystemId,VARIANT *varInput);
       END_INTERFACE
     } IVBSAXEntityResolverVtbl;
-    interface IVBSAXEntityResolver {
+    struct IVBSAXEntityResolver {
       CONST_VTBL struct IVBSAXEntityResolverVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4622,7 +4622,7 @@
 	HRESULT (WINAPI *skippedEntity)(IVBSAXContentHandler *This,BSTR *strName);
       END_INTERFACE
     } IVBSAXContentHandlerVtbl;
-    interface IVBSAXContentHandler {
+    struct IVBSAXContentHandler {
       CONST_VTBL struct IVBSAXContentHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4693,7 +4693,7 @@
 	HRESULT (WINAPI *unparsedEntityDecl)(IVBSAXDTDHandler *This,BSTR *strName,BSTR *strPublicId,BSTR *strSystemId,BSTR *strNotationName);
       END_INTERFACE
     } IVBSAXDTDHandlerVtbl;
-    interface IVBSAXDTDHandler {
+    struct IVBSAXDTDHandler {
       CONST_VTBL struct IVBSAXDTDHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4739,7 +4739,7 @@
 	HRESULT (WINAPI *ignorableWarning)(IVBSAXErrorHandler *This,IVBSAXLocator *oLocator,BSTR *strErrorMessage,long nErrorCode);
       END_INTERFACE
     } IVBSAXErrorHandlerVtbl;
-    interface IVBSAXErrorHandler {
+    struct IVBSAXErrorHandler {
       CONST_VTBL struct IVBSAXErrorHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4796,7 +4796,7 @@
 	HRESULT (WINAPI *comment)(IVBSAXLexicalHandler *This,BSTR *strChars);
       END_INTERFACE
     } IVBSAXLexicalHandlerVtbl;
-    interface IVBSAXLexicalHandler {
+    struct IVBSAXLexicalHandler {
       CONST_VTBL struct IVBSAXLexicalHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4859,7 +4859,7 @@
 	HRESULT (WINAPI *externalEntityDecl)(IVBSAXDeclHandler *This,BSTR *strName,BSTR *strPublicId,BSTR *strSystemId);
       END_INTERFACE
     } IVBSAXDeclHandlerVtbl;
-    interface IVBSAXDeclHandler {
+    struct IVBSAXDeclHandler {
       CONST_VTBL struct IVBSAXDeclHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -4929,7 +4929,7 @@
 	HRESULT (WINAPI *getValueFromQName)(IVBSAXAttributes *This,BSTR strQName,BSTR *strValue);
       END_INTERFACE
     } IVBSAXAttributesVtbl;
-    interface IVBSAXAttributes {
+    struct IVBSAXAttributes {
       CONST_VTBL struct IVBSAXAttributesVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5033,7 +5033,7 @@
 	HRESULT (WINAPI *flush)(IMXWriter *This);
       END_INTERFACE
     } IMXWriterVtbl;
-    interface IMXWriter {
+    struct IMXWriter {
       CONST_VTBL struct IMXWriterVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5141,7 +5141,7 @@
 	HRESULT (WINAPI *setValue)(IMXAttributes *This,int nIndex,BSTR strValue);
       END_INTERFACE
     } IMXAttributesVtbl;
-    interface IMXAttributes {
+    struct IMXAttributes {
       CONST_VTBL struct IMXAttributesVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5214,7 +5214,7 @@
 	HRESULT (WINAPI *suspend)(IMXReaderControl *This);
       END_INTERFACE
     } IMXReaderControlVtbl;
-    interface IMXReaderControl {
+    struct IMXReaderControl {
       CONST_VTBL struct IMXReaderControlVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5259,7 +5259,7 @@
 	HRESULT (WINAPI *schemaElementDecl)(IMXSchemaDeclHandler *This,ISchemaElement *oSchemaElement);
       END_INTERFACE
     } IMXSchemaDeclHandlerVtbl;
-    interface IMXSchemaDeclHandler {
+    struct IMXSchemaDeclHandler {
       CONST_VTBL struct IMXSchemaDeclHandlerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5313,7 +5313,7 @@
 	HRESULT (WINAPI *getDeclaration)(IXMLDOMSchemaCollection2 *This,IXMLDOMNode *node,ISchemaItem **item);
       END_INTERFACE
     } IXMLDOMSchemaCollection2Vtbl;
-    interface IXMLDOMSchemaCollection2 {
+    struct IXMLDOMSchemaCollection2 {
       CONST_VTBL struct IXMLDOMSchemaCollection2Vtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5375,7 +5375,7 @@
 	HRESULT (WINAPI *get__newEnum)(ISchemaStringCollection *This,IUnknown **ppunk);
       END_INTERFACE
     } ISchemaStringCollectionVtbl;
-    interface ISchemaStringCollection {
+    struct ISchemaStringCollection {
       CONST_VTBL struct ISchemaStringCollectionVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5428,7 +5428,7 @@
 	HRESULT (WINAPI *get__newEnum)(ISchemaItemCollection *This,IUnknown **ppunk);
       END_INTERFACE
     } ISchemaItemCollectionVtbl;
-    interface ISchemaItemCollection {
+    struct ISchemaItemCollection {
       CONST_VTBL struct ISchemaItemCollectionVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5491,7 +5491,7 @@
 	HRESULT (WINAPI *writeAnnotation)(ISchemaItem *This,IUnknown *annotationSink,VARIANT_BOOL *isWritten);
       END_INTERFACE
     } ISchemaItemVtbl;
-    interface ISchemaItem {
+    struct ISchemaItem {
       CONST_VTBL struct ISchemaItemVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5571,7 +5571,7 @@
 	HRESULT (WINAPI *get_schemaLocations)(ISchema *This,ISchemaStringCollection **schemaLocations);
       END_INTERFACE
     } ISchemaVtbl;
-    interface ISchema {
+    struct ISchema {
       CONST_VTBL struct ISchemaVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5650,7 +5650,7 @@
 	HRESULT (WINAPI *get_maxOccurs)(ISchemaParticle *This,VARIANT *maxOccurs);
       END_INTERFACE
     } ISchemaParticleVtbl;
-    interface ISchemaParticle {
+    struct ISchemaParticle {
       CONST_VTBL struct ISchemaParticleVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5716,7 +5716,7 @@
 	HRESULT (WINAPI *get_isReference)(ISchemaAttribute *This,VARIANT_BOOL *reference);
       END_INTERFACE
     } ISchemaAttributeVtbl;
-    interface ISchemaAttribute {
+    struct ISchemaAttribute {
       CONST_VTBL struct ISchemaAttributeVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5806,7 +5806,7 @@
 	HRESULT (WINAPI *get_isReference)(ISchemaElement *This,VARIANT_BOOL *reference);
       END_INTERFACE
     } ISchemaElementVtbl;
-    interface ISchemaElement {
+    struct ISchemaElement {
       CONST_VTBL struct ISchemaElementVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -5923,7 +5923,7 @@
 	HRESULT (WINAPI *get_patterns)(ISchemaType *This,ISchemaStringCollection **patterns);
       END_INTERFACE
     } ISchemaTypeVtbl;
-    interface ISchemaType {
+    struct ISchemaType {
       CONST_VTBL struct ISchemaTypeVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6051,7 +6051,7 @@
 	HRESULT (WINAPI *get_prohibitedSubstitutions)(ISchemaComplexType *This,SCHEMADERIVATIONMETHOD *prohibited);
       END_INTERFACE
     } ISchemaComplexTypeVtbl;
-    interface ISchemaComplexType {
+    struct ISchemaComplexType {
       CONST_VTBL struct ISchemaComplexTypeVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6139,7 +6139,7 @@
 	HRESULT (WINAPI *get_attributes)(ISchemaAttributeGroup *This,ISchemaItemCollection **attributes);
       END_INTERFACE
     } ISchemaAttributeGroupVtbl;
-    interface ISchemaAttributeGroup {
+    struct ISchemaAttributeGroup {
       CONST_VTBL struct ISchemaAttributeGroupVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6197,7 +6197,7 @@
 	HRESULT (WINAPI *get_particles)(ISchemaModelGroup *This,ISchemaItemCollection **particles);
       END_INTERFACE
     } ISchemaModelGroupVtbl;
-    interface ISchemaModelGroup {
+    struct ISchemaModelGroup {
       CONST_VTBL struct ISchemaModelGroupVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6256,7 +6256,7 @@
 	HRESULT (WINAPI *get_processContents)(ISchemaAny *This,SCHEMAPROCESSCONTENTS *processContents);
       END_INTERFACE
     } ISchemaAnyVtbl;
-    interface ISchemaAny {
+    struct ISchemaAny {
       CONST_VTBL struct ISchemaAnyVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6318,7 +6318,7 @@
 	HRESULT (WINAPI *get_referencedKey)(ISchemaIdentityConstraint *This,ISchemaIdentityConstraint **key);
       END_INTERFACE
     } ISchemaIdentityConstraintVtbl;
-    interface ISchemaIdentityConstraint {
+    struct ISchemaIdentityConstraint {
       CONST_VTBL struct ISchemaIdentityConstraintVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6379,7 +6379,7 @@
 	HRESULT (WINAPI *get_publicIdentifier)(ISchemaNotation *This,BSTR *uri);
       END_INTERFACE
     } ISchemaNotationVtbl;
-    interface ISchemaNotation {
+    struct ISchemaNotation {
       CONST_VTBL struct ISchemaNotationVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6434,7 +6434,7 @@
 	HRESULT (WINAPI *item)(IXMLElementCollection *This,VARIANT var1,VARIANT var2,IDispatch **ppDisp);
       END_INTERFACE
     } IXMLElementCollectionVtbl;
-    interface IXMLElementCollection {
+    struct IXMLElementCollection {
       CONST_VTBL struct IXMLElementCollectionVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6508,7 +6508,7 @@
 	HRESULT (WINAPI *createElement)(IXMLDocument *This,VARIANT vType,VARIANT var1,IXMLElement **ppElem);
       END_INTERFACE
     } IXMLDocumentVtbl;
-    interface IXMLDocument {
+    struct IXMLDocument {
       CONST_VTBL struct IXMLDocumentVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6616,7 +6616,7 @@
 	HRESULT (WINAPI *put_async)(IXMLDocument2 *This,VARIANT_BOOL f);
       END_INTERFACE
     } IXMLDocument2Vtbl;
-    interface IXMLDocument2 {
+    struct IXMLDocument2 {
       CONST_VTBL struct IXMLDocument2Vtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6722,7 +6722,7 @@
 	HRESULT (WINAPI *removeChild)(IXMLElement *This,IXMLElement *pChildElem);
       END_INTERFACE
     } IXMLElementVtbl;
-    interface IXMLElement {
+    struct IXMLElement {
       CONST_VTBL struct IXMLElementVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6818,7 +6818,7 @@
 	HRESULT (WINAPI *get_attributes)(IXMLElement2 *This,IXMLElementCollection **pp);
       END_INTERFACE
     } IXMLElement2Vtbl;
-    interface IXMLElement2 {
+    struct IXMLElement2 {
       CONST_VTBL struct IXMLElement2Vtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6895,7 +6895,7 @@
 	HRESULT (WINAPI *get_value)(IXMLAttribute *This,BSTR *v);
       END_INTERFACE
     } IXMLAttributeVtbl;
-    interface IXMLAttribute {
+    struct IXMLAttribute {
       CONST_VTBL struct IXMLAttributeVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6933,7 +6933,7 @@
 	HRESULT (WINAPI *GetErrorInfo)(IXMLError *This,XML_ERROR *pErrorReturn);
       END_INTERFACE
     } IXMLErrorVtbl;
-    interface IXMLError {
+    struct IXMLError {
       CONST_VTBL struct IXMLErrorVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -6993,7 +6993,7 @@
 	HRESULT (WINAPI *setProperty)(IXMLDOMSelection *This,BSTR name,VARIANT value);
       END_INTERFACE
     } IXMLDOMSelectionVtbl;
-    interface IXMLDOMSelection {
+    struct IXMLDOMSelection {
       CONST_VTBL struct IXMLDOMSelectionVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -7064,7 +7064,7 @@
 	HRESULT (WINAPI *Invoke)(XMLDOMDocumentEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
       END_INTERFACE
     } XMLDOMDocumentEventsVtbl;
-    interface XMLDOMDocumentEvents {
+    struct XMLDOMDocumentEvents {
       CONST_VTBL struct XMLDOMDocumentEventsVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -7108,7 +7108,7 @@
 	HRESULT (WINAPI *get_readyState)(IDSOControl *This,long *state);
       END_INTERFACE
     } IDSOControlVtbl;
-    interface IDSOControl {
+    struct IDSOControl {
       CONST_VTBL struct IDSOControlVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -7185,7 +7185,7 @@
 	HRESULT (WINAPI *put_onreadystatechange)(IXMLHTTPRequest *This,IDispatch *pReadyStateSink);
       END_INTERFACE
     } IXMLHTTPRequestVtbl;
-    interface IXMLHTTPRequest {
+    struct IXMLHTTPRequest {
       CONST_VTBL struct IXMLHTTPRequestVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -7283,7 +7283,7 @@
 	HRESULT (WINAPI *setOption)(IServerXMLHTTPRequest *This,SERVERXMLHTTP_OPTION option,VARIANT value);
       END_INTERFACE
     } IServerXMLHTTPRequestVtbl;
-    interface IServerXMLHTTPRequest {
+    struct IServerXMLHTTPRequest {
       CONST_VTBL struct IServerXMLHTTPRequestVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -7365,7 +7365,7 @@
 	HRESULT (WINAPI *setProxyCredentials)(IServerXMLHTTPRequest2 *This,BSTR bstrUserName,BSTR bstrPassword);
       END_INTERFACE
     } IServerXMLHTTPRequest2Vtbl;
-    interface IServerXMLHTTPRequest2 {
+    struct IServerXMLHTTPRequest2 {
       CONST_VTBL struct IServerXMLHTTPRequest2Vtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -7429,7 +7429,7 @@
 	HRESULT (WINAPI *get__newEnum)(IMXNamespacePrefixes *This,IUnknown **ppUnk);
       END_INTERFACE
     } IMXNamespacePrefixesVtbl;
-    interface IMXNamespacePrefixes {
+    struct IMXNamespacePrefixes {
       CONST_VTBL struct IMXNamespacePrefixesVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -7494,7 +7494,7 @@
 	HRESULT (WINAPI *getURIFromNode)(IVBMXNamespaceManager *This,BSTR strPrefix,IXMLDOMNode *contextNode,VARIANT *uri);
       END_INTERFACE
     } IVBMXNamespaceManagerVtbl;
-    interface IVBMXNamespaceManager {
+    struct IVBMXNamespaceManager {
       CONST_VTBL struct IVBMXNamespaceManagerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
@@ -7577,7 +7577,7 @@
 	HRESULT (WINAPI *getURI)(IMXNamespaceManager *This,const wchar_t *pwchPrefix,IXMLDOMNode *pContextNode,wchar_t *pwchUri,int *pcchUri);
       END_INTERFACE
     } IMXNamespaceManagerVtbl;
-    interface IMXNamespaceManager {
+    struct IMXNamespaceManager {
       CONST_VTBL struct IMXNamespaceManagerVtbl *lpVtbl;
     };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mtsadmin.h b/mingw-w64-headers/include/mtsadmin.h
index 5663661..e0dcd88 100755
--- a/mingw-w64-headers/include/mtsadmin.h
+++ b/mingw-w64-headers/include/mtsadmin.h
@@ -28,27 +28,27 @@
 
 #ifndef __ICatalog_FWD_DEFINED__
 #define __ICatalog_FWD_DEFINED__
-  typedef interface ICatalog ICatalog;
+  typedef struct ICatalog ICatalog;
 #endif
 
 #ifndef __IComponentUtil_FWD_DEFINED__
 #define __IComponentUtil_FWD_DEFINED__
-  typedef interface IComponentUtil IComponentUtil;
+  typedef struct IComponentUtil IComponentUtil;
 #endif
 
 #ifndef __IPackageUtil_FWD_DEFINED__
 #define __IPackageUtil_FWD_DEFINED__
-  typedef interface IPackageUtil IPackageUtil;
+  typedef struct IPackageUtil IPackageUtil;
 #endif
 
 #ifndef __IRemoteComponentUtil_FWD_DEFINED__
 #define __IRemoteComponentUtil_FWD_DEFINED__
-  typedef interface IRemoteComponentUtil IRemoteComponentUtil;
+  typedef struct IRemoteComponentUtil IRemoteComponentUtil;
 #endif
 
 #ifndef __IRoleAssociationUtil_FWD_DEFINED__
 #define __IRoleAssociationUtil_FWD_DEFINED__
-  typedef interface IRoleAssociationUtil IRoleAssociationUtil;
+  typedef struct IRoleAssociationUtil IRoleAssociationUtil;
 #endif
 
 #ifndef __Catalog_FWD_DEFINED__
@@ -152,7 +152,7 @@
       HRESULT (WINAPI *get_MinorVersion)(ICatalog *This,long *retval);
     END_INTERFACE
   } ICatalogVtbl;
-  interface ICatalog {
+  struct ICatalog {
     CONST_VTBL struct ICatalogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -206,7 +206,7 @@
       HRESULT (WINAPI *GetCLSIDs)(IComponentUtil *This,BSTR bstrDLLFile,BSTR bstrTypelibFile,SAFEARRAY **aCLSIDs);
     END_INTERFACE
   } IComponentUtilVtbl;
-  interface IComponentUtil {
+  struct IComponentUtil {
     CONST_VTBL struct IComponentUtilVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -258,7 +258,7 @@
       HRESULT (WINAPI *ShutdownPackage)(IPackageUtil *This,BSTR bstrPackageID);
     END_INTERFACE
   } IPackageUtilVtbl;
-  interface IPackageUtil {
+  struct IPackageUtil {
     CONST_VTBL struct IPackageUtilVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -305,7 +305,7 @@
       HRESULT (WINAPI *InstallRemoteComponentByName)(IRemoteComponentUtil *This,BSTR bstrServer,BSTR bstrPackageName,BSTR bstrProgID);
     END_INTERFACE
   } IRemoteComponentUtilVtbl;
-  interface IRemoteComponentUtil {
+  struct IRemoteComponentUtil {
     CONST_VTBL struct IRemoteComponentUtilVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -349,7 +349,7 @@
       HRESULT (WINAPI *AssociateRoleByName)(IRoleAssociationUtil *This,BSTR bstrRoleName);
     END_INTERFACE
   } IRoleAssociationUtilVtbl;
-  interface IRoleAssociationUtil {
+  struct IRoleAssociationUtil {
     CONST_VTBL struct IRoleAssociationUtilVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/mtxadmin.h b/mingw-w64-headers/include/mtxadmin.h
index e46bcc0..4b8d91f 100755
--- a/mingw-w64-headers/include/mtxadmin.h
+++ b/mingw-w64-headers/include/mtxadmin.h
@@ -19,37 +19,37 @@
 
 #ifndef __ICatalog_FWD_DEFINED__
 #define __ICatalog_FWD_DEFINED__
-  typedef interface ICatalog ICatalog;
+  typedef struct ICatalog ICatalog;
 #endif
 
 #ifndef __ICatalogObject_FWD_DEFINED__
 #define __ICatalogObject_FWD_DEFINED__
-  typedef interface ICatalogObject ICatalogObject;
+  typedef struct ICatalogObject ICatalogObject;
 #endif
 
 #ifndef __ICatalogCollection_FWD_DEFINED__
 #define __ICatalogCollection_FWD_DEFINED__
-  typedef interface ICatalogCollection ICatalogCollection;
+  typedef struct ICatalogCollection ICatalogCollection;
 #endif
 
 #ifndef __IComponentUtil_FWD_DEFINED__
 #define __IComponentUtil_FWD_DEFINED__
-  typedef interface IComponentUtil IComponentUtil;
+  typedef struct IComponentUtil IComponentUtil;
 #endif
 
 #ifndef __IPackageUtil_FWD_DEFINED__
 #define __IPackageUtil_FWD_DEFINED__
-  typedef interface IPackageUtil IPackageUtil;
+  typedef struct IPackageUtil IPackageUtil;
 #endif
 
 #ifndef __IRemoteComponentUtil_FWD_DEFINED__
 #define __IRemoteComponentUtil_FWD_DEFINED__
-  typedef interface IRemoteComponentUtil IRemoteComponentUtil;
+  typedef struct IRemoteComponentUtil IRemoteComponentUtil;
 #endif
 
 #ifndef __IRoleAssociationUtil_FWD_DEFINED__
 #define __IRoleAssociationUtil_FWD_DEFINED__
-  typedef interface IRoleAssociationUtil IRoleAssociationUtil;
+  typedef struct IRoleAssociationUtil IRoleAssociationUtil;
 #endif
 
 #ifndef __Catalog_FWD_DEFINED__
@@ -130,7 +130,7 @@
 #define __ICatalog_INTERFACE_DEFINED__
   EXTERN_C const IID IID_ICatalog;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface ICatalog : public IDispatch {
+  struct ICatalog : public IDispatch {
   public:
     virtual HRESULT WINAPI GetCollection(BSTR bstrCollName,IDispatch **ppCatalogCollection) = 0;
     virtual HRESULT WINAPI Connect(BSTR bstrConnectString,IDispatch **ppCatalogCollection) = 0;
@@ -153,7 +153,7 @@
       HRESULT (WINAPI *get_MinorVersion)(ICatalog *This,long *retval);
     END_INTERFACE
   } ICatalogVtbl;
-  interface ICatalog {
+  struct ICatalog {
     CONST_VTBL struct ICatalogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -184,7 +184,7 @@
 #define __ICatalogObject_INTERFACE_DEFINED__
   EXTERN_C const IID IID_ICatalogObject;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface ICatalogObject : public IDispatch {
+  struct ICatalogObject : public IDispatch {
   public:
     virtual HRESULT WINAPI get_Value(BSTR bstrPropName,VARIANT *retval) = 0;
     virtual HRESULT WINAPI put_Value(BSTR bstrPropName,VARIANT val) = 0;
@@ -213,7 +213,7 @@
       HRESULT (WINAPI *IsPropertyWriteOnly)(ICatalogObject *This,BSTR bstrPropName,VARIANT_BOOL *retval);
     END_INTERFACE
   } ICatalogObjectVtbl;
-  interface ICatalogObject {
+  struct ICatalogObject {
     CONST_VTBL struct ICatalogObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -253,7 +253,7 @@
 #define __ICatalogCollection_INTERFACE_DEFINED__
   EXTERN_C const IID IID_ICatalogCollection;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface ICatalogCollection : public IDispatch {
+  struct ICatalogCollection : public IDispatch {
   public:
     virtual HRESULT WINAPI get__NewEnum(IUnknown **ppEnumVariant) = 0;
     virtual HRESULT WINAPI get_Item(long lIndex,IDispatch **ppCatalogObject) = 0;
@@ -300,7 +300,7 @@
       HRESULT (WINAPI *PopulateByQuery)(ICatalogCollection *This,BSTR bstrQueryString,long lQueryType);
     END_INTERFACE
   } ICatalogCollectionVtbl;
-  interface ICatalogCollection {
+  struct ICatalogCollection {
     CONST_VTBL struct ICatalogCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -367,7 +367,7 @@
 #define __IComponentUtil_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IComponentUtil;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IComponentUtil : public IDispatch {
+  struct IComponentUtil : public IDispatch {
   public:
     virtual HRESULT WINAPI InstallComponent(BSTR bstrDLLFile,BSTR bstrTypelibFile,BSTR bstrProxyStubDLLFile) = 0;
     virtual HRESULT WINAPI ImportComponent(BSTR bstrCLSID) = 0;
@@ -390,7 +390,7 @@
       HRESULT (WINAPI *GetCLSIDs)(IComponentUtil *This,BSTR bstrDLLFile,BSTR bstrTypelibFile,SAFEARRAY **aCLSIDs);
     END_INTERFACE
   } IComponentUtilVtbl;
-  interface IComponentUtil {
+  struct IComponentUtil {
     CONST_VTBL struct IComponentUtilVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -421,7 +421,7 @@
 #define __IPackageUtil_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IPackageUtil;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IPackageUtil : public IDispatch {
+  struct IPackageUtil : public IDispatch {
   public:
     virtual HRESULT WINAPI InstallPackage(BSTR bstrPackageFile,BSTR bstrInstallPath,long lOptions) = 0;
     virtual HRESULT WINAPI ExportPackage(BSTR bstrPackageID,BSTR bstrPackageFile,long lOptions) = 0;
@@ -442,7 +442,7 @@
       HRESULT (WINAPI *ShutdownPackage)(IPackageUtil *This,BSTR bstrPackageID);
     END_INTERFACE
   } IPackageUtilVtbl;
-  interface IPackageUtil {
+  struct IPackageUtil {
     CONST_VTBL struct IPackageUtilVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -470,7 +470,7 @@
 #define __IRemoteComponentUtil_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IRemoteComponentUtil;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IRemoteComponentUtil : public IDispatch {
+  struct IRemoteComponentUtil : public IDispatch {
   public:
     virtual HRESULT WINAPI InstallRemoteComponent(BSTR bstrServer,BSTR bstrPackageID,BSTR bstrCLSID) = 0;
     virtual HRESULT WINAPI InstallRemoteComponentByName(BSTR bstrServer,BSTR bstrPackageName,BSTR bstrProgID) = 0;
@@ -489,7 +489,7 @@
       HRESULT (WINAPI *InstallRemoteComponentByName)(IRemoteComponentUtil *This,BSTR bstrServer,BSTR bstrPackageName,BSTR bstrProgID);
     END_INTERFACE
   } IRemoteComponentUtilVtbl;
-  interface IRemoteComponentUtil {
+  struct IRemoteComponentUtil {
     CONST_VTBL struct IRemoteComponentUtilVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -514,7 +514,7 @@
 #define __IRoleAssociationUtil_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IRoleAssociationUtil;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IRoleAssociationUtil : public IDispatch {
+  struct IRoleAssociationUtil : public IDispatch {
   public:
     virtual HRESULT WINAPI AssociateRole(BSTR bstrRoleID) = 0;
     virtual HRESULT WINAPI AssociateRoleByName(BSTR bstrRoleName) = 0;
@@ -533,7 +533,7 @@
       HRESULT (WINAPI *AssociateRoleByName)(IRoleAssociationUtil *This,BSTR bstrRoleName);
     END_INTERFACE
   } IRoleAssociationUtilVtbl;
-  interface IRoleAssociationUtil {
+  struct IRoleAssociationUtil {
     CONST_VTBL struct IRoleAssociationUtilVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/multinfo.h b/mingw-w64-headers/include/multinfo.h
index c98c4f5..0ef1f36 100755
--- a/mingw-w64-headers/include/multinfo.h
+++ b/mingw-w64-headers/include/multinfo.h
@@ -19,17 +19,17 @@
 
 #ifndef __IProvideClassInfo_FWD_DEFINED__
 #define __IProvideClassInfo_FWD_DEFINED__
-  typedef interface IProvideClassInfo IProvideClassInfo;
+  typedef struct IProvideClassInfo IProvideClassInfo;
 #endif
 
 #ifndef __IProvideClassInfo2_FWD_DEFINED__
 #define __IProvideClassInfo2_FWD_DEFINED__
-  typedef interface IProvideClassInfo2 IProvideClassInfo2;
+  typedef struct IProvideClassInfo2 IProvideClassInfo2;
 #endif
 
 #ifndef __IProvideMultipleClassInfo_FWD_DEFINED__
 #define __IProvideMultipleClassInfo_FWD_DEFINED__
-  typedef interface IProvideMultipleClassInfo IProvideMultipleClassInfo;
+  typedef struct IProvideMultipleClassInfo IProvideMultipleClassInfo;
 #endif
 
 #include "oaidl.h"
@@ -57,7 +57,7 @@
 
   EXTERN_C const IID IID_IProvideMultipleClassInfo;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IProvideMultipleClassInfo : public IProvideClassInfo2 {
+  struct IProvideMultipleClassInfo : public IProvideClassInfo2 {
 public:
   virtual HRESULT WINAPI GetMultiTypeInfoCount(ULONG *pcti) = 0;
   virtual HRESULT WINAPI GetInfoOfIndex(ULONG iti,DWORD dwFlags,ITypeInfo **pptiCoClass,DWORD *pdwTIFlags,ULONG *pcdispidReserved,IID *piidPrimary,IID *piidSource) = 0;
@@ -72,7 +72,7 @@
     HRESULT (WINAPI *GetMultiTypeInfoCount)(IProvideMultipleClassInfo *This,ULONG *pcti);
     HRESULT (WINAPI *GetInfoOfIndex)(IProvideMultipleClassInfo *This,ULONG iti,DWORD dwFlags,ITypeInfo **pptiCoClass,DWORD *pdwTIFlags,ULONG *pcdispidReserved,IID *piidPrimary,IID *piidSource);
   } IProvideMultipleClassInfoVtbl;
-  interface IProvideMultipleClassInfo {
+  struct IProvideMultipleClassInfo {
     CONST_VTBL struct IProvideMultipleClassInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/netcon.h b/mingw-w64-headers/include/netcon.h
index e3998ed..09a3312 100755
--- a/mingw-w64-headers/include/netcon.h
+++ b/mingw-w64-headers/include/netcon.h
@@ -24,107 +24,107 @@
 
 #ifndef __IEnumNetConnection_FWD_DEFINED__
 #define __IEnumNetConnection_FWD_DEFINED__
-typedef interface IEnumNetConnection IEnumNetConnection;
+typedef struct IEnumNetConnection IEnumNetConnection;
 #endif
 
 #ifndef __INetConnection_FWD_DEFINED__
 #define __INetConnection_FWD_DEFINED__
-typedef interface INetConnection INetConnection;
+typedef struct INetConnection INetConnection;
 #endif
 
 #ifndef __INetConnectionManager_FWD_DEFINED__
 #define __INetConnectionManager_FWD_DEFINED__
-typedef interface INetConnectionManager INetConnectionManager;
+typedef struct INetConnectionManager INetConnectionManager;
 #endif
 
 #ifndef __INetConnectionManagerEvents_FWD_DEFINED__
 #define __INetConnectionManagerEvents_FWD_DEFINED__
-typedef interface INetConnectionManagerEvents INetConnectionManagerEvents;
+typedef struct INetConnectionManagerEvents INetConnectionManagerEvents;
 #endif
 
 #ifndef __INetConnectionConnectUi_FWD_DEFINED__
 #define __INetConnectionConnectUi_FWD_DEFINED__
-typedef interface INetConnectionConnectUi INetConnectionConnectUi;
+typedef struct INetConnectionConnectUi INetConnectionConnectUi;
 #endif
 
 #ifndef __INetConnectionPropertyUi_FWD_DEFINED__
 #define __INetConnectionPropertyUi_FWD_DEFINED__
-typedef interface INetConnectionPropertyUi INetConnectionPropertyUi;
+typedef struct INetConnectionPropertyUi INetConnectionPropertyUi;
 #endif
 
 #ifndef __INetConnectionPropertyUi2_FWD_DEFINED__
 #define __INetConnectionPropertyUi2_FWD_DEFINED__
-typedef interface INetConnectionPropertyUi2 INetConnectionPropertyUi2;
+typedef struct INetConnectionPropertyUi2 INetConnectionPropertyUi2;
 #endif
 
 #ifndef __INetConnectionCommonUi_FWD_DEFINED__
 #define __INetConnectionCommonUi_FWD_DEFINED__
-typedef interface INetConnectionCommonUi INetConnectionCommonUi;
+typedef struct INetConnectionCommonUi INetConnectionCommonUi;
 #endif
 
 #ifndef __IEnumNetSharingPortMapping_FWD_DEFINED__
 #define __IEnumNetSharingPortMapping_FWD_DEFINED__
-typedef interface IEnumNetSharingPortMapping IEnumNetSharingPortMapping;
+typedef struct IEnumNetSharingPortMapping IEnumNetSharingPortMapping;
 #endif
 
 #ifndef __INetSharingPortMappingProps_FWD_DEFINED__
 #define __INetSharingPortMappingProps_FWD_DEFINED__
-typedef interface INetSharingPortMappingProps INetSharingPortMappingProps;
+typedef struct INetSharingPortMappingProps INetSharingPortMappingProps;
 #endif
 
 #ifndef __INetSharingPortMapping_FWD_DEFINED__
 #define __INetSharingPortMapping_FWD_DEFINED__
-typedef interface INetSharingPortMapping INetSharingPortMapping;
+typedef struct INetSharingPortMapping INetSharingPortMapping;
 #endif
 
 #ifndef __IEnumNetSharingEveryConnection_FWD_DEFINED__
 #define __IEnumNetSharingEveryConnection_FWD_DEFINED__
-typedef interface IEnumNetSharingEveryConnection IEnumNetSharingEveryConnection;
+typedef struct IEnumNetSharingEveryConnection IEnumNetSharingEveryConnection;
 #endif
 
 #ifndef __IEnumNetSharingPublicConnection_FWD_DEFINED__
 #define __IEnumNetSharingPublicConnection_FWD_DEFINED__
-typedef interface IEnumNetSharingPublicConnection IEnumNetSharingPublicConnection;
+typedef struct IEnumNetSharingPublicConnection IEnumNetSharingPublicConnection;
 #endif
 
 #ifndef __IEnumNetSharingPrivateConnection_FWD_DEFINED__
 #define __IEnumNetSharingPrivateConnection_FWD_DEFINED__
-typedef interface IEnumNetSharingPrivateConnection IEnumNetSharingPrivateConnection;
+typedef struct IEnumNetSharingPrivateConnection IEnumNetSharingPrivateConnection;
 #endif
 
 #ifndef __INetSharingPortMappingCollection_FWD_DEFINED__
 #define __INetSharingPortMappingCollection_FWD_DEFINED__
-typedef interface INetSharingPortMappingCollection INetSharingPortMappingCollection;
+typedef struct INetSharingPortMappingCollection INetSharingPortMappingCollection;
 #endif
 
 #ifndef __INetConnectionProps_FWD_DEFINED__
 #define __INetConnectionProps_FWD_DEFINED__
-typedef interface INetConnectionProps INetConnectionProps;
+typedef struct INetConnectionProps INetConnectionProps;
 #endif
 
 #ifndef __INetSharingConfiguration_FWD_DEFINED__
 #define __INetSharingConfiguration_FWD_DEFINED__
-typedef interface INetSharingConfiguration INetSharingConfiguration;
+typedef struct INetSharingConfiguration INetSharingConfiguration;
 #endif
 
 #ifndef __INetSharingEveryConnectionCollection_FWD_DEFINED__
 #define __INetSharingEveryConnectionCollection_FWD_DEFINED__
-typedef interface INetSharingEveryConnectionCollection INetSharingEveryConnectionCollection;
+typedef struct INetSharingEveryConnectionCollection INetSharingEveryConnectionCollection;
 #endif
 
 #ifndef __INetSharingPublicConnectionCollection_FWD_DEFINED__
 #define __INetSharingPublicConnectionCollection_FWD_DEFINED__
-typedef interface INetSharingPublicConnectionCollection INetSharingPublicConnectionCollection;
+typedef struct INetSharingPublicConnectionCollection INetSharingPublicConnectionCollection;
 #endif
 
 #ifndef __INetSharingPrivateConnectionCollection_FWD_DEFINED__
 #define __INetSharingPrivateConnectionCollection_FWD_DEFINED__
-typedef interface INetSharingPrivateConnectionCollection INetSharingPrivateConnectionCollection;
+typedef struct INetSharingPrivateConnectionCollection INetSharingPrivateConnectionCollection;
 #endif
 
 #ifndef __INetSharingManager_FWD_DEFINED__
 #define __INetSharingManager_FWD_DEFINED__
-typedef interface INetSharingManager INetSharingManager;
+typedef struct INetSharingManager INetSharingManager;
 #endif
 
 #ifndef __NetSharingManager_FWD_DEFINED__
@@ -180,7 +180,7 @@
       HRESULT (WINAPI *Clone)(IEnumNetConnection *This,IEnumNetConnection **ppenum);
     END_INTERFACE
   } IEnumNetConnectionVtbl;
-  interface IEnumNetConnection {
+  struct IEnumNetConnection {
     CONST_VTBL struct IEnumNetConnectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -272,7 +272,7 @@
       HRESULT (WINAPI *Rename)(INetConnection *This,LPCWSTR pszwNewName);
     END_INTERFACE
   } INetConnectionVtbl;
-  interface INetConnection {
+  struct INetConnection {
     CONST_VTBL struct INetConnectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -331,7 +331,7 @@
       HRESULT (WINAPI *EnumConnections)(INetConnectionManager *This,NETCONMGR_ENUM_FLAGS Flags,IEnumNetConnection **ppEnum);
     END_INTERFACE
   } INetConnectionManagerVtbl;
-  interface INetConnectionManager {
+  struct INetConnectionManager {
     CONST_VTBL struct INetConnectionManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -366,7 +366,7 @@
       HRESULT (WINAPI *Disable)(INetConnectionManagerEvents *This,ULONG ulDisableTimeout);
     END_INTERFACE
   } INetConnectionManagerEventsVtbl;
-  interface INetConnectionManagerEvents {
+  struct INetConnectionManagerEvents {
     CONST_VTBL struct INetConnectionManagerEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -411,7 +411,7 @@
       HRESULT (WINAPI *Disconnect)(INetConnectionConnectUi *This,HWND hwndParent,DWORD dwFlags);
     END_INTERFACE
   } INetConnectionConnectUiVtbl;
-  interface INetConnectionConnectUi {
+  struct INetConnectionConnectUi {
     CONST_VTBL struct INetConnectionConnectUiVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -450,7 +450,7 @@
       HRESULT (WINAPI *AddPages)(INetConnectionPropertyUi *This,HWND hwndParent,LPFNADDPROPSHEETPAGE pfnAddPage,LPARAM lParam);
     END_INTERFACE
   } INetConnectionPropertyUiVtbl;
-  interface INetConnectionPropertyUi {
+  struct INetConnectionPropertyUi {
     CONST_VTBL struct INetConnectionPropertyUiVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -486,7 +486,7 @@
       HRESULT (WINAPI *GetIcon)(INetConnectionPropertyUi2 *This,DWORD dwSize,HICON *phIcon);
     END_INTERFACE
   } INetConnectionPropertyUi2Vtbl;
-  interface INetConnectionPropertyUi2 {
+  struct INetConnectionPropertyUi2 {
     CONST_VTBL struct INetConnectionPropertyUi2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -540,7 +540,7 @@
       HRESULT (WINAPI *StartNewConnectionWizard)(INetConnectionCommonUi *This,HWND hwndParent,INetConnection **ppCon);
     END_INTERFACE
   } INetConnectionCommonUiVtbl;
-  interface INetConnectionCommonUi {
+  struct INetConnectionCommonUi {
     CONST_VTBL struct INetConnectionCommonUiVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -583,7 +583,7 @@
       HRESULT (WINAPI *Clone)(IEnumNetSharingPortMapping *This,IEnumNetSharingPortMapping **ppenum);
     END_INTERFACE
   } IEnumNetSharingPortMappingVtbl;
-  interface IEnumNetSharingPortMapping {
+  struct IEnumNetSharingPortMapping {
     CONST_VTBL struct IEnumNetSharingPortMappingVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -641,7 +641,7 @@
       HRESULT (WINAPI *get_Enabled)(INetSharingPortMappingProps *This,VARIANT_BOOL *pbool);
     END_INTERFACE
   } INetSharingPortMappingPropsVtbl;
-  interface INetSharingPortMappingProps {
+  struct INetSharingPortMappingProps {
     CONST_VTBL struct INetSharingPortMappingPropsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -707,7 +707,7 @@
       HRESULT (WINAPI *Delete)(INetSharingPortMapping *This);
     END_INTERFACE
   } INetSharingPortMappingVtbl;
-  interface INetSharingPortMapping {
+  struct INetSharingPortMapping {
     CONST_VTBL struct INetSharingPortMappingVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -757,7 +757,7 @@
       HRESULT (WINAPI *Clone)(IEnumNetSharingEveryConnection *This,IEnumNetSharingEveryConnection **ppenum);
     END_INTERFACE
   } IEnumNetSharingEveryConnectionVtbl;
-  interface IEnumNetSharingEveryConnection {
+  struct IEnumNetSharingEveryConnection {
     CONST_VTBL struct IEnumNetSharingEveryConnectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -803,7 +803,7 @@
       HRESULT (WINAPI *Clone)(IEnumNetSharingPublicConnection *This,IEnumNetSharingPublicConnection **ppenum);
     END_INTERFACE
   } IEnumNetSharingPublicConnectionVtbl;
-  interface IEnumNetSharingPublicConnection {
+  struct IEnumNetSharingPublicConnection {
     CONST_VTBL struct IEnumNetSharingPublicConnectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -849,7 +849,7 @@
       HRESULT (WINAPI *Clone)(IEnumNetSharingPrivateConnection *This,IEnumNetSharingPrivateConnection **ppenum);
     END_INTERFACE
   } IEnumNetSharingPrivateConnectionVtbl;
-  interface IEnumNetSharingPrivateConnection {
+  struct IEnumNetSharingPrivateConnection {
     CONST_VTBL struct IEnumNetSharingPrivateConnectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -895,7 +895,7 @@
       HRESULT (WINAPI *get_Count)(INetSharingPortMappingCollection *This,long *pVal);
     END_INTERFACE
   } INetSharingPortMappingCollectionVtbl;
-  interface INetSharingPortMappingCollection {
+  struct INetSharingPortMappingCollection {
     CONST_VTBL struct INetSharingPortMappingCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -950,7 +950,7 @@
       HRESULT (WINAPI *get_Characteristics)(INetConnectionProps *This,DWORD *pdwFlags);
     END_INTERFACE
   } INetConnectionPropsVtbl;
-  interface INetConnectionProps {
+  struct INetConnectionProps {
     CONST_VTBL struct INetConnectionPropsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1035,7 +1035,7 @@
       HRESULT (WINAPI *RemovePortMapping)(INetSharingConfiguration *This,INetSharingPortMapping *pMapping);
     END_INTERFACE
   } INetSharingConfigurationVtbl;
-  interface INetSharingConfiguration {
+  struct INetSharingConfiguration {
     CONST_VTBL struct INetSharingConfigurationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1103,7 +1103,7 @@
       HRESULT (WINAPI *get_Count)(INetSharingEveryConnectionCollection *This,long *pVal);
     END_INTERFACE
   } INetSharingEveryConnectionCollectionVtbl;
-  interface INetSharingEveryConnectionCollection {
+  struct INetSharingEveryConnectionCollection {
     CONST_VTBL struct INetSharingEveryConnectionCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1147,7 +1147,7 @@
       HRESULT (WINAPI *get_Count)(INetSharingPublicConnectionCollection *This,long *pVal);
     END_INTERFACE
   } INetSharingPublicConnectionCollectionVtbl;
-  interface INetSharingPublicConnectionCollection {
+  struct INetSharingPublicConnectionCollection {
     CONST_VTBL struct INetSharingPublicConnectionCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1191,7 +1191,7 @@
       HRESULT (WINAPI *get_Count)(INetSharingPrivateConnectionCollection *This,long *pVal);
     END_INTERFACE
   } INetSharingPrivateConnectionCollectionVtbl;
-  interface INetSharingPrivateConnectionCollection {
+  struct INetSharingPrivateConnectionCollection {
     CONST_VTBL struct INetSharingPrivateConnectionCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1243,7 +1243,7 @@
       HRESULT (WINAPI *get_NetConnectionProps)(INetSharingManager *This,INetConnection *pNetConnection,INetConnectionProps **ppProps);
     END_INTERFACE
   } INetSharingManagerVtbl;
-  interface INetSharingManager {
+  struct INetSharingManager {
     CONST_VTBL struct INetSharingManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/netmon.h b/mingw-w64-headers/include/netmon.h
index 2502a1d..e823b99 100755
--- a/mingw-w64-headers/include/netmon.h
+++ b/mingw-w64-headers/include/netmon.h
@@ -24,17 +24,17 @@
 
 #ifndef __IDelaydC_FWD_DEFINED__
 #define __IDelaydC_FWD_DEFINED__
-typedef interface IDelaydC IDelaydC;
+typedef struct IDelaydC IDelaydC;
 #endif
 
 #ifndef __IRTC_FWD_DEFINED__
 #define __IRTC_FWD_DEFINED__
-typedef interface IRTC IRTC;
+typedef struct IRTC IRTC;
 #endif
 
 #ifndef __IStats_FWD_DEFINED__
 #define __IStats_FWD_DEFINED__
-typedef interface IStats IStats;
+typedef struct IStats IStats;
 #endif
 
 #include "unknwn.h"
@@ -2932,7 +2932,7 @@
       HRESULT (WINAPI *QueryStations)(IDelaydC *This,QUERYTABLE *lpQueryTable);
     END_INTERFACE
   } IDelaydCVtbl;
-  interface IDelaydC {
+  struct IDelaydC {
     CONST_VTBL struct IDelaydCVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3028,7 +3028,7 @@
       HRESULT (WINAPI *QueryStations)(IRTC *This,QUERYTABLE *lpQueryTable);
     END_INTERFACE
   } IRTCVtbl;
-  interface IRTC {
+  struct IRTC {
     CONST_VTBL struct IRTCVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3122,7 +3122,7 @@
       HRESULT (WINAPI *QueryStations)(IStats *This,QUERYTABLE *lpQueryTable);
     END_INTERFACE
   } IStatsVtbl;
-  interface IStats {
+  struct IStats {
     CONST_VTBL struct IStatsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/netprov.h b/mingw-w64-headers/include/netprov.h
index 24f009a..461abd9 100755
--- a/mingw-w64-headers/include/netprov.h
+++ b/mingw-w64-headers/include/netprov.h
@@ -24,17 +24,17 @@
 
 #ifndef __IProvisioningDomain_FWD_DEFINED__
 #define __IProvisioningDomain_FWD_DEFINED__
-typedef interface IProvisioningDomain IProvisioningDomain;
+typedef struct IProvisioningDomain IProvisioningDomain;
 #endif
 
 #ifndef __IProvisioningProfileWireless_FWD_DEFINED__
 #define __IProvisioningProfileWireless_FWD_DEFINED__
-typedef interface IProvisioningProfileWireless IProvisioningProfileWireless;
+typedef struct IProvisioningProfileWireless IProvisioningProfileWireless;
 #endif
 
 #ifndef __IFlashConfig_FWD_DEFINED__
 #define __IFlashConfig_FWD_DEFINED__
-typedef interface IFlashConfig IFlashConfig;
+typedef struct IFlashConfig IFlashConfig;
 #endif
 
 #ifndef __NetProvisioning_FWD_DEFINED__
@@ -88,7 +88,7 @@
       HRESULT (WINAPI *Query)(IProvisioningDomain *This,LPCWSTR pszwDomain,LPCWSTR pszwLanguage,LPCWSTR pszwXPathQuery,IXMLDOMNodeList **Nodes);
     END_INTERFACE
   } IProvisioningDomainVtbl;
-  interface IProvisioningDomain {
+  struct IProvisioningDomain {
     CONST_VTBL struct IProvisioningDomainVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -163,7 +163,7 @@
       HRESULT (WINAPI *CreateProfile)(IProvisioningProfileWireless *This,BSTR bstrXMLWirelessConfigProfile,BSTR bstrXMLConnectionConfigProfile,GUID *pAdapterInstanceGuid,ULONG *pulStatus);
     END_INTERFACE
   } IProvisioningProfileWirelessVtbl;
-  interface IProvisioningProfileWireless {
+  struct IProvisioningProfileWireless {
     CONST_VTBL struct IProvisioningProfileWirelessVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -198,7 +198,7 @@
       HRESULT (WINAPI *RunWizard)(IFlashConfig *This,HWND hwndParent,FLASHCONFIG_FLAGS eFlags);
     END_INTERFACE
   } IFlashConfigVtbl;
-  interface IFlashConfig {
+  struct IFlashConfig {
     CONST_VTBL struct IFlashConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/oaidl.h b/mingw-w64-headers/include/oaidl.h
index b538c52..c5e04a0 100755
--- a/mingw-w64-headers/include/oaidl.h
+++ b/mingw-w64-headers/include/oaidl.h
@@ -24,102 +24,102 @@
 
 #ifndef __ICreateTypeInfo_FWD_DEFINED__
 #define __ICreateTypeInfo_FWD_DEFINED__
-typedef interface ICreateTypeInfo ICreateTypeInfo;
+typedef struct ICreateTypeInfo ICreateTypeInfo;
 #endif
 
 #ifndef __ICreateTypeInfo2_FWD_DEFINED__
 #define __ICreateTypeInfo2_FWD_DEFINED__
-typedef interface ICreateTypeInfo2 ICreateTypeInfo2;
+typedef struct ICreateTypeInfo2 ICreateTypeInfo2;
 #endif
 
 #ifndef __ICreateTypeLib_FWD_DEFINED__
 #define __ICreateTypeLib_FWD_DEFINED__
-typedef interface ICreateTypeLib ICreateTypeLib;
+typedef struct ICreateTypeLib ICreateTypeLib;
 #endif
 
 #ifndef __ICreateTypeLib2_FWD_DEFINED__
 #define __ICreateTypeLib2_FWD_DEFINED__
-typedef interface ICreateTypeLib2 ICreateTypeLib2;
+typedef struct ICreateTypeLib2 ICreateTypeLib2;
 #endif
 
 #ifndef __IDispatch_FWD_DEFINED__
 #define __IDispatch_FWD_DEFINED__
-typedef interface IDispatch IDispatch;
+typedef struct IDispatch IDispatch;
 #endif
 
 #ifndef __IEnumVARIANT_FWD_DEFINED__
 #define __IEnumVARIANT_FWD_DEFINED__
-typedef interface IEnumVARIANT IEnumVARIANT;
+typedef struct IEnumVARIANT IEnumVARIANT;
 #endif
 
 #ifndef __ITypeComp_FWD_DEFINED__
 #define __ITypeComp_FWD_DEFINED__
-typedef interface ITypeComp ITypeComp;
+typedef struct ITypeComp ITypeComp;
 #endif
 
 #ifndef __ITypeInfo_FWD_DEFINED__
 #define __ITypeInfo_FWD_DEFINED__
-typedef interface ITypeInfo ITypeInfo;
+typedef struct ITypeInfo ITypeInfo;
 #endif
 
 #ifndef __ITypeInfo2_FWD_DEFINED__
 #define __ITypeInfo2_FWD_DEFINED__
-typedef interface ITypeInfo2 ITypeInfo2;
+typedef struct ITypeInfo2 ITypeInfo2;
 #endif
 
 #ifndef __ITypeLib_FWD_DEFINED__
 #define __ITypeLib_FWD_DEFINED__
-typedef interface ITypeLib ITypeLib;
+typedef struct ITypeLib ITypeLib;
 #endif
 
 #ifndef __ITypeLib2_FWD_DEFINED__
 #define __ITypeLib2_FWD_DEFINED__
-typedef interface ITypeLib2 ITypeLib2;
+typedef struct ITypeLib2 ITypeLib2;
 #endif
 
 #ifndef __ITypeChangeEvents_FWD_DEFINED__
 #define __ITypeChangeEvents_FWD_DEFINED__
-typedef interface ITypeChangeEvents ITypeChangeEvents;
+typedef struct ITypeChangeEvents ITypeChangeEvents;
 #endif
 
 #ifndef __IErrorInfo_FWD_DEFINED__
 #define __IErrorInfo_FWD_DEFINED__
-typedef interface IErrorInfo IErrorInfo;
+typedef struct IErrorInfo IErrorInfo;
 #endif
 
 #ifndef __ICreateErrorInfo_FWD_DEFINED__
 #define __ICreateErrorInfo_FWD_DEFINED__
-typedef interface ICreateErrorInfo ICreateErrorInfo;
+typedef struct ICreateErrorInfo ICreateErrorInfo;
 #endif
 
 #ifndef __ISupportErrorInfo_FWD_DEFINED__
 #define __ISupportErrorInfo_FWD_DEFINED__
-typedef interface ISupportErrorInfo ISupportErrorInfo;
+typedef struct ISupportErrorInfo ISupportErrorInfo;
 #endif
 
 #ifndef __ITypeFactory_FWD_DEFINED__
 #define __ITypeFactory_FWD_DEFINED__
-typedef interface ITypeFactory ITypeFactory;
+typedef struct ITypeFactory ITypeFactory;
 #endif
 
 #ifndef __ITypeMarshal_FWD_DEFINED__
 #define __ITypeMarshal_FWD_DEFINED__
-typedef interface ITypeMarshal ITypeMarshal;
+typedef struct ITypeMarshal ITypeMarshal;
 #endif
 
 #ifndef __IRecordInfo_FWD_DEFINED__
 #define __IRecordInfo_FWD_DEFINED__
-typedef interface IRecordInfo IRecordInfo;
+typedef struct IRecordInfo IRecordInfo;
 #endif
 
 #ifndef __IErrorLog_FWD_DEFINED__
 #define __IErrorLog_FWD_DEFINED__
-typedef interface IErrorLog IErrorLog;
+typedef struct IErrorLog IErrorLog;
 #endif
 
 #ifndef __IPropertyBag_FWD_DEFINED__
 #define __IPropertyBag_FWD_DEFINED__
-typedef interface IPropertyBag IPropertyBag;
+typedef struct IPropertyBag IPropertyBag;
 #endif
 
 #include "objidl.h"
@@ -668,7 +668,7 @@
       HRESULT (WINAPI *LayOut)(ICreateTypeInfo *This);
     END_INTERFACE
   } ICreateTypeInfoVtbl;
-  interface ICreateTypeInfo {
+  struct ICreateTypeInfo {
     CONST_VTBL struct ICreateTypeInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -818,7 +818,7 @@
       HRESULT (WINAPI *SetName)(ICreateTypeInfo2 *This,LPOLESTR szName);
     END_INTERFACE
   } ICreateTypeInfo2Vtbl;
-  interface ICreateTypeInfo2 {
+  struct ICreateTypeInfo2 {
     CONST_VTBL struct ICreateTypeInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -937,7 +937,7 @@
       HRESULT (WINAPI *SaveAllChanges)(ICreateTypeLib *This);
     END_INTERFACE
   } ICreateTypeLibVtbl;
-  interface ICreateTypeLib {
+  struct ICreateTypeLib {
     CONST_VTBL struct ICreateTypeLibVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1013,7 +1013,7 @@
       HRESULT (WINAPI *SetHelpStringDll)(ICreateTypeLib2 *This,LPOLESTR szFileName);
     END_INTERFACE
   } ICreateTypeLib2Vtbl;
-  interface ICreateTypeLib2 {
+  struct ICreateTypeLib2 {
     CONST_VTBL struct ICreateTypeLib2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1083,7 +1083,7 @@
       HRESULT (WINAPI *Invoke)(IDispatch *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IDispatchVtbl;
-  interface IDispatch {
+  struct IDispatch {
     CONST_VTBL struct IDispatchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1131,7 +1131,7 @@
       HRESULT (WINAPI *Clone)(IEnumVARIANT *This,IEnumVARIANT **ppEnum);
     END_INTERFACE
   } IEnumVARIANTVtbl;
-  interface IEnumVARIANT {
+  struct IEnumVARIANT {
     CONST_VTBL struct IEnumVARIANTVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1191,7 +1191,7 @@
       HRESULT (WINAPI *BindType)(ITypeComp *This,LPOLESTR szName,ULONG lHashVal,ITypeInfo **ppTInfo,ITypeComp **ppTComp);
     END_INTERFACE
   } ITypeCompVtbl;
-  interface ITypeComp {
+  struct ITypeComp {
     CONST_VTBL struct ITypeCompVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1267,7 +1267,7 @@
       void (WINAPI *ReleaseVarDesc)(ITypeInfo *This,VARDESC *pVarDesc);
     END_INTERFACE
   } ITypeInfoVtbl;
-  interface ITypeInfo {
+  struct ITypeInfo {
     CONST_VTBL struct ITypeInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1401,7 +1401,7 @@
       HRESULT (WINAPI *GetAllImplTypeCustData)(ITypeInfo2 *This,UINT index,CUSTDATA *pCustData);
     END_INTERFACE
   } ITypeInfo2Vtbl;
-  interface ITypeInfo2 {
+  struct ITypeInfo2 {
     CONST_VTBL struct ITypeInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1535,7 +1535,7 @@
       void (WINAPI *ReleaseTLibAttr)(ITypeLib *This,TLIBATTR *pTLibAttr);
     END_INTERFACE
   } ITypeLibVtbl;
-  interface ITypeLib {
+  struct ITypeLib {
     CONST_VTBL struct ITypeLibVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1611,7 +1611,7 @@
       HRESULT (WINAPI *GetAllCustData)(ITypeLib2 *This,CUSTDATA *pCustData);
     END_INTERFACE
   } ITypeLib2Vtbl;
-  interface ITypeLib2 {
+  struct ITypeLib2 {
     CONST_VTBL struct ITypeLib2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1671,7 +1671,7 @@
       HRESULT (WINAPI *AfterTypeChange)(ITypeChangeEvents *This,CHANGEKIND changeKind,ITypeInfo *pTInfoAfter,LPOLESTR pStrName);
     END_INTERFACE
   } ITypeChangeEventsVtbl;
-  interface ITypeChangeEvents {
+  struct ITypeChangeEvents {
     CONST_VTBL struct ITypeChangeEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1715,7 +1715,7 @@
       HRESULT (WINAPI *GetHelpContext)(IErrorInfo *This,DWORD *pdwHelpContext);
     END_INTERFACE
   } IErrorInfoVtbl;
-  interface IErrorInfo {
+  struct IErrorInfo {
     CONST_VTBL struct IErrorInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1768,7 +1768,7 @@
       HRESULT (WINAPI *SetHelpContext)(ICreateErrorInfo *This,DWORD dwHelpContext);
     END_INTERFACE
   } ICreateErrorInfoVtbl;
-  interface ICreateErrorInfo {
+  struct ICreateErrorInfo {
     CONST_VTBL struct ICreateErrorInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1813,7 +1813,7 @@
       HRESULT (WINAPI *InterfaceSupportsErrorInfo)(ISupportErrorInfo *This,REFIID riid);
     END_INTERFACE
   } ISupportErrorInfoVtbl;
-  interface ISupportErrorInfo {
+  struct ISupportErrorInfo {
     CONST_VTBL struct ISupportErrorInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1844,7 +1844,7 @@
       HRESULT (WINAPI *CreateFromTypeInfo)(ITypeFactory *This,ITypeInfo *pTypeInfo,REFIID riid,IUnknown **ppv);
     END_INTERFACE
   } ITypeFactoryVtbl;
-  interface ITypeFactory {
+  struct ITypeFactory {
     CONST_VTBL struct ITypeFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1881,7 +1881,7 @@
       HRESULT (WINAPI *Free)(ITypeMarshal *This,PVOID pvType);
     END_INTERFACE
   } ITypeMarshalVtbl;
-  interface ITypeMarshal {
+  struct ITypeMarshal {
     CONST_VTBL struct ITypeMarshalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1953,7 +1953,7 @@
       HRESULT (WINAPI *RecordDestroy)(IRecordInfo *This,PVOID pvRecord);
     END_INTERFACE
   } IRecordInfoVtbl;
-  interface IRecordInfo {
+  struct IRecordInfo {
     CONST_VTBL struct IRecordInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2031,7 +2031,7 @@
       HRESULT (WINAPI *AddError)(IErrorLog *This,LPCOLESTR pszPropName,EXCEPINFO *pExcepInfo);
     END_INTERFACE
   } IErrorLogVtbl;
-  interface IErrorLog {
+  struct IErrorLog {
     CONST_VTBL struct IErrorLogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2066,7 +2066,7 @@
       HRESULT (WINAPI *Write)(IPropertyBag *This,LPCOLESTR pszPropName,VARIANT *pVar);
     END_INTERFACE
   } IPropertyBagVtbl;
-  interface IPropertyBag {
+  struct IPropertyBag {
     CONST_VTBL struct IPropertyBagVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/objbase.h b/mingw-w64-headers/include/objbase.h
index 2c1615e..cdb0006 100755
--- a/mingw-w64-headers/include/objbase.h
+++ b/mingw-w64-headers/include/objbase.h
@@ -16,7 +16,6 @@
 
 #if defined(__cplusplus) && !defined(CINTERFACE)
 #define __STRUCT__ struct
-#define interface __STRUCT__
 #define STDMETHOD(method) virtual HRESULT WINAPI method
 #define STDMETHOD_(type,method) virtual type WINAPI method
 #define STDMETHODV(method) virtual HRESULT STDMETHODVCALLTYPE method
@@ -24,8 +23,8 @@
 #define PURE = 0
 #define THIS_
 #define THIS void
-#define DECLARE_INTERFACE(iface) interface iface
-#define DECLARE_INTERFACE_(iface,baseiface) interface iface : public baseiface
+#define DECLARE_INTERFACE(iface) __STRUCT__ iface
+#define DECLARE_INTERFACE_(iface,baseiface) __STRUCT__ iface : public baseiface
 
 #if !defined(BEGIN_INTERFACE)
 #define BEGIN_INTERFACE
@@ -33,7 +32,9 @@
 #endif
 #else
 
+#ifndef __OBJC__
 #define interface struct
+#endif
 
 #define STDMETHOD(method) HRESULT (WINAPI *method)
 #define STDMETHOD_(type,method) type (WINAPI *method)
@@ -51,11 +52,11 @@
 #ifdef CONST_VTABLE
 #undef CONST_VTBL
 #define CONST_VTBL const
-#define DECLARE_INTERFACE(iface) typedef interface iface { const struct iface##Vtbl *lpVtbl; } iface; typedef const struct iface##Vtbl iface##Vtbl; const struct iface##Vtbl
+#define DECLARE_INTERFACE(iface) typedef struct iface { const struct iface##Vtbl *lpVtbl; } iface; typedef const struct iface##Vtbl iface##Vtbl; const struct iface##Vtbl
 #else
 #undef CONST_VTBL
 #define CONST_VTBL
-#define DECLARE_INTERFACE(iface) typedef interface iface { struct iface##Vtbl *lpVtbl; } iface; typedef struct iface##Vtbl iface##Vtbl; struct iface##Vtbl
+#define DECLARE_INTERFACE(iface) typedef struct iface { struct iface##Vtbl *lpVtbl; } iface; typedef struct iface##Vtbl iface##Vtbl; struct iface##Vtbl
 #endif
 #define DECLARE_INTERFACE_(iface,baseiface) DECLARE_INTERFACE(iface)
 #endif
@@ -126,11 +127,11 @@
 
 #ifndef __IRpcStubBuffer_FWD_DEFINED__
 #define __IRpcStubBuffer_FWD_DEFINED__
-typedef interface IRpcStubBuffer IRpcStubBuffer;
+typedef struct IRpcStubBuffer IRpcStubBuffer;
 #endif
 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
 #define __IRpcChannelBuffer_FWD_DEFINED__
-typedef interface IRpcChannelBuffer IRpcChannelBuffer;
+typedef struct IRpcChannelBuffer IRpcChannelBuffer;
 #endif
 
 #include <wtypes.h>
diff --git a/mingw-w64-headers/include/objidl.h b/mingw-w64-headers/include/objidl.h
index b53886e..c3dc342 100755
--- a/mingw-w64-headers/include/objidl.h
+++ b/mingw-w64-headers/include/objidl.h
@@ -24,447 +24,447 @@
 
 #ifndef __IMarshal_FWD_DEFINED__
 #define __IMarshal_FWD_DEFINED__
-typedef interface IMarshal IMarshal;
+typedef struct IMarshal IMarshal;
 #endif
 
 #ifndef __IMarshal2_FWD_DEFINED__
 #define __IMarshal2_FWD_DEFINED__
-typedef interface IMarshal2 IMarshal2;
+typedef struct IMarshal2 IMarshal2;
 #endif
 
 #ifndef __IMalloc_FWD_DEFINED__
 #define __IMalloc_FWD_DEFINED__
-typedef interface IMalloc IMalloc;
+typedef struct IMalloc IMalloc;
 #endif
 
 #ifndef __IMallocSpy_FWD_DEFINED__
 #define __IMallocSpy_FWD_DEFINED__
-typedef interface IMallocSpy IMallocSpy;
+typedef struct IMallocSpy IMallocSpy;
 #endif
 
 #ifndef __IStdMarshalInfo_FWD_DEFINED__
 #define __IStdMarshalInfo_FWD_DEFINED__
-typedef interface IStdMarshalInfo IStdMarshalInfo;
+typedef struct IStdMarshalInfo IStdMarshalInfo;
 #endif
 
 #ifndef __IExternalConnection_FWD_DEFINED__
 #define __IExternalConnection_FWD_DEFINED__
-typedef interface IExternalConnection IExternalConnection;
+typedef struct IExternalConnection IExternalConnection;
 #endif
 
 #ifndef __IMultiQI_FWD_DEFINED__
 #define __IMultiQI_FWD_DEFINED__
-typedef interface IMultiQI IMultiQI;
+typedef struct IMultiQI IMultiQI;
 #endif
 
 #ifndef __AsyncIMultiQI_FWD_DEFINED__
 #define __AsyncIMultiQI_FWD_DEFINED__
-typedef interface AsyncIMultiQI AsyncIMultiQI;
+typedef struct AsyncIMultiQI AsyncIMultiQI;
 #endif
 
 #ifndef __IInternalUnknown_FWD_DEFINED__
 #define __IInternalUnknown_FWD_DEFINED__
-typedef interface IInternalUnknown IInternalUnknown;
+typedef struct IInternalUnknown IInternalUnknown;
 #endif
 
 #ifndef __IEnumUnknown_FWD_DEFINED__
 #define __IEnumUnknown_FWD_DEFINED__
-typedef interface IEnumUnknown IEnumUnknown;
+typedef struct IEnumUnknown IEnumUnknown;
 #endif
 
 #ifndef __IBindCtx_FWD_DEFINED__
 #define __IBindCtx_FWD_DEFINED__
-typedef interface IBindCtx IBindCtx;
+typedef struct IBindCtx IBindCtx;
 #endif
 
 #ifndef __IEnumMoniker_FWD_DEFINED__
 #define __IEnumMoniker_FWD_DEFINED__
-typedef interface IEnumMoniker IEnumMoniker;
+typedef struct IEnumMoniker IEnumMoniker;
 #endif
 
 #ifndef __IRunnableObject_FWD_DEFINED__
 #define __IRunnableObject_FWD_DEFINED__
-typedef interface IRunnableObject IRunnableObject;
+typedef struct IRunnableObject IRunnableObject;
 #endif
 
 #ifndef __IRunningObjectTable_FWD_DEFINED__
 #define __IRunningObjectTable_FWD_DEFINED__
-typedef interface IRunningObjectTable IRunningObjectTable;
+typedef struct IRunningObjectTable IRunningObjectTable;
 #endif
 
 #ifndef __IPersist_FWD_DEFINED__
 #define __IPersist_FWD_DEFINED__
-typedef interface IPersist IPersist;
+typedef struct IPersist IPersist;
 #endif
 
 #ifndef __IPersistStream_FWD_DEFINED__
 #define __IPersistStream_FWD_DEFINED__
-typedef interface IPersistStream IPersistStream;
+typedef struct IPersistStream IPersistStream;
 #endif
 
 #ifndef __IMoniker_FWD_DEFINED__
 #define __IMoniker_FWD_DEFINED__
-typedef interface IMoniker IMoniker;
+typedef struct IMoniker IMoniker;
 #endif
 
 #ifndef __IROTData_FWD_DEFINED__
 #define __IROTData_FWD_DEFINED__
-typedef interface IROTData IROTData;
+typedef struct IROTData IROTData;
 #endif
 
 #ifndef __IEnumString_FWD_DEFINED__
 #define __IEnumString_FWD_DEFINED__
-typedef interface IEnumString IEnumString;
+typedef struct IEnumString IEnumString;
 #endif
 
 #ifndef __ISequentialStream_FWD_DEFINED__
 #define __ISequentialStream_FWD_DEFINED__
-typedef interface ISequentialStream ISequentialStream;
+typedef struct ISequentialStream ISequentialStream;
 #endif
 
 #ifndef __IStream_FWD_DEFINED__
 #define __IStream_FWD_DEFINED__
-typedef interface IStream IStream;
+typedef struct IStream IStream;
 #endif
 
 #ifndef __IEnumSTATSTG_FWD_DEFINED__
 #define __IEnumSTATSTG_FWD_DEFINED__
-typedef interface IEnumSTATSTG IEnumSTATSTG;
+typedef struct IEnumSTATSTG IEnumSTATSTG;
 #endif
 
 #ifndef __IStorage_FWD_DEFINED__
 #define __IStorage_FWD_DEFINED__
-typedef interface IStorage IStorage;
+typedef struct IStorage IStorage;
 #endif
 
 #ifndef __IPersistFile_FWD_DEFINED__
 #define __IPersistFile_FWD_DEFINED__
-typedef interface IPersistFile IPersistFile;
+typedef struct IPersistFile IPersistFile;
 #endif
 
 #ifndef __IPersistStorage_FWD_DEFINED__
 #define __IPersistStorage_FWD_DEFINED__
-typedef interface IPersistStorage IPersistStorage;
+typedef struct IPersistStorage IPersistStorage;
 #endif
 
 #ifndef __ILockBytes_FWD_DEFINED__
 #define __ILockBytes_FWD_DEFINED__
-typedef interface ILockBytes ILockBytes;
+typedef struct ILockBytes ILockBytes;
 #endif
 
 #ifndef __IEnumFORMATETC_FWD_DEFINED__
 #define __IEnumFORMATETC_FWD_DEFINED__
-typedef interface IEnumFORMATETC IEnumFORMATETC;
+typedef struct IEnumFORMATETC IEnumFORMATETC;
 #endif
 
 #ifndef __IEnumSTATDATA_FWD_DEFINED__
 #define __IEnumSTATDATA_FWD_DEFINED__
-typedef interface IEnumSTATDATA IEnumSTATDATA;
+typedef struct IEnumSTATDATA IEnumSTATDATA;
 #endif
 
 #ifndef __IRootStorage_FWD_DEFINED__
 #define __IRootStorage_FWD_DEFINED__
-typedef interface IRootStorage IRootStorage;
+typedef struct IRootStorage IRootStorage;
 #endif
 
 #ifndef __IAdviseSink_FWD_DEFINED__
 #define __IAdviseSink_FWD_DEFINED__
-typedef interface IAdviseSink IAdviseSink;
+typedef struct IAdviseSink IAdviseSink;
 #endif
 
 #ifndef __AsyncIAdviseSink_FWD_DEFINED__
 #define __AsyncIAdviseSink_FWD_DEFINED__
-typedef interface AsyncIAdviseSink AsyncIAdviseSink;
+typedef struct AsyncIAdviseSink AsyncIAdviseSink;
 #endif
 
 #ifndef __IAdviseSink2_FWD_DEFINED__
 #define __IAdviseSink2_FWD_DEFINED__
-typedef interface IAdviseSink2 IAdviseSink2;
+typedef struct IAdviseSink2 IAdviseSink2;
 #endif
 
 #ifndef __AsyncIAdviseSink2_FWD_DEFINED__
 #define __AsyncIAdviseSink2_FWD_DEFINED__
-typedef interface AsyncIAdviseSink2 AsyncIAdviseSink2;
+typedef struct AsyncIAdviseSink2 AsyncIAdviseSink2;
 #endif
 
 #ifndef __IDataObject_FWD_DEFINED__
 #define __IDataObject_FWD_DEFINED__
-typedef interface IDataObject IDataObject;
+typedef struct IDataObject IDataObject;
 #endif
 
 #ifndef __IDataAdviseHolder_FWD_DEFINED__
 #define __IDataAdviseHolder_FWD_DEFINED__
-typedef interface IDataAdviseHolder IDataAdviseHolder;
+typedef struct IDataAdviseHolder IDataAdviseHolder;
 #endif
 
 #ifndef __IMessageFilter_FWD_DEFINED__
 #define __IMessageFilter_FWD_DEFINED__
-typedef interface IMessageFilter IMessageFilter;
+typedef struct IMessageFilter IMessageFilter;
 #endif
 
 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
 #define __IRpcChannelBuffer_FWD_DEFINED__
-typedef interface IRpcChannelBuffer IRpcChannelBuffer;
+typedef struct IRpcChannelBuffer IRpcChannelBuffer;
 #endif
 
 #ifndef __IRpcChannelBuffer2_FWD_DEFINED__
 #define __IRpcChannelBuffer2_FWD_DEFINED__
-typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2;
+typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2;
 #endif
 
 #ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__
 #define __IAsyncRpcChannelBuffer_FWD_DEFINED__
-typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
+typedef struct IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
 #endif
 
 #ifndef __IRpcChannelBuffer3_FWD_DEFINED__
 #define __IRpcChannelBuffer3_FWD_DEFINED__
-typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3;
+typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3;
 #endif
 
 #ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__
 #define __IRpcSyntaxNegotiate_FWD_DEFINED__
-typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
+typedef struct IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
 #endif
 
 #ifndef __IRpcProxyBuffer_FWD_DEFINED__
 #define __IRpcProxyBuffer_FWD_DEFINED__
-typedef interface IRpcProxyBuffer IRpcProxyBuffer;
+typedef struct IRpcProxyBuffer IRpcProxyBuffer;
 #endif
 
 #ifndef __IRpcStubBuffer_FWD_DEFINED__
 #define __IRpcStubBuffer_FWD_DEFINED__
-typedef interface IRpcStubBuffer IRpcStubBuffer;
+typedef struct IRpcStubBuffer IRpcStubBuffer;
 #endif
 
 #ifndef __IPSFactoryBuffer_FWD_DEFINED__
 #define __IPSFactoryBuffer_FWD_DEFINED__
-typedef interface IPSFactoryBuffer IPSFactoryBuffer;
+typedef struct IPSFactoryBuffer IPSFactoryBuffer;
 #endif
 
 #ifndef __IChannelHook_FWD_DEFINED__
 #define __IChannelHook_FWD_DEFINED__
-typedef interface IChannelHook IChannelHook;
+typedef struct IChannelHook IChannelHook;
 #endif
 
 #ifndef __IClientSecurity_FWD_DEFINED__
 #define __IClientSecurity_FWD_DEFINED__
-typedef interface IClientSecurity IClientSecurity;
+typedef struct IClientSecurity IClientSecurity;
 #endif
 
 #ifndef __IServerSecurity_FWD_DEFINED__
 #define __IServerSecurity_FWD_DEFINED__
-typedef interface IServerSecurity IServerSecurity;
+typedef struct IServerSecurity IServerSecurity;
 #endif
 
 #ifndef __IClassActivator_FWD_DEFINED__
 #define __IClassActivator_FWD_DEFINED__
-typedef interface IClassActivator IClassActivator;
+typedef struct IClassActivator IClassActivator;
 #endif
 
 #ifndef __IRpcOptions_FWD_DEFINED__
 #define __IRpcOptions_FWD_DEFINED__
-typedef interface IRpcOptions IRpcOptions;
+typedef struct IRpcOptions IRpcOptions;
 #endif
 
 #ifndef __IFillLockBytes_FWD_DEFINED__
 #define __IFillLockBytes_FWD_DEFINED__
-typedef interface IFillLockBytes IFillLockBytes;
+typedef struct IFillLockBytes IFillLockBytes;
 #endif
 
 #ifndef __IProgressNotify_FWD_DEFINED__
 #define __IProgressNotify_FWD_DEFINED__
-typedef interface IProgressNotify IProgressNotify;
+typedef struct IProgressNotify IProgressNotify;
 #endif
 
 #ifndef __ILayoutStorage_FWD_DEFINED__
 #define __ILayoutStorage_FWD_DEFINED__
-typedef interface ILayoutStorage ILayoutStorage;
+typedef struct ILayoutStorage ILayoutStorage;
 #endif
 
 #ifndef __IBlockingLock_FWD_DEFINED__
 #define __IBlockingLock_FWD_DEFINED__
-typedef interface IBlockingLock IBlockingLock;
+typedef struct IBlockingLock IBlockingLock;
 #endif
 
 #ifndef __ITimeAndNoticeControl_FWD_DEFINED__
 #define __ITimeAndNoticeControl_FWD_DEFINED__
-typedef interface ITimeAndNoticeControl ITimeAndNoticeControl;
+typedef struct ITimeAndNoticeControl ITimeAndNoticeControl;
 #endif
 
 #ifndef __IOplockStorage_FWD_DEFINED__
 #define __IOplockStorage_FWD_DEFINED__
-typedef interface IOplockStorage IOplockStorage;
+typedef struct IOplockStorage IOplockStorage;
 #endif
 
 #ifndef __ISurrogate_FWD_DEFINED__
 #define __ISurrogate_FWD_DEFINED__
-typedef interface ISurrogate ISurrogate;
+typedef struct ISurrogate ISurrogate;
 #endif
 
 #ifndef __IGlobalInterfaceTable_FWD_DEFINED__
 #define __IGlobalInterfaceTable_FWD_DEFINED__
-typedef interface IGlobalInterfaceTable IGlobalInterfaceTable;
+typedef struct IGlobalInterfaceTable IGlobalInterfaceTable;
 #endif
 
 #ifndef __IDirectWriterLock_FWD_DEFINED__
 #define __IDirectWriterLock_FWD_DEFINED__
-typedef interface IDirectWriterLock IDirectWriterLock;
+typedef struct IDirectWriterLock IDirectWriterLock;
 #endif
 
 #ifndef __ISynchronize_FWD_DEFINED__
 #define __ISynchronize_FWD_DEFINED__
-typedef interface ISynchronize ISynchronize;
+typedef struct ISynchronize ISynchronize;
 #endif
 
 #ifndef __ISynchronizeHandle_FWD_DEFINED__
 #define __ISynchronizeHandle_FWD_DEFINED__
-typedef interface ISynchronizeHandle ISynchronizeHandle;
+typedef struct ISynchronizeHandle ISynchronizeHandle;
 #endif
 
 #ifndef __ISynchronizeEvent_FWD_DEFINED__
 #define __ISynchronizeEvent_FWD_DEFINED__
-typedef interface ISynchronizeEvent ISynchronizeEvent;
+typedef struct ISynchronizeEvent ISynchronizeEvent;
 #endif
 
 #ifndef __ISynchronizeContainer_FWD_DEFINED__
 #define __ISynchronizeContainer_FWD_DEFINED__
-typedef interface ISynchronizeContainer ISynchronizeContainer;
+typedef struct ISynchronizeContainer ISynchronizeContainer;
 #endif
 
 #ifndef __ISynchronizeMutex_FWD_DEFINED__
 #define __ISynchronizeMutex_FWD_DEFINED__
-typedef interface ISynchronizeMutex ISynchronizeMutex;
+typedef struct ISynchronizeMutex ISynchronizeMutex;
 #endif
 
 #ifndef __ICancelMethodCalls_FWD_DEFINED__
 #define __ICancelMethodCalls_FWD_DEFINED__
-typedef interface ICancelMethodCalls ICancelMethodCalls;
+typedef struct ICancelMethodCalls ICancelMethodCalls;
 #endif
 
 #ifndef __IAsyncManager_FWD_DEFINED__
 #define __IAsyncManager_FWD_DEFINED__
-typedef interface IAsyncManager IAsyncManager;
+typedef struct IAsyncManager IAsyncManager;
 #endif
 
 #ifndef __ICallFactory_FWD_DEFINED__
 #define __ICallFactory_FWD_DEFINED__
-typedef interface ICallFactory ICallFactory;
+typedef struct ICallFactory ICallFactory;
 #endif
 
 #ifndef __IRpcHelper_FWD_DEFINED__
 #define __IRpcHelper_FWD_DEFINED__
-typedef interface IRpcHelper IRpcHelper;
+typedef struct IRpcHelper IRpcHelper;
 #endif
 
 #ifndef __IReleaseMarshalBuffers_FWD_DEFINED__
 #define __IReleaseMarshalBuffers_FWD_DEFINED__
-typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers;
+typedef struct IReleaseMarshalBuffers IReleaseMarshalBuffers;
 #endif
 
 #ifndef __IWaitMultiple_FWD_DEFINED__
 #define __IWaitMultiple_FWD_DEFINED__
-typedef interface IWaitMultiple IWaitMultiple;
+typedef struct IWaitMultiple IWaitMultiple;
 #endif
 
 #ifndef __IUrlMon_FWD_DEFINED__
 #define __IUrlMon_FWD_DEFINED__
-typedef interface IUrlMon IUrlMon;
+typedef struct IUrlMon IUrlMon;
 #endif
 
 #ifndef __IForegroundTransfer_FWD_DEFINED__
 #define __IForegroundTransfer_FWD_DEFINED__
-typedef interface IForegroundTransfer IForegroundTransfer;
+typedef struct IForegroundTransfer IForegroundTransfer;
 #endif
 
 #ifndef __IAddrTrackingControl_FWD_DEFINED__
 #define __IAddrTrackingControl_FWD_DEFINED__
-typedef interface IAddrTrackingControl IAddrTrackingControl;
+typedef struct IAddrTrackingControl IAddrTrackingControl;
 #endif
 
 #ifndef __IAddrExclusionControl_FWD_DEFINED__
 #define __IAddrExclusionControl_FWD_DEFINED__
-typedef interface IAddrExclusionControl IAddrExclusionControl;
+typedef struct IAddrExclusionControl IAddrExclusionControl;
 #endif
 
 #ifndef __IPipeByte_FWD_DEFINED__
 #define __IPipeByte_FWD_DEFINED__
-typedef interface IPipeByte IPipeByte;
+typedef struct IPipeByte IPipeByte;
 #endif
 
 #ifndef __AsyncIPipeByte_FWD_DEFINED__
 #define __AsyncIPipeByte_FWD_DEFINED__
-typedef interface AsyncIPipeByte AsyncIPipeByte;
+typedef struct AsyncIPipeByte AsyncIPipeByte;
 #endif
 
 #ifndef __IPipeLong_FWD_DEFINED__
 #define __IPipeLong_FWD_DEFINED__
-typedef interface IPipeLong IPipeLong;
+typedef struct IPipeLong IPipeLong;
 #endif
 
 #ifndef __AsyncIPipeLong_FWD_DEFINED__
 #define __AsyncIPipeLong_FWD_DEFINED__
-typedef interface AsyncIPipeLong AsyncIPipeLong;
+typedef struct AsyncIPipeLong AsyncIPipeLong;
 #endif
 
 #ifndef __IPipeDouble_FWD_DEFINED__
 #define __IPipeDouble_FWD_DEFINED__
-typedef interface IPipeDouble IPipeDouble;
+typedef struct IPipeDouble IPipeDouble;
 #endif
 
 #ifndef __AsyncIPipeDouble_FWD_DEFINED__
 #define __AsyncIPipeDouble_FWD_DEFINED__
-typedef interface AsyncIPipeDouble AsyncIPipeDouble;
+typedef struct AsyncIPipeDouble AsyncIPipeDouble;
 #endif
 
 #ifndef __IThumbnailExtractor_FWD_DEFINED__
 #define __IThumbnailExtractor_FWD_DEFINED__
-typedef interface IThumbnailExtractor IThumbnailExtractor;
+typedef struct IThumbnailExtractor IThumbnailExtractor;
 #endif
 
 #ifndef __IDummyHICONIncluder_FWD_DEFINED__
 #define __IDummyHICONIncluder_FWD_DEFINED__
-typedef interface IDummyHICONIncluder IDummyHICONIncluder;
+typedef struct IDummyHICONIncluder IDummyHICONIncluder;
 #endif
 
 #ifndef __IEnumContextProps_FWD_DEFINED__
 #define __IEnumContextProps_FWD_DEFINED__
-typedef interface IEnumContextProps IEnumContextProps;
+typedef struct IEnumContextProps IEnumContextProps;
 #endif
 
 #ifndef __IContext_FWD_DEFINED__
 #define __IContext_FWD_DEFINED__
-typedef interface IContext IContext;
+typedef struct IContext IContext;
 #endif
 
 #ifndef __IObjContext_FWD_DEFINED__
 #define __IObjContext_FWD_DEFINED__
-typedef interface IObjContext IObjContext;
+typedef struct IObjContext IObjContext;
 #endif
 
 #ifndef __IProcessLock_FWD_DEFINED__
 #define __IProcessLock_FWD_DEFINED__
-typedef interface IProcessLock IProcessLock;
+typedef struct IProcessLock IProcessLock;
 #endif
 
 #ifndef __ISurrogateService_FWD_DEFINED__
 #define __ISurrogateService_FWD_DEFINED__
-typedef interface ISurrogateService ISurrogateService;
+typedef struct ISurrogateService ISurrogateService;
 #endif
 
 #ifndef __IComThreadingInfo_FWD_DEFINED__
 #define __IComThreadingInfo_FWD_DEFINED__
-typedef interface IComThreadingInfo IComThreadingInfo;
+typedef struct IComThreadingInfo IComThreadingInfo;
 #endif
 
 #ifndef __IProcessInitControl_FWD_DEFINED__
 #define __IProcessInitControl_FWD_DEFINED__
-typedef interface IProcessInitControl IProcessInitControl;
+typedef struct IProcessInitControl IProcessInitControl;
 #endif
 
 #ifndef __IInitializeSpy_FWD_DEFINED__
 #define __IInitializeSpy_FWD_DEFINED__
-typedef interface IInitializeSpy IInitializeSpy;
+typedef struct IInitializeSpy IInitializeSpy;
 #endif
 
 #include "unknwn.h"
@@ -515,7 +515,7 @@
       HRESULT (WINAPI *DisconnectObject)(IMarshal *This,DWORD dwReserved);
     END_INTERFACE
   } IMarshalVtbl;
-  interface IMarshal {
+  struct IMarshal {
     CONST_VTBL struct IMarshalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -566,7 +566,7 @@
       HRESULT (WINAPI *DisconnectObject)(IMarshal2 *This,DWORD dwReserved);
     END_INTERFACE
   } IMarshal2Vtbl;
-  interface IMarshal2 {
+  struct IMarshal2 {
     CONST_VTBL struct IMarshal2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -612,7 +612,7 @@
       void (WINAPI *HeapMinimize)(IMalloc *This);
     END_INTERFACE
   } IMallocVtbl;
-  interface IMalloc {
+  struct IMalloc {
     CONST_VTBL struct IMallocVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -682,7 +682,7 @@
       void (WINAPI *PostHeapMinimize)(IMallocSpy *This);
     END_INTERFACE
   } IMallocSpyVtbl;
-  interface IMallocSpy {
+  struct IMallocSpy {
     CONST_VTBL struct IMallocSpyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -748,7 +748,7 @@
       HRESULT (WINAPI *GetClassForHandler)(IStdMarshalInfo *This,DWORD dwDestContext,void *pvDestContext,CLSID *pClsid);
     END_INTERFACE
   } IStdMarshalInfoVtbl;
-  interface IStdMarshalInfo {
+  struct IStdMarshalInfo {
     CONST_VTBL struct IStdMarshalInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -787,7 +787,7 @@
       DWORD (WINAPI *ReleaseConnection)(IExternalConnection *This,DWORD extconn,DWORD reserved,WINBOOL fLastReleaseCloses);
     END_INTERFACE
   } IExternalConnectionVtbl;
-  interface IExternalConnection {
+  struct IExternalConnection {
     CONST_VTBL struct IExternalConnectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -831,7 +831,7 @@
       HRESULT (WINAPI *QueryMultipleInterfaces)(IMultiQI *This,ULONG cMQIs,MULTI_QI *pMQIs);
     END_INTERFACE
   } IMultiQIVtbl;
-  interface IMultiQI {
+  struct IMultiQI {
     CONST_VTBL struct IMultiQIVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -865,7 +865,7 @@
       HRESULT (WINAPI *Finish_QueryMultipleInterfaces)(AsyncIMultiQI *This,MULTI_QI *pMQIs);
     END_INTERFACE
   } AsyncIMultiQIVtbl;
-  interface AsyncIMultiQI {
+  struct AsyncIMultiQI {
     CONST_VTBL struct AsyncIMultiQIVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -899,7 +899,7 @@
       HRESULT (WINAPI *QueryInternalInterface)(IInternalUnknown *This,REFIID riid,void **ppv);
     END_INTERFACE
   } IInternalUnknownVtbl;
-  interface IInternalUnknown {
+  struct IInternalUnknown {
     CONST_VTBL struct IInternalUnknownVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -938,7 +938,7 @@
       HRESULT (WINAPI *Clone)(IEnumUnknown *This,IEnumUnknown **ppenum);
     END_INTERFACE
   } IEnumUnknownVtbl;
-  interface IEnumUnknown {
+  struct IEnumUnknown {
     CONST_VTBL struct IEnumUnknownVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1033,7 +1033,7 @@
       HRESULT (WINAPI *RevokeObjectParam)(IBindCtx *This,LPOLESTR pszKey);
     END_INTERFACE
   } IBindCtxVtbl;
-  interface IBindCtx {
+  struct IBindCtx {
     CONST_VTBL struct IBindCtxVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1099,7 +1099,7 @@
       HRESULT (WINAPI *Clone)(IEnumMoniker *This,IEnumMoniker **ppenum);
     END_INTERFACE
   } IEnumMonikerVtbl;
-  interface IEnumMoniker {
+  struct IEnumMoniker {
     CONST_VTBL struct IEnumMonikerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1149,7 +1149,7 @@
       HRESULT (WINAPI *SetContainedObject)(IRunnableObject *This,WINBOOL fContained);
     END_INTERFACE
   } IRunnableObjectVtbl;
-  interface IRunnableObject {
+  struct IRunnableObject {
     CONST_VTBL struct IRunnableObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1206,7 +1206,7 @@
       HRESULT (WINAPI *EnumRunning)(IRunningObjectTable *This,IEnumMoniker **ppenumMoniker);
     END_INTERFACE
   } IRunningObjectTableVtbl;
-  interface IRunningObjectTable {
+  struct IRunningObjectTable {
     CONST_VTBL struct IRunningObjectTableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1257,7 +1257,7 @@
       HRESULT (WINAPI *GetClassID)(IPersist *This,CLSID *pClassID);
     END_INTERFACE
   } IPersistVtbl;
-  interface IPersist {
+  struct IPersist {
     CONST_VTBL struct IPersistVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1297,7 +1297,7 @@
       HRESULT (WINAPI *GetSizeMax)(IPersistStream *This,ULARGE_INTEGER *pcbSize);
     END_INTERFACE
   } IPersistStreamVtbl;
-  interface IPersistStream {
+  struct IPersistStream {
     CONST_VTBL struct IPersistStreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1382,7 +1382,7 @@
       HRESULT (WINAPI *IsSystemMoniker)(IMoniker *This,DWORD *pdwMksys);
     END_INTERFACE
   } IMonikerVtbl;
-  interface IMoniker {
+  struct IMoniker {
     CONST_VTBL struct IMonikerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1460,7 +1460,7 @@
       HRESULT (WINAPI *GetComparisonData)(IROTData *This,byte *pbData,ULONG cbMax,ULONG *pcbData);
     END_INTERFACE
   } IROTDataVtbl;
-  interface IROTData {
+  struct IROTData {
     CONST_VTBL struct IROTDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1499,7 +1499,7 @@
       HRESULT (WINAPI *Clone)(IEnumString *This,IEnumString **ppenum);
     END_INTERFACE
   } IEnumStringVtbl;
-  interface IEnumString {
+  struct IEnumString {
     CONST_VTBL struct IEnumStringVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1541,7 +1541,7 @@
       HRESULT (WINAPI *Write)(ISequentialStream *This,const void *pv,ULONG cb,ULONG *pcbWritten);
     END_INTERFACE
   } ISequentialStreamVtbl;
-  interface ISequentialStream {
+  struct ISequentialStream {
     CONST_VTBL struct ISequentialStreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1622,7 +1622,7 @@
       HRESULT (WINAPI *Clone)(IStream *This,IStream **ppstm);
     END_INTERFACE
   } IStreamVtbl;
-  interface IStream {
+  struct IStream {
     CONST_VTBL struct IStreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1687,7 +1687,7 @@
       HRESULT (WINAPI *Clone)(IEnumSTATSTG *This,IEnumSTATSTG **ppenum);
     END_INTERFACE
   } IEnumSTATSTGVtbl;
-  interface IEnumSTATSTG {
+  struct IEnumSTATSTG {
     CONST_VTBL struct IEnumSTATSTGVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1766,7 +1766,7 @@
       HRESULT (WINAPI *Stat)(IStorage *This,STATSTG *pstatstg,DWORD grfStatFlag);
     END_INTERFACE
   } IStorageVtbl;
-  interface IStorage {
+  struct IStorage {
     CONST_VTBL struct IStorageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1850,7 +1850,7 @@
       HRESULT (WINAPI *GetCurFile)(IPersistFile *This,LPOLESTR *ppszFileName);
     END_INTERFACE
   } IPersistFileVtbl;
-  interface IPersistFile {
+  struct IPersistFile {
     CONST_VTBL struct IPersistFileVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1907,7 +1907,7 @@
       HRESULT (WINAPI *HandsOffStorage)(IPersistStorage *This);
     END_INTERFACE
   } IPersistStorageVtbl;
-  interface IPersistStorage {
+  struct IPersistStorage {
     CONST_VTBL struct IPersistStorageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1968,7 +1968,7 @@
       HRESULT (WINAPI *Stat)(ILockBytes *This,STATSTG *pstatstg,DWORD grfStatFlag);
     END_INTERFACE
   } ILockBytesVtbl;
-  interface ILockBytes {
+  struct ILockBytes {
     CONST_VTBL struct ILockBytesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2046,7 +2046,7 @@
       HRESULT (WINAPI *Clone)(IEnumFORMATETC *This,IEnumFORMATETC **ppenum);
     END_INTERFACE
   } IEnumFORMATETCVtbl;
-  interface IEnumFORMATETC {
+  struct IEnumFORMATETC {
     CONST_VTBL struct IEnumFORMATETCVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2108,7 +2108,7 @@
       HRESULT (WINAPI *Clone)(IEnumSTATDATA *This,IEnumSTATDATA **ppenum);
     END_INTERFACE
   } IEnumSTATDATAVtbl;
-  interface IEnumSTATDATA {
+  struct IEnumSTATDATA {
     CONST_VTBL struct IEnumSTATDATAVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2150,7 +2150,7 @@
       HRESULT (WINAPI *SwitchToFile)(IRootStorage *This,LPOLESTR pszFile);
     END_INTERFACE
   } IRootStorageVtbl;
-  interface IRootStorage {
+  struct IRootStorage {
     CONST_VTBL struct IRootStorageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2278,7 +2278,7 @@
       void (WINAPI *OnClose)(IAdviseSink *This);
     END_INTERFACE
   } IAdviseSinkVtbl;
-  interface IAdviseSink {
+  struct IAdviseSink {
     CONST_VTBL struct IAdviseSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2339,7 +2339,7 @@
       void (WINAPI *Finish_OnClose)(AsyncIAdviseSink *This);
     END_INTERFACE
   } AsyncIAdviseSinkVtbl;
-  interface AsyncIAdviseSink {
+  struct AsyncIAdviseSink {
     CONST_VTBL struct AsyncIAdviseSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2404,7 +2404,7 @@
       void (WINAPI *OnLinkSrcChange)(IAdviseSink2 *This,IMoniker *pmk);
     END_INTERFACE
   } IAdviseSink2Vtbl;
-  interface IAdviseSink2 {
+  struct IAdviseSink2 {
     CONST_VTBL struct IAdviseSink2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2452,7 +2452,7 @@
       void (WINAPI *Finish_OnLinkSrcChange)(AsyncIAdviseSink2 *This);
     END_INTERFACE
   } AsyncIAdviseSink2Vtbl;
-  interface AsyncIAdviseSink2 {
+  struct AsyncIAdviseSink2 {
     CONST_VTBL struct AsyncIAdviseSink2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2518,7 +2518,7 @@
       HRESULT (WINAPI *EnumDAdvise)(IDataObject *This,IEnumSTATDATA **ppenumAdvise);
     END_INTERFACE
   } IDataObjectVtbl;
-  interface IDataObject {
+  struct IDataObject {
     CONST_VTBL struct IDataObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2580,7 +2580,7 @@
       HRESULT (WINAPI *SendOnDataChange)(IDataAdviseHolder *This,IDataObject *pDataObject,DWORD dwReserved,DWORD advf);
     END_INTERFACE
   } IDataAdviseHolderVtbl;
-  interface IDataAdviseHolder {
+  struct IDataAdviseHolder {
     CONST_VTBL struct IDataAdviseHolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2650,7 +2650,7 @@
       DWORD (WINAPI *MessagePending)(IMessageFilter *This,HTASK htaskCallee,DWORD dwTickCount,DWORD dwPendingType);
     END_INTERFACE
   } IMessageFilterVtbl;
-  interface IMessageFilter {
+  struct IMessageFilter {
     CONST_VTBL struct IMessageFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2709,7 +2709,7 @@
       HRESULT (WINAPI *IsConnected)(IRpcChannelBuffer *This);
     END_INTERFACE
   } IRpcChannelBufferVtbl;
-  interface IRpcChannelBuffer {
+  struct IRpcChannelBuffer {
     CONST_VTBL struct IRpcChannelBufferVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2757,7 +2757,7 @@
       HRESULT (WINAPI *GetProtocolVersion)(IRpcChannelBuffer2 *This,DWORD *pdwVersion);
     END_INTERFACE
   } IRpcChannelBuffer2Vtbl;
-  interface IRpcChannelBuffer2 {
+  struct IRpcChannelBuffer2 {
     CONST_VTBL struct IRpcChannelBuffer2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2803,7 +2803,7 @@
       HRESULT (WINAPI *GetDestCtxEx)(IAsyncRpcChannelBuffer *This,RPCOLEMESSAGE *pMsg,DWORD *pdwDestContext,void **ppvDestContext);
     END_INTERFACE
   } IAsyncRpcChannelBufferVtbl;
-  interface IAsyncRpcChannelBuffer {
+  struct IAsyncRpcChannelBuffer {
     CONST_VTBL struct IAsyncRpcChannelBufferVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2864,7 +2864,7 @@
       HRESULT (WINAPI *RegisterAsync)(IRpcChannelBuffer3 *This,RPCOLEMESSAGE *pMsg,IAsyncManager *pAsyncMgr);
     END_INTERFACE
   } IRpcChannelBuffer3Vtbl;
-  interface IRpcChannelBuffer3 {
+  struct IRpcChannelBuffer3 {
     CONST_VTBL struct IRpcChannelBuffer3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2919,7 +2919,7 @@
       HRESULT (WINAPI *NegotiateSyntax)(IRpcSyntaxNegotiate *This,RPCOLEMESSAGE *pMsg);
     END_INTERFACE
   } IRpcSyntaxNegotiateVtbl;
-  interface IRpcSyntaxNegotiate {
+  struct IRpcSyntaxNegotiate {
     CONST_VTBL struct IRpcSyntaxNegotiateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2952,7 +2952,7 @@
       void (WINAPI *Disconnect)(IRpcProxyBuffer *This);
     END_INTERFACE
   } IRpcProxyBufferVtbl;
-  interface IRpcProxyBuffer {
+  struct IRpcProxyBuffer {
     CONST_VTBL struct IRpcProxyBufferVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2998,7 +2998,7 @@
       void (WINAPI *DebugServerRelease)(IRpcStubBuffer *This,void *pv);
     END_INTERFACE
   } IRpcStubBufferVtbl;
-  interface IRpcStubBuffer {
+  struct IRpcStubBuffer {
     CONST_VTBL struct IRpcStubBufferVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3049,7 +3049,7 @@
       HRESULT (WINAPI *CreateStub)(IPSFactoryBuffer *This,REFIID riid,IUnknown *pUnkServer,IRpcStubBuffer **ppStub);
     END_INTERFACE
   } IPSFactoryBufferVtbl;
-  interface IPSFactoryBuffer {
+  struct IPSFactoryBuffer {
     CONST_VTBL struct IPSFactoryBufferVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3105,7 +3105,7 @@
       void (WINAPI *ServerFillBuffer)(IChannelHook *This,REFGUID uExtent,REFIID riid,ULONG *pDataSize,void *pDataBuffer,HRESULT hrFault);
     END_INTERFACE
   } IChannelHookVtbl;
-  interface IChannelHook {
+  struct IChannelHook {
     CONST_VTBL struct IChannelHookVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3198,7 +3198,7 @@
       HRESULT (WINAPI *CopyProxy)(IClientSecurity *This,IUnknown *pProxy,IUnknown **ppCopy);
     END_INTERFACE
   } IClientSecurityVtbl;
-  interface IClientSecurity {
+  struct IClientSecurity {
     CONST_VTBL struct IClientSecurityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3241,7 +3241,7 @@
       WINBOOL (WINAPI *IsImpersonating)(IServerSecurity *This);
     END_INTERFACE
   } IServerSecurityVtbl;
-  interface IServerSecurity {
+  struct IServerSecurity {
     CONST_VTBL struct IServerSecurityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3281,7 +3281,7 @@
       HRESULT (WINAPI *GetClassObject)(IClassActivator *This,REFCLSID rclsid,DWORD dwClassContext,LCID locale,REFIID riid,void **ppv);
     END_INTERFACE
   } IClassActivatorVtbl;
-  interface IClassActivator {
+  struct IClassActivator {
     CONST_VTBL struct IClassActivatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3314,7 +3314,7 @@
       HRESULT (WINAPI *Query)(IRpcOptions *This,IUnknown *pPrx,DWORD dwProperty,ULONG_PTR *pdwValue);
     END_INTERFACE
   } IRpcOptionsVtbl;
-  interface IRpcOptions {
+  struct IRpcOptions {
     CONST_VTBL struct IRpcOptionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3364,7 +3364,7 @@
       HRESULT (WINAPI *Terminate)(IFillLockBytes *This,WINBOOL bCanceled);
     END_INTERFACE
   } IFillLockBytesVtbl;
-  interface IFillLockBytes {
+  struct IFillLockBytes {
     CONST_VTBL struct IFillLockBytesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3404,7 +3404,7 @@
       HRESULT (WINAPI *OnProgress)(IProgressNotify *This,DWORD dwProgressCurrent,DWORD dwProgressMaximum,WINBOOL fAccurate,WINBOOL fOwner);
     END_INTERFACE
   } IProgressNotifyVtbl;
-  interface IProgressNotify {
+  struct IProgressNotify {
     CONST_VTBL struct IProgressNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3450,7 +3450,7 @@
       HRESULT (WINAPI *ReLayoutDocfileOnILockBytes)(ILayoutStorage *This,ILockBytes *pILockBytes);
     END_INTERFACE
   } ILayoutStorageVtbl;
-  interface ILayoutStorage {
+  struct ILayoutStorage {
     CONST_VTBL struct ILayoutStorageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3495,7 +3495,7 @@
       HRESULT (WINAPI *Unlock)(IBlockingLock *This);
     END_INTERFACE
   } IBlockingLockVtbl;
-  interface IBlockingLock {
+  struct IBlockingLock {
     CONST_VTBL struct IBlockingLockVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3529,7 +3529,7 @@
       HRESULT (WINAPI *SuppressChanges)(ITimeAndNoticeControl *This,DWORD res1,DWORD res2);
     END_INTERFACE
   } ITimeAndNoticeControlVtbl;
-  interface ITimeAndNoticeControl {
+  struct ITimeAndNoticeControl {
     CONST_VTBL struct ITimeAndNoticeControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3562,7 +3562,7 @@
       HRESULT (WINAPI *OpenStorageEx)(IOplockStorage *This,LPCWSTR pwcsName,DWORD grfMode,DWORD stgfmt,DWORD grfAttrs,REFIID riid,void **ppstgOpen);
     END_INTERFACE
   } IOplockStorageVtbl;
-  interface IOplockStorage {
+  struct IOplockStorage {
     CONST_VTBL struct IOplockStorageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3600,7 +3600,7 @@
       HRESULT (WINAPI *FreeSurrogate)(ISurrogate *This);
     END_INTERFACE
   } ISurrogateVtbl;
-  interface ISurrogate {
+  struct ISurrogate {
     CONST_VTBL struct ISurrogateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3640,7 +3640,7 @@
       HRESULT (WINAPI *GetInterfaceFromGlobal)(IGlobalInterfaceTable *This,DWORD dwCookie,REFIID riid,void **ppv);
     END_INTERFACE
   } IGlobalInterfaceTableVtbl;
-  interface IGlobalInterfaceTable {
+  struct IGlobalInterfaceTable {
     CONST_VTBL struct IGlobalInterfaceTableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3681,7 +3681,7 @@
       HRESULT (WINAPI *HaveWriteAccess)(IDirectWriterLock *This);
     END_INTERFACE
   } IDirectWriterLockVtbl;
-  interface IDirectWriterLock {
+  struct IDirectWriterLock {
     CONST_VTBL struct IDirectWriterLockVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3722,7 +3722,7 @@
       HRESULT (WINAPI *Reset)(ISynchronize *This);
     END_INTERFACE
   } ISynchronizeVtbl;
-  interface ISynchronize {
+  struct ISynchronize {
     CONST_VTBL struct ISynchronizeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3759,7 +3759,7 @@
       HRESULT (WINAPI *GetHandle)(ISynchronizeHandle *This,HANDLE *ph);
     END_INTERFACE
   } ISynchronizeHandleVtbl;
-  interface ISynchronizeHandle {
+  struct ISynchronizeHandle {
     CONST_VTBL struct ISynchronizeHandleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3791,7 +3791,7 @@
       HRESULT (WINAPI *SetEventHandle)(ISynchronizeEvent *This,HANDLE *ph);
     END_INTERFACE
   } ISynchronizeEventVtbl;
-  interface ISynchronizeEvent {
+  struct ISynchronizeEvent {
     CONST_VTBL struct ISynchronizeEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3825,7 +3825,7 @@
       HRESULT (WINAPI *WaitMultiple)(ISynchronizeContainer *This,DWORD dwFlags,DWORD dwTimeOut,ISynchronize **ppSync);
     END_INTERFACE
   } ISynchronizeContainerVtbl;
-  interface ISynchronizeContainer {
+  struct ISynchronizeContainer {
     CONST_VTBL struct ISynchronizeContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3862,7 +3862,7 @@
       HRESULT (WINAPI *ReleaseMutex)(ISynchronizeMutex *This);
     END_INTERFACE
   } ISynchronizeMutexVtbl;
-  interface ISynchronizeMutex {
+  struct ISynchronizeMutex {
     CONST_VTBL struct ISynchronizeMutexVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3900,7 +3900,7 @@
       HRESULT (WINAPI *TestCancel)(ICancelMethodCalls *This);
     END_INTERFACE
   } ICancelMethodCallsVtbl;
-  interface ICancelMethodCalls {
+  struct ICancelMethodCalls {
     CONST_VTBL struct ICancelMethodCallsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3942,7 +3942,7 @@
       HRESULT (WINAPI *GetState)(IAsyncManager *This,ULONG *pulStateFlags);
     END_INTERFACE
   } IAsyncManagerVtbl;
-  interface IAsyncManager {
+  struct IAsyncManager {
     CONST_VTBL struct IAsyncManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3979,7 +3979,7 @@
       HRESULT (WINAPI *CreateCall)(ICallFactory *This,REFIID riid,IUnknown *pCtrlUnk,REFIID riid2,IUnknown **ppv);
     END_INTERFACE
   } ICallFactoryVtbl;
-  interface ICallFactory {
+  struct ICallFactory {
     CONST_VTBL struct ICallFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4012,7 +4012,7 @@
       HRESULT (WINAPI *GetIIDFromOBJREF)(IRpcHelper *This,void *pObjRef,IID **piid);
     END_INTERFACE
   } IRpcHelperVtbl;
-  interface IRpcHelper {
+  struct IRpcHelper {
     CONST_VTBL struct IRpcHelperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4046,7 +4046,7 @@
       HRESULT (WINAPI *ReleaseMarshalBuffer)(IReleaseMarshalBuffers *This,RPCOLEMESSAGE *pMsg,DWORD dwFlags,IUnknown *pChnl);
     END_INTERFACE
   } IReleaseMarshalBuffersVtbl;
-  interface IReleaseMarshalBuffers {
+  struct IReleaseMarshalBuffers {
     CONST_VTBL struct IReleaseMarshalBuffersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4079,7 +4079,7 @@
       HRESULT (WINAPI *AddSynchronize)(IWaitMultiple *This,ISynchronize *pSync);
     END_INTERFACE
   } IWaitMultipleVtbl;
-  interface IWaitMultiple {
+  struct IWaitMultiple {
     CONST_VTBL struct IWaitMultipleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4113,7 +4113,7 @@
       HRESULT (WINAPI *AsyncGetClassBits)(IUrlMon *This,REFCLSID rclsid,LPCWSTR pszTYPE,LPCWSTR pszExt,DWORD dwFileVersionMS,DWORD dwFileVersionLS,LPCWSTR pszCodeBase,IBindCtx *pbc,DWORD dwClassContext,REFIID riid,DWORD flags);
     END_INTERFACE
   } IUrlMonVtbl;
-  interface IUrlMon {
+  struct IUrlMon {
     CONST_VTBL struct IUrlMonVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4144,7 +4144,7 @@
       HRESULT (WINAPI *AllowForegroundTransfer)(IForegroundTransfer *This,void *lpvReserved);
     END_INTERFACE
   } IForegroundTransferVtbl;
-  interface IForegroundTransfer {
+  struct IForegroundTransfer {
     CONST_VTBL struct IForegroundTransferVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4179,7 +4179,7 @@
       HRESULT (WINAPI *DisableCOMDynamicAddrTracking)(IAddrTrackingControl *This);
     END_INTERFACE
   } IAddrTrackingControlVtbl;
-  interface IAddrTrackingControl {
+  struct IAddrTrackingControl {
     CONST_VTBL struct IAddrTrackingControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4217,7 +4217,7 @@
       HRESULT (WINAPI *UpdateAddrExclusionList)(IAddrExclusionControl *This,IUnknown *pEnumerator);
     END_INTERFACE
   } IAddrExclusionControlVtbl;
-  interface IAddrExclusionControl {
+  struct IAddrExclusionControl {
     CONST_VTBL struct IAddrExclusionControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4253,7 +4253,7 @@
       HRESULT (WINAPI *Push)(IPipeByte *This,BYTE *buf,ULONG cSent);
     END_INTERFACE
   } IPipeByteVtbl;
-  interface IPipeByte {
+  struct IPipeByte {
     CONST_VTBL struct IPipeByteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4293,7 +4293,7 @@
       HRESULT (WINAPI *Finish_Push)(AsyncIPipeByte *This);
     END_INTERFACE
   } AsyncIPipeByteVtbl;
-  interface AsyncIPipeByte {
+  struct AsyncIPipeByte {
     CONST_VTBL struct AsyncIPipeByteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4335,7 +4335,7 @@
       HRESULT (WINAPI *Push)(IPipeLong *This,LONG *buf,ULONG cSent);
     END_INTERFACE
   } IPipeLongVtbl;
-  interface IPipeLong {
+  struct IPipeLong {
     CONST_VTBL struct IPipeLongVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4375,7 +4375,7 @@
       HRESULT (WINAPI *Finish_Push)(AsyncIPipeLong *This);
     END_INTERFACE
   } AsyncIPipeLongVtbl;
-  interface AsyncIPipeLong {
+  struct AsyncIPipeLong {
     CONST_VTBL struct AsyncIPipeLongVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4417,7 +4417,7 @@
       HRESULT (WINAPI *Push)(IPipeDouble *This,DOUBLE *buf,ULONG cSent);
     END_INTERFACE
   } IPipeDoubleVtbl;
-  interface IPipeDouble {
+  struct IPipeDouble {
     CONST_VTBL struct IPipeDoubleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4457,7 +4457,7 @@
       HRESULT (WINAPI *Finish_Push)(AsyncIPipeDouble *This);
     END_INTERFACE
   } AsyncIPipeDoubleVtbl;
-  interface AsyncIPipeDouble {
+  struct AsyncIPipeDouble {
     CONST_VTBL struct AsyncIPipeDoubleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4499,7 +4499,7 @@
       HRESULT (WINAPI *OnFileUpdated)(IThumbnailExtractor *This,IStorage *pStg);
     END_INTERFACE
   } IThumbnailExtractorVtbl;
-  interface IThumbnailExtractor {
+  struct IThumbnailExtractor {
     CONST_VTBL struct IThumbnailExtractorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4533,7 +4533,7 @@
       HRESULT (WINAPI *Dummy)(IDummyHICONIncluder *This,HICON h1,HDC h2);
     END_INTERFACE
   } IDummyHICONIncluderVtbl;
-  interface IDummyHICONIncluder {
+  struct IDummyHICONIncluder {
     CONST_VTBL struct IDummyHICONIncluderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4586,7 +4586,7 @@
       HRESULT (WINAPI *Count)(IEnumContextProps *This,ULONG *pcelt);
     END_INTERFACE
   } IEnumContextPropsVtbl;
-  interface IEnumContextProps {
+  struct IEnumContextProps {
     CONST_VTBL struct IEnumContextPropsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4635,7 +4635,7 @@
       HRESULT (WINAPI *EnumContextProps)(IContext *This,IEnumContextProps **ppEnumContextProps);
     END_INTERFACE
   } IContextVtbl;
-  interface IContext {
+  struct IContext {
     CONST_VTBL struct IContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4695,7 +4695,7 @@
       void (WINAPI *Reserved7)(IObjContext *This);
     END_INTERFACE
   } IObjContextVtbl;
-  interface IObjContext {
+  struct IObjContext {
     CONST_VTBL struct IObjContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4762,7 +4762,7 @@
       ULONG (WINAPI *ReleaseRefOnProcess)(IProcessLock *This);
     END_INTERFACE
   } IProcessLockVtbl;
-  interface IProcessLock {
+  struct IProcessLock {
     CONST_VTBL struct IProcessLockVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4804,7 +4804,7 @@
       HRESULT (WINAPI *ProcessShutdown)(ISurrogateService *This,ShutdownType shutdownType);
     END_INTERFACE
   } ISurrogateServiceVtbl;
-  interface ISurrogateService {
+  struct ISurrogateService {
     CONST_VTBL struct ISurrogateServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4866,7 +4866,7 @@
       HRESULT (WINAPI *SetCurrentLogicalThreadId)(IComThreadingInfo *This,REFGUID rguid);
     END_INTERFACE
   } IComThreadingInfoVtbl;
-  interface IComThreadingInfo {
+  struct IComThreadingInfo {
     CONST_VTBL struct IComThreadingInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4906,7 +4906,7 @@
       HRESULT (WINAPI *ResetInitializerTimeout)(IProcessInitControl *This,DWORD dwSecondsRemaining);
     END_INTERFACE
   } IProcessInitControlVtbl;
-  interface IProcessInitControl {
+  struct IProcessInitControl {
     CONST_VTBL struct IProcessInitControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4948,7 +4948,7 @@
       HRESULT (WINAPI *PostUninitialize)(IInitializeSpy *This,DWORD dwNewThreadAptRefs);
     END_INTERFACE
   } IInitializeSpyVtbl;
-  interface IInitializeSpy {
+  struct IInitializeSpy {
     CONST_VTBL struct IInitializeSpyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/objsafe.h b/mingw-w64-headers/include/objsafe.h
index 6cad2eb..e35b281 100755
--- a/mingw-w64-headers/include/objsafe.h
+++ b/mingw-w64-headers/include/objsafe.h
@@ -24,7 +24,7 @@
 
 #ifndef __IObjectSafety_FWD_DEFINED__
 #define __IObjectSafety_FWD_DEFINED__
-typedef interface IObjectSafety IObjectSafety;
+typedef struct IObjectSafety IObjectSafety;
 #endif
 
 #include "unknwn.h"
@@ -70,7 +70,7 @@
       HRESULT (WINAPI *SetInterfaceSafetyOptions)(IObjectSafety *This,REFIID riid,DWORD dwOptionSetMask,DWORD dwEnabledOptions);
     END_INTERFACE
   } IObjectSafetyVtbl;
-  interface IObjectSafety {
+  struct IObjectSafety {
     CONST_VTBL struct IObjectSafetyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/ocidl.h b/mingw-w64-headers/include/ocidl.h
index 85b930f..d338809 100755
--- a/mingw-w64-headers/include/ocidl.h
+++ b/mingw-w64-headers/include/ocidl.h
@@ -24,197 +24,197 @@
 
 #ifndef __IEnumConnections_FWD_DEFINED__
 #define __IEnumConnections_FWD_DEFINED__
-typedef interface IEnumConnections IEnumConnections;
+typedef struct IEnumConnections IEnumConnections;
 #endif
 
 #ifndef __IConnectionPoint_FWD_DEFINED__
 #define __IConnectionPoint_FWD_DEFINED__
-typedef interface IConnectionPoint IConnectionPoint;
+typedef struct IConnectionPoint IConnectionPoint;
 #endif
 
 #ifndef __IEnumConnectionPoints_FWD_DEFINED__
 #define __IEnumConnectionPoints_FWD_DEFINED__
-typedef interface IEnumConnectionPoints IEnumConnectionPoints;
+typedef struct IEnumConnectionPoints IEnumConnectionPoints;
 #endif
 
 #ifndef __IConnectionPointContainer_FWD_DEFINED__
 #define __IConnectionPointContainer_FWD_DEFINED__
-typedef interface IConnectionPointContainer IConnectionPointContainer;
+typedef struct IConnectionPointContainer IConnectionPointContainer;
 #endif
 
 #ifndef __IClassFactory2_FWD_DEFINED__
 #define __IClassFactory2_FWD_DEFINED__
-typedef interface IClassFactory2 IClassFactory2;
+typedef struct IClassFactory2 IClassFactory2;
 #endif
 
 #ifndef __IProvideClassInfo_FWD_DEFINED__
 #define __IProvideClassInfo_FWD_DEFINED__
-typedef interface IProvideClassInfo IProvideClassInfo;
+typedef struct IProvideClassInfo IProvideClassInfo;
 #endif
 
 #ifndef __IProvideClassInfo2_FWD_DEFINED__
 #define __IProvideClassInfo2_FWD_DEFINED__
-typedef interface IProvideClassInfo2 IProvideClassInfo2;
+typedef struct IProvideClassInfo2 IProvideClassInfo2;
 #endif
 
 #ifndef __IProvideMultipleClassInfo_FWD_DEFINED__
 #define __IProvideMultipleClassInfo_FWD_DEFINED__
-typedef interface IProvideMultipleClassInfo IProvideMultipleClassInfo;
+typedef struct IProvideMultipleClassInfo IProvideMultipleClassInfo;
 #endif
 
 #ifndef __IOleControl_FWD_DEFINED__
 #define __IOleControl_FWD_DEFINED__
-typedef interface IOleControl IOleControl;
+typedef struct IOleControl IOleControl;
 #endif
 
 #ifndef __IOleControlSite_FWD_DEFINED__
 #define __IOleControlSite_FWD_DEFINED__
-typedef interface IOleControlSite IOleControlSite;
+typedef struct IOleControlSite IOleControlSite;
 #endif
 
 #ifndef __IPropertyPage_FWD_DEFINED__
 #define __IPropertyPage_FWD_DEFINED__
-typedef interface IPropertyPage IPropertyPage;
+typedef struct IPropertyPage IPropertyPage;
 #endif
 
 #ifndef __IPropertyPage2_FWD_DEFINED__
 #define __IPropertyPage2_FWD_DEFINED__
-typedef interface IPropertyPage2 IPropertyPage2;
+typedef struct IPropertyPage2 IPropertyPage2;
 #endif
 
 #ifndef __IPropertyPageSite_FWD_DEFINED__
 #define __IPropertyPageSite_FWD_DEFINED__
-typedef interface IPropertyPageSite IPropertyPageSite;
+typedef struct IPropertyPageSite IPropertyPageSite;
 #endif
 
 #ifndef __IPropertyNotifySink_FWD_DEFINED__
 #define __IPropertyNotifySink_FWD_DEFINED__
-typedef interface IPropertyNotifySink IPropertyNotifySink;
+typedef struct IPropertyNotifySink IPropertyNotifySink;
 #endif
 
 #ifndef __ISpecifyPropertyPages_FWD_DEFINED__
 #define __ISpecifyPropertyPages_FWD_DEFINED__
-typedef interface ISpecifyPropertyPages ISpecifyPropertyPages;
+typedef struct ISpecifyPropertyPages ISpecifyPropertyPages;
 #endif
 
 #ifndef __IPersistMemory_FWD_DEFINED__
 #define __IPersistMemory_FWD_DEFINED__
-typedef interface IPersistMemory IPersistMemory;
+typedef struct IPersistMemory IPersistMemory;
 #endif
 
 #ifndef __IPersistStreamInit_FWD_DEFINED__
 #define __IPersistStreamInit_FWD_DEFINED__
-typedef interface IPersistStreamInit IPersistStreamInit;
+typedef struct IPersistStreamInit IPersistStreamInit;
 #endif
 
 #ifndef __IPersistPropertyBag_FWD_DEFINED__
 #define __IPersistPropertyBag_FWD_DEFINED__
-typedef interface IPersistPropertyBag IPersistPropertyBag;
+typedef struct IPersistPropertyBag IPersistPropertyBag;
 #endif
 
 #ifndef __ISimpleFrameSite_FWD_DEFINED__
 #define __ISimpleFrameSite_FWD_DEFINED__
-typedef interface ISimpleFrameSite ISimpleFrameSite;
+typedef struct ISimpleFrameSite ISimpleFrameSite;
 #endif
 
 #ifndef __IFont_FWD_DEFINED__
 #define __IFont_FWD_DEFINED__
-typedef interface IFont IFont;
+typedef struct IFont IFont;
 #endif
 
 #ifndef __IPicture_FWD_DEFINED__
 #define __IPicture_FWD_DEFINED__
-typedef interface IPicture IPicture;
+typedef struct IPicture IPicture;
 #endif
 
 #ifndef __IFontEventsDisp_FWD_DEFINED__
 #define __IFontEventsDisp_FWD_DEFINED__
-typedef interface IFontEventsDisp IFontEventsDisp;
+typedef struct IFontEventsDisp IFontEventsDisp;
 #endif
 
 #ifndef __IFontDisp_FWD_DEFINED__
 #define __IFontDisp_FWD_DEFINED__
-typedef interface IFontDisp IFontDisp;
+typedef struct IFontDisp IFontDisp;
 #endif
 
 #ifndef __IPictureDisp_FWD_DEFINED__
 #define __IPictureDisp_FWD_DEFINED__
-typedef interface IPictureDisp IPictureDisp;
+typedef struct IPictureDisp IPictureDisp;
 #endif
 
 #ifndef __IOleInPlaceObjectWindowless_FWD_DEFINED__
 #define __IOleInPlaceObjectWindowless_FWD_DEFINED__
-typedef interface IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless;
+typedef struct IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless;
 #endif
 
 #ifndef __IOleInPlaceSiteEx_FWD_DEFINED__
 #define __IOleInPlaceSiteEx_FWD_DEFINED__
-typedef interface IOleInPlaceSiteEx IOleInPlaceSiteEx;
+typedef struct IOleInPlaceSiteEx IOleInPlaceSiteEx;
 #endif
 
 #ifndef __IOleInPlaceSiteWindowless_FWD_DEFINED__
 #define __IOleInPlaceSiteWindowless_FWD_DEFINED__
-typedef interface IOleInPlaceSiteWindowless IOleInPlaceSiteWindowless;
+typedef struct IOleInPlaceSiteWindowless IOleInPlaceSiteWindowless;
 #endif
 
 #ifndef __IViewObjectEx_FWD_DEFINED__
 #define __IViewObjectEx_FWD_DEFINED__
-typedef interface IViewObjectEx IViewObjectEx;
+typedef struct IViewObjectEx IViewObjectEx;
 #endif
 
 #ifndef __IOleUndoUnit_FWD_DEFINED__
 #define __IOleUndoUnit_FWD_DEFINED__
-typedef interface IOleUndoUnit IOleUndoUnit;
+typedef struct IOleUndoUnit IOleUndoUnit;
 #endif
 
 #ifndef __IOleParentUndoUnit_FWD_DEFINED__
 #define __IOleParentUndoUnit_FWD_DEFINED__
-typedef interface IOleParentUndoUnit IOleParentUndoUnit;
+typedef struct IOleParentUndoUnit IOleParentUndoUnit;
 #endif
 
 #ifndef __IEnumOleUndoUnits_FWD_DEFINED__
 #define __IEnumOleUndoUnits_FWD_DEFINED__
-typedef interface IEnumOleUndoUnits IEnumOleUndoUnits;
+typedef struct IEnumOleUndoUnits IEnumOleUndoUnits;
 #endif
 
 #ifndef __IOleUndoManager_FWD_DEFINED__
 #define __IOleUndoManager_FWD_DEFINED__
-typedef interface IOleUndoManager IOleUndoManager;
+typedef struct IOleUndoManager IOleUndoManager;
 #endif
 
 #ifndef __IPointerInactive_FWD_DEFINED__
 #define __IPointerInactive_FWD_DEFINED__
-typedef interface IPointerInactive IPointerInactive;
+typedef struct IPointerInactive IPointerInactive;
 #endif
 
 #ifndef __IObjectWithSite_FWD_DEFINED__
 #define __IObjectWithSite_FWD_DEFINED__
-typedef interface IObjectWithSite IObjectWithSite;
+typedef struct IObjectWithSite IObjectWithSite;
 #endif
 
 #ifndef __IPerPropertyBrowsing_FWD_DEFINED__
 #define __IPerPropertyBrowsing_FWD_DEFINED__
-typedef interface IPerPropertyBrowsing IPerPropertyBrowsing;
+typedef struct IPerPropertyBrowsing IPerPropertyBrowsing;
 #endif
 
 #ifndef __IPropertyBag2_FWD_DEFINED__
 #define __IPropertyBag2_FWD_DEFINED__
-typedef interface IPropertyBag2 IPropertyBag2;
+typedef struct IPropertyBag2 IPropertyBag2;
 #endif
 
 #ifndef __IPersistPropertyBag2_FWD_DEFINED__
 #define __IPersistPropertyBag2_FWD_DEFINED__
-typedef interface IPersistPropertyBag2 IPersistPropertyBag2;
+typedef struct IPersistPropertyBag2 IPersistPropertyBag2;
 #endif
 
 #ifndef __IAdviseSinkEx_FWD_DEFINED__
 #define __IAdviseSinkEx_FWD_DEFINED__
-typedef interface IAdviseSinkEx IAdviseSinkEx;
+typedef struct IAdviseSinkEx IAdviseSinkEx;
 #endif
 
 #ifndef __IQuickActivate_FWD_DEFINED__
 #define __IQuickActivate_FWD_DEFINED__
-typedef interface IQuickActivate IQuickActivate;
+typedef struct IQuickActivate IQuickActivate;
 #endif
 
 #include "oleidl.h"
@@ -279,7 +279,7 @@
       HRESULT (WINAPI *Clone)(IEnumConnections *This,IEnumConnections **ppEnum);
     END_INTERFACE
   } IEnumConnectionsVtbl;
-  interface IEnumConnections {
+  struct IEnumConnections {
     CONST_VTBL struct IEnumConnectionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -330,7 +330,7 @@
       HRESULT (WINAPI *EnumConnections)(IConnectionPoint *This,IEnumConnections **ppEnum);
     END_INTERFACE
   } IConnectionPointVtbl;
-  interface IConnectionPoint {
+  struct IConnectionPoint {
     CONST_VTBL struct IConnectionPointVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -382,7 +382,7 @@
       HRESULT (WINAPI *Clone)(IEnumConnectionPoints *This,IEnumConnectionPoints **ppEnum);
     END_INTERFACE
   } IEnumConnectionPointsVtbl;
-  interface IEnumConnectionPoints {
+  struct IEnumConnectionPoints {
     CONST_VTBL struct IEnumConnectionPointsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -427,7 +427,7 @@
       HRESULT (WINAPI *FindConnectionPoint)(IConnectionPointContainer *This,REFIID riid,IConnectionPoint **ppCP);
     END_INTERFACE
   } IConnectionPointContainerVtbl;
-  interface IConnectionPointContainer {
+  struct IConnectionPointContainer {
     CONST_VTBL struct IConnectionPointContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -477,7 +477,7 @@
       HRESULT (WINAPI *CreateInstanceLic)(IClassFactory2 *This,IUnknown *pUnkOuter,IUnknown *pUnkReserved,REFIID riid,BSTR bstrKey,PVOID *ppvObj);
     END_INTERFACE
   } IClassFactory2Vtbl;
-  interface IClassFactory2 {
+  struct IClassFactory2 {
     CONST_VTBL struct IClassFactory2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -518,7 +518,7 @@
       HRESULT (WINAPI *GetClassInfo)(IProvideClassInfo *This,ITypeInfo **ppTI);
     END_INTERFACE
   } IProvideClassInfoVtbl;
-  interface IProvideClassInfo {
+  struct IProvideClassInfo {
     CONST_VTBL struct IProvideClassInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -556,7 +556,7 @@
       HRESULT (WINAPI *GetGUID)(IProvideClassInfo2 *This,DWORD dwGuidKind,GUID *pGUID);
     END_INTERFACE
   } IProvideClassInfo2Vtbl;
-  interface IProvideClassInfo2 {
+  struct IProvideClassInfo2 {
     CONST_VTBL struct IProvideClassInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -600,7 +600,7 @@
       HRESULT (WINAPI *GetInfoOfIndex)(IProvideMultipleClassInfo *This,ULONG iti,DWORD dwFlags,ITypeInfo **pptiCoClass,DWORD *pdwTIFlags,ULONG *pcdispidReserved,IID *piidPrimary,IID *piidSource);
     END_INTERFACE
   } IProvideMultipleClassInfoVtbl;
-  interface IProvideMultipleClassInfo {
+  struct IProvideMultipleClassInfo {
     CONST_VTBL struct IProvideMultipleClassInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -656,7 +656,7 @@
       HRESULT (WINAPI *FreezeEvents)(IOleControl *This,WINBOOL bFreeze);
     END_INTERFACE
   } IOleControlVtbl;
-  interface IOleControl {
+  struct IOleControl {
     CONST_VTBL struct IOleControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -722,7 +722,7 @@
       HRESULT (WINAPI *ShowPropertyFrame)(IOleControlSite *This);
     END_INTERFACE
   } IOleControlSiteVtbl;
-  interface IOleControlSite {
+  struct IOleControlSite {
     CONST_VTBL struct IOleControlSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -804,7 +804,7 @@
       HRESULT (WINAPI *TranslateAccelerator)(IPropertyPage *This,MSG *pMsg);
     END_INTERFACE
   } IPropertyPageVtbl;
-  interface IPropertyPage {
+  struct IPropertyPage {
     CONST_VTBL struct IPropertyPageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -878,7 +878,7 @@
       HRESULT (WINAPI *EditProperty)(IPropertyPage2 *This,DISPID dispID);
     END_INTERFACE
   } IPropertyPage2Vtbl;
-  interface IPropertyPage2 {
+  struct IPropertyPage2 {
     CONST_VTBL struct IPropertyPage2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -932,7 +932,7 @@
       HRESULT (WINAPI *TranslateAccelerator)(IPropertyPageSite *This,MSG *pMsg);
     END_INTERFACE
   } IPropertyPageSiteVtbl;
-  interface IPropertyPageSite {
+  struct IPropertyPageSite {
     CONST_VTBL struct IPropertyPageSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -976,7 +976,7 @@
       HRESULT (WINAPI *OnRequestEdit)(IPropertyNotifySink *This,DISPID dispID);
     END_INTERFACE
   } IPropertyNotifySinkVtbl;
-  interface IPropertyNotifySink {
+  struct IPropertyNotifySink {
     CONST_VTBL struct IPropertyNotifySinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1019,7 +1019,7 @@
       HRESULT (WINAPI *GetPages)(ISpecifyPropertyPages *This,CAUUID *pPages);
     END_INTERFACE
   } ISpecifyPropertyPagesVtbl;
-  interface ISpecifyPropertyPages {
+  struct ISpecifyPropertyPages {
     CONST_VTBL struct ISpecifyPropertyPagesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1061,7 +1061,7 @@
       HRESULT (WINAPI *InitNew)(IPersistMemory *This);
     END_INTERFACE
   } IPersistMemoryVtbl;
-  interface IPersistMemory {
+  struct IPersistMemory {
     CONST_VTBL struct IPersistMemoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1116,7 +1116,7 @@
       HRESULT (WINAPI *InitNew)(IPersistStreamInit *This);
     END_INTERFACE
   } IPersistStreamInitVtbl;
-  interface IPersistStreamInit {
+  struct IPersistStreamInit {
     CONST_VTBL struct IPersistStreamInitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1167,7 +1167,7 @@
       HRESULT (WINAPI *Save)(IPersistPropertyBag *This,IPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);
     END_INTERFACE
   } IPersistPropertyBagVtbl;
-  interface IPersistPropertyBag {
+  struct IPersistPropertyBag {
     CONST_VTBL struct IPersistPropertyBagVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1209,7 +1209,7 @@
       HRESULT (WINAPI *PostMessageFilter)(ISimpleFrameSite *This,HWND hWnd,UINT msg,WPARAM wp,LPARAM lp,LRESULT *plResult,DWORD dwCookie);
     END_INTERFACE
   } ISimpleFrameSiteVtbl;
-  interface ISimpleFrameSite {
+  struct ISimpleFrameSite {
     CONST_VTBL struct ISimpleFrameSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1298,7 +1298,7 @@
       HRESULT (WINAPI *SetHdc)(IFont *This,HDC hDC);
     END_INTERFACE
   } IFontVtbl;
-  interface IFont {
+  struct IFont {
     CONST_VTBL struct IFontVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1436,7 +1436,7 @@
       HRESULT (WINAPI *get_Attributes)(IPicture *This,DWORD *pDwAttr);
     END_INTERFACE
   } IPictureVtbl;
-  interface IPicture {
+  struct IPicture {
     CONST_VTBL struct IPictureVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1509,7 +1509,7 @@
       HRESULT (WINAPI *Invoke)(IFontEventsDisp *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IFontEventsDispVtbl;
-  interface IFontEventsDisp {
+  struct IFontEventsDisp {
     CONST_VTBL struct IFontEventsDispVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1544,7 +1544,7 @@
       HRESULT (WINAPI *Invoke)(IFontDisp *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IFontDispVtbl;
-  interface IFontDisp {
+  struct IFontDisp {
     CONST_VTBL struct IFontDispVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1579,7 +1579,7 @@
       HRESULT (WINAPI *Invoke)(IPictureDisp *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IPictureDispVtbl;
-  interface IPictureDisp {
+  struct IPictureDisp {
     CONST_VTBL struct IPictureDispVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1621,7 +1621,7 @@
       HRESULT (WINAPI *GetDropTarget)(IOleInPlaceObjectWindowless *This,IDropTarget **ppDropTarget);
     END_INTERFACE
   } IOleInPlaceObjectWindowlessVtbl;
-  interface IOleInPlaceObjectWindowless {
+  struct IOleInPlaceObjectWindowless {
     CONST_VTBL struct IOleInPlaceObjectWindowlessVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1683,7 +1683,7 @@
       HRESULT (WINAPI *RequestUIActivate)(IOleInPlaceSiteEx *This);
     END_INTERFACE
   } IOleInPlaceSiteExVtbl;
-  interface IOleInPlaceSiteEx {
+  struct IOleInPlaceSiteEx {
     CONST_VTBL struct IOleInPlaceSiteExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1775,7 +1775,7 @@
       HRESULT (WINAPI *OnDefWindowMessage)(IOleInPlaceSiteWindowless *This,UINT msg,WPARAM wParam,LPARAM lParam,LRESULT *plResult);
     END_INTERFACE
   } IOleInPlaceSiteWindowlessVtbl;
-  interface IOleInPlaceSiteWindowless {
+  struct IOleInPlaceSiteWindowless {
     CONST_VTBL struct IOleInPlaceSiteWindowlessVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1903,7 +1903,7 @@
       HRESULT (WINAPI *GetNaturalExtent)(IViewObjectEx *This,DWORD dwAspect,LONG lindex,DVTARGETDEVICE *ptd,HDC hicTargetDev,DVEXTENTINFO *pExtentInfo,LPSIZEL pSizel);
     END_INTERFACE
   } IViewObjectExVtbl;
-  interface IViewObjectEx {
+  struct IViewObjectEx {
     CONST_VTBL struct IViewObjectExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1961,7 +1961,7 @@
       HRESULT (WINAPI *OnNextAdd)(IOleUndoUnit *This);
     END_INTERFACE
   } IOleUndoUnitVtbl;
-  interface IOleUndoUnit {
+  struct IOleUndoUnit {
     CONST_VTBL struct IOleUndoUnitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2015,7 +2015,7 @@
       HRESULT (WINAPI *GetParentState)(IOleParentUndoUnit *This,DWORD *pdwState);
     END_INTERFACE
   } IOleParentUndoUnitVtbl;
-  interface IOleParentUndoUnit {
+  struct IOleParentUndoUnit {
     CONST_VTBL struct IOleParentUndoUnitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2070,7 +2070,7 @@
       HRESULT (WINAPI *Clone)(IEnumOleUndoUnits *This,IEnumOleUndoUnits **ppEnum);
     END_INTERFACE
   } IEnumOleUndoUnitsVtbl;
-  interface IEnumOleUndoUnits {
+  struct IEnumOleUndoUnits {
     CONST_VTBL struct IEnumOleUndoUnitsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2135,7 +2135,7 @@
       HRESULT (WINAPI *Enable)(IOleUndoManager *This,WINBOOL fEnable);
     END_INTERFACE
   } IOleUndoManagerVtbl;
-  interface IOleUndoManager {
+  struct IOleUndoManager {
     CONST_VTBL struct IOleUndoManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2209,7 +2209,7 @@
       HRESULT (WINAPI *OnInactiveSetCursor)(IPointerInactive *This,LPCRECT pRectBounds,LONG x,LONG y,DWORD dwMouseMsg,WINBOOL fSetAlways);
     END_INTERFACE
   } IPointerInactiveVtbl;
-  interface IPointerInactive {
+  struct IPointerInactive {
     CONST_VTBL struct IPointerInactiveVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2250,7 +2250,7 @@
       HRESULT (WINAPI *GetSite)(IObjectWithSite *This,REFIID riid,void **ppvSite);
     END_INTERFACE
   } IObjectWithSiteVtbl;
-  interface IObjectWithSite {
+  struct IObjectWithSite {
     CONST_VTBL struct IObjectWithSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2306,7 +2306,7 @@
       HRESULT (WINAPI *GetPredefinedValue)(IPerPropertyBrowsing *This,DISPID dispID,DWORD dwCookie,VARIANT *pVarOut);
     END_INTERFACE
   } IPerPropertyBrowsingVtbl;
-  interface IPerPropertyBrowsing {
+  struct IPerPropertyBrowsing {
     CONST_VTBL struct IPerPropertyBrowsingVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2370,7 +2370,7 @@
       HRESULT (WINAPI *LoadObject)(IPropertyBag2 *This,LPCOLESTR pstrName,DWORD dwHint,IUnknown *pUnkObject,IErrorLog *pErrLog);
     END_INTERFACE
   } IPropertyBag2Vtbl;
-  interface IPropertyBag2 {
+  struct IPropertyBag2 {
     CONST_VTBL struct IPropertyBag2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2422,7 +2422,7 @@
       HRESULT (WINAPI *IsDirty)(IPersistPropertyBag2 *This);
     END_INTERFACE
   } IPersistPropertyBag2Vtbl;
-  interface IPersistPropertyBag2 {
+  struct IPersistPropertyBag2 {
     CONST_VTBL struct IPersistPropertyBag2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2470,7 +2470,7 @@
       void (WINAPI *OnViewStatusChange)(IAdviseSinkEx *This,DWORD dwViewStatus);
     END_INTERFACE
   } IAdviseSinkExVtbl;
-  interface IAdviseSinkEx {
+  struct IAdviseSinkEx {
     CONST_VTBL struct IAdviseSinkExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2547,7 +2547,7 @@
       HRESULT (WINAPI *GetContentExtent)(IQuickActivate *This,LPSIZEL pSizel);
     END_INTERFACE
   } IQuickActivateVtbl;
-  interface IQuickActivate {
+  struct IQuickActivate {
     CONST_VTBL struct IQuickActivateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/ocmm.h b/mingw-w64-headers/include/ocmm.h
index 181d359..a862b25 100755
--- a/mingw-w64-headers/include/ocmm.h
+++ b/mingw-w64-headers/include/ocmm.h
@@ -24,32 +24,32 @@
 
 #ifndef __ITimerService_FWD_DEFINED__
 #define __ITimerService_FWD_DEFINED__
-typedef interface ITimerService ITimerService;
+typedef struct ITimerService ITimerService;
 #endif
 
 #ifndef __ITimer_FWD_DEFINED__
 #define __ITimer_FWD_DEFINED__
-typedef interface ITimer ITimer;
+typedef struct ITimer ITimer;
 #endif
 
 #ifndef __ITimerSink_FWD_DEFINED__
 #define __ITimerSink_FWD_DEFINED__
-typedef interface ITimerSink ITimerSink;
+typedef struct ITimerSink ITimerSink;
 #endif
 
 #ifndef __IMapMIMEToCLSID_FWD_DEFINED__
 #define __IMapMIMEToCLSID_FWD_DEFINED__
-typedef interface IMapMIMEToCLSID IMapMIMEToCLSID;
+typedef struct IMapMIMEToCLSID IMapMIMEToCLSID;
 #endif
 
 #ifndef __IImageDecodeFilter_FWD_DEFINED__
 #define __IImageDecodeFilter_FWD_DEFINED__
-typedef interface IImageDecodeFilter IImageDecodeFilter;
+typedef struct IImageDecodeFilter IImageDecodeFilter;
 #endif
 
 #ifndef __IImageDecodeEventSink_FWD_DEFINED__
 #define __IImageDecodeEventSink_FWD_DEFINED__
-typedef interface IImageDecodeEventSink IImageDecodeEventSink;
+typedef struct IImageDecodeEventSink IImageDecodeEventSink;
 #endif
 
 #include "oaidl.h"
@@ -141,7 +141,7 @@
       HRESULT (WINAPI *SetNamedTimerReference)(ITimerService *This,REFGUID rguidName,ITimer *pReferenceTimer);
     END_INTERFACE
   } ITimerServiceVtbl;
-  interface ITimerService {
+  struct ITimerService {
     CONST_VTBL struct ITimerServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -184,7 +184,7 @@
       HRESULT (WINAPI *GetTime)(ITimer *This,VARIANT *pvtime);
     END_INTERFACE
   } ITimerVtbl;
-  interface ITimer {
+  struct ITimer {
     CONST_VTBL struct ITimerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -224,7 +224,7 @@
       HRESULT (WINAPI *OnTimer)(ITimerSink *This,VARIANT vtimeAdvise);
     END_INTERFACE
   } ITimerSinkVtbl;
-  interface ITimerSink {
+  struct ITimerSink {
     CONST_VTBL struct ITimerSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -264,7 +264,7 @@
       HRESULT (WINAPI *SetMapping)(IMapMIMEToCLSID *This,LPCOLESTR pszMIMEType,DWORD dwMapMode,REFCLSID clsid);
     END_INTERFACE
   } IMapMIMEToCLSIDVtbl;
-  interface IMapMIMEToCLSID {
+  struct IMapMIMEToCLSID {
     CONST_VTBL struct IMapMIMEToCLSIDVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -305,7 +305,7 @@
       HRESULT (WINAPI *Terminate)(IImageDecodeFilter *This,HRESULT hrStatus);
     END_INTERFACE
   } IImageDecodeFilterVtbl;
-  interface IImageDecodeFilter {
+  struct IImageDecodeFilter {
     CONST_VTBL struct IImageDecodeFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -352,7 +352,7 @@
       HRESULT (WINAPI *OnProgress)(IImageDecodeEventSink *This,RECT *pBounds,WINBOOL bComplete);
     END_INTERFACE
   } IImageDecodeEventSinkVtbl;
-  interface IImageDecodeEventSink {
+  struct IImageDecodeEventSink {
     CONST_VTBL struct IImageDecodeEventSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/oleacc.h b/mingw-w64-headers/include/oleacc.h
index 7ff16ad..063d5fd 100755
--- a/mingw-w64-headers/include/oleacc.h
+++ b/mingw-w64-headers/include/oleacc.h
@@ -24,52 +24,52 @@
 
 #ifndef __IAccessible_FWD_DEFINED__
 #define __IAccessible_FWD_DEFINED__
-typedef interface IAccessible IAccessible;
+typedef struct IAccessible IAccessible;
 #endif
 
 #ifndef __IAccessibleHandler_FWD_DEFINED__
 #define __IAccessibleHandler_FWD_DEFINED__
-typedef interface IAccessibleHandler IAccessibleHandler;
+typedef struct IAccessibleHandler IAccessibleHandler;
 #endif
 
 #ifndef __IAccIdentity_FWD_DEFINED__
 #define __IAccIdentity_FWD_DEFINED__
-typedef interface IAccIdentity IAccIdentity;
+typedef struct IAccIdentity IAccIdentity;
 #endif
 
 #ifndef __IAccPropServer_FWD_DEFINED__
 #define __IAccPropServer_FWD_DEFINED__
-typedef interface IAccPropServer IAccPropServer;
+typedef struct IAccPropServer IAccPropServer;
 #endif
 
 #ifndef __IAccPropServices_FWD_DEFINED__
 #define __IAccPropServices_FWD_DEFINED__
-typedef interface IAccPropServices IAccPropServices;
+typedef struct IAccPropServices IAccPropServices;
 #endif
 
 #ifndef __IAccessible_FWD_DEFINED__
 #define __IAccessible_FWD_DEFINED__
-typedef interface IAccessible IAccessible;
+typedef struct IAccessible IAccessible;
 #endif
 
 #ifndef __IAccessibleHandler_FWD_DEFINED__
 #define __IAccessibleHandler_FWD_DEFINED__
-typedef interface IAccessibleHandler IAccessibleHandler;
+typedef struct IAccessibleHandler IAccessibleHandler;
 #endif
 
 #ifndef __IAccIdentity_FWD_DEFINED__
 #define __IAccIdentity_FWD_DEFINED__
-typedef interface IAccIdentity IAccIdentity;
+typedef struct IAccIdentity IAccIdentity;
 #endif
 
 #ifndef __IAccPropServer_FWD_DEFINED__
 #define __IAccPropServer_FWD_DEFINED__
-typedef interface IAccPropServer IAccPropServer;
+typedef struct IAccPropServer IAccPropServer;
 #endif
 
 #ifndef __IAccPropServices_FWD_DEFINED__
 #define __IAccPropServices_FWD_DEFINED__
-typedef interface IAccPropServices IAccPropServices;
+typedef struct IAccPropServices IAccPropServices;
 #endif
 
 #ifndef __CAccPropServices_FWD_DEFINED__
@@ -378,7 +378,7 @@
       HRESULT (WINAPI *put_accValue)(IAccessible *This,VARIANT varChild,BSTR szValue);
     END_INTERFACE
   } IAccessibleVtbl;
-  interface IAccessible {
+  struct IAccessible {
     CONST_VTBL struct IAccessibleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -475,7 +475,7 @@
       HRESULT (WINAPI *AccessibleObjectFromID)(IAccessibleHandler *This,long hwnd,long lObjectID,LPACCESSIBLE *pIAccessible);
     END_INTERFACE
   } IAccessibleHandlerVtbl;
-  interface IAccessibleHandler {
+  struct IAccessibleHandler {
     CONST_VTBL struct IAccessibleHandlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -515,7 +515,7 @@
       HRESULT (WINAPI *GetIdentityString)(IAccIdentity *This,DWORD dwIDChild,BYTE **ppIDString,DWORD *pdwIDStringLen);
     END_INTERFACE
   } IAccIdentityVtbl;
-  interface IAccIdentity {
+  struct IAccIdentity {
     CONST_VTBL struct IAccIdentityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -546,7 +546,7 @@
       HRESULT (WINAPI *GetPropValue)(IAccPropServer *This,const BYTE *pIDString,DWORD dwIDStringLen,MSAAPROPID idProp,VARIANT *pvarValue,WINBOOL *pfHasProp);
     END_INTERFACE
   } IAccPropServerVtbl;
-  interface IAccPropServer {
+  struct IAccPropServer {
     CONST_VTBL struct IAccPropServerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -605,7 +605,7 @@
       HRESULT (WINAPI *DecomposeHmenuIdentityString)(IAccPropServices *This,const BYTE *pIDString,DWORD dwIDStringLen,HMENU *phmenu,DWORD *pidChild);
     END_INTERFACE
   } IAccPropServicesVtbl;
-  interface IAccPropServices {
+  struct IAccPropServices {
     CONST_VTBL struct IAccPropServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/oledb.h b/mingw-w64-headers/include/oledb.h
index eac7453..afbaf5d 100755
--- a/mingw-w64-headers/include/oledb.h
+++ b/mingw-w64-headers/include/oledb.h
@@ -24,407 +24,407 @@
 
 #ifndef __IAccessor_FWD_DEFINED__
 #define __IAccessor_FWD_DEFINED__
-typedef interface IAccessor IAccessor;
+typedef struct IAccessor IAccessor;
 #endif
 
 #ifndef __IRowset_FWD_DEFINED__
 #define __IRowset_FWD_DEFINED__
-typedef interface IRowset IRowset;
+typedef struct IRowset IRowset;
 #endif
 
 #ifndef __IRowsetInfo_FWD_DEFINED__
 #define __IRowsetInfo_FWD_DEFINED__
-typedef interface IRowsetInfo IRowsetInfo;
+typedef struct IRowsetInfo IRowsetInfo;
 #endif
 
 #ifndef __IRowsetLocate_FWD_DEFINED__
 #define __IRowsetLocate_FWD_DEFINED__
-typedef interface IRowsetLocate IRowsetLocate;
+typedef struct IRowsetLocate IRowsetLocate;
 #endif
 
 #ifndef __IRowsetResynch_FWD_DEFINED__
 #define __IRowsetResynch_FWD_DEFINED__
-typedef interface IRowsetResynch IRowsetResynch;
+typedef struct IRowsetResynch IRowsetResynch;
 #endif
 
 #ifndef __IRowsetScroll_FWD_DEFINED__
 #define __IRowsetScroll_FWD_DEFINED__
-typedef interface IRowsetScroll IRowsetScroll;
+typedef struct IRowsetScroll IRowsetScroll;
 #endif
 
 #ifndef __IChapteredRowset_FWD_DEFINED__
 #define __IChapteredRowset_FWD_DEFINED__
-typedef interface IChapteredRowset IChapteredRowset;
+typedef struct IChapteredRowset IChapteredRowset;
 #endif
 
 #ifndef __IRowsetFind_FWD_DEFINED__
 #define __IRowsetFind_FWD_DEFINED__
-typedef interface IRowsetFind IRowsetFind;
+typedef struct IRowsetFind IRowsetFind;
 #endif
 
 #ifndef __IRowPosition_FWD_DEFINED__
 #define __IRowPosition_FWD_DEFINED__
-typedef interface IRowPosition IRowPosition;
+typedef struct IRowPosition IRowPosition;
 #endif
 
 #ifndef __IRowPositionChange_FWD_DEFINED__
 #define __IRowPositionChange_FWD_DEFINED__
-typedef interface IRowPositionChange IRowPositionChange;
+typedef struct IRowPositionChange IRowPositionChange;
 #endif
 
 #ifndef __IViewRowset_FWD_DEFINED__
 #define __IViewRowset_FWD_DEFINED__
-typedef interface IViewRowset IViewRowset;
+typedef struct IViewRowset IViewRowset;
 #endif
 
 #ifndef __IViewChapter_FWD_DEFINED__
 #define __IViewChapter_FWD_DEFINED__
-typedef interface IViewChapter IViewChapter;
+typedef struct IViewChapter IViewChapter;
 #endif
 
 #ifndef __IViewSort_FWD_DEFINED__
 #define __IViewSort_FWD_DEFINED__
-typedef interface IViewSort IViewSort;
+typedef struct IViewSort IViewSort;
 #endif
 
 #ifndef __IViewFilter_FWD_DEFINED__
 #define __IViewFilter_FWD_DEFINED__
-typedef interface IViewFilter IViewFilter;
+typedef struct IViewFilter IViewFilter;
 #endif
 
 #ifndef __IRowsetView_FWD_DEFINED__
 #define __IRowsetView_FWD_DEFINED__
-typedef interface IRowsetView IRowsetView;
+typedef struct IRowsetView IRowsetView;
 #endif
 
 #ifndef __IRowsetExactScroll_FWD_DEFINED__
 #define __IRowsetExactScroll_FWD_DEFINED__
-typedef interface IRowsetExactScroll IRowsetExactScroll;
+typedef struct IRowsetExactScroll IRowsetExactScroll;
 #endif
 
 #ifndef __IRowsetChange_FWD_DEFINED__
 #define __IRowsetChange_FWD_DEFINED__
-typedef interface IRowsetChange IRowsetChange;
+typedef struct IRowsetChange IRowsetChange;
 #endif
 
 #ifndef __IRowsetUpdate_FWD_DEFINED__
 #define __IRowsetUpdate_FWD_DEFINED__
-typedef interface IRowsetUpdate IRowsetUpdate;
+typedef struct IRowsetUpdate IRowsetUpdate;
 #endif
 
 #ifndef __IRowsetIdentity_FWD_DEFINED__
 #define __IRowsetIdentity_FWD_DEFINED__
-typedef interface IRowsetIdentity IRowsetIdentity;
+typedef struct IRowsetIdentity IRowsetIdentity;
 #endif
 
 #ifndef __IRowsetNotify_FWD_DEFINED__
 #define __IRowsetNotify_FWD_DEFINED__
-typedef interface IRowsetNotify IRowsetNotify;
+typedef struct IRowsetNotify IRowsetNotify;
 #endif
 
 #ifndef __IRowsetIndex_FWD_DEFINED__
 #define __IRowsetIndex_FWD_DEFINED__
-typedef interface IRowsetIndex IRowsetIndex;
+typedef struct IRowsetIndex IRowsetIndex;
 #endif
 
 #ifndef __ICommand_FWD_DEFINED__
 #define __ICommand_FWD_DEFINED__
-typedef interface ICommand ICommand;
+typedef struct ICommand ICommand;
 #endif
 
 #ifndef __IMultipleResults_FWD_DEFINED__
 #define __IMultipleResults_FWD_DEFINED__
-typedef interface IMultipleResults IMultipleResults;
+typedef struct IMultipleResults IMultipleResults;
 #endif
 
 #ifndef __IConvertType_FWD_DEFINED__
 #define __IConvertType_FWD_DEFINED__
-typedef interface IConvertType IConvertType;
+typedef struct IConvertType IConvertType;
 #endif
 
 #ifndef __ICommandPrepare_FWD_DEFINED__
 #define __ICommandPrepare_FWD_DEFINED__
-typedef interface ICommandPrepare ICommandPrepare;
+typedef struct ICommandPrepare ICommandPrepare;
 #endif
 
 #ifndef __ICommandProperties_FWD_DEFINED__
 #define __ICommandProperties_FWD_DEFINED__
-typedef interface ICommandProperties ICommandProperties;
+typedef struct ICommandProperties ICommandProperties;
 #endif
 
 #ifndef __ICommandText_FWD_DEFINED__
 #define __ICommandText_FWD_DEFINED__
-typedef interface ICommandText ICommandText;
+typedef struct ICommandText ICommandText;
 #endif
 
 #ifndef __ICommandWithParameters_FWD_DEFINED__
 #define __ICommandWithParameters_FWD_DEFINED__
-typedef interface ICommandWithParameters ICommandWithParameters;
+typedef struct ICommandWithParameters ICommandWithParameters;
 #endif
 
 #ifndef __IColumnsRowset_FWD_DEFINED__
 #define __IColumnsRowset_FWD_DEFINED__
-typedef interface IColumnsRowset IColumnsRowset;
+typedef struct IColumnsRowset IColumnsRowset;
 #endif
 
 #ifndef __IColumnsInfo_FWD_DEFINED__
 #define __IColumnsInfo_FWD_DEFINED__
-typedef interface IColumnsInfo IColumnsInfo;
+typedef struct IColumnsInfo IColumnsInfo;
 #endif
 
 #ifndef __IDBCreateCommand_FWD_DEFINED__
 #define __IDBCreateCommand_FWD_DEFINED__
-typedef interface IDBCreateCommand IDBCreateCommand;
+typedef struct IDBCreateCommand IDBCreateCommand;
 #endif
 
 #ifndef __IDBCreateSession_FWD_DEFINED__
 #define __IDBCreateSession_FWD_DEFINED__
-typedef interface IDBCreateSession IDBCreateSession;
+typedef struct IDBCreateSession IDBCreateSession;
 #endif
 
 #ifndef __ISourcesRowset_FWD_DEFINED__
 #define __ISourcesRowset_FWD_DEFINED__
-typedef interface ISourcesRowset ISourcesRowset;
+typedef struct ISourcesRowset ISourcesRowset;
 #endif
 
 #ifndef __IDBProperties_FWD_DEFINED__
 #define __IDBProperties_FWD_DEFINED__
-typedef interface IDBProperties IDBProperties;
+typedef struct IDBProperties IDBProperties;
 #endif
 
 #ifndef __IDBInitialize_FWD_DEFINED__
 #define __IDBInitialize_FWD_DEFINED__
-typedef interface IDBInitialize IDBInitialize;
+typedef struct IDBInitialize IDBInitialize;
 #endif
 
 #ifndef __IDBInfo_FWD_DEFINED__
 #define __IDBInfo_FWD_DEFINED__
-typedef interface IDBInfo IDBInfo;
+typedef struct IDBInfo IDBInfo;
 #endif
 
 #ifndef __IDBDataSourceAdmin_FWD_DEFINED__
 #define __IDBDataSourceAdmin_FWD_DEFINED__
-typedef interface IDBDataSourceAdmin IDBDataSourceAdmin;
+typedef struct IDBDataSourceAdmin IDBDataSourceAdmin;
 #endif
 
 #ifndef __IDBAsynchNotify_FWD_DEFINED__
 #define __IDBAsynchNotify_FWD_DEFINED__
-typedef interface IDBAsynchNotify IDBAsynchNotify;
+typedef struct IDBAsynchNotify IDBAsynchNotify;
 #endif
 
 #ifndef __IDBAsynchStatus_FWD_DEFINED__
 #define __IDBAsynchStatus_FWD_DEFINED__
-typedef interface IDBAsynchStatus IDBAsynchStatus;
+typedef struct IDBAsynchStatus IDBAsynchStatus;
 #endif
 
 #ifndef __ISessionProperties_FWD_DEFINED__
 #define __ISessionProperties_FWD_DEFINED__
-typedef interface ISessionProperties ISessionProperties;
+typedef struct ISessionProperties ISessionProperties;
 #endif
 
 #ifndef __IIndexDefinition_FWD_DEFINED__
 #define __IIndexDefinition_FWD_DEFINED__
-typedef interface IIndexDefinition IIndexDefinition;
+typedef struct IIndexDefinition IIndexDefinition;
 #endif
 
 #ifndef __ITableDefinition_FWD_DEFINED__
 #define __ITableDefinition_FWD_DEFINED__
-typedef interface ITableDefinition ITableDefinition;
+typedef struct ITableDefinition ITableDefinition;
 #endif
 
 #ifndef __IOpenRowset_FWD_DEFINED__
 #define __IOpenRowset_FWD_DEFINED__
-typedef interface IOpenRowset IOpenRowset;
+typedef struct IOpenRowset IOpenRowset;
 #endif
 
 #ifndef __IDBSchemaRowset_FWD_DEFINED__
 #define __IDBSchemaRowset_FWD_DEFINED__
-typedef interface IDBSchemaRowset IDBSchemaRowset;
+typedef struct IDBSchemaRowset IDBSchemaRowset;
 #endif
 
 #ifndef __IMDDataset_FWD_DEFINED__
 #define __IMDDataset_FWD_DEFINED__
-typedef interface IMDDataset IMDDataset;
+typedef struct IMDDataset IMDDataset;
 #endif
 
 #ifndef __IMDFind_FWD_DEFINED__
 #define __IMDFind_FWD_DEFINED__
-typedef interface IMDFind IMDFind;
+typedef struct IMDFind IMDFind;
 #endif
 
 #ifndef __IMDRangeRowset_FWD_DEFINED__
 #define __IMDRangeRowset_FWD_DEFINED__
-typedef interface IMDRangeRowset IMDRangeRowset;
+typedef struct IMDRangeRowset IMDRangeRowset;
 #endif
 
 #ifndef __IAlterTable_FWD_DEFINED__
 #define __IAlterTable_FWD_DEFINED__
-typedef interface IAlterTable IAlterTable;
+typedef struct IAlterTable IAlterTable;
 #endif
 
 #ifndef __IAlterIndex_FWD_DEFINED__
 #define __IAlterIndex_FWD_DEFINED__
-typedef interface IAlterIndex IAlterIndex;
+typedef struct IAlterIndex IAlterIndex;
 #endif
 
 #ifndef __IRowsetChapterMember_FWD_DEFINED__
 #define __IRowsetChapterMember_FWD_DEFINED__
-typedef interface IRowsetChapterMember IRowsetChapterMember;
+typedef struct IRowsetChapterMember IRowsetChapterMember;
 #endif
 
 #ifndef __ICommandPersist_FWD_DEFINED__
 #define __ICommandPersist_FWD_DEFINED__
-typedef interface ICommandPersist ICommandPersist;
+typedef struct ICommandPersist ICommandPersist;
 #endif
 
 #ifndef __IRowsetRefresh_FWD_DEFINED__
 #define __IRowsetRefresh_FWD_DEFINED__
-typedef interface IRowsetRefresh IRowsetRefresh;
+typedef struct IRowsetRefresh IRowsetRefresh;
 #endif
 
 #ifndef __IParentRowset_FWD_DEFINED__
 #define __IParentRowset_FWD_DEFINED__
-typedef interface IParentRowset IParentRowset;
+typedef struct IParentRowset IParentRowset;
 #endif
 
 #ifndef __IErrorRecords_FWD_DEFINED__
 #define __IErrorRecords_FWD_DEFINED__
-typedef interface IErrorRecords IErrorRecords;
+typedef struct IErrorRecords IErrorRecords;
 #endif
 
 #ifndef __IErrorLookup_FWD_DEFINED__
 #define __IErrorLookup_FWD_DEFINED__
-typedef interface IErrorLookup IErrorLookup;
+typedef struct IErrorLookup IErrorLookup;
 #endif
 
 #ifndef __ISQLErrorInfo_FWD_DEFINED__
 #define __ISQLErrorInfo_FWD_DEFINED__
-typedef interface ISQLErrorInfo ISQLErrorInfo;
+typedef struct ISQLErrorInfo ISQLErrorInfo;
 #endif
 
 #ifndef __IGetDataSource_FWD_DEFINED__
 #define __IGetDataSource_FWD_DEFINED__
-typedef interface IGetDataSource IGetDataSource;
+typedef struct IGetDataSource IGetDataSource;
 #endif
 
 #ifndef __ITransactionLocal_FWD_DEFINED__
 #define __ITransactionLocal_FWD_DEFINED__
-typedef interface ITransactionLocal ITransactionLocal;
+typedef struct ITransactionLocal ITransactionLocal;
 #endif
 
 #ifndef __ITransactionJoin_FWD_DEFINED__
 #define __ITransactionJoin_FWD_DEFINED__
-typedef interface ITransactionJoin ITransactionJoin;
+typedef struct ITransactionJoin ITransactionJoin;
 #endif
 
 #ifndef __ITransactionObject_FWD_DEFINED__
 #define __ITransactionObject_FWD_DEFINED__
-typedef interface ITransactionObject ITransactionObject;
+typedef struct ITransactionObject ITransactionObject;
 #endif
 
 #ifndef __ITrusteeAdmin_FWD_DEFINED__
 #define __ITrusteeAdmin_FWD_DEFINED__
-typedef interface ITrusteeAdmin ITrusteeAdmin;
+typedef struct ITrusteeAdmin ITrusteeAdmin;
 #endif
 
 #ifndef __ITrusteeGroupAdmin_FWD_DEFINED__
 #define __ITrusteeGroupAdmin_FWD_DEFINED__
-typedef interface ITrusteeGroupAdmin ITrusteeGroupAdmin;
+typedef struct ITrusteeGroupAdmin ITrusteeGroupAdmin;
 #endif
 
 #ifndef __IObjectAccessControl_FWD_DEFINED__
 #define __IObjectAccessControl_FWD_DEFINED__
-typedef interface IObjectAccessControl IObjectAccessControl;
+typedef struct IObjectAccessControl IObjectAccessControl;
 #endif
 
 #ifndef __ISecurityInfo_FWD_DEFINED__
 #define __ISecurityInfo_FWD_DEFINED__
-typedef interface ISecurityInfo ISecurityInfo;
+typedef struct ISecurityInfo ISecurityInfo;
 #endif
 
 #ifndef __ITableCreation_FWD_DEFINED__
 #define __ITableCreation_FWD_DEFINED__
-typedef interface ITableCreation ITableCreation;
+typedef struct ITableCreation ITableCreation;
 #endif
 
 #ifndef __ITableDefinitionWithConstraints_FWD_DEFINED__
 #define __ITableDefinitionWithConstraints_FWD_DEFINED__
-typedef interface ITableDefinitionWithConstraints ITableDefinitionWithConstraints;
+typedef struct ITableDefinitionWithConstraints ITableDefinitionWithConstraints;
 #endif
 
 #ifndef __IRow_FWD_DEFINED__
 #define __IRow_FWD_DEFINED__
-typedef interface IRow IRow;
+typedef struct IRow IRow;
 #endif
 
 #ifndef __IRowChange_FWD_DEFINED__
 #define __IRowChange_FWD_DEFINED__
-typedef interface IRowChange IRowChange;
+typedef struct IRowChange IRowChange;
 #endif
 
 #ifndef __IRowSchemaChange_FWD_DEFINED__
 #define __IRowSchemaChange_FWD_DEFINED__
-typedef interface IRowSchemaChange IRowSchemaChange;
+typedef struct IRowSchemaChange IRowSchemaChange;
 #endif
 
 #ifndef __IGetRow_FWD_DEFINED__
 #define __IGetRow_FWD_DEFINED__
-typedef interface IGetRow IGetRow;
+typedef struct IGetRow IGetRow;
 #endif
 
 #ifndef __IBindResource_FWD_DEFINED__
 #define __IBindResource_FWD_DEFINED__
-typedef interface IBindResource IBindResource;
+typedef struct IBindResource IBindResource;
 #endif
 
 #ifndef __IScopedOperations_FWD_DEFINED__
 #define __IScopedOperations_FWD_DEFINED__
-typedef interface IScopedOperations IScopedOperations;
+typedef struct IScopedOperations IScopedOperations;
 #endif
 
 #ifndef __ICreateRow_FWD_DEFINED__
 #define __ICreateRow_FWD_DEFINED__
-typedef interface ICreateRow ICreateRow;
+typedef struct ICreateRow ICreateRow;
 #endif
 
 #ifndef __IDBBinderProperties_FWD_DEFINED__
 #define __IDBBinderProperties_FWD_DEFINED__
-typedef interface IDBBinderProperties IDBBinderProperties;
+typedef struct IDBBinderProperties IDBBinderProperties;
 #endif
 
 #ifndef __IColumnsInfo2_FWD_DEFINED__
 #define __IColumnsInfo2_FWD_DEFINED__
-typedef interface IColumnsInfo2 IColumnsInfo2;
+typedef struct IColumnsInfo2 IColumnsInfo2;
 #endif
 
 #ifndef __IRegisterProvider_FWD_DEFINED__
 #define __IRegisterProvider_FWD_DEFINED__
-typedef interface IRegisterProvider IRegisterProvider;
+typedef struct IRegisterProvider IRegisterProvider;
 #endif
 
 #ifndef __IGetSession_FWD_DEFINED__
 #define __IGetSession_FWD_DEFINED__
-typedef interface IGetSession IGetSession;
+typedef struct IGetSession IGetSession;
 #endif
 
 #ifndef __IGetSourceRow_FWD_DEFINED__
 #define __IGetSourceRow_FWD_DEFINED__
-typedef interface IGetSourceRow IGetSourceRow;
+typedef struct IGetSourceRow IGetSourceRow;
 #endif
 
 #ifndef __IRowsetCurrentIndex_FWD_DEFINED__
 #define __IRowsetCurrentIndex_FWD_DEFINED__
-typedef interface IRowsetCurrentIndex IRowsetCurrentIndex;
+typedef struct IRowsetCurrentIndex IRowsetCurrentIndex;
 #endif
 
 #ifndef __ICommandStream_FWD_DEFINED__
 #define __ICommandStream_FWD_DEFINED__
-typedef interface ICommandStream ICommandStream;
+typedef struct ICommandStream ICommandStream;
 #endif
 
 #ifndef __IRowsetBookmark_FWD_DEFINED__
 #define __IRowsetBookmark_FWD_DEFINED__
-typedef interface IRowsetBookmark IRowsetBookmark;
+typedef struct IRowsetBookmark IRowsetBookmark;
 #endif
 
 #include "wtypes.h"
@@ -2095,7 +2095,7 @@
       HRESULT (WINAPI *ReleaseAccessor)(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount);
     END_INTERFACE
   } IAccessorVtbl;
-  interface IAccessor {
+  struct IAccessor {
     CONST_VTBL struct IAccessorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2145,7 +2145,7 @@
       HRESULT (WINAPI *RestartPosition)(IRowset *This,HCHAPTER hReserved);
     END_INTERFACE
   } IRowsetVtbl;
-  interface IRowset {
+  struct IRowset {
     CONST_VTBL struct IRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2192,7 +2192,7 @@
       HRESULT (WINAPI *GetSpecification)(IRowsetInfo *This,REFIID riid,IUnknown **ppSpecification);
     END_INTERFACE
   } IRowsetInfoVtbl;
-  interface IRowsetInfo {
+  struct IRowsetInfo {
     CONST_VTBL struct IRowsetInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2247,7 +2247,7 @@
       HRESULT (WINAPI *Hash)(IRowsetLocate *This,HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]);
     END_INTERFACE
   } IRowsetLocateVtbl;
-  interface IRowsetLocate {
+  struct IRowsetLocate {
     CONST_VTBL struct IRowsetLocateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2294,7 +2294,7 @@
       HRESULT (WINAPI *ResynchRows)(IRowsetResynch *This,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsResynched,HROW **prghRowsResynched,DBROWSTATUS **prgRowStatus);
     END_INTERFACE
   } IRowsetResynchVtbl;
-  interface IRowsetResynch {
+  struct IRowsetResynch {
     CONST_VTBL struct IRowsetResynchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2339,7 +2339,7 @@
       HRESULT (WINAPI *GetRowsAtRatio)(IRowsetScroll *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBCOUNTITEM ulNumerator,DBCOUNTITEM ulDenominator,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
     END_INTERFACE
   } IRowsetScrollVtbl;
-  interface IRowsetScroll {
+  struct IRowsetScroll {
     CONST_VTBL struct IRowsetScrollVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2387,7 +2387,7 @@
       HRESULT (WINAPI *ReleaseChapter)(IChapteredRowset *This,HCHAPTER hChapter,DBREFCOUNT *pcRefCount);
     END_INTERFACE
   } IChapteredRowsetVtbl;
-  interface IChapteredRowset {
+  struct IChapteredRowset {
     CONST_VTBL struct IChapteredRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2421,7 +2421,7 @@
       HRESULT (WINAPI *FindNextRow)(IRowsetFind *This,HCHAPTER hChapter,HACCESSOR hAccessor,void *pFindValue,DBCOMPAREOP CompareOp,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
     END_INTERFACE
   } IRowsetFindVtbl;
-  interface IRowsetFind {
+  struct IRowsetFind {
     CONST_VTBL struct IRowsetFindVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2466,7 +2466,7 @@
       HRESULT (WINAPI *SetRowPosition)(IRowPosition *This,HCHAPTER hChapter,HROW hRow,DBPOSITIONFLAGS dwPositionFlags);
     END_INTERFACE
   } IRowPositionVtbl;
-  interface IRowPosition {
+  struct IRowPosition {
     CONST_VTBL struct IRowPositionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2509,7 +2509,7 @@
       HRESULT (WINAPI *OnRowPositionChange)(IRowPositionChange *This,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
     END_INTERFACE
   } IRowPositionChangeVtbl;
-  interface IRowPositionChange {
+  struct IRowPositionChange {
     CONST_VTBL struct IRowPositionChangeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2542,7 +2542,7 @@
       HRESULT (WINAPI *OpenViewRowset)(IViewRowset *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppRowset);
     END_INTERFACE
   } IViewRowsetVtbl;
-  interface IViewRowset {
+  struct IViewRowset {
     CONST_VTBL struct IViewRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2578,7 +2578,7 @@
       HRESULT (WINAPI *OpenViewChapter)(IViewChapter *This,HCHAPTER hSource,HCHAPTER *phViewChapter);
     END_INTERFACE
   } IViewChapterVtbl;
-  interface IViewChapter {
+  struct IViewChapter {
     CONST_VTBL struct IViewChapterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2614,7 +2614,7 @@
       HRESULT (WINAPI *SetSortOrder)(IViewSort *This,DBORDINAL cValues,const DBORDINAL rgColumns[],const DBSORT rgOrders[]);
     END_INTERFACE
   } IViewSortVtbl;
-  interface IViewSort {
+  struct IViewSort {
     CONST_VTBL struct IViewSortVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2652,7 +2652,7 @@
       HRESULT (WINAPI *SetFilter)(IViewFilter *This,HACCESSOR hAccessor,DBCOUNTITEM cRows,DBCOMPAREOP CompareOps[],void *pCriteriaData);
     END_INTERFACE
   } IViewFilterVtbl;
-  interface IViewFilter {
+  struct IViewFilter {
     CONST_VTBL struct IViewFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2691,7 +2691,7 @@
       HRESULT (WINAPI *GetView)(IRowsetView *This,HCHAPTER hChapter,REFIID riid,HCHAPTER *phChapterSource,IUnknown **ppView);
     END_INTERFACE
   } IRowsetViewVtbl;
-  interface IRowsetView {
+  struct IRowsetView {
     CONST_VTBL struct IRowsetViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2740,7 +2740,7 @@
       HRESULT (WINAPI *GetExactPosition)(IRowsetExactScroll *This,HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows);
     END_INTERFACE
   } IRowsetExactScrollVtbl;
-  interface IRowsetExactScroll {
+  struct IRowsetExactScroll {
     CONST_VTBL struct IRowsetExactScrollVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2789,7 +2789,7 @@
       HRESULT (WINAPI *InsertRow)(IRowsetChange *This,HCHAPTER hReserved,HACCESSOR hAccessor,void *pData,HROW *phRow);
     END_INTERFACE
   } IRowsetChangeVtbl;
-  interface IRowsetChange {
+  struct IRowsetChange {
     CONST_VTBL struct IRowsetChangeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2843,7 +2843,7 @@
       HRESULT (WINAPI *Update)(IRowsetUpdate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRows,HROW **prgRows,DBROWSTATUS **prgRowStatus);
     END_INTERFACE
   } IRowsetUpdateVtbl;
-  interface IRowsetUpdate {
+  struct IRowsetUpdate {
     CONST_VTBL struct IRowsetUpdateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2889,7 +2889,7 @@
       HRESULT (WINAPI *IsSameRow)(IRowsetIdentity *This,HROW hThisRow,HROW hThatRow);
     END_INTERFACE
   } IRowsetIdentityVtbl;
-  interface IRowsetIdentity {
+  struct IRowsetIdentity {
     CONST_VTBL struct IRowsetIdentityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2924,7 +2924,7 @@
       HRESULT (WINAPI *OnRowsetChange)(IRowsetNotify *This,IRowset *pRowset,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
     END_INTERFACE
   } IRowsetNotifyVtbl;
-  interface IRowsetNotify {
+  struct IRowsetNotify {
     CONST_VTBL struct IRowsetNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2989,7 +2989,7 @@
       HRESULT (WINAPI *SetRange)(IRowsetIndex *This,HACCESSOR hAccessor,DBORDINAL cStartKeyColumns,void *pStartData,DBORDINAL cEndKeyColumns,void *pEndData,DBRANGE dwRangeOptions);
     END_INTERFACE
   } IRowsetIndexVtbl;
-  interface IRowsetIndex {
+  struct IRowsetIndex {
     CONST_VTBL struct IRowsetIndexVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3030,7 +3030,7 @@
       HRESULT (WINAPI *GetDBSession)(ICommand *This,REFIID riid,IUnknown **ppSession);
     END_INTERFACE
   } ICommandVtbl;
-  interface ICommand {
+  struct ICommand {
     CONST_VTBL struct ICommandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3073,7 +3073,7 @@
       HRESULT (WINAPI *GetResult)(IMultipleResults *This,IUnknown *pUnkOuter,DBRESULTFLAG lResultFlag,REFIID riid,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset);
     END_INTERFACE
   } IMultipleResultsVtbl;
-  interface IMultipleResults {
+  struct IMultipleResults {
     CONST_VTBL struct IMultipleResultsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3115,7 +3115,7 @@
       HRESULT (WINAPI *CanConvert)(IConvertType *This,DBTYPE wFromType,DBTYPE wToType,DBCONVERTFLAGS dwConvertFlags);
     END_INTERFACE
   } IConvertTypeVtbl;
-  interface IConvertType {
+  struct IConvertType {
     CONST_VTBL struct IConvertTypeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3148,7 +3148,7 @@
       HRESULT (WINAPI *Unprepare)(ICommandPrepare *This);
     END_INTERFACE
   } ICommandPrepareVtbl;
-  interface ICommandPrepare {
+  struct ICommandPrepare {
     CONST_VTBL struct ICommandPrepareVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3184,7 +3184,7 @@
       HRESULT (WINAPI *SetProperties)(ICommandProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
     END_INTERFACE
   } ICommandPropertiesVtbl;
-  interface ICommandProperties {
+  struct ICommandProperties {
     CONST_VTBL struct ICommandPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3223,7 +3223,7 @@
       HRESULT (WINAPI *SetCommandText)(ICommandText *This,REFGUID rguidDialect,LPCOLESTR pwszCommand);
     END_INTERFACE
   } ICommandTextVtbl;
-  interface ICommandText {
+  struct ICommandText {
     CONST_VTBL struct ICommandTextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3273,7 +3273,7 @@
       HRESULT (WINAPI *SetParameterInfo)(ICommandWithParameters *This,DB_UPARAMS cParams,const DB_UPARAMS rgParamOrdinals[],const DBPARAMBINDINFO rgParamBindInfo[]);
     END_INTERFACE
   } ICommandWithParametersVtbl;
-  interface ICommandWithParameters {
+  struct ICommandWithParameters {
     CONST_VTBL struct ICommandWithParametersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3312,7 +3312,7 @@
       HRESULT (WINAPI *GetColumnsRowset)(IColumnsRowset *This,IUnknown *pUnkOuter,DBORDINAL cOptColumns,const DBID rgOptColumns[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppColRowset);
     END_INTERFACE
   } IColumnsRowsetVtbl;
-  interface IColumnsRowset {
+  struct IColumnsRowset {
     CONST_VTBL struct IColumnsRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3348,7 +3348,7 @@
       HRESULT (WINAPI *MapColumnIDs)(IColumnsInfo *This,DBORDINAL cColumnIDs,const DBID rgColumnIDs[],DBORDINAL rgColumns[]);
     END_INTERFACE
   } IColumnsInfoVtbl;
-  interface IColumnsInfo {
+  struct IColumnsInfo {
     CONST_VTBL struct IColumnsInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3382,7 +3382,7 @@
       HRESULT (WINAPI *CreateCommand)(IDBCreateCommand *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppCommand);
     END_INTERFACE
   } IDBCreateCommandVtbl;
-  interface IDBCreateCommand {
+  struct IDBCreateCommand {
     CONST_VTBL struct IDBCreateCommandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3413,7 +3413,7 @@
       HRESULT (WINAPI *CreateSession)(IDBCreateSession *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession);
     END_INTERFACE
   } IDBCreateSessionVtbl;
-  interface IDBCreateSession {
+  struct IDBCreateSession {
     CONST_VTBL struct IDBCreateSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3462,7 +3462,7 @@
       HRESULT (WINAPI *GetSourcesRowset)(ISourcesRowset *This,IUnknown *pUnkOuter,REFIID riid,ULONG cPropertySets,DBPROPSET rgProperties[],IUnknown **ppSourcesRowset);
     END_INTERFACE
   } ISourcesRowsetVtbl;
-  interface ISourcesRowset {
+  struct ISourcesRowset {
     CONST_VTBL struct ISourcesRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3497,7 +3497,7 @@
       HRESULT (WINAPI *SetProperties)(IDBProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
     END_INTERFACE
   } IDBPropertiesVtbl;
-  interface IDBProperties {
+  struct IDBProperties {
     CONST_VTBL struct IDBPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3536,7 +3536,7 @@
       HRESULT (WINAPI *Uninitialize)(IDBInitialize *This);
     END_INTERFACE
   } IDBInitializeVtbl;
-  interface IDBInitialize {
+  struct IDBInitialize {
     CONST_VTBL struct IDBInitializeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3608,7 +3608,7 @@
       HRESULT (WINAPI *GetLiteralInfo)(IDBInfo *This,ULONG cLiterals,const DBLITERAL rgLiterals[],ULONG *pcLiteralInfo,DBLITERALINFO **prgLiteralInfo,OLECHAR **ppCharBuffer);
     END_INTERFACE
   } IDBInfoVtbl;
-  interface IDBInfo {
+  struct IDBInfo {
     CONST_VTBL struct IDBInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3648,7 +3648,7 @@
       HRESULT (WINAPI *ModifyDataSource)(IDBDataSourceAdmin *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
     END_INTERFACE
   } IDBDataSourceAdminVtbl;
-  interface IDBDataSourceAdmin {
+  struct IDBDataSourceAdmin {
     CONST_VTBL struct IDBDataSourceAdminVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3696,7 +3696,7 @@
       HRESULT (WINAPI *OnStop)(IDBAsynchNotify *This,HCHAPTER hChapter,DBASYNCHOP eOperation,HRESULT hrStatus,LPOLESTR pwszStatusText);
     END_INTERFACE
   } IDBAsynchNotifyVtbl;
-  interface IDBAsynchNotify {
+  struct IDBAsynchNotify {
     CONST_VTBL struct IDBAsynchNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3735,7 +3735,7 @@
       HRESULT (WINAPI *GetStatus)(IDBAsynchStatus *This,HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM *pulProgress,DBCOUNTITEM *pulProgressMax,DBASYNCHPHASE *peAsynchPhase,LPOLESTR *ppwszStatusText);
     END_INTERFACE
   } IDBAsynchStatusVtbl;
-  interface IDBAsynchStatus {
+  struct IDBAsynchStatus {
     CONST_VTBL struct IDBAsynchStatusVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3775,7 +3775,7 @@
       HRESULT (WINAPI *SetProperties)(ISessionProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
     END_INTERFACE
   } ISessionPropertiesVtbl;
-  interface ISessionProperties {
+  struct ISessionProperties {
     CONST_VTBL struct ISessionPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3811,7 +3811,7 @@
       HRESULT (WINAPI *DropIndex)(IIndexDefinition *This,DBID *pTableID,DBID *pIndexID);
     END_INTERFACE
   } IIndexDefinitionVtbl;
-  interface IIndexDefinition {
+  struct IIndexDefinition {
     CONST_VTBL struct IIndexDefinitionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3851,7 +3851,7 @@
       HRESULT (WINAPI *DropColumn)(ITableDefinition *This,DBID *pTableID,DBID *pColumnID);
     END_INTERFACE
   } ITableDefinitionVtbl;
-  interface ITableDefinition {
+  struct ITableDefinition {
     CONST_VTBL struct ITableDefinitionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3891,7 +3891,7 @@
       HRESULT (WINAPI *OpenRowset)(IOpenRowset *This,IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
     END_INTERFACE
   } IOpenRowsetVtbl;
-  interface IOpenRowset {
+  struct IOpenRowset {
     CONST_VTBL struct IOpenRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3982,7 +3982,7 @@
       HRESULT (WINAPI *GetSchemas)(IDBSchemaRowset *This,ULONG *pcSchemas,GUID **prgSchemas,ULONG **prgRestrictionSupport);
     END_INTERFACE
   } IDBSchemaRowsetVtbl;
-  interface IDBSchemaRowset {
+  struct IDBSchemaRowset {
     CONST_VTBL struct IDBSchemaRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4028,7 +4028,7 @@
       HRESULT (WINAPI *GetSpecification)(IMDDataset *This,REFIID riid,IUnknown **ppSpecification);
     END_INTERFACE
   } IMDDatasetVtbl;
-  interface IMDDataset {
+  struct IMDDataset {
     CONST_VTBL struct IMDDatasetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4073,7 +4073,7 @@
       HRESULT (WINAPI *FindTuple)(IMDFind *This,ULONG ulAxisIdentifier,DBORDINAL ulStartingOrdinal,DBCOUNTITEM cMembers,LPCOLESTR *rgpwszMember,ULONG *pulTupleOrdinal);
     END_INTERFACE
   } IMDFindVtbl;
-  interface IMDFind {
+  struct IMDFind {
     CONST_VTBL struct IMDFindVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4107,7 +4107,7 @@
       HRESULT (WINAPI *GetRangeRowset)(IMDRangeRowset *This,IUnknown *pUnkOuter,DBORDINAL ulStartCell,DBORDINAL ulEndCell,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
     END_INTERFACE
   } IMDRangeRowsetVtbl;
-  interface IMDRangeRowset {
+  struct IMDRangeRowset {
     CONST_VTBL struct IMDRangeRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4140,7 +4140,7 @@
       HRESULT (WINAPI *AlterTable)(IAlterTable *This,DBID *pTableId,DBID *pNewTableId,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
     END_INTERFACE
   } IAlterTableVtbl;
-  interface IAlterTable {
+  struct IAlterTable {
     CONST_VTBL struct IAlterTableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4174,7 +4174,7 @@
       HRESULT (WINAPI *AlterIndex)(IAlterIndex *This,DBID *pTableId,DBID *pIndexId,DBID *pNewIndexId,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
     END_INTERFACE
   } IAlterIndexVtbl;
-  interface IAlterIndex {
+  struct IAlterIndex {
     CONST_VTBL struct IAlterIndexVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4205,7 +4205,7 @@
       HRESULT (WINAPI *IsRowInChapter)(IRowsetChapterMember *This,HCHAPTER hChapter,HROW hRow);
     END_INTERFACE
   } IRowsetChapterMemberVtbl;
-  interface IRowsetChapterMember {
+  struct IRowsetChapterMember {
     CONST_VTBL struct IRowsetChapterMemberVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4242,7 +4242,7 @@
       HRESULT (WINAPI *SaveCommand)(ICommandPersist *This,DBID *pCommandID,DWORD dwFlags);
     END_INTERFACE
   } ICommandPersistVtbl;
-  interface ICommandPersist {
+  struct ICommandPersist {
     CONST_VTBL struct ICommandPersistVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4284,7 +4284,7 @@
       HRESULT (WINAPI *GetLastVisibleData)(IRowsetRefresh *This,HROW hRow,HACCESSOR hAccessor,void *pData);
     END_INTERFACE
   } IRowsetRefreshVtbl;
-  interface IRowsetRefresh {
+  struct IRowsetRefresh {
     CONST_VTBL struct IRowsetRefreshVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4318,7 +4318,7 @@
       HRESULT (WINAPI *GetChildRowset)(IParentRowset *This,IUnknown *pUnkOuter,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppRowset);
     END_INTERFACE
   } IParentRowsetVtbl;
-  interface IParentRowset {
+  struct IParentRowset {
     CONST_VTBL struct IParentRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4374,7 +4374,7 @@
       HRESULT (WINAPI *GetRecordCount)(IErrorRecords *This,ULONG *pcRecords);
     END_INTERFACE
   } IErrorRecordsVtbl;
-  interface IErrorRecords {
+  struct IErrorRecords {
     CONST_VTBL struct IErrorRecordsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4424,7 +4424,7 @@
       HRESULT (WINAPI *ReleaseErrors)(IErrorLookup *This,const DWORD dwDynamicErrorID);
     END_INTERFACE
   } IErrorLookupVtbl;
-  interface IErrorLookup {
+  struct IErrorLookup {
     CONST_VTBL struct IErrorLookupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4461,7 +4461,7 @@
       HRESULT (WINAPI *GetSQLInfo)(ISQLErrorInfo *This,BSTR *pbstrSQLState,LONG *plNativeError);
     END_INTERFACE
   } ISQLErrorInfoVtbl;
-  interface ISQLErrorInfo {
+  struct ISQLErrorInfo {
     CONST_VTBL struct ISQLErrorInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4492,7 +4492,7 @@
       HRESULT (WINAPI *GetDataSource)(IGetDataSource *This,REFIID riid,IUnknown **ppDataSource);
     END_INTERFACE
   } IGetDataSourceVtbl;
-  interface IGetDataSource {
+  struct IGetDataSource {
     CONST_VTBL struct IGetDataSourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4528,7 +4528,7 @@
       HRESULT (WINAPI *StartTransaction)(ITransactionLocal *This,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions,ULONG *pulTransactionLevel);
     END_INTERFACE
   } ITransactionLocalVtbl;
-  interface ITransactionLocal {
+  struct ITransactionLocal {
     CONST_VTBL struct ITransactionLocalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4567,7 +4567,7 @@
       HRESULT (WINAPI *JoinTransaction)(ITransactionJoin *This,IUnknown *punkTransactionCoord,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions);
     END_INTERFACE
   } ITransactionJoinVtbl;
-  interface ITransactionJoin {
+  struct ITransactionJoin {
     CONST_VTBL struct ITransactionJoinVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4601,7 +4601,7 @@
       HRESULT (WINAPI *GetTransactionObject)(ITransactionObject *This,ULONG ulTransactionLevel,ITransaction **ppTransactionObject);
     END_INTERFACE
   } ITransactionObjectVtbl;
-  interface ITransactionObject {
+  struct ITransactionObject {
     CONST_VTBL struct ITransactionObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4647,7 +4647,7 @@
       HRESULT (WINAPI *GetTrusteeProperties)(ITrusteeAdmin *This,TRUSTEE_W *pTrustee,const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
     END_INTERFACE
   } ITrusteeAdminVtbl;
-  interface ITrusteeAdmin {
+  struct ITrusteeAdmin {
     CONST_VTBL struct ITrusteeAdminVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4698,7 +4698,7 @@
       HRESULT (WINAPI *GetMemberships)(ITrusteeGroupAdmin *This,TRUSTEE_W *pTrustee,ULONG *pcMemberships,TRUSTEE_W **prgMemberships);
     END_INTERFACE
   } ITrusteeGroupAdminVtbl;
-  interface ITrusteeGroupAdmin {
+  struct ITrusteeGroupAdmin {
     CONST_VTBL struct ITrusteeGroupAdminVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4749,7 +4749,7 @@
       HRESULT (WINAPI *SetObjectOwner)(IObjectAccessControl *This,SEC_OBJECT *pObject,TRUSTEE_W *pOwner);
     END_INTERFACE
   } IObjectAccessControlVtbl;
-  interface IObjectAccessControl {
+  struct IObjectAccessControl {
     CONST_VTBL struct IObjectAccessControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4808,7 +4808,7 @@
       HRESULT (WINAPI *GetPermissions)(ISecurityInfo *This,GUID ObjectType,ACCESS_MASK *pPermissions);
     END_INTERFACE
   } ISecurityInfoVtbl;
-  interface ISecurityInfo {
+  struct ISecurityInfo {
     CONST_VTBL struct ISecurityInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4853,7 +4853,7 @@
       HRESULT (WINAPI *GetTableDefinition)(ITableCreation *This,DBID *pTableID,DBORDINAL *pcColumnDescs,DBCOLUMNDESC *prgColumnDescs[],ULONG *pcPropertySets,DBPROPSET *prgPropertySets[],ULONG *pcConstraintDescs,DBCONSTRAINTDESC *prgConstraintDescs[],OLECHAR **ppwszStringBuffer);
     END_INTERFACE
   } ITableCreationVtbl;
-  interface ITableCreation {
+  struct ITableCreation {
     CONST_VTBL struct ITableCreationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4897,7 +4897,7 @@
       HRESULT (WINAPI *DropConstraint)(ITableDefinitionWithConstraints *This,DBID *pTableID,DBID *pConstraintID);
     END_INTERFACE
   } ITableDefinitionWithConstraintsVtbl;
-  interface ITableDefinitionWithConstraints {
+  struct ITableDefinitionWithConstraints {
     CONST_VTBL struct ITableDefinitionWithConstraintsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4946,7 +4946,7 @@
       HRESULT (WINAPI *Open)(IRow *This,IUnknown *pUnkOuter,DBID *pColumnID,REFGUID rguidColumnType,DWORD dwBindFlags,REFIID riid,IUnknown **ppUnk);
     END_INTERFACE
   } IRowVtbl;
-  interface IRow {
+  struct IRow {
     CONST_VTBL struct IRowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4983,7 +4983,7 @@
       HRESULT (WINAPI *SetColumns)(IRowChange *This,DBORDINAL cColumns,DBCOLUMNACCESS rgColumns[]);
     END_INTERFACE
   } IRowChangeVtbl;
-  interface IRowChange {
+  struct IRowChange {
     CONST_VTBL struct IRowChangeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5017,7 +5017,7 @@
       HRESULT (WINAPI *AddColumns)(IRowSchemaChange *This,DBORDINAL cColumns,const DBCOLUMNINFO rgNewColumnInfo[],DBCOLUMNACCESS rgColumns[]);
     END_INTERFACE
   } IRowSchemaChangeVtbl;
-  interface IRowSchemaChange {
+  struct IRowSchemaChange {
     CONST_VTBL struct IRowSchemaChangeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5054,7 +5054,7 @@
       HRESULT (WINAPI *GetURLFromHROW)(IGetRow *This,HROW hRow,LPOLESTR *ppwszURL);
     END_INTERFACE
   } IGetRowVtbl;
-  interface IGetRow {
+  struct IGetRow {
     CONST_VTBL struct IGetRowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5088,7 +5088,7 @@
       HRESULT (WINAPI *Bind)(IBindResource *This,IUnknown *pUnkOuter,LPCOLESTR pwszURL,DBBINDURLFLAG dwBindURLFlags,REFGUID rguid,REFIID riid,IAuthenticate *pAuthenticate,DBIMPLICITSESSION *pImplSession,DBBINDURLSTATUS *pdwBindStatus,IUnknown **ppUnk);
     END_INTERFACE
   } IBindResourceVtbl;
-  interface IBindResource {
+  struct IBindResource {
     CONST_VTBL struct IBindResourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5142,7 +5142,7 @@
       HRESULT (WINAPI *OpenRowset)(IScopedOperations *This,IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
     END_INTERFACE
   } IScopedOperationsVtbl;
-  interface IScopedOperations {
+  struct IScopedOperations {
     CONST_VTBL struct IScopedOperationsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5183,7 +5183,7 @@
       HRESULT (WINAPI *CreateRow)(ICreateRow *This,IUnknown *pUnkOuter,LPCOLESTR pwszURL,DBBINDURLFLAG dwBindURLFlags,REFGUID rguid,REFIID riid,IAuthenticate *pAuthenticate,DBIMPLICITSESSION *pImplSession,DBBINDURLSTATUS *pdwBindStatus,LPOLESTR *ppwszNewURL,IUnknown **ppUnk);
     END_INTERFACE
   } ICreateRowVtbl;
-  interface ICreateRow {
+  struct ICreateRow {
     CONST_VTBL struct ICreateRowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5217,7 +5217,7 @@
       HRESULT (WINAPI *Reset)(IDBBinderProperties *This);
     END_INTERFACE
   } IDBBinderPropertiesVtbl;
-  interface IDBBinderProperties {
+  struct IDBBinderProperties {
     CONST_VTBL struct IDBBinderPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5253,7 +5253,7 @@
       HRESULT (WINAPI *GetRestrictedColumnInfo)(IColumnsInfo2 *This,DBORDINAL cColumnIDMasks,const DBID rgColumnIDMasks[],DWORD dwFlags,DBORDINAL *pcColumns,DBID **prgColumnIDs,DBCOLUMNINFO **prgColumnInfo,OLECHAR **ppStringsBuffer);
     END_INTERFACE
   } IColumnsInfo2Vtbl;
-  interface IColumnsInfo2 {
+  struct IColumnsInfo2 {
     CONST_VTBL struct IColumnsInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5290,7 +5290,7 @@
       HRESULT (WINAPI *UnregisterProvider)(IRegisterProvider *This,LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,REFCLSID rclsidProvider);
     END_INTERFACE
   } IRegisterProviderVtbl;
-  interface IRegisterProvider {
+  struct IRegisterProvider {
     CONST_VTBL struct IRegisterProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5330,7 +5330,7 @@
       HRESULT (WINAPI *GetSession)(IGetSession *This,REFIID riid,IUnknown **ppSession);
     END_INTERFACE
   } IGetSessionVtbl;
-  interface IGetSession {
+  struct IGetSession {
     CONST_VTBL struct IGetSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5361,7 +5361,7 @@
       HRESULT (WINAPI *GetSourceRow)(IGetSourceRow *This,REFIID riid,IUnknown **ppRow);
     END_INTERFACE
   } IGetSourceRowVtbl;
-  interface IGetSourceRow {
+  struct IGetSourceRow {
     CONST_VTBL struct IGetSourceRowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5397,7 +5397,7 @@
       HRESULT (WINAPI *SetIndex)(IRowsetCurrentIndex *This,DBID *pIndexID);
     END_INTERFACE
   } IRowsetCurrentIndexVtbl;
-  interface IRowsetCurrentIndex {
+  struct IRowsetCurrentIndex {
     CONST_VTBL struct IRowsetCurrentIndexVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5440,7 +5440,7 @@
       HRESULT (WINAPI *SetCommandStream)(ICommandStream *This,REFIID riid,REFGUID rguidDialect,IUnknown *pCommandStream);
     END_INTERFACE
   } ICommandStreamVtbl;
-  interface ICommandStream {
+  struct ICommandStream {
     CONST_VTBL struct ICommandStreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5474,7 +5474,7 @@
       HRESULT (WINAPI *PositionOnBookmark)(IRowsetBookmark *This,HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark);
     END_INTERFACE
   } IRowsetBookmarkVtbl;
-  interface IRowsetBookmark {
+  struct IRowsetBookmark {
     CONST_VTBL struct IRowsetBookmarkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/oledbdep.h b/mingw-w64-headers/include/oledbdep.h
index b1b42cd..3cdc814 100755
--- a/mingw-w64-headers/include/oledbdep.h
+++ b/mingw-w64-headers/include/oledbdep.h
@@ -24,77 +24,77 @@
 
 #ifndef __IRowsetNextRowset_FWD_DEFINED__
 #define __IRowsetNextRowset_FWD_DEFINED__
-typedef interface IRowsetNextRowset IRowsetNextRowset;
+typedef struct IRowsetNextRowset IRowsetNextRowset;
 #endif
 
 #ifndef __IRowsetNewRowAfter_FWD_DEFINED__
 #define __IRowsetNewRowAfter_FWD_DEFINED__
-typedef interface IRowsetNewRowAfter IRowsetNewRowAfter;
+typedef struct IRowsetNewRowAfter IRowsetNewRowAfter;
 #endif
 
 #ifndef __IRowsetWithParameters_FWD_DEFINED__
 #define __IRowsetWithParameters_FWD_DEFINED__
-typedef interface IRowsetWithParameters IRowsetWithParameters;
+typedef struct IRowsetWithParameters IRowsetWithParameters;
 #endif
 
 #ifndef __IRowsetAsynch_FWD_DEFINED__
 #define __IRowsetAsynch_FWD_DEFINED__
-typedef interface IRowsetAsynch IRowsetAsynch;
+typedef struct IRowsetAsynch IRowsetAsynch;
 #endif
 
 #ifndef __IRowsetKeys_FWD_DEFINED__
 #define __IRowsetKeys_FWD_DEFINED__
-typedef interface IRowsetKeys IRowsetKeys;
+typedef struct IRowsetKeys IRowsetKeys;
 #endif
 
 #ifndef __IRowsetWatchAll_FWD_DEFINED__
 #define __IRowsetWatchAll_FWD_DEFINED__
-typedef interface IRowsetWatchAll IRowsetWatchAll;
+typedef struct IRowsetWatchAll IRowsetWatchAll;
 #endif
 
 #ifndef __IRowsetWatchNotify_FWD_DEFINED__
 #define __IRowsetWatchNotify_FWD_DEFINED__
-typedef interface IRowsetWatchNotify IRowsetWatchNotify;
+typedef struct IRowsetWatchNotify IRowsetWatchNotify;
 #endif
 
 #ifndef __IRowsetWatchRegion_FWD_DEFINED__
 #define __IRowsetWatchRegion_FWD_DEFINED__
-typedef interface IRowsetWatchRegion IRowsetWatchRegion;
+typedef struct IRowsetWatchRegion IRowsetWatchRegion;
 #endif
 
 #ifndef __IRowsetCopyRows_FWD_DEFINED__
 #define __IRowsetCopyRows_FWD_DEFINED__
-typedef interface IRowsetCopyRows IRowsetCopyRows;
+typedef struct IRowsetCopyRows IRowsetCopyRows;
 #endif
 
 #ifndef __IReadData_FWD_DEFINED__
 #define __IReadData_FWD_DEFINED__
-typedef interface IReadData IReadData;
+typedef struct IReadData IReadData;
 #endif
 
 #ifndef __ICommandCost_FWD_DEFINED__
 #define __ICommandCost_FWD_DEFINED__
-typedef interface ICommandCost ICommandCost;
+typedef struct ICommandCost ICommandCost;
 #endif
 
 #ifndef __ICommandValidate_FWD_DEFINED__
 #define __ICommandValidate_FWD_DEFINED__
-typedef interface ICommandValidate ICommandValidate;
+typedef struct ICommandValidate ICommandValidate;
 #endif
 
 #ifndef __ITableRename_FWD_DEFINED__
 #define __ITableRename_FWD_DEFINED__
-typedef interface ITableRename ITableRename;
+typedef struct ITableRename ITableRename;
 #endif
 
 #ifndef __IDBSchemaCommand_FWD_DEFINED__
 #define __IDBSchemaCommand_FWD_DEFINED__
-typedef interface IDBSchemaCommand IDBSchemaCommand;
+typedef struct IDBSchemaCommand IDBSchemaCommand;
 #endif
 
 #ifndef __IProvideMoniker_FWD_DEFINED__
 #define __IProvideMoniker_FWD_DEFINED__
-typedef interface IProvideMoniker IProvideMoniker;
+typedef struct IProvideMoniker IProvideMoniker;
 #endif
 
 #include "oledb.h"
@@ -194,7 +194,7 @@
       HRESULT (WINAPI *GetNextRowset)(IRowsetNextRowset *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppNextRowset);
     END_INTERFACE
   } IRowsetNextRowsetVtbl;
-  interface IRowsetNextRowset {
+  struct IRowsetNextRowset {
     CONST_VTBL struct IRowsetNextRowsetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -225,7 +225,7 @@
       HRESULT (WINAPI *SetNewDataAfter)(IRowsetNewRowAfter *This,HCHAPTER hChapter,ULONG cbbmPrevious,const BYTE *pbmPrevious,HACCESSOR hAccessor,BYTE *pData,HROW *phRow);
     END_INTERFACE
   } IRowsetNewRowAfterVtbl;
-  interface IRowsetNewRowAfter {
+  struct IRowsetNewRowAfter {
     CONST_VTBL struct IRowsetNewRowAfterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -258,7 +258,7 @@
       HRESULT (WINAPI *Requery)(IRowsetWithParameters *This,DBPARAMS *pParams,ULONG *pulErrorParam,HCHAPTER *phReserved);
     END_INTERFACE
   } IRowsetWithParametersVtbl;
-  interface IRowsetWithParameters {
+  struct IRowsetWithParameters {
     CONST_VTBL struct IRowsetWithParametersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -294,7 +294,7 @@
       HRESULT (WINAPI *Stop)(IRowsetAsynch *This);
     END_INTERFACE
   } IRowsetAsynchVtbl;
-  interface IRowsetAsynch {
+  struct IRowsetAsynch {
     CONST_VTBL struct IRowsetAsynchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -328,7 +328,7 @@
       HRESULT (WINAPI *ListKeys)(IRowsetKeys *This,DBORDINAL *pcColumns,DBORDINAL **prgColumns);
     END_INTERFACE
   } IRowsetKeysVtbl;
-  interface IRowsetKeys {
+  struct IRowsetKeys {
     CONST_VTBL struct IRowsetKeysVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -363,7 +363,7 @@
       HRESULT (WINAPI *StopWatching)(IRowsetWatchAll *This);
     END_INTERFACE
   } IRowsetWatchAllVtbl;
-  interface IRowsetWatchAll {
+  struct IRowsetWatchAll {
     CONST_VTBL struct IRowsetWatchAllVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -406,7 +406,7 @@
       HRESULT (WINAPI *OnChange)(IRowsetWatchNotify *This,IRowset *pRowset,DBWATCHNOTIFY eChangeReason);
     END_INTERFACE
   } IRowsetWatchNotifyVtbl;
-  interface IRowsetWatchNotify {
+  struct IRowsetWatchNotify {
     CONST_VTBL struct IRowsetWatchNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -469,7 +469,7 @@
       HRESULT (WINAPI *ShrinkWatchRegion)(IRowsetWatchRegion *This,HWATCHREGION hRegion,HCHAPTER hChapter,DBBKMARK cbBookmark,BYTE *pBookmark,DBROWCOUNT cRows);
     END_INTERFACE
   } IRowsetWatchRegionVtbl;
-  interface IRowsetWatchRegion {
+  struct IRowsetWatchRegion {
     CONST_VTBL struct IRowsetWatchRegionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -526,7 +526,7 @@
       HRESULT (WINAPI *DefineSource)(IRowsetCopyRows *This,const IRowset *pRowsetSource,const DBORDINAL cColIds,const DB_LORDINAL rgSourceColumns[],const DB_LORDINAL rgTargetColumns[],HSOURCE *phSourceID);
     END_INTERFACE
   } IRowsetCopyRowsVtbl;
-  interface IRowsetCopyRows {
+  struct IRowsetCopyRows {
     CONST_VTBL struct IRowsetCopyRowsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -568,7 +568,7 @@
       HRESULT (WINAPI *ReleaseChapter)(IReadData *This,HCHAPTER hChapter);
     END_INTERFACE
   } IReadDataVtbl;
-  interface IReadData {
+  struct IReadData {
     CONST_VTBL struct IReadDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -640,7 +640,7 @@
       HRESULT (WINAPI *SetCostLimits)(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG cCostLimits,DBCOST *prgCostLimits,DBEXECLIMITS dwExecutionFlags);
     END_INTERFACE
   } ICommandCostVtbl;
-  interface ICommandCost {
+  struct ICommandCost {
     CONST_VTBL struct ICommandCostVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -688,7 +688,7 @@
       HRESULT (WINAPI *ValidateSyntax)(ICommandValidate *This);
     END_INTERFACE
   } ICommandValidateVtbl;
-  interface ICommandValidate {
+  struct ICommandValidate {
     CONST_VTBL struct ICommandValidateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -724,7 +724,7 @@
       HRESULT (WINAPI *RenameTable)(ITableRename *This,DBID *pOldTableId,DBID *pOldIndexId,DBID *pNewTableId,DBID *pNewIndexId);
     END_INTERFACE
   } ITableRenameVtbl;
-  interface ITableRename {
+  struct ITableRename {
     CONST_VTBL struct ITableRenameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -760,7 +760,7 @@
       HRESULT (WINAPI *GetSchemas)(IDBSchemaCommand *This,ULONG *pcSchemas,GUID **prgSchemas);
     END_INTERFACE
   } IDBSchemaCommandVtbl;
-  interface IDBSchemaCommand {
+  struct IDBSchemaCommand {
     CONST_VTBL struct IDBSchemaCommandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -794,7 +794,7 @@
       HRESULT (WINAPI *GetMoniker)(IProvideMoniker *This,IMoniker **ppIMoniker);
     END_INTERFACE
   } IProvideMonikerVtbl;
-  interface IProvideMoniker {
+  struct IProvideMoniker {
     CONST_VTBL struct IProvideMonikerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/oleidl.h b/mingw-w64-headers/include/oleidl.h
index e926b38..5fe7c0b 100755
--- a/mingw-w64-headers/include/oleidl.h
+++ b/mingw-w64-headers/include/oleidl.h
@@ -24,112 +24,112 @@
 
 #ifndef __IOleAdviseHolder_FWD_DEFINED__
 #define __IOleAdviseHolder_FWD_DEFINED__
-typedef interface IOleAdviseHolder IOleAdviseHolder;
+typedef struct IOleAdviseHolder IOleAdviseHolder;
 #endif
 
 #ifndef __IOleCache_FWD_DEFINED__
 #define __IOleCache_FWD_DEFINED__
-typedef interface IOleCache IOleCache;
+typedef struct IOleCache IOleCache;
 #endif
 
 #ifndef __IOleCache2_FWD_DEFINED__
 #define __IOleCache2_FWD_DEFINED__
-typedef interface IOleCache2 IOleCache2;
+typedef struct IOleCache2 IOleCache2;
 #endif
 
 #ifndef __IOleCacheControl_FWD_DEFINED__
 #define __IOleCacheControl_FWD_DEFINED__
-typedef interface IOleCacheControl IOleCacheControl;
+typedef struct IOleCacheControl IOleCacheControl;
 #endif
 
 #ifndef __IParseDisplayName_FWD_DEFINED__
 #define __IParseDisplayName_FWD_DEFINED__
-typedef interface IParseDisplayName IParseDisplayName;
+typedef struct IParseDisplayName IParseDisplayName;
 #endif
 
 #ifndef __IOleContainer_FWD_DEFINED__
 #define __IOleContainer_FWD_DEFINED__
-typedef interface IOleContainer IOleContainer;
+typedef struct IOleContainer IOleContainer;
 #endif
 
 #ifndef __IOleClientSite_FWD_DEFINED__
 #define __IOleClientSite_FWD_DEFINED__
-typedef interface IOleClientSite IOleClientSite;
+typedef struct IOleClientSite IOleClientSite;
 #endif
 
 #ifndef __IOleObject_FWD_DEFINED__
 #define __IOleObject_FWD_DEFINED__
-typedef interface IOleObject IOleObject;
+typedef struct IOleObject IOleObject;
 #endif
 
 #ifndef __IOleWindow_FWD_DEFINED__
 #define __IOleWindow_FWD_DEFINED__
-typedef interface IOleWindow IOleWindow;
+typedef struct IOleWindow IOleWindow;
 #endif
 
 #ifndef __IOleLink_FWD_DEFINED__
 #define __IOleLink_FWD_DEFINED__
-typedef interface IOleLink IOleLink;
+typedef struct IOleLink IOleLink;
 #endif
 
 #ifndef __IOleItemContainer_FWD_DEFINED__
 #define __IOleItemContainer_FWD_DEFINED__
-typedef interface IOleItemContainer IOleItemContainer;
+typedef struct IOleItemContainer IOleItemContainer;
 #endif
 
 #ifndef __IOleInPlaceUIWindow_FWD_DEFINED__
 #define __IOleInPlaceUIWindow_FWD_DEFINED__
-typedef interface IOleInPlaceUIWindow IOleInPlaceUIWindow;
+typedef struct IOleInPlaceUIWindow IOleInPlaceUIWindow;
 #endif
 
 #ifndef __IOleInPlaceActiveObject_FWD_DEFINED__
 #define __IOleInPlaceActiveObject_FWD_DEFINED__
-typedef interface IOleInPlaceActiveObject IOleInPlaceActiveObject;
+typedef struct IOleInPlaceActiveObject IOleInPlaceActiveObject;
 #endif
 
 #ifndef __IOleInPlaceFrame_FWD_DEFINED__
 #define __IOleInPlaceFrame_FWD_DEFINED__
-typedef interface IOleInPlaceFrame IOleInPlaceFrame;
+typedef struct IOleInPlaceFrame IOleInPlaceFrame;
 #endif
 
 #ifndef __IOleInPlaceObject_FWD_DEFINED__
 #define __IOleInPlaceObject_FWD_DEFINED__
-typedef interface IOleInPlaceObject IOleInPlaceObject;
+typedef struct IOleInPlaceObject IOleInPlaceObject;
 #endif
 
 #ifndef __IOleInPlaceSite_FWD_DEFINED__
 #define __IOleInPlaceSite_FWD_DEFINED__
-typedef interface IOleInPlaceSite IOleInPlaceSite;
+typedef struct IOleInPlaceSite IOleInPlaceSite;
 #endif
 
 #ifndef __IContinue_FWD_DEFINED__
 #define __IContinue_FWD_DEFINED__
-typedef interface IContinue IContinue;
+typedef struct IContinue IContinue;
 #endif
 
 #ifndef __IViewObject_FWD_DEFINED__
 #define __IViewObject_FWD_DEFINED__
-typedef interface IViewObject IViewObject;
+typedef struct IViewObject IViewObject;
 #endif
 
 #ifndef __IViewObject2_FWD_DEFINED__
 #define __IViewObject2_FWD_DEFINED__
-typedef interface IViewObject2 IViewObject2;
+typedef struct IViewObject2 IViewObject2;
 #endif
 
 #ifndef __IDropSource_FWD_DEFINED__
 #define __IDropSource_FWD_DEFINED__
-typedef interface IDropSource IDropSource;
+typedef struct IDropSource IDropSource;
 #endif
 
 #ifndef __IDropTarget_FWD_DEFINED__
 #define __IDropTarget_FWD_DEFINED__
-typedef interface IDropTarget IDropTarget;
+typedef struct IDropTarget IDropTarget;
 #endif
 
 #ifndef __IEnumOLEVERB_FWD_DEFINED__
 #define __IEnumOLEVERB_FWD_DEFINED__
-typedef interface IEnumOLEVERB IEnumOLEVERB;
+typedef struct IEnumOLEVERB IEnumOLEVERB;
 #endif
 
 #include "objidl.h"
@@ -173,7 +173,7 @@
       HRESULT (WINAPI *SendOnClose)(IOleAdviseHolder *This);
     END_INTERFACE
   } IOleAdviseHolderVtbl;
-  interface IOleAdviseHolder {
+  struct IOleAdviseHolder {
     CONST_VTBL struct IOleAdviseHolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -229,7 +229,7 @@
       HRESULT (WINAPI *SetData)(IOleCache *This,FORMATETC *pformatetc,STGMEDIUM *pmedium,WINBOOL fRelease);
     END_INTERFACE
   } IOleCacheVtbl;
-  interface IOleCache {
+  struct IOleCache {
     CONST_VTBL struct IOleCacheVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -295,7 +295,7 @@
       HRESULT (WINAPI *DiscardCache)(IOleCache2 *This,DWORD dwDiscardOptions);
     END_INTERFACE
   } IOleCache2Vtbl;
-  interface IOleCache2 {
+  struct IOleCache2 {
     CONST_VTBL struct IOleCache2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -338,7 +338,7 @@
       HRESULT (WINAPI *OnStop)(IOleCacheControl *This);
     END_INTERFACE
   } IOleCacheControlVtbl;
-  interface IOleCacheControl {
+  struct IOleCacheControl {
     CONST_VTBL struct IOleCacheControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -374,7 +374,7 @@
       HRESULT (WINAPI *ParseDisplayName)(IParseDisplayName *This,IBindCtx *pbc,LPOLESTR pszDisplayName,ULONG *pchEaten,IMoniker **ppmkOut);
     END_INTERFACE
   } IParseDisplayNameVtbl;
-  interface IParseDisplayName {
+  struct IParseDisplayName {
     CONST_VTBL struct IParseDisplayNameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -410,7 +410,7 @@
       HRESULT (WINAPI *LockContainer)(IOleContainer *This,WINBOOL fLock);
     END_INTERFACE
   } IOleContainerVtbl;
-  interface IOleContainer {
+  struct IOleContainer {
     CONST_VTBL struct IOleContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -457,7 +457,7 @@
       HRESULT (WINAPI *RequestNewObjectLayout)(IOleClientSite *This);
     END_INTERFACE
   } IOleClientSiteVtbl;
-  interface IOleClientSite {
+  struct IOleClientSite {
     CONST_VTBL struct IOleClientSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -568,7 +568,7 @@
       HRESULT (WINAPI *SetColorScheme)(IOleObject *This,LOGPALETTE *pLogpal);
     END_INTERFACE
   } IOleObjectVtbl;
-  interface IOleObject {
+  struct IOleObject {
     CONST_VTBL struct IOleObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -692,7 +692,7 @@
       HRESULT (WINAPI *ContextSensitiveHelp)(IOleWindow *This,WINBOOL fEnterMode);
     END_INTERFACE
   } IOleWindowVtbl;
-  interface IOleWindow {
+  struct IOleWindow {
     CONST_VTBL struct IOleWindowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -759,7 +759,7 @@
       HRESULT (WINAPI *Update)(IOleLink *This,IBindCtx *pbc);
     END_INTERFACE
   } IOleLinkVtbl;
-  interface IOleLink {
+  struct IOleLink {
     CONST_VTBL struct IOleLinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -837,7 +837,7 @@
       HRESULT (WINAPI *IsRunning)(IOleItemContainer *This,LPOLESTR pszItem);
     END_INTERFACE
   } IOleItemContainerVtbl;
-  interface IOleItemContainer {
+  struct IOleItemContainer {
     CONST_VTBL struct IOleItemContainerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -891,7 +891,7 @@
       HRESULT (WINAPI *SetActiveObject)(IOleInPlaceUIWindow *This,IOleInPlaceActiveObject *pActiveObject,LPCOLESTR pszObjName);
     END_INTERFACE
   } IOleInPlaceUIWindowVtbl;
-  interface IOleInPlaceUIWindow {
+  struct IOleInPlaceUIWindow {
     CONST_VTBL struct IOleInPlaceUIWindowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -945,7 +945,7 @@
       HRESULT (WINAPI *EnableModeless)(IOleInPlaceActiveObject *This,WINBOOL fEnable);
     END_INTERFACE
   } IOleInPlaceActiveObjectVtbl;
-  interface IOleInPlaceActiveObject {
+  struct IOleInPlaceActiveObject {
     CONST_VTBL struct IOleInPlaceActiveObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1025,7 +1025,7 @@
       HRESULT (WINAPI *TranslateAccelerator)(IOleInPlaceFrame *This,LPMSG lpmsg,WORD wID);
     END_INTERFACE
   } IOleInPlaceFrameVtbl;
-  interface IOleInPlaceFrame {
+  struct IOleInPlaceFrame {
     CONST_VTBL struct IOleInPlaceFrameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1087,7 +1087,7 @@
       HRESULT (WINAPI *ReactivateAndUndo)(IOleInPlaceObject *This);
     END_INTERFACE
   } IOleInPlaceObjectVtbl;
-  interface IOleInPlaceObject {
+  struct IOleInPlaceObject {
     CONST_VTBL struct IOleInPlaceObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1151,7 +1151,7 @@
       HRESULT (WINAPI *OnPosRectChange)(IOleInPlaceSite *This,LPCRECT lprcPosRect);
     END_INTERFACE
   } IOleInPlaceSiteVtbl;
-  interface IOleInPlaceSite {
+  struct IOleInPlaceSite {
     CONST_VTBL struct IOleInPlaceSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1211,7 +1211,7 @@
       HRESULT (WINAPI *FContinue)(IContinue *This);
     END_INTERFACE
   } IContinueVtbl;
-  interface IContinue {
+  struct IContinue {
     CONST_VTBL struct IContinueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1254,7 +1254,7 @@
       HRESULT (WINAPI *GetAdvise)(IViewObject *This,DWORD *pAspects,DWORD *pAdvf,IAdviseSink **ppAdvSink);
     END_INTERFACE
   } IViewObjectVtbl;
-  interface IViewObject {
+  struct IViewObject {
     CONST_VTBL struct IViewObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1308,7 +1308,7 @@
       HRESULT (WINAPI *GetExtent)(IViewObject2 *This,DWORD dwDrawAspect,LONG lindex,DVTARGETDEVICE *ptd,LPSIZEL lpsizel);
     END_INTERFACE
   } IViewObject2Vtbl;
-  interface IViewObject2 {
+  struct IViewObject2 {
     CONST_VTBL struct IViewObject2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1349,7 +1349,7 @@
       HRESULT (WINAPI *GiveFeedback)(IDropSource *This,DWORD dwEffect);
     END_INTERFACE
   } IDropSourceVtbl;
-  interface IDropSource {
+  struct IDropSource {
     CONST_VTBL struct IDropSourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1404,7 +1404,7 @@
       HRESULT (WINAPI *Drop)(IDropTarget *This,IDataObject *pDataObj,DWORD grfKeyState,POINTL pt,DWORD *pdwEffect);
     END_INTERFACE
   } IDropTargetVtbl;
-  interface IDropTarget {
+  struct IDropTarget {
     CONST_VTBL struct IDropTargetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1465,7 +1465,7 @@
       HRESULT (WINAPI *Clone)(IEnumOLEVERB *This,IEnumOLEVERB **ppenum);
     END_INTERFACE
   } IEnumOLEVERBVtbl;
-  interface IEnumOLEVERB {
+  struct IEnumOLEVERB {
     CONST_VTBL struct IEnumOLEVERBVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/oletx2xa.h b/mingw-w64-headers/include/oletx2xa.h
index a307401..13df2f1 100755
--- a/mingw-w64-headers/include/oletx2xa.h
+++ b/mingw-w64-headers/include/oletx2xa.h
@@ -24,22 +24,22 @@
 
 #ifndef __IDtcToXaMapper_FWD_DEFINED__
 #define __IDtcToXaMapper_FWD_DEFINED__
-typedef interface IDtcToXaMapper IDtcToXaMapper;
+typedef struct IDtcToXaMapper IDtcToXaMapper;
 #endif
 
 #ifndef __IDtcToXaHelperFactory_FWD_DEFINED__
 #define __IDtcToXaHelperFactory_FWD_DEFINED__
-typedef interface IDtcToXaHelperFactory IDtcToXaHelperFactory;
+typedef struct IDtcToXaHelperFactory IDtcToXaHelperFactory;
 #endif
 
 #ifndef __IDtcToXaHelper_FWD_DEFINED__
 #define __IDtcToXaHelper_FWD_DEFINED__
-typedef interface IDtcToXaHelper IDtcToXaHelper;
+typedef struct IDtcToXaHelper IDtcToXaHelper;
 #endif
 
 #ifndef __IDtcToXaHelperSinglePipe_FWD_DEFINED__
 #define __IDtcToXaHelperSinglePipe_FWD_DEFINED__
-typedef interface IDtcToXaHelperSinglePipe IDtcToXaHelperSinglePipe;
+typedef struct IDtcToXaHelperSinglePipe IDtcToXaHelperSinglePipe;
 #endif
 
 #include "unknwn.h"
@@ -103,7 +103,7 @@
       HRESULT (WINAPI *ReleaseResourceManager)(IDtcToXaMapper *This,DWORD dwRMCookie);
     END_INTERFACE
   } IDtcToXaMapperVtbl;
-  interface IDtcToXaMapper {
+  struct IDtcToXaMapper {
     CONST_VTBL struct IDtcToXaMapperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -143,7 +143,7 @@
       HRESULT (WINAPI *Create)(IDtcToXaHelperFactory *This,char *pszDSN,char *pszClientDllName,GUID *pguidRm,IDtcToXaHelper **ppXaHelper);
     END_INTERFACE
   } IDtcToXaHelperFactoryVtbl;
-  interface IDtcToXaHelperFactory {
+  struct IDtcToXaHelperFactory {
     CONST_VTBL struct IDtcToXaHelperFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -176,7 +176,7 @@
       HRESULT (WINAPI *TranslateTridToXid)(IDtcToXaHelper *This,ITransaction *pITransaction,GUID *pguidBqual,XID *pXid);
     END_INTERFACE
   } IDtcToXaHelperVtbl;
-  interface IDtcToXaHelper {
+  struct IDtcToXaHelper {
     CONST_VTBL struct IDtcToXaHelperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -216,7 +216,7 @@
       void (WINAPI *ReleaseRMCookie)(IDtcToXaHelperSinglePipe *This,DWORD i_dwRMCookie,WINBOOL i_fNormal);
     END_INTERFACE
   } IDtcToXaHelperSinglePipeVtbl;
-  interface IDtcToXaHelperSinglePipe {
+  struct IDtcToXaHelperSinglePipe {
     CONST_VTBL struct IDtcToXaHelperSinglePipeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/perhist.h b/mingw-w64-headers/include/perhist.h
index b26bc34..dd41eae 100755
--- a/mingw-w64-headers/include/perhist.h
+++ b/mingw-w64-headers/include/perhist.h
@@ -24,7 +24,7 @@
 
 #ifndef __IPersistHistory_FWD_DEFINED__
 #define __IPersistHistory_FWD_DEFINED__
-typedef interface IPersistHistory IPersistHistory;
+typedef struct IPersistHistory IPersistHistory;
 #endif
 
 #include "objidl.h"
@@ -69,7 +69,7 @@
       HRESULT (WINAPI *GetPositionCookie)(IPersistHistory *This,DWORD *pdwPositioncookie);
     END_INTERFACE
   } IPersistHistoryVtbl;
-  interface IPersistHistory {
+  struct IPersistHistory {
     CONST_VTBL struct IPersistHistoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/propidl.h b/mingw-w64-headers/include/propidl.h
index 1dd34a0..abb45fa 100755
--- a/mingw-w64-headers/include/propidl.h
+++ b/mingw-w64-headers/include/propidl.h
@@ -24,22 +24,22 @@
 
 #ifndef __IPropertyStorage_FWD_DEFINED__
 #define __IPropertyStorage_FWD_DEFINED__
-typedef interface IPropertyStorage IPropertyStorage;
+typedef struct IPropertyStorage IPropertyStorage;
 #endif
 
 #ifndef __IPropertySetStorage_FWD_DEFINED__
 #define __IPropertySetStorage_FWD_DEFINED__
-typedef interface IPropertySetStorage IPropertySetStorage;
+typedef struct IPropertySetStorage IPropertySetStorage;
 #endif
 
 #ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
 #define __IEnumSTATPROPSTG_FWD_DEFINED__
-typedef interface IEnumSTATPROPSTG IEnumSTATPROPSTG;
+typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
 #endif
 
 #ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
 #define __IEnumSTATPROPSETSTG_FWD_DEFINED__
-typedef interface IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
+typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
 #endif
 
 #include "objidl.h"
@@ -412,7 +412,7 @@
       HRESULT (WINAPI *Stat)(IPropertyStorage *This,STATPROPSETSTG *pstatpsstg);
     END_INTERFACE
   } IPropertyStorageVtbl;
-  interface IPropertyStorage {
+  struct IPropertyStorage {
     CONST_VTBL struct IPropertyStorageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -484,7 +484,7 @@
       HRESULT (WINAPI *Enum)(IPropertySetStorage *This,IEnumSTATPROPSETSTG **ppenum);
     END_INTERFACE
   } IPropertySetStorageVtbl;
-  interface IPropertySetStorage {
+  struct IPropertySetStorage {
     CONST_VTBL struct IPropertySetStorageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -532,7 +532,7 @@
       HRESULT (WINAPI *Clone)(IEnumSTATPROPSTG *This,IEnumSTATPROPSTG **ppenum);
     END_INTERFACE
   } IEnumSTATPROPSTGVtbl;
-  interface IEnumSTATPROPSTG {
+  struct IEnumSTATPROPSTG {
     CONST_VTBL struct IEnumSTATPROPSTGVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -580,7 +580,7 @@
       HRESULT (WINAPI *Clone)(IEnumSTATPROPSETSTG *This,IEnumSTATPROPSETSTG **ppenum);
     END_INTERFACE
   } IEnumSTATPROPSETSTGVtbl;
-  interface IEnumSTATPROPSETSTG {
+  struct IEnumSTATPROPSETSTG {
     CONST_VTBL struct IEnumSTATPROPSETSTGVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/pstore.h b/mingw-w64-headers/include/pstore.h
index eac43f8..d780d1a 100755
--- a/mingw-w64-headers/include/pstore.h
+++ b/mingw-w64-headers/include/pstore.h
@@ -209,22 +209,22 @@
 
 #ifndef __IEnumPStoreItems_FWD_DEFINED__
 #define __IEnumPStoreItems_FWD_DEFINED__
-  typedef interface IEnumPStoreItems IEnumPStoreItems;
+  typedef struct IEnumPStoreItems IEnumPStoreItems;
 #endif
 
 #ifndef __IEnumPStoreTypes_FWD_DEFINED__
 #define __IEnumPStoreTypes_FWD_DEFINED__
-  typedef interface IEnumPStoreTypes IEnumPStoreTypes;
+  typedef struct IEnumPStoreTypes IEnumPStoreTypes;
 #endif
 
 #ifndef __IPStore_FWD_DEFINED__
 #define __IPStore_FWD_DEFINED__
-  typedef interface IPStore IPStore;
+  typedef struct IPStore IPStore;
 #endif
 
 #ifndef __IEnumPStoreProviders_FWD_DEFINED__
 #define __IEnumPStoreProviders_FWD_DEFINED__
-  typedef interface IEnumPStoreProviders IEnumPStoreProviders;
+  typedef struct IEnumPStoreProviders IEnumPStoreProviders;
 #endif
 
 #include "oaidl.h"
@@ -236,7 +236,7 @@
 #define __IEnumPStoreItems_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IEnumPStoreItems;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IEnumPStoreItems : public IUnknown {
+  struct IEnumPStoreItems : public IUnknown {
 public:
   virtual HRESULT WINAPI Next(DWORD celt,LPWSTR *rgelt,DWORD *pceltFetched) = 0;
   virtual HRESULT WINAPI Skip(DWORD celt) = 0;
@@ -255,7 +255,7 @@
       HRESULT (WINAPI *Clone)(IEnumPStoreItems *This,IEnumPStoreItems **ppenum);
     END_INTERFACE
   } IEnumPStoreItemsVtbl;
-  interface IEnumPStoreItems {
+  struct IEnumPStoreItems {
     CONST_VTBL struct IEnumPStoreItemsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -282,7 +282,7 @@
 #define __IEnumPStoreTypes_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IEnumPStoreTypes;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IEnumPStoreTypes : public IUnknown {
+  struct IEnumPStoreTypes : public IUnknown {
   public:
     virtual HRESULT WINAPI Next(DWORD celt,GUID *rgelt,DWORD *pceltFetched) = 0;
     virtual HRESULT WINAPI Skip(DWORD celt) = 0;
@@ -301,7 +301,7 @@
       HRESULT (WINAPI *Clone)(IEnumPStoreTypes *This,IEnumPStoreTypes **ppenum);
     END_INTERFACE
   } IEnumPStoreTypesVtbl;
-  interface IEnumPStoreTypes {
+  struct IEnumPStoreTypes {
     CONST_VTBL struct IEnumPStoreTypesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -328,7 +328,7 @@
 #define __IPStore_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IPStore;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IPStore : public IUnknown {
+  struct IPStore : public IUnknown {
   public:
     virtual HRESULT WINAPI GetInfo(PPST_PROVIDERINFO *ppProperties) = 0;
     virtual HRESULT WINAPI GetProvParam(DWORD dwParam,DWORD *pcbData,BYTE **ppbData,DWORD dwFlags) = 0;
@@ -377,7 +377,7 @@
       HRESULT (WINAPI *EnumItems)(IPStore *This,PST_KEY Key,const GUID *pItemType,const GUID *pItemSubtype,DWORD dwFlags,IEnumPStoreItems **ppenum);
     END_INTERFACE
   } IPStoreVtbl;
-  interface IPStore {
+  struct IPStore {
     CONST_VTBL struct IPStoreVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -449,7 +449,7 @@
 #define __IEnumPStoreProviders_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IEnumPStoreProviders;
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  interface IEnumPStoreProviders : public IUnknown {
+  struct IEnumPStoreProviders : public IUnknown {
   public:
     virtual HRESULT WINAPI Next(DWORD celt,PST_PROVIDERINFO **rgelt,DWORD *pceltFetched) = 0;
     virtual HRESULT WINAPI Skip(DWORD celt) = 0;
@@ -468,7 +468,7 @@
       HRESULT (WINAPI *Clone)(IEnumPStoreProviders *This,IEnumPStoreProviders **ppenum);
     END_INTERFACE
   } IEnumPStoreProvidersVtbl;
-  interface IEnumPStoreProviders {
+  struct IEnumPStoreProviders {
     CONST_VTBL struct IEnumPStoreProvidersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/qmgr.h b/mingw-w64-headers/include/qmgr.h
index c8e55c9..f48a4f6 100755
--- a/mingw-w64-headers/include/qmgr.h
+++ b/mingw-w64-headers/include/qmgr.h
@@ -24,32 +24,32 @@
 
 #ifndef __IBackgroundCopyJob1_FWD_DEFINED__
 #define __IBackgroundCopyJob1_FWD_DEFINED__
-typedef interface IBackgroundCopyJob1 IBackgroundCopyJob1;
+typedef struct IBackgroundCopyJob1 IBackgroundCopyJob1;
 #endif
 
 #ifndef __IEnumBackgroundCopyJobs1_FWD_DEFINED__
 #define __IEnumBackgroundCopyJobs1_FWD_DEFINED__
-typedef interface IEnumBackgroundCopyJobs1 IEnumBackgroundCopyJobs1;
+typedef struct IEnumBackgroundCopyJobs1 IEnumBackgroundCopyJobs1;
 #endif
 
 #ifndef __IBackgroundCopyGroup_FWD_DEFINED__
 #define __IBackgroundCopyGroup_FWD_DEFINED__
-typedef interface IBackgroundCopyGroup IBackgroundCopyGroup;
+typedef struct IBackgroundCopyGroup IBackgroundCopyGroup;
 #endif
 
 #ifndef __IEnumBackgroundCopyGroups_FWD_DEFINED__
 #define __IEnumBackgroundCopyGroups_FWD_DEFINED__
-typedef interface IEnumBackgroundCopyGroups IEnumBackgroundCopyGroups;
+typedef struct IEnumBackgroundCopyGroups IEnumBackgroundCopyGroups;
 #endif
 
 #ifndef __IBackgroundCopyCallback1_FWD_DEFINED__
 #define __IBackgroundCopyCallback1_FWD_DEFINED__
-typedef interface IBackgroundCopyCallback1 IBackgroundCopyCallback1;
+typedef struct IBackgroundCopyCallback1 IBackgroundCopyCallback1;
 #endif
 
 #ifndef __IBackgroundCopyQMgr_FWD_DEFINED__
 #define __IBackgroundCopyQMgr_FWD_DEFINED__
-typedef interface IBackgroundCopyQMgr IBackgroundCopyQMgr;
+typedef struct IBackgroundCopyQMgr IBackgroundCopyQMgr;
 #endif
 
 #ifndef __BackgroundCopyQMgr_FWD_DEFINED__
@@ -141,7 +141,7 @@
       HRESULT (WINAPI *get_JobID)(IBackgroundCopyJob1 *This,GUID *pguidJobID);
     END_INTERFACE
   } IBackgroundCopyJob1Vtbl;
-  interface IBackgroundCopyJob1 {
+  struct IBackgroundCopyJob1 {
     CONST_VTBL struct IBackgroundCopyJob1Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -201,7 +201,7 @@
       HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyJobs1 *This,ULONG *puCount);
     END_INTERFACE
   } IEnumBackgroundCopyJobs1Vtbl;
-  interface IEnumBackgroundCopyJobs1 {
+  struct IEnumBackgroundCopyJobs1 {
     CONST_VTBL struct IEnumBackgroundCopyJobs1Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -278,7 +278,7 @@
       HRESULT (WINAPI *SetNotificationPointer)(IBackgroundCopyGroup *This,REFIID iid,IUnknown *pUnk);
     END_INTERFACE
   } IBackgroundCopyGroupVtbl;
-  interface IBackgroundCopyGroup {
+  struct IBackgroundCopyGroup {
     CONST_VTBL struct IBackgroundCopyGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -359,7 +359,7 @@
       HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyGroups *This,ULONG *puCount);
     END_INTERFACE
   } IEnumBackgroundCopyGroupsVtbl;
-  interface IEnumBackgroundCopyGroups {
+  struct IEnumBackgroundCopyGroups {
     CONST_VTBL struct IEnumBackgroundCopyGroupsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -406,7 +406,7 @@
       HRESULT (WINAPI *OnProgressEx)(IBackgroundCopyCallback1 *This,DWORD ProgressType,IBackgroundCopyGroup *pGroup,IBackgroundCopyJob1 *pJob,DWORD dwFileIndex,DWORD dwProgressValue,DWORD dwByteArraySize,BYTE *pByte);
     END_INTERFACE
   } IBackgroundCopyCallback1Vtbl;
-  interface IBackgroundCopyCallback1 {
+  struct IBackgroundCopyCallback1 {
     CONST_VTBL struct IBackgroundCopyCallback1Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -447,7 +447,7 @@
       HRESULT (WINAPI *EnumGroups)(IBackgroundCopyQMgr *This,DWORD dwFlags,IEnumBackgroundCopyGroups **ppEnumGroups);
     END_INTERFACE
   } IBackgroundCopyQMgrVtbl;
-  interface IBackgroundCopyQMgr {
+  struct IBackgroundCopyQMgr {
     CONST_VTBL struct IBackgroundCopyQMgrVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/rend.h b/mingw-w64-headers/include/rend.h
index da5b5d3..d7c8a2b 100755
--- a/mingw-w64-headers/include/rend.h
+++ b/mingw-w64-headers/include/rend.h
@@ -24,77 +24,77 @@
 
 #ifndef __ITDirectoryObjectConference_FWD_DEFINED__
 #define __ITDirectoryObjectConference_FWD_DEFINED__
-typedef interface ITDirectoryObjectConference ITDirectoryObjectConference;
+typedef struct ITDirectoryObjectConference ITDirectoryObjectConference;
 #endif
 
 #ifndef __ITDirectoryObjectUser_FWD_DEFINED__
 #define __ITDirectoryObjectUser_FWD_DEFINED__
-typedef interface ITDirectoryObjectUser ITDirectoryObjectUser;
+typedef struct ITDirectoryObjectUser ITDirectoryObjectUser;
 #endif
 
 #ifndef __IEnumDialableAddrs_FWD_DEFINED__
 #define __IEnumDialableAddrs_FWD_DEFINED__
-typedef interface IEnumDialableAddrs IEnumDialableAddrs;
+typedef struct IEnumDialableAddrs IEnumDialableAddrs;
 #endif
 
 #ifndef __ITDirectoryObject_FWD_DEFINED__
 #define __ITDirectoryObject_FWD_DEFINED__
-typedef interface ITDirectoryObject ITDirectoryObject;
+typedef struct ITDirectoryObject ITDirectoryObject;
 #endif
 
 #ifndef __IEnumDirectoryObject_FWD_DEFINED__
 #define __IEnumDirectoryObject_FWD_DEFINED__
-typedef interface IEnumDirectoryObject IEnumDirectoryObject;
+typedef struct IEnumDirectoryObject IEnumDirectoryObject;
 #endif
 
 #ifndef __ITILSConfig_FWD_DEFINED__
 #define __ITILSConfig_FWD_DEFINED__
-typedef interface ITILSConfig ITILSConfig;
+typedef struct ITILSConfig ITILSConfig;
 #endif
 
 #ifndef __ITDirectory_FWD_DEFINED__
 #define __ITDirectory_FWD_DEFINED__
-typedef interface ITDirectory ITDirectory;
+typedef struct ITDirectory ITDirectory;
 #endif
 
 #ifndef __IEnumDirectory_FWD_DEFINED__
 #define __IEnumDirectory_FWD_DEFINED__
-typedef interface IEnumDirectory IEnumDirectory;
+typedef struct IEnumDirectory IEnumDirectory;
 #endif
 
 #ifndef __ITRendezvous_FWD_DEFINED__
 #define __ITRendezvous_FWD_DEFINED__
-typedef interface ITRendezvous ITRendezvous;
+typedef struct ITRendezvous ITRendezvous;
 #endif
 
 #ifndef __ITRendezvous_FWD_DEFINED__
 #define __ITRendezvous_FWD_DEFINED__
-typedef interface ITRendezvous ITRendezvous;
+typedef struct ITRendezvous ITRendezvous;
 #endif
 
 #ifndef __ITDirectoryObjectConference_FWD_DEFINED__
 #define __ITDirectoryObjectConference_FWD_DEFINED__
-typedef interface ITDirectoryObjectConference ITDirectoryObjectConference;
+typedef struct ITDirectoryObjectConference ITDirectoryObjectConference;
 #endif
 
 #ifndef __ITDirectoryObjectUser_FWD_DEFINED__
 #define __ITDirectoryObjectUser_FWD_DEFINED__
-typedef interface ITDirectoryObjectUser ITDirectoryObjectUser;
+typedef struct ITDirectoryObjectUser ITDirectoryObjectUser;
 #endif
 
 #ifndef __ITDirectoryObject_FWD_DEFINED__
 #define __ITDirectoryObject_FWD_DEFINED__
-typedef interface ITDirectoryObject ITDirectoryObject;
+typedef struct ITDirectoryObject ITDirectoryObject;
 #endif
 
 #ifndef __ITILSConfig_FWD_DEFINED__
 #define __ITILSConfig_FWD_DEFINED__
-typedef interface ITILSConfig ITILSConfig;
+typedef struct ITILSConfig ITILSConfig;
 #endif
 
 #ifndef __ITDirectory_FWD_DEFINED__
 #define __ITDirectory_FWD_DEFINED__
-typedef interface ITDirectory ITDirectory;
+typedef struct ITDirectory ITDirectory;
 #endif
 
 #ifndef __Rendezvous_FWD_DEFINED__
@@ -186,7 +186,7 @@
       HRESULT (WINAPI *put_StopTime)(ITDirectoryObjectConference *This,DATE Date);
     END_INTERFACE
   } ITDirectoryObjectConferenceVtbl;
-  interface ITDirectoryObjectConference {
+  struct ITDirectoryObjectConference {
     CONST_VTBL struct ITDirectoryObjectConferenceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -269,7 +269,7 @@
       HRESULT (WINAPI *put_IPPhonePrimary)(ITDirectoryObjectUser *This,BSTR pName);
     END_INTERFACE
   } ITDirectoryObjectUserVtbl;
-  interface ITDirectoryObjectUser {
+  struct ITDirectoryObjectUser {
     CONST_VTBL struct ITDirectoryObjectUserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -313,7 +313,7 @@
       HRESULT (WINAPI *Clone)(IEnumDialableAddrs *This,IEnumDialableAddrs **ppEnum);
     END_INTERFACE
   } IEnumDialableAddrsVtbl;
-  interface IEnumDialableAddrs {
+  struct IEnumDialableAddrs {
     CONST_VTBL struct IEnumDialableAddrsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -369,7 +369,7 @@
       HRESULT (WINAPI *put_SecurityDescriptor)(ITDirectoryObject *This,IDispatch *pSecDes);
     END_INTERFACE
   } ITDirectoryObjectVtbl;
-  interface ITDirectoryObject {
+  struct ITDirectoryObject {
     CONST_VTBL struct ITDirectoryObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -428,7 +428,7 @@
       HRESULT (WINAPI *Clone)(IEnumDirectoryObject *This,IEnumDirectoryObject **ppEnum);
     END_INTERFACE
   } IEnumDirectoryObjectVtbl;
-  interface IEnumDirectoryObject {
+  struct IEnumDirectoryObject {
     CONST_VTBL struct IEnumDirectoryObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -474,7 +474,7 @@
       HRESULT (WINAPI *put_Port)(ITILSConfig *This,long Port);
     END_INTERFACE
   } ITILSConfigVtbl;
-  interface ITILSConfig {
+  struct ITILSConfig {
     CONST_VTBL struct ITILSConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -542,7 +542,7 @@
       HRESULT (WINAPI *EnumerateDirectoryObjects)(ITDirectory *This,DIRECTORY_OBJECT_TYPE DirectoryObjectType,BSTR pName,IEnumDirectoryObject **ppEnumObject);
     END_INTERFACE
   } ITDirectoryVtbl;
-  interface ITDirectory {
+  struct ITDirectory {
     CONST_VTBL struct ITDirectoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -622,7 +622,7 @@
       HRESULT (WINAPI *Clone)(IEnumDirectory *This,IEnumDirectory **ppEnum);
     END_INTERFACE
   } IEnumDirectoryVtbl;
-  interface IEnumDirectory {
+  struct IEnumDirectory {
     CONST_VTBL struct IEnumDirectoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -672,7 +672,7 @@
       HRESULT (WINAPI *CreateDirectoryObject)(ITRendezvous *This,DIRECTORY_OBJECT_TYPE DirectoryObjectType,BSTR pName,ITDirectoryObject **ppDirectoryObject);
     END_INTERFACE
   } ITRendezvousVtbl;
-  interface ITRendezvous {
+  struct ITRendezvous {
     CONST_VTBL struct ITRendezvousVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/rrascfg.h b/mingw-w64-headers/include/rrascfg.h
index be3b0a0..ea422cb 100755
--- a/mingw-w64-headers/include/rrascfg.h
+++ b/mingw-w64-headers/include/rrascfg.h
@@ -24,22 +24,22 @@
 
 #ifndef __IRouterProtocolConfig_FWD_DEFINED__
 #define __IRouterProtocolConfig_FWD_DEFINED__
-typedef interface IRouterProtocolConfig IRouterProtocolConfig;
+typedef struct IRouterProtocolConfig IRouterProtocolConfig;
 #endif
 
 #ifndef __IAuthenticationProviderConfig_FWD_DEFINED__
 #define __IAuthenticationProviderConfig_FWD_DEFINED__
-typedef interface IAuthenticationProviderConfig IAuthenticationProviderConfig;
+typedef struct IAuthenticationProviderConfig IAuthenticationProviderConfig;
 #endif
 
 #ifndef __IAccountingProviderConfig_FWD_DEFINED__
 #define __IAccountingProviderConfig_FWD_DEFINED__
-typedef interface IAccountingProviderConfig IAccountingProviderConfig;
+typedef struct IAccountingProviderConfig IAccountingProviderConfig;
 #endif
 
 #ifndef __IEAPProviderConfig_FWD_DEFINED__
 #define __IEAPProviderConfig_FWD_DEFINED__
-typedef interface IEAPProviderConfig IEAPProviderConfig;
+typedef struct IEAPProviderConfig IEAPProviderConfig;
 #endif
 
 #include "basetsd.h"
@@ -77,7 +77,7 @@
       HRESULT (WINAPI *RemoveProtocol)(IRouterProtocolConfig *This,LPCOLESTR pszMachineName,DWORD dwTransportId,DWORD dwProtocolId,HWND hWnd,DWORD dwFlags,IUnknown *pRouter,ULONG_PTR uReserved1);
     END_INTERFACE
   } IRouterProtocolConfigVtbl;
-  interface IRouterProtocolConfig {
+  struct IRouterProtocolConfig {
     CONST_VTBL struct IRouterProtocolConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -124,7 +124,7 @@
       HRESULT (WINAPI *Deactivate)(IAuthenticationProviderConfig *This,ULONG_PTR uConnectionParam,ULONG_PTR uReserved1,ULONG_PTR uReserved2);
     END_INTERFACE
   } IAuthenticationProviderConfigVtbl;
-  interface IAuthenticationProviderConfig {
+  struct IAuthenticationProviderConfig {
     CONST_VTBL struct IAuthenticationProviderConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -179,7 +179,7 @@
       HRESULT (WINAPI *Deactivate)(IAccountingProviderConfig *This,ULONG_PTR uConnectionParam,ULONG_PTR uReserved1,ULONG_PTR uReserved2);
     END_INTERFACE
   } IAccountingProviderConfigVtbl;
-  interface IAccountingProviderConfig {
+  struct IAccountingProviderConfig {
     CONST_VTBL struct IAccountingProviderConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -234,7 +234,7 @@
       HRESULT (WINAPI *RouterInvokeCredentialsUI)(IEAPProviderConfig *This,DWORD dwEapTypeId,ULONG_PTR uConnectionParam,HWND hwndParent,DWORD dwFlags,BYTE *pConnectionDataIn,DWORD dwSizeOfConnectionDataIn,BYTE *pUserDataIn,DWORD dwSizeOfUserDataIn,BYTE **ppUserDataOut,DWORD *pdwSizeOfUserDataOut);
     END_INTERFACE
   } IEAPProviderConfigVtbl;
-  interface IEAPProviderConfig {
+  struct IEAPProviderConfig {
     CONST_VTBL struct IEAPProviderConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/rtccore.h b/mingw-w64-headers/include/rtccore.h
index f0184f6..f032ad0 100755
--- a/mingw-w64-headers/include/rtccore.h
+++ b/mingw-w64-headers/include/rtccore.h
@@ -24,597 +24,597 @@
 
 #ifndef __IRTCClient_FWD_DEFINED__
 #define __IRTCClient_FWD_DEFINED__
-typedef interface IRTCClient IRTCClient;
+typedef struct IRTCClient IRTCClient;
 #endif
 
 #ifndef __IRTCClient2_FWD_DEFINED__
 #define __IRTCClient2_FWD_DEFINED__
-typedef interface IRTCClient2 IRTCClient2;
+typedef struct IRTCClient2 IRTCClient2;
 #endif
 
 #ifndef __IRTCClientPresence_FWD_DEFINED__
 #define __IRTCClientPresence_FWD_DEFINED__
-typedef interface IRTCClientPresence IRTCClientPresence;
+typedef struct IRTCClientPresence IRTCClientPresence;
 #endif
 
 #ifndef __IRTCClientPresence2_FWD_DEFINED__
 #define __IRTCClientPresence2_FWD_DEFINED__
-typedef interface IRTCClientPresence2 IRTCClientPresence2;
+typedef struct IRTCClientPresence2 IRTCClientPresence2;
 #endif
 
 #ifndef __IRTCClientProvisioning_FWD_DEFINED__
 #define __IRTCClientProvisioning_FWD_DEFINED__
-typedef interface IRTCClientProvisioning IRTCClientProvisioning;
+typedef struct IRTCClientProvisioning IRTCClientProvisioning;
 #endif
 
 #ifndef __IRTCClientProvisioning2_FWD_DEFINED__
 #define __IRTCClientProvisioning2_FWD_DEFINED__
-typedef interface IRTCClientProvisioning2 IRTCClientProvisioning2;
+typedef struct IRTCClientProvisioning2 IRTCClientProvisioning2;
 #endif
 
 #ifndef __IRTCProfile_FWD_DEFINED__
 #define __IRTCProfile_FWD_DEFINED__
-typedef interface IRTCProfile IRTCProfile;
+typedef struct IRTCProfile IRTCProfile;
 #endif
 
 #ifndef __IRTCProfile2_FWD_DEFINED__
 #define __IRTCProfile2_FWD_DEFINED__
-typedef interface IRTCProfile2 IRTCProfile2;
+typedef struct IRTCProfile2 IRTCProfile2;
 #endif
 
 #ifndef __IRTCSession_FWD_DEFINED__
 #define __IRTCSession_FWD_DEFINED__
-typedef interface IRTCSession IRTCSession;
+typedef struct IRTCSession IRTCSession;
 #endif
 
 #ifndef __IRTCSession2_FWD_DEFINED__
 #define __IRTCSession2_FWD_DEFINED__
-typedef interface IRTCSession2 IRTCSession2;
+typedef struct IRTCSession2 IRTCSession2;
 #endif
 
 #ifndef __IRTCSessionCallControl_FWD_DEFINED__
 #define __IRTCSessionCallControl_FWD_DEFINED__
-typedef interface IRTCSessionCallControl IRTCSessionCallControl;
+typedef struct IRTCSessionCallControl IRTCSessionCallControl;
 #endif
 
 #ifndef __IRTCParticipant_FWD_DEFINED__
 #define __IRTCParticipant_FWD_DEFINED__
-typedef interface IRTCParticipant IRTCParticipant;
+typedef struct IRTCParticipant IRTCParticipant;
 #endif
 
 #ifndef __IRTCRoamingEvent_FWD_DEFINED__
 #define __IRTCRoamingEvent_FWD_DEFINED__
-typedef interface IRTCRoamingEvent IRTCRoamingEvent;
+typedef struct IRTCRoamingEvent IRTCRoamingEvent;
 #endif
 
 #ifndef __IRTCProfileEvent_FWD_DEFINED__
 #define __IRTCProfileEvent_FWD_DEFINED__
-typedef interface IRTCProfileEvent IRTCProfileEvent;
+typedef struct IRTCProfileEvent IRTCProfileEvent;
 #endif
 
 #ifndef __IRTCProfileEvent2_FWD_DEFINED__
 #define __IRTCProfileEvent2_FWD_DEFINED__
-typedef interface IRTCProfileEvent2 IRTCProfileEvent2;
+typedef struct IRTCProfileEvent2 IRTCProfileEvent2;
 #endif
 
 #ifndef __IRTCClientEvent_FWD_DEFINED__
 #define __IRTCClientEvent_FWD_DEFINED__
-typedef interface IRTCClientEvent IRTCClientEvent;
+typedef struct IRTCClientEvent IRTCClientEvent;
 #endif
 
 #ifndef __IRTCRegistrationStateChangeEvent_FWD_DEFINED__
 #define __IRTCRegistrationStateChangeEvent_FWD_DEFINED__
-typedef interface IRTCRegistrationStateChangeEvent IRTCRegistrationStateChangeEvent;
+typedef struct IRTCRegistrationStateChangeEvent IRTCRegistrationStateChangeEvent;
 #endif
 
 #ifndef __IRTCSessionStateChangeEvent_FWD_DEFINED__
 #define __IRTCSessionStateChangeEvent_FWD_DEFINED__
-typedef interface IRTCSessionStateChangeEvent IRTCSessionStateChangeEvent;
+typedef struct IRTCSessionStateChangeEvent IRTCSessionStateChangeEvent;
 #endif
 
 #ifndef __IRTCSessionStateChangeEvent2_FWD_DEFINED__
 #define __IRTCSessionStateChangeEvent2_FWD_DEFINED__
-typedef interface IRTCSessionStateChangeEvent2 IRTCSessionStateChangeEvent2;
+typedef struct IRTCSessionStateChangeEvent2 IRTCSessionStateChangeEvent2;
 #endif
 
 #ifndef __IRTCSessionOperationCompleteEvent_FWD_DEFINED__
 #define __IRTCSessionOperationCompleteEvent_FWD_DEFINED__
-typedef interface IRTCSessionOperationCompleteEvent IRTCSessionOperationCompleteEvent;
+typedef struct IRTCSessionOperationCompleteEvent IRTCSessionOperationCompleteEvent;
 #endif
 
 #ifndef __IRTCSessionOperationCompleteEvent2_FWD_DEFINED__
 #define __IRTCSessionOperationCompleteEvent2_FWD_DEFINED__
-typedef interface IRTCSessionOperationCompleteEvent2 IRTCSessionOperationCompleteEvent2;
+typedef struct IRTCSessionOperationCompleteEvent2 IRTCSessionOperationCompleteEvent2;
 #endif
 
 #ifndef __IRTCParticipantStateChangeEvent_FWD_DEFINED__
 #define __IRTCParticipantStateChangeEvent_FWD_DEFINED__
-typedef interface IRTCParticipantStateChangeEvent IRTCParticipantStateChangeEvent;
+typedef struct IRTCParticipantStateChangeEvent IRTCParticipantStateChangeEvent;
 #endif
 
 #ifndef __IRTCMediaEvent_FWD_DEFINED__
 #define __IRTCMediaEvent_FWD_DEFINED__
-typedef interface IRTCMediaEvent IRTCMediaEvent;
+typedef struct IRTCMediaEvent IRTCMediaEvent;
 #endif
 
 #ifndef __IRTCIntensityEvent_FWD_DEFINED__
 #define __IRTCIntensityEvent_FWD_DEFINED__
-typedef interface IRTCIntensityEvent IRTCIntensityEvent;
+typedef struct IRTCIntensityEvent IRTCIntensityEvent;
 #endif
 
 #ifndef __IRTCMessagingEvent_FWD_DEFINED__
 #define __IRTCMessagingEvent_FWD_DEFINED__
-typedef interface IRTCMessagingEvent IRTCMessagingEvent;
+typedef struct IRTCMessagingEvent IRTCMessagingEvent;
 #endif
 
 #ifndef __IRTCBuddyEvent_FWD_DEFINED__
 #define __IRTCBuddyEvent_FWD_DEFINED__
-typedef interface IRTCBuddyEvent IRTCBuddyEvent;
+typedef struct IRTCBuddyEvent IRTCBuddyEvent;
 #endif
 
 #ifndef __IRTCBuddyEvent2_FWD_DEFINED__
 #define __IRTCBuddyEvent2_FWD_DEFINED__
-typedef interface IRTCBuddyEvent2 IRTCBuddyEvent2;
+typedef struct IRTCBuddyEvent2 IRTCBuddyEvent2;
 #endif
 
 #ifndef __IRTCWatcherEvent_FWD_DEFINED__
 #define __IRTCWatcherEvent_FWD_DEFINED__
-typedef interface IRTCWatcherEvent IRTCWatcherEvent;
+typedef struct IRTCWatcherEvent IRTCWatcherEvent;
 #endif
 
 #ifndef __IRTCWatcherEvent2_FWD_DEFINED__
 #define __IRTCWatcherEvent2_FWD_DEFINED__
-typedef interface IRTCWatcherEvent2 IRTCWatcherEvent2;
+typedef struct IRTCWatcherEvent2 IRTCWatcherEvent2;
 #endif
 
 #ifndef __IRTCBuddyGroupEvent_FWD_DEFINED__
 #define __IRTCBuddyGroupEvent_FWD_DEFINED__
-typedef interface IRTCBuddyGroupEvent IRTCBuddyGroupEvent;
+typedef struct IRTCBuddyGroupEvent IRTCBuddyGroupEvent;
 #endif
 
 #ifndef __IRTCInfoEvent_FWD_DEFINED__
 #define __IRTCInfoEvent_FWD_DEFINED__
-typedef interface IRTCInfoEvent IRTCInfoEvent;
+typedef struct IRTCInfoEvent IRTCInfoEvent;
 #endif
 
 #ifndef __IRTCMediaRequestEvent_FWD_DEFINED__
 #define __IRTCMediaRequestEvent_FWD_DEFINED__
-typedef interface IRTCMediaRequestEvent IRTCMediaRequestEvent;
+typedef struct IRTCMediaRequestEvent IRTCMediaRequestEvent;
 #endif
 
 #ifndef __IRTCReInviteEvent_FWD_DEFINED__
 #define __IRTCReInviteEvent_FWD_DEFINED__
-typedef interface IRTCReInviteEvent IRTCReInviteEvent;
+typedef struct IRTCReInviteEvent IRTCReInviteEvent;
 #endif
 
 #ifndef __IRTCPresencePropertyEvent_FWD_DEFINED__
 #define __IRTCPresencePropertyEvent_FWD_DEFINED__
-typedef interface IRTCPresencePropertyEvent IRTCPresencePropertyEvent;
+typedef struct IRTCPresencePropertyEvent IRTCPresencePropertyEvent;
 #endif
 
 #ifndef __IRTCPresenceDataEvent_FWD_DEFINED__
 #define __IRTCPresenceDataEvent_FWD_DEFINED__
-typedef interface IRTCPresenceDataEvent IRTCPresenceDataEvent;
+typedef struct IRTCPresenceDataEvent IRTCPresenceDataEvent;
 #endif
 
 #ifndef __IRTCPresenceStatusEvent_FWD_DEFINED__
 #define __IRTCPresenceStatusEvent_FWD_DEFINED__
-typedef interface IRTCPresenceStatusEvent IRTCPresenceStatusEvent;
+typedef struct IRTCPresenceStatusEvent IRTCPresenceStatusEvent;
 #endif
 
 #ifndef __IRTCCollection_FWD_DEFINED__
 #define __IRTCCollection_FWD_DEFINED__
-typedef interface IRTCCollection IRTCCollection;
+typedef struct IRTCCollection IRTCCollection;
 #endif
 
 #ifndef __IRTCEnumParticipants_FWD_DEFINED__
 #define __IRTCEnumParticipants_FWD_DEFINED__
-typedef interface IRTCEnumParticipants IRTCEnumParticipants;
+typedef struct IRTCEnumParticipants IRTCEnumParticipants;
 #endif
 
 #ifndef __IRTCEnumProfiles_FWD_DEFINED__
 #define __IRTCEnumProfiles_FWD_DEFINED__
-typedef interface IRTCEnumProfiles IRTCEnumProfiles;
+typedef struct IRTCEnumProfiles IRTCEnumProfiles;
 #endif
 
 #ifndef __IRTCEnumBuddies_FWD_DEFINED__
 #define __IRTCEnumBuddies_FWD_DEFINED__
-typedef interface IRTCEnumBuddies IRTCEnumBuddies;
+typedef struct IRTCEnumBuddies IRTCEnumBuddies;
 #endif
 
 #ifndef __IRTCEnumWatchers_FWD_DEFINED__
 #define __IRTCEnumWatchers_FWD_DEFINED__
-typedef interface IRTCEnumWatchers IRTCEnumWatchers;
+typedef struct IRTCEnumWatchers IRTCEnumWatchers;
 #endif
 
 #ifndef __IRTCEnumGroups_FWD_DEFINED__
 #define __IRTCEnumGroups_FWD_DEFINED__
-typedef interface IRTCEnumGroups IRTCEnumGroups;
+typedef struct IRTCEnumGroups IRTCEnumGroups;
 #endif
 
 #ifndef __IRTCPresenceContact_FWD_DEFINED__
 #define __IRTCPresenceContact_FWD_DEFINED__
-typedef interface IRTCPresenceContact IRTCPresenceContact;
+typedef struct IRTCPresenceContact IRTCPresenceContact;
 #endif
 
 #ifndef __IRTCBuddy_FWD_DEFINED__
 #define __IRTCBuddy_FWD_DEFINED__
-typedef interface IRTCBuddy IRTCBuddy;
+typedef struct IRTCBuddy IRTCBuddy;
 #endif
 
 #ifndef __IRTCBuddy2_FWD_DEFINED__
 #define __IRTCBuddy2_FWD_DEFINED__
-typedef interface IRTCBuddy2 IRTCBuddy2;
+typedef struct IRTCBuddy2 IRTCBuddy2;
 #endif
 
 #ifndef __IRTCWatcher_FWD_DEFINED__
 #define __IRTCWatcher_FWD_DEFINED__
-typedef interface IRTCWatcher IRTCWatcher;
+typedef struct IRTCWatcher IRTCWatcher;
 #endif
 
 #ifndef __IRTCWatcher2_FWD_DEFINED__
 #define __IRTCWatcher2_FWD_DEFINED__
-typedef interface IRTCWatcher2 IRTCWatcher2;
+typedef struct IRTCWatcher2 IRTCWatcher2;
 #endif
 
 #ifndef __IRTCBuddyGroup_FWD_DEFINED__
 #define __IRTCBuddyGroup_FWD_DEFINED__
-typedef interface IRTCBuddyGroup IRTCBuddyGroup;
+typedef struct IRTCBuddyGroup IRTCBuddyGroup;
 #endif
 
 #ifndef __IRTCEventNotification_FWD_DEFINED__
 #define __IRTCEventNotification_FWD_DEFINED__
-typedef interface IRTCEventNotification IRTCEventNotification;
+typedef struct IRTCEventNotification IRTCEventNotification;
 #endif
 
 #ifndef __IRTCDispatchEventNotification_FWD_DEFINED__
 #define __IRTCDispatchEventNotification_FWD_DEFINED__
-typedef interface IRTCDispatchEventNotification IRTCDispatchEventNotification;
+typedef struct IRTCDispatchEventNotification IRTCDispatchEventNotification;
 #endif
 
 #ifndef __IRTCPortManager_FWD_DEFINED__
 #define __IRTCPortManager_FWD_DEFINED__
-typedef interface IRTCPortManager IRTCPortManager;
+typedef struct IRTCPortManager IRTCPortManager;
 #endif
 
 #ifndef __IRTCSessionPortManagement_FWD_DEFINED__
 #define __IRTCSessionPortManagement_FWD_DEFINED__
-typedef interface IRTCSessionPortManagement IRTCSessionPortManagement;
+typedef struct IRTCSessionPortManagement IRTCSessionPortManagement;
 #endif
 
 #ifndef __IRTCClientPortManagement_FWD_DEFINED__
 #define __IRTCClientPortManagement_FWD_DEFINED__
-typedef interface IRTCClientPortManagement IRTCClientPortManagement;
+typedef struct IRTCClientPortManagement IRTCClientPortManagement;
 #endif
 
 #ifndef __IRTCUserSearch_FWD_DEFINED__
 #define __IRTCUserSearch_FWD_DEFINED__
-typedef interface IRTCUserSearch IRTCUserSearch;
+typedef struct IRTCUserSearch IRTCUserSearch;
 #endif
 
 #ifndef __IRTCUserSearchQuery_FWD_DEFINED__
 #define __IRTCUserSearchQuery_FWD_DEFINED__
-typedef interface IRTCUserSearchQuery IRTCUserSearchQuery;
+typedef struct IRTCUserSearchQuery IRTCUserSearchQuery;
 #endif
 
 #ifndef __IRTCUserSearchResult_FWD_DEFINED__
 #define __IRTCUserSearchResult_FWD_DEFINED__
-typedef interface IRTCUserSearchResult IRTCUserSearchResult;
+typedef struct IRTCUserSearchResult IRTCUserSearchResult;
 #endif
 
 #ifndef __IRTCEnumUserSearchResults_FWD_DEFINED__
 #define __IRTCEnumUserSearchResults_FWD_DEFINED__
-typedef interface IRTCEnumUserSearchResults IRTCEnumUserSearchResults;
+typedef struct IRTCEnumUserSearchResults IRTCEnumUserSearchResults;
 #endif
 
 #ifndef __IRTCUserSearchResultsEvent_FWD_DEFINED__
 #define __IRTCUserSearchResultsEvent_FWD_DEFINED__
-typedef interface IRTCUserSearchResultsEvent IRTCUserSearchResultsEvent;
+typedef struct IRTCUserSearchResultsEvent IRTCUserSearchResultsEvent;
 #endif
 
 #ifndef __IRTCSessionReferStatusEvent_FWD_DEFINED__
 #define __IRTCSessionReferStatusEvent_FWD_DEFINED__
-typedef interface IRTCSessionReferStatusEvent IRTCSessionReferStatusEvent;
+typedef struct IRTCSessionReferStatusEvent IRTCSessionReferStatusEvent;
 #endif
 
 #ifndef __IRTCSessionReferredEvent_FWD_DEFINED__
 #define __IRTCSessionReferredEvent_FWD_DEFINED__
-typedef interface IRTCSessionReferredEvent IRTCSessionReferredEvent;
+typedef struct IRTCSessionReferredEvent IRTCSessionReferredEvent;
 #endif
 
 #ifndef __IRTCSessionDescriptionManager_FWD_DEFINED__
 #define __IRTCSessionDescriptionManager_FWD_DEFINED__
-typedef interface IRTCSessionDescriptionManager IRTCSessionDescriptionManager;
+typedef struct IRTCSessionDescriptionManager IRTCSessionDescriptionManager;
 #endif
 
 #ifndef __IRTCEnumPresenceDevices_FWD_DEFINED__
 #define __IRTCEnumPresenceDevices_FWD_DEFINED__
-typedef interface IRTCEnumPresenceDevices IRTCEnumPresenceDevices;
+typedef struct IRTCEnumPresenceDevices IRTCEnumPresenceDevices;
 #endif
 
 #ifndef __IRTCPresenceDevice_FWD_DEFINED__
 #define __IRTCPresenceDevice_FWD_DEFINED__
-typedef interface IRTCPresenceDevice IRTCPresenceDevice;
+typedef struct IRTCPresenceDevice IRTCPresenceDevice;
 #endif
 
 #ifndef __IRTCProfile_FWD_DEFINED__
 #define __IRTCProfile_FWD_DEFINED__
-typedef interface IRTCProfile IRTCProfile;
+typedef struct IRTCProfile IRTCProfile;
 #endif
 
 #ifndef __IRTCProfile2_FWD_DEFINED__
 #define __IRTCProfile2_FWD_DEFINED__
-typedef interface IRTCProfile2 IRTCProfile2;
+typedef struct IRTCProfile2 IRTCProfile2;
 #endif
 
 #ifndef __IRTCEnumProfiles_FWD_DEFINED__
 #define __IRTCEnumProfiles_FWD_DEFINED__
-typedef interface IRTCEnumProfiles IRTCEnumProfiles;
+typedef struct IRTCEnumProfiles IRTCEnumProfiles;
 #endif
 
 #ifndef __IRTCSession_FWD_DEFINED__
 #define __IRTCSession_FWD_DEFINED__
-typedef interface IRTCSession IRTCSession;
+typedef struct IRTCSession IRTCSession;
 #endif
 
 #ifndef __IRTCSession2_FWD_DEFINED__
 #define __IRTCSession2_FWD_DEFINED__
-typedef interface IRTCSession2 IRTCSession2;
+typedef struct IRTCSession2 IRTCSession2;
 #endif
 
 #ifndef __IRTCSessionCallControl_FWD_DEFINED__
 #define __IRTCSessionCallControl_FWD_DEFINED__
-typedef interface IRTCSessionCallControl IRTCSessionCallControl;
+typedef struct IRTCSessionCallControl IRTCSessionCallControl;
 #endif
 
 #ifndef __IRTCParticipant_FWD_DEFINED__
 #define __IRTCParticipant_FWD_DEFINED__
-typedef interface IRTCParticipant IRTCParticipant;
+typedef struct IRTCParticipant IRTCParticipant;
 #endif
 
 #ifndef __IRTCEnumParticipants_FWD_DEFINED__
 #define __IRTCEnumParticipants_FWD_DEFINED__
-typedef interface IRTCEnumParticipants IRTCEnumParticipants;
+typedef struct IRTCEnumParticipants IRTCEnumParticipants;
 #endif
 
 #ifndef __IRTCCollection_FWD_DEFINED__
 #define __IRTCCollection_FWD_DEFINED__
-typedef interface IRTCCollection IRTCCollection;
+typedef struct IRTCCollection IRTCCollection;
 #endif
 
 #ifndef __IRTCPresenceContact_FWD_DEFINED__
 #define __IRTCPresenceContact_FWD_DEFINED__
-typedef interface IRTCPresenceContact IRTCPresenceContact;
+typedef struct IRTCPresenceContact IRTCPresenceContact;
 #endif
 
 #ifndef __IRTCBuddy_FWD_DEFINED__
 #define __IRTCBuddy_FWD_DEFINED__
-typedef interface IRTCBuddy IRTCBuddy;
+typedef struct IRTCBuddy IRTCBuddy;
 #endif
 
 #ifndef __IRTCBuddy2_FWD_DEFINED__
 #define __IRTCBuddy2_FWD_DEFINED__
-typedef interface IRTCBuddy2 IRTCBuddy2;
+typedef struct IRTCBuddy2 IRTCBuddy2;
 #endif
 
 #ifndef __IRTCEnumBuddies_FWD_DEFINED__
 #define __IRTCEnumBuddies_FWD_DEFINED__
-typedef interface IRTCEnumBuddies IRTCEnumBuddies;
+typedef struct IRTCEnumBuddies IRTCEnumBuddies;
 #endif
 
 #ifndef __IRTCWatcher_FWD_DEFINED__
 #define __IRTCWatcher_FWD_DEFINED__
-typedef interface IRTCWatcher IRTCWatcher;
+typedef struct IRTCWatcher IRTCWatcher;
 #endif
 
 #ifndef __IRTCWatcher2_FWD_DEFINED__
 #define __IRTCWatcher2_FWD_DEFINED__
-typedef interface IRTCWatcher2 IRTCWatcher2;
+typedef struct IRTCWatcher2 IRTCWatcher2;
 #endif
 
 #ifndef __IRTCEnumWatchers_FWD_DEFINED__
 #define __IRTCEnumWatchers_FWD_DEFINED__
-typedef interface IRTCEnumWatchers IRTCEnumWatchers;
+typedef struct IRTCEnumWatchers IRTCEnumWatchers;
 #endif
 
 #ifndef __IRTCBuddyGroup_FWD_DEFINED__
 #define __IRTCBuddyGroup_FWD_DEFINED__
-typedef interface IRTCBuddyGroup IRTCBuddyGroup;
+typedef struct IRTCBuddyGroup IRTCBuddyGroup;
 #endif
 
 #ifndef __IRTCEnumGroups_FWD_DEFINED__
 #define __IRTCEnumGroups_FWD_DEFINED__
-typedef interface IRTCEnumGroups IRTCEnumGroups;
+typedef struct IRTCEnumGroups IRTCEnumGroups;
 #endif
 
 #ifndef __IRTCUserSearchQuery_FWD_DEFINED__
 #define __IRTCUserSearchQuery_FWD_DEFINED__
-typedef interface IRTCUserSearchQuery IRTCUserSearchQuery;
+typedef struct IRTCUserSearchQuery IRTCUserSearchQuery;
 #endif
 
 #ifndef __IRTCUserSearchResult_FWD_DEFINED__
 #define __IRTCUserSearchResult_FWD_DEFINED__
-typedef interface IRTCUserSearchResult IRTCUserSearchResult;
+typedef struct IRTCUserSearchResult IRTCUserSearchResult;
 #endif
 
 #ifndef __IRTCEnumUserSearchResults_FWD_DEFINED__
 #define __IRTCEnumUserSearchResults_FWD_DEFINED__
-typedef interface IRTCEnumUserSearchResults IRTCEnumUserSearchResults;
+typedef struct IRTCEnumUserSearchResults IRTCEnumUserSearchResults;
 #endif
 
 #ifndef __IRTCEventNotification_FWD_DEFINED__
 #define __IRTCEventNotification_FWD_DEFINED__
-typedef interface IRTCEventNotification IRTCEventNotification;
+typedef struct IRTCEventNotification IRTCEventNotification;
 #endif
 
 #ifndef __IRTCClientEvent_FWD_DEFINED__
 #define __IRTCClientEvent_FWD_DEFINED__
-typedef interface IRTCClientEvent IRTCClientEvent;
+typedef struct IRTCClientEvent IRTCClientEvent;
 #endif
 
 #ifndef __IRTCRegistrationStateChangeEvent_FWD_DEFINED__
 #define __IRTCRegistrationStateChangeEvent_FWD_DEFINED__
-typedef interface IRTCRegistrationStateChangeEvent IRTCRegistrationStateChangeEvent;
+typedef struct IRTCRegistrationStateChangeEvent IRTCRegistrationStateChangeEvent;
 #endif
 
 #ifndef __IRTCSessionStateChangeEvent_FWD_DEFINED__
 #define __IRTCSessionStateChangeEvent_FWD_DEFINED__
-typedef interface IRTCSessionStateChangeEvent IRTCSessionStateChangeEvent;
+typedef struct IRTCSessionStateChangeEvent IRTCSessionStateChangeEvent;
 #endif
 
 #ifndef __IRTCSessionStateChangeEvent2_FWD_DEFINED__
 #define __IRTCSessionStateChangeEvent2_FWD_DEFINED__
-typedef interface IRTCSessionStateChangeEvent2 IRTCSessionStateChangeEvent2;
+typedef struct IRTCSessionStateChangeEvent2 IRTCSessionStateChangeEvent2;
 #endif
 
 #ifndef __IRTCSessionOperationCompleteEvent_FWD_DEFINED__
 #define __IRTCSessionOperationCompleteEvent_FWD_DEFINED__
-typedef interface IRTCSessionOperationCompleteEvent IRTCSessionOperationCompleteEvent;
+typedef struct IRTCSessionOperationCompleteEvent IRTCSessionOperationCompleteEvent;
 #endif
 
 #ifndef __IRTCSessionOperationCompleteEvent2_FWD_DEFINED__
 #define __IRTCSessionOperationCompleteEvent2_FWD_DEFINED__
-typedef interface IRTCSessionOperationCompleteEvent2 IRTCSessionOperationCompleteEvent2;
+typedef struct IRTCSessionOperationCompleteEvent2 IRTCSessionOperationCompleteEvent2;
 #endif
 
 #ifndef __IRTCParticipantStateChangeEvent_FWD_DEFINED__
 #define __IRTCParticipantStateChangeEvent_FWD_DEFINED__
-typedef interface IRTCParticipantStateChangeEvent IRTCParticipantStateChangeEvent;
+typedef struct IRTCParticipantStateChangeEvent IRTCParticipantStateChangeEvent;
 #endif
 
 #ifndef __IRTCMediaEvent_FWD_DEFINED__
 #define __IRTCMediaEvent_FWD_DEFINED__
-typedef interface IRTCMediaEvent IRTCMediaEvent;
+typedef struct IRTCMediaEvent IRTCMediaEvent;
 #endif
 
 #ifndef __IRTCIntensityEvent_FWD_DEFINED__
 #define __IRTCIntensityEvent_FWD_DEFINED__
-typedef interface IRTCIntensityEvent IRTCIntensityEvent;
+typedef struct IRTCIntensityEvent IRTCIntensityEvent;
 #endif
 
 #ifndef __IRTCMessagingEvent_FWD_DEFINED__
 #define __IRTCMessagingEvent_FWD_DEFINED__
-typedef interface IRTCMessagingEvent IRTCMessagingEvent;
+typedef struct IRTCMessagingEvent IRTCMessagingEvent;
 #endif
 
 #ifndef __IRTCBuddyEvent_FWD_DEFINED__
 #define __IRTCBuddyEvent_FWD_DEFINED__
-typedef interface IRTCBuddyEvent IRTCBuddyEvent;
+typedef struct IRTCBuddyEvent IRTCBuddyEvent;
 #endif
 
 #ifndef __IRTCBuddyEvent2_FWD_DEFINED__
 #define __IRTCBuddyEvent2_FWD_DEFINED__
-typedef interface IRTCBuddyEvent2 IRTCBuddyEvent2;
+typedef struct IRTCBuddyEvent2 IRTCBuddyEvent2;
 #endif
 
 #ifndef __IRTCWatcherEvent_FWD_DEFINED__
 #define __IRTCWatcherEvent_FWD_DEFINED__
-typedef interface IRTCWatcherEvent IRTCWatcherEvent;
+typedef struct IRTCWatcherEvent IRTCWatcherEvent;
 #endif
 
 #ifndef __IRTCPortManager_FWD_DEFINED__
 #define __IRTCPortManager_FWD_DEFINED__
-typedef interface IRTCPortManager IRTCPortManager;
+typedef struct IRTCPortManager IRTCPortManager;
 #endif
 
 #ifndef __IRTCSessionPortManagement_FWD_DEFINED__
 #define __IRTCSessionPortManagement_FWD_DEFINED__
-typedef interface IRTCSessionPortManagement IRTCSessionPortManagement;
+typedef struct IRTCSessionPortManagement IRTCSessionPortManagement;
 #endif
 
 #ifndef __IRTCClientPortManagement_FWD_DEFINED__
 #define __IRTCClientPortManagement_FWD_DEFINED__
-typedef interface IRTCClientPortManagement IRTCClientPortManagement;
+typedef struct IRTCClientPortManagement IRTCClientPortManagement;
 #endif
 
 #ifndef __IRTCWatcherEvent2_FWD_DEFINED__
 #define __IRTCWatcherEvent2_FWD_DEFINED__
-typedef interface IRTCWatcherEvent2 IRTCWatcherEvent2;
+typedef struct IRTCWatcherEvent2 IRTCWatcherEvent2;
 #endif
 
 #ifndef __IRTCBuddyGroupEvent_FWD_DEFINED__
 #define __IRTCBuddyGroupEvent_FWD_DEFINED__
-typedef interface IRTCBuddyGroupEvent IRTCBuddyGroupEvent;
+typedef struct IRTCBuddyGroupEvent IRTCBuddyGroupEvent;
 #endif
 
 #ifndef __IRTCProfileEvent_FWD_DEFINED__
 #define __IRTCProfileEvent_FWD_DEFINED__
-typedef interface IRTCProfileEvent IRTCProfileEvent;
+typedef struct IRTCProfileEvent IRTCProfileEvent;
 #endif
 
 #ifndef __IRTCProfileEvent2_FWD_DEFINED__
 #define __IRTCProfileEvent2_FWD_DEFINED__
-typedef interface IRTCProfileEvent2 IRTCProfileEvent2;
+typedef struct IRTCProfileEvent2 IRTCProfileEvent2;
 #endif
 
 #ifndef __IRTCUserSearchResultsEvent_FWD_DEFINED__
 #define __IRTCUserSearchResultsEvent_FWD_DEFINED__
-typedef interface IRTCUserSearchResultsEvent IRTCUserSearchResultsEvent;
+typedef struct IRTCUserSearchResultsEvent IRTCUserSearchResultsEvent;
 #endif
 
 #ifndef __IRTCInfoEvent_FWD_DEFINED__
 #define __IRTCInfoEvent_FWD_DEFINED__
-typedef interface IRTCInfoEvent IRTCInfoEvent;
+typedef struct IRTCInfoEvent IRTCInfoEvent;
 #endif
 
 #ifndef __IRTCRoamingEvent_FWD_DEFINED__
 #define __IRTCRoamingEvent_FWD_DEFINED__
-typedef interface IRTCRoamingEvent IRTCRoamingEvent;
+typedef struct IRTCRoamingEvent IRTCRoamingEvent;
 #endif
 
 #ifndef __IRTCMediaRequestEvent_FWD_DEFINED__
 #define __IRTCMediaRequestEvent_FWD_DEFINED__
-typedef interface IRTCMediaRequestEvent IRTCMediaRequestEvent;
+typedef struct IRTCMediaRequestEvent IRTCMediaRequestEvent;
 #endif
 
 #ifndef __IRTCReInviteEvent_FWD_DEFINED__
 #define __IRTCReInviteEvent_FWD_DEFINED__
-typedef interface IRTCReInviteEvent IRTCReInviteEvent;
+typedef struct IRTCReInviteEvent IRTCReInviteEvent;
 #endif
 
 #ifndef __IRTCPresencePropertyEvent_FWD_DEFINED__
 #define __IRTCPresencePropertyEvent_FWD_DEFINED__
-typedef interface IRTCPresencePropertyEvent IRTCPresencePropertyEvent;
+typedef struct IRTCPresencePropertyEvent IRTCPresencePropertyEvent;
 #endif
 
 #ifndef __IRTCPresenceDataEvent_FWD_DEFINED__
 #define __IRTCPresenceDataEvent_FWD_DEFINED__
-typedef interface IRTCPresenceDataEvent IRTCPresenceDataEvent;
+typedef struct IRTCPresenceDataEvent IRTCPresenceDataEvent;
 #endif
 
 #ifndef __IRTCPresenceStatusEvent_FWD_DEFINED__
 #define __IRTCPresenceStatusEvent_FWD_DEFINED__
-typedef interface IRTCPresenceStatusEvent IRTCPresenceStatusEvent;
+typedef struct IRTCPresenceStatusEvent IRTCPresenceStatusEvent;
 #endif
 
 #ifndef __IRTCSessionReferStatusEvent_FWD_DEFINED__
 #define __IRTCSessionReferStatusEvent_FWD_DEFINED__
-typedef interface IRTCSessionReferStatusEvent IRTCSessionReferStatusEvent;
+typedef struct IRTCSessionReferStatusEvent IRTCSessionReferStatusEvent;
 #endif
 
 #ifndef __IRTCSessionReferredEvent_FWD_DEFINED__
 #define __IRTCSessionReferredEvent_FWD_DEFINED__
-typedef interface IRTCSessionReferredEvent IRTCSessionReferredEvent;
+typedef struct IRTCSessionReferredEvent IRTCSessionReferredEvent;
 #endif
 
 #ifndef __IRTCSessionDescriptionManager_FWD_DEFINED__
 #define __IRTCSessionDescriptionManager_FWD_DEFINED__
-typedef interface IRTCSessionDescriptionManager IRTCSessionDescriptionManager;
+typedef struct IRTCSessionDescriptionManager IRTCSessionDescriptionManager;
 #endif
 
 #ifndef __IRTCEnumPresenceDevices_FWD_DEFINED__
 #define __IRTCEnumPresenceDevices_FWD_DEFINED__
-typedef interface IRTCEnumPresenceDevices IRTCEnumPresenceDevices;
+typedef struct IRTCEnumPresenceDevices IRTCEnumPresenceDevices;
 #endif
 
 #ifndef __IRTCPresenceDevice_FWD_DEFINED__
 #define __IRTCPresenceDevice_FWD_DEFINED__
-typedef interface IRTCPresenceDevice IRTCPresenceDevice;
+typedef struct IRTCPresenceDevice IRTCPresenceDevice;
 #endif
 
 #ifndef __IRTCDispatchEventNotification_FWD_DEFINED__
 #define __IRTCDispatchEventNotification_FWD_DEFINED__
-typedef interface IRTCDispatchEventNotification IRTCDispatchEventNotification;
+typedef struct IRTCDispatchEventNotification IRTCDispatchEventNotification;
 #endif
 
 #ifndef __RTCClient_FWD_DEFINED__
@@ -993,7 +993,7 @@
       HRESULT (WINAPI *get_IsTuned)(IRTCClient *This,VARIANT_BOOL *pfTuned);
     END_INTERFACE
   } IRTCClientVtbl;
-  interface IRTCClient {
+  struct IRTCClient {
     CONST_VTBL struct IRTCClientVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1213,7 +1213,7 @@
       HRESULT (WINAPI *get_AllowedPorts)(IRTCClient2 *This,long lTransport,RTC_LISTEN_MODE *penListenMode);
     END_INTERFACE
   } IRTCClient2Vtbl;
-  interface IRTCClient2 {
+  struct IRTCClient2 {
     CONST_VTBL struct IRTCClient2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1356,7 +1356,7 @@
       HRESULT (WINAPI *put_PrivacyMode)(IRTCClientPresence *This,RTC_PRIVACY_MODE enMode);
     END_INTERFACE
   } IRTCClientPresenceVtbl;
-  interface IRTCClientPresence {
+  struct IRTCClientPresence {
     CONST_VTBL struct IRTCClientPresenceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1484,7 +1484,7 @@
       HRESULT (WINAPI *AddBuddyEx)(IRTCClientPresence2 *This,BSTR bstrPresentityURI,BSTR bstrUserName,BSTR bstrData,VARIANT_BOOL fPersistent,RTC_BUDDY_SUBSCRIPTION_TYPE enSubscriptionType,IRTCProfile *pProfile,long lFlags,IRTCBuddy2 **ppBuddy);
     END_INTERFACE
   } IRTCClientPresence2Vtbl;
-  interface IRTCClientPresence2 {
+  struct IRTCClientPresence2 {
     CONST_VTBL struct IRTCClientPresence2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1587,7 +1587,7 @@
       HRESULT (WINAPI *get_SessionCapabilities)(IRTCClientProvisioning *This,long *plSupportedSessions);
     END_INTERFACE
   } IRTCClientProvisioningVtbl;
-  interface IRTCClientProvisioning {
+  struct IRTCClientProvisioning {
     CONST_VTBL struct IRTCClientProvisioningVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1643,7 +1643,7 @@
       HRESULT (WINAPI *EnableProfileEx)(IRTCClientProvisioning2 *This,IRTCProfile *pProfile,long lRegisterFlags,long lRoamingFlags);
     END_INTERFACE
   } IRTCClientProvisioning2Vtbl;
-  interface IRTCClientProvisioning2 {
+  struct IRTCClientProvisioning2 {
     CONST_VTBL struct IRTCClientProvisioning2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1715,7 +1715,7 @@
       HRESULT (WINAPI *get_State)(IRTCProfile *This,RTC_REGISTRATION_STATE *penState);
     END_INTERFACE
   } IRTCProfileVtbl;
-  interface IRTCProfile {
+  struct IRTCProfile {
     CONST_VTBL struct IRTCProfileVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1821,7 +1821,7 @@
       HRESULT (WINAPI *put_AllowedAuth)(IRTCProfile2 *This,long lAllowedAuth);
     END_INTERFACE
   } IRTCProfile2Vtbl;
-  interface IRTCProfile2 {
+  struct IRTCProfile2 {
     CONST_VTBL struct IRTCProfile2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1917,7 +1917,7 @@
       HRESULT (WINAPI *put_EncryptionKey)(IRTCSession *This,long lMediaType,BSTR EncryptionKey);
     END_INTERFACE
   } IRTCSessionVtbl;
-  interface IRTCSession {
+  struct IRTCSession {
     CONST_VTBL struct IRTCSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2035,7 +2035,7 @@
       HRESULT (WINAPI *ReInviteWithSessionDescription)(IRTCSession2 *This,BSTR bstrContentType,BSTR bstrSessionDescription,LONG_PTR lCookie);
     END_INTERFACE
   } IRTCSession2Vtbl;
-  interface IRTCSession2 {
+  struct IRTCSession2 {
     CONST_VTBL struct IRTCSession2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2117,7 +2117,7 @@
       HRESULT (WINAPI *get_IsReferred)(IRTCSessionCallControl *This,VARIANT_BOOL *pfIsReferred);
     END_INTERFACE
   } IRTCSessionCallControlVtbl;
-  interface IRTCSessionCallControl {
+  struct IRTCSessionCallControl {
     CONST_VTBL struct IRTCSessionCallControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2180,7 +2180,7 @@
       HRESULT (WINAPI *get_Session)(IRTCParticipant *This,IRTCSession **ppSession);
     END_INTERFACE
   } IRTCParticipantVtbl;
-  interface IRTCParticipant {
+  struct IRTCParticipant {
     CONST_VTBL struct IRTCParticipantVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2232,7 +2232,7 @@
       HRESULT (WINAPI *get_StatusText)(IRTCRoamingEvent *This,BSTR *pbstrStatusText);
     END_INTERFACE
   } IRTCRoamingEventVtbl;
-  interface IRTCRoamingEvent {
+  struct IRTCRoamingEvent {
     CONST_VTBL struct IRTCRoamingEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2284,7 +2284,7 @@
       HRESULT (WINAPI *get_StatusCode)(IRTCProfileEvent *This,long *plStatusCode);
     END_INTERFACE
   } IRTCProfileEventVtbl;
-  interface IRTCProfileEvent {
+  struct IRTCProfileEvent {
     CONST_VTBL struct IRTCProfileEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2332,7 +2332,7 @@
       HRESULT (WINAPI *get_EventType)(IRTCProfileEvent2 *This,RTC_PROFILE_EVENT_TYPE *pEventType);
     END_INTERFACE
   } IRTCProfileEvent2Vtbl;
-  interface IRTCProfileEvent2 {
+  struct IRTCProfileEvent2 {
     CONST_VTBL struct IRTCProfileEvent2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2376,7 +2376,7 @@
       HRESULT (WINAPI *get_Client)(IRTCClientEvent *This,IRTCClient **ppClient);
     END_INTERFACE
   } IRTCClientEventVtbl;
-  interface IRTCClientEvent {
+  struct IRTCClientEvent {
     CONST_VTBL struct IRTCClientEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2424,7 +2424,7 @@
       HRESULT (WINAPI *get_StatusText)(IRTCRegistrationStateChangeEvent *This,BSTR *pbstrStatusText);
     END_INTERFACE
   } IRTCRegistrationStateChangeEventVtbl;
-  interface IRTCRegistrationStateChangeEvent {
+  struct IRTCRegistrationStateChangeEvent {
     CONST_VTBL struct IRTCRegistrationStateChangeEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2478,7 +2478,7 @@
       HRESULT (WINAPI *get_StatusText)(IRTCSessionStateChangeEvent *This,BSTR *pbstrStatusText);
     END_INTERFACE
   } IRTCSessionStateChangeEventVtbl;
-  interface IRTCSessionStateChangeEvent {
+  struct IRTCSessionStateChangeEvent {
     CONST_VTBL struct IRTCSessionStateChangeEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2536,7 +2536,7 @@
       HRESULT (WINAPI *GetRemoteSessionDescription)(IRTCSessionStateChangeEvent2 *This,BSTR *pbstrContentType,BSTR *pbstrSessionDescription);
     END_INTERFACE
   } IRTCSessionStateChangeEvent2Vtbl;
-  interface IRTCSessionStateChangeEvent2 {
+  struct IRTCSessionStateChangeEvent2 {
     CONST_VTBL struct IRTCSessionStateChangeEvent2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2594,7 +2594,7 @@
       HRESULT (WINAPI *get_StatusText)(IRTCSessionOperationCompleteEvent *This,BSTR *pbstrStatusText);
     END_INTERFACE
   } IRTCSessionOperationCompleteEventVtbl;
-  interface IRTCSessionOperationCompleteEvent {
+  struct IRTCSessionOperationCompleteEvent {
     CONST_VTBL struct IRTCSessionOperationCompleteEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2648,7 +2648,7 @@
       HRESULT (WINAPI *GetRemoteSessionDescription)(IRTCSessionOperationCompleteEvent2 *This,BSTR *pbstrContentType,BSTR *pbstrSessionDescription);
     END_INTERFACE
   } IRTCSessionOperationCompleteEvent2Vtbl;
-  interface IRTCSessionOperationCompleteEvent2 {
+  struct IRTCSessionOperationCompleteEvent2 {
     CONST_VTBL struct IRTCSessionOperationCompleteEvent2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2698,7 +2698,7 @@
       HRESULT (WINAPI *get_StatusCode)(IRTCParticipantStateChangeEvent *This,long *plStatusCode);
     END_INTERFACE
   } IRTCParticipantStateChangeEventVtbl;
-  interface IRTCParticipantStateChangeEvent {
+  struct IRTCParticipantStateChangeEvent {
     CONST_VTBL struct IRTCParticipantStateChangeEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2747,7 +2747,7 @@
       HRESULT (WINAPI *get_EventReason)(IRTCMediaEvent *This,RTC_MEDIA_EVENT_REASON *penEventReason);
     END_INTERFACE
   } IRTCMediaEventVtbl;
-  interface IRTCMediaEvent {
+  struct IRTCMediaEvent {
     CONST_VTBL struct IRTCMediaEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2798,7 +2798,7 @@
       HRESULT (WINAPI *get_Direction)(IRTCIntensityEvent *This,RTC_AUDIO_DEVICE *penDirection);
     END_INTERFACE
   } IRTCIntensityEventVtbl;
-  interface IRTCIntensityEvent {
+  struct IRTCIntensityEvent {
     CONST_VTBL struct IRTCIntensityEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2856,7 +2856,7 @@
       HRESULT (WINAPI *get_UserStatus)(IRTCMessagingEvent *This,RTC_MESSAGING_USER_STATUS *penUserStatus);
     END_INTERFACE
   } IRTCMessagingEventVtbl;
-  interface IRTCMessagingEvent {
+  struct IRTCMessagingEvent {
     CONST_VTBL struct IRTCMessagingEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2910,7 +2910,7 @@
       HRESULT (WINAPI *get_Buddy)(IRTCBuddyEvent *This,IRTCBuddy **ppBuddy);
     END_INTERFACE
   } IRTCBuddyEventVtbl;
-  interface IRTCBuddyEvent {
+  struct IRTCBuddyEvent {
     CONST_VTBL struct IRTCBuddyEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2954,7 +2954,7 @@
       HRESULT (WINAPI *get_StatusText)(IRTCBuddyEvent2 *This,BSTR *pbstrStatusText);
     END_INTERFACE
   } IRTCBuddyEvent2Vtbl;
-  interface IRTCBuddyEvent2 {
+  struct IRTCBuddyEvent2 {
     CONST_VTBL struct IRTCBuddyEvent2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3000,7 +3000,7 @@
       HRESULT (WINAPI *get_Watcher)(IRTCWatcherEvent *This,IRTCWatcher **ppWatcher);
     END_INTERFACE
   } IRTCWatcherEventVtbl;
-  interface IRTCWatcherEvent {
+  struct IRTCWatcherEvent {
     CONST_VTBL struct IRTCWatcherEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3042,7 +3042,7 @@
       HRESULT (WINAPI *get_StatusCode)(IRTCWatcherEvent2 *This,long *plStatusCode);
     END_INTERFACE
   } IRTCWatcherEvent2Vtbl;
-  interface IRTCWatcherEvent2 {
+  struct IRTCWatcherEvent2 {
     CONST_VTBL struct IRTCWatcherEvent2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3091,7 +3091,7 @@
       HRESULT (WINAPI *get_StatusCode)(IRTCBuddyGroupEvent *This,long *plStatusCode);
     END_INTERFACE
   } IRTCBuddyGroupEventVtbl;
-  interface IRTCBuddyGroupEvent {
+  struct IRTCBuddyGroupEvent {
     CONST_VTBL struct IRTCBuddyGroupEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3145,7 +3145,7 @@
       HRESULT (WINAPI *get_InfoHeader)(IRTCInfoEvent *This,BSTR *pbstrInfoHeader);
     END_INTERFACE
   } IRTCInfoEventVtbl;
-  interface IRTCInfoEvent {
+  struct IRTCInfoEvent {
     CONST_VTBL struct IRTCInfoEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3205,7 +3205,7 @@
       HRESULT (WINAPI *get_State)(IRTCMediaRequestEvent *This,RTC_REINVITE_STATE *pState);
     END_INTERFACE
   } IRTCMediaRequestEventVtbl;
-  interface IRTCMediaRequestEvent {
+  struct IRTCMediaRequestEvent {
     CONST_VTBL struct IRTCMediaRequestEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3270,7 +3270,7 @@
       HRESULT (WINAPI *GetRemoteSessionDescription)(IRTCReInviteEvent *This,BSTR *pbstrContentType,BSTR *pbstrSessionDescription);
     END_INTERFACE
   } IRTCReInviteEventVtbl;
-  interface IRTCReInviteEvent {
+  struct IRTCReInviteEvent {
     CONST_VTBL struct IRTCReInviteEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3327,7 +3327,7 @@
       HRESULT (WINAPI *get_Value)(IRTCPresencePropertyEvent *This,BSTR *pbstrValue);
     END_INTERFACE
   } IRTCPresencePropertyEventVtbl;
-  interface IRTCPresencePropertyEvent {
+  struct IRTCPresencePropertyEvent {
     CONST_VTBL struct IRTCPresencePropertyEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3379,7 +3379,7 @@
       HRESULT (WINAPI *GetPresenceData)(IRTCPresenceDataEvent *This,BSTR *pbstrNamespace,BSTR *pbstrData);
     END_INTERFACE
   } IRTCPresenceDataEventVtbl;
-  interface IRTCPresenceDataEvent {
+  struct IRTCPresenceDataEvent {
     CONST_VTBL struct IRTCPresenceDataEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3428,7 +3428,7 @@
       HRESULT (WINAPI *GetLocalPresenceInfo)(IRTCPresenceStatusEvent *This,RTC_PRESENCE_STATUS *penStatus,BSTR *pbstrNotes);
     END_INTERFACE
   } IRTCPresenceStatusEventVtbl;
-  interface IRTCPresenceStatusEvent {
+  struct IRTCPresenceStatusEvent {
     CONST_VTBL struct IRTCPresenceStatusEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3477,7 +3477,7 @@
       HRESULT (WINAPI *get__NewEnum)(IRTCCollection *This,IUnknown **ppNewEnum);
     END_INTERFACE
   } IRTCCollectionVtbl;
-  interface IRTCCollection {
+  struct IRTCCollection {
     CONST_VTBL struct IRTCCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3524,7 +3524,7 @@
       HRESULT (WINAPI *Clone)(IRTCEnumParticipants *This,IRTCEnumParticipants **ppEnum);
     END_INTERFACE
   } IRTCEnumParticipantsVtbl;
-  interface IRTCEnumParticipants {
+  struct IRTCEnumParticipants {
     CONST_VTBL struct IRTCEnumParticipantsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3570,7 +3570,7 @@
       HRESULT (WINAPI *Clone)(IRTCEnumProfiles *This,IRTCEnumProfiles **ppEnum);
     END_INTERFACE
   } IRTCEnumProfilesVtbl;
-  interface IRTCEnumProfiles {
+  struct IRTCEnumProfiles {
     CONST_VTBL struct IRTCEnumProfilesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3616,7 +3616,7 @@
       HRESULT (WINAPI *Clone)(IRTCEnumBuddies *This,IRTCEnumBuddies **ppEnum);
     END_INTERFACE
   } IRTCEnumBuddiesVtbl;
-  interface IRTCEnumBuddies {
+  struct IRTCEnumBuddies {
     CONST_VTBL struct IRTCEnumBuddiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3662,7 +3662,7 @@
       HRESULT (WINAPI *Clone)(IRTCEnumWatchers *This,IRTCEnumWatchers **ppEnum);
     END_INTERFACE
   } IRTCEnumWatchersVtbl;
-  interface IRTCEnumWatchers {
+  struct IRTCEnumWatchers {
     CONST_VTBL struct IRTCEnumWatchersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3708,7 +3708,7 @@
       HRESULT (WINAPI *Clone)(IRTCEnumGroups *This,IRTCEnumGroups **ppEnum);
     END_INTERFACE
   } IRTCEnumGroupsVtbl;
-  interface IRTCEnumGroups {
+  struct IRTCEnumGroups {
     CONST_VTBL struct IRTCEnumGroupsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3761,7 +3761,7 @@
       HRESULT (WINAPI *put_Persistent)(IRTCPresenceContact *This,VARIANT_BOOL fPersistent);
     END_INTERFACE
   } IRTCPresenceContactVtbl;
-  interface IRTCPresenceContact {
+  struct IRTCPresenceContact {
     CONST_VTBL struct IRTCPresenceContactVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3823,7 +3823,7 @@
       HRESULT (WINAPI *get_Notes)(IRTCBuddy *This,BSTR *pbstrNotes);
     END_INTERFACE
   } IRTCBuddyVtbl;
-  interface IRTCBuddy {
+  struct IRTCBuddy {
     CONST_VTBL struct IRTCBuddyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3889,7 +3889,7 @@
       HRESULT (WINAPI *get_SubscriptionType)(IRTCBuddy2 *This,RTC_BUDDY_SUBSCRIPTION_TYPE *penSubscriptionType);
     END_INTERFACE
   } IRTCBuddy2Vtbl;
-  interface IRTCBuddy2 {
+  struct IRTCBuddy2 {
     CONST_VTBL struct IRTCBuddy2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3961,7 +3961,7 @@
       HRESULT (WINAPI *put_State)(IRTCWatcher *This,RTC_WATCHER_STATE enState);
     END_INTERFACE
   } IRTCWatcherVtbl;
-  interface IRTCWatcher {
+  struct IRTCWatcher {
     CONST_VTBL struct IRTCWatcherVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4015,7 +4015,7 @@
       HRESULT (WINAPI *get_Scope)(IRTCWatcher2 *This,RTC_ACE_SCOPE *penScope);
     END_INTERFACE
   } IRTCWatcher2Vtbl;
-  interface IRTCWatcher2 {
+  struct IRTCWatcher2 {
     CONST_VTBL struct IRTCWatcher2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4075,7 +4075,7 @@
       HRESULT (WINAPI *get_Profile)(IRTCBuddyGroup *This,IRTCProfile2 **ppProfile);
     END_INTERFACE
   } IRTCBuddyGroupVtbl;
-  interface IRTCBuddyGroup {
+  struct IRTCBuddyGroup {
     CONST_VTBL struct IRTCBuddyGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4130,7 +4130,7 @@
       HRESULT (WINAPI *Event)(IRTCEventNotification *This,RTC_EVENT RTCEvent,IDispatch *pEvent);
     END_INTERFACE
   } IRTCEventNotificationVtbl;
-  interface IRTCEventNotification {
+  struct IRTCEventNotification {
     CONST_VTBL struct IRTCEventNotificationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4165,7 +4165,7 @@
       HRESULT (WINAPI *ReleaseMapping)(IRTCPortManager *This,BSTR bstrInternalLocalAddress,long lInternalLocalPort,BSTR bstrExternalLocalAddress,long lExternalLocalAddress);
     END_INTERFACE
   } IRTCPortManagerVtbl;
-  interface IRTCPortManager {
+  struct IRTCPortManager {
     CONST_VTBL struct IRTCPortManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4202,7 +4202,7 @@
       HRESULT (WINAPI *SetPortManager)(IRTCSessionPortManagement *This,IRTCPortManager *pPortManager);
     END_INTERFACE
   } IRTCSessionPortManagementVtbl;
-  interface IRTCSessionPortManagement {
+  struct IRTCSessionPortManagement {
     CONST_VTBL struct IRTCSessionPortManagementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4237,7 +4237,7 @@
       HRESULT (WINAPI *GetPortRange)(IRTCClientPortManagement *This,RTC_PORT_TYPE enPortType,long *plMinValue,long *plMaxValue);
     END_INTERFACE
   } IRTCClientPortManagementVtbl;
-  interface IRTCClientPortManagement {
+  struct IRTCClientPortManagement {
     CONST_VTBL struct IRTCClientPortManagementVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4276,7 +4276,7 @@
       HRESULT (WINAPI *ExecuteSearch)(IRTCUserSearch *This,IRTCUserSearchQuery *pQuery,IRTCProfile *pProfile,LONG_PTR lCookie);
     END_INTERFACE
   } IRTCUserSearchVtbl;
-  interface IRTCUserSearch {
+  struct IRTCUserSearch {
     CONST_VTBL struct IRTCUserSearchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4322,7 +4322,7 @@
       HRESULT (WINAPI *get_SearchDomain)(IRTCUserSearchQuery *This,BSTR *pbstrDomain);
     END_INTERFACE
   } IRTCUserSearchQueryVtbl;
-  interface IRTCUserSearchQuery {
+  struct IRTCUserSearchQuery {
     CONST_VTBL struct IRTCUserSearchQueryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4371,7 +4371,7 @@
       HRESULT (WINAPI *get_Value)(IRTCUserSearchResult *This,RTC_USER_SEARCH_COLUMN enColumn,BSTR *pbstrValue);
     END_INTERFACE
   } IRTCUserSearchResultVtbl;
-  interface IRTCUserSearchResult {
+  struct IRTCUserSearchResult {
     CONST_VTBL struct IRTCUserSearchResultVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4408,7 +4408,7 @@
       HRESULT (WINAPI *Clone)(IRTCEnumUserSearchResults *This,IRTCEnumUserSearchResults **ppEnum);
     END_INTERFACE
   } IRTCEnumUserSearchResultsVtbl;
-  interface IRTCEnumUserSearchResults {
+  struct IRTCEnumUserSearchResults {
     CONST_VTBL struct IRTCEnumUserSearchResultsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4464,7 +4464,7 @@
       HRESULT (WINAPI *get_MoreAvailable)(IRTCUserSearchResultsEvent *This,VARIANT_BOOL *pfMoreAvailable);
     END_INTERFACE
   } IRTCUserSearchResultsEventVtbl;
-  interface IRTCUserSearchResultsEvent {
+  struct IRTCUserSearchResultsEvent {
     CONST_VTBL struct IRTCUserSearchResultsEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4527,7 +4527,7 @@
       HRESULT (WINAPI *get_StatusText)(IRTCSessionReferStatusEvent *This,BSTR *pbstrStatusText);
     END_INTERFACE
   } IRTCSessionReferStatusEventVtbl;
-  interface IRTCSessionReferStatusEvent {
+  struct IRTCSessionReferStatusEvent {
     CONST_VTBL struct IRTCSessionReferStatusEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4587,7 +4587,7 @@
       HRESULT (WINAPI *SetReferredSessionState)(IRTCSessionReferredEvent *This,RTC_SESSION_STATE enState);
     END_INTERFACE
   } IRTCSessionReferredEventVtbl;
-  interface IRTCSessionReferredEvent {
+  struct IRTCSessionReferredEvent {
     CONST_VTBL struct IRTCSessionReferredEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4640,7 +4640,7 @@
       HRESULT (WINAPI *EvaluateSessionDescription)(IRTCSessionDescriptionManager *This,BSTR bstrContentType,BSTR bstrSessionDescription,VARIANT_BOOL *pfApplicationSession);
     END_INTERFACE
   } IRTCSessionDescriptionManagerVtbl;
-  interface IRTCSessionDescriptionManager {
+  struct IRTCSessionDescriptionManager {
     CONST_VTBL struct IRTCSessionDescriptionManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4677,7 +4677,7 @@
       HRESULT (WINAPI *Clone)(IRTCEnumPresenceDevices *This,IRTCEnumPresenceDevices **ppEnum);
     END_INTERFACE
   } IRTCEnumPresenceDevicesVtbl;
-  interface IRTCEnumPresenceDevices {
+  struct IRTCEnumPresenceDevices {
     CONST_VTBL struct IRTCEnumPresenceDevicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4723,7 +4723,7 @@
       HRESULT (WINAPI *GetPresenceData)(IRTCPresenceDevice *This,BSTR *pbstrNamespace,BSTR *pbstrData);
     END_INTERFACE
   } IRTCPresenceDeviceVtbl;
-  interface IRTCPresenceDevice {
+  struct IRTCPresenceDevice {
     CONST_VTBL struct IRTCPresenceDeviceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4767,7 +4767,7 @@
       HRESULT (WINAPI *Invoke)(IRTCDispatchEventNotification *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } IRTCDispatchEventNotificationVtbl;
-  interface IRTCDispatchEventNotification {
+  struct IRTCDispatchEventNotification {
     CONST_VTBL struct IRTCDispatchEventNotificationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/scardssp.h b/mingw-w64-headers/include/scardssp.h
index 1c8b9db..7850891 100755
--- a/mingw-w64-headers/include/scardssp.h
+++ b/mingw-w64-headers/include/scardssp.h
@@ -24,37 +24,37 @@
 
 #ifndef __IByteBuffer_FWD_DEFINED__
 #define __IByteBuffer_FWD_DEFINED__
-typedef interface IByteBuffer IByteBuffer;
+typedef struct IByteBuffer IByteBuffer;
 #endif
 
 #ifndef __ISCardTypeConv_FWD_DEFINED__
 #define __ISCardTypeConv_FWD_DEFINED__
-typedef interface ISCardTypeConv ISCardTypeConv;
+typedef struct ISCardTypeConv ISCardTypeConv;
 #endif
 
 #ifndef __ISCardCmd_FWD_DEFINED__
 #define __ISCardCmd_FWD_DEFINED__
-typedef interface ISCardCmd ISCardCmd;
+typedef struct ISCardCmd ISCardCmd;
 #endif
 
 #ifndef __ISCardISO7816_FWD_DEFINED__
 #define __ISCardISO7816_FWD_DEFINED__
-typedef interface ISCardISO7816 ISCardISO7816;
+typedef struct ISCardISO7816 ISCardISO7816;
 #endif
 
 #ifndef __ISCard_FWD_DEFINED__
 #define __ISCard_FWD_DEFINED__
-typedef interface ISCard ISCard;
+typedef struct ISCard ISCard;
 #endif
 
 #ifndef __ISCardDatabase_FWD_DEFINED__
 #define __ISCardDatabase_FWD_DEFINED__
-typedef interface ISCardDatabase ISCardDatabase;
+typedef struct ISCardDatabase ISCardDatabase;
 #endif
 
 #ifndef __ISCardLocate_FWD_DEFINED__
 #define __ISCardLocate_FWD_DEFINED__
-typedef interface ISCardLocate ISCardLocate;
+typedef struct ISCardLocate ISCardLocate;
 #endif
 
 #ifndef __CByteBuffer_FWD_DEFINED__
@@ -305,7 +305,7 @@
       HRESULT (WINAPI *Write)(IByteBuffer *This,BYTE *pByte,LONG cb,LONG *pcbWritten);
     END_INTERFACE
   } IByteBufferVtbl;
-  interface IByteBuffer {
+  struct IByteBuffer {
     CONST_VTBL struct IByteBufferVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -409,7 +409,7 @@
       HRESULT (WINAPI *SizeOfIStream)(ISCardTypeConv *This,LPSTREAM pStrm,ULARGE_INTEGER *puliSize);
     END_INTERFACE
   } ISCardTypeConvVtbl;
-  interface ISCardTypeConv {
+  struct ISCardTypeConv {
     CONST_VTBL struct ISCardTypeConvVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -546,7 +546,7 @@
       HRESULT (WINAPI *put_AlternateClassId)(ISCardCmd *This,BYTE byClass);
     END_INTERFACE
   } ISCardCmdVtbl;
-  interface ISCardCmd {
+  struct ISCardCmd {
     CONST_VTBL struct ISCardCmdVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -723,7 +723,7 @@
       HRESULT (WINAPI *WriteRecord)(ISCardISO7816 *This,BYTE byRecordId,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
     END_INTERFACE
   } ISCardISO7816Vtbl;
-  interface ISCardISO7816 {
+  struct ISCardISO7816 {
     CONST_VTBL struct ISCardISO7816Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -843,7 +843,7 @@
       HRESULT (WINAPI *UnlockSCard)(ISCard *This,SCARD_DISPOSITIONS Disposition);
     END_INTERFACE
   } ISCardVtbl;
-  interface ISCard {
+  struct ISCard {
     CONST_VTBL struct ISCardVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -930,7 +930,7 @@
       HRESULT (WINAPI *ListReaders)(ISCardDatabase *This,long localeId,LPSAFEARRAY *ppReaders);
     END_INTERFACE
   } ISCardDatabaseVtbl;
-  interface ISCardDatabase {
+  struct ISCardDatabase {
     CONST_VTBL struct ISCardDatabaseVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -993,7 +993,7 @@
       HRESULT (WINAPI *FindCard)(ISCardLocate *This,SCARD_SHARE_MODES ShareMode,SCARD_PROTOCOLS Protocols,LONG lFlags,LPSCARDINFO *ppCardInfo);
     END_INTERFACE
   } ISCardLocateVtbl;
-  interface ISCardLocate {
+  struct ISCardLocate {
     CONST_VTBL struct ISCardLocateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/scesvc.h b/mingw-w64-headers/include/scesvc.h
index 30165f3..521f122 100755
--- a/mingw-w64-headers/include/scesvc.h
+++ b/mingw-w64-headers/include/scesvc.h
@@ -138,7 +138,7 @@
 #define CCF_SCESVC_ATTACHMENT L"CCF_SCESVC_ATTACHMENT"
 #define CCF_SCESVC_ATTACHMENT_DATA L"CCF_SCESVC_ATTACHMENT_DATA"
 
-  typedef interface ISceSvcAttachmentPersistInfo ISceSvcAttachmentPersistInfo;
+  typedef struct ISceSvcAttachmentPersistInfo ISceSvcAttachmentPersistInfo;
   typedef ISceSvcAttachmentPersistInfo *LPSCESVCATTACHMENTPERSISTINFO;
 #if defined(__cplusplus) && !defined(CINTERFACE)
   struct ISceSvcAttachmentPersistInfo : public IUnknown {
@@ -158,7 +158,7 @@
       HRESULT (WINAPI *IsDirty)(ISceSvcAttachmentPersistInfo *This,LPTSTR lpTemplateName);
     END_INTERFACE
   } ISceSvcAttachmentPersistInfoVtbl;
-  interface ISceSvcAttachmentPersistInfo {
+  struct ISceSvcAttachmentPersistInfo {
     CONST_VTBL struct ISceSvcAttachmentPersistInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -171,7 +171,7 @@
 #endif
 #endif
 
-  typedef interface ISceSvcAttachmentData ISceSvcAttachmentData;
+  typedef struct ISceSvcAttachmentData ISceSvcAttachmentData;
   typedef ISceSvcAttachmentData *LPSCESVCATTACHMENTDATA;
 #if defined(__cplusplus) && !defined(CINTERFACE)
   struct ISceSvcAttachmentData : public IUnknown {
@@ -193,7 +193,7 @@
       HRESULT (WINAPI *CloseHandle)(ISceSvcAttachmentData *This,SCESVC_HANDLE scesvcHandle);
     END_INTERFACE
   } ISceSvcAttachmentDataVtbl;
-  interface ISceSvcAttachmentData {
+  struct ISceSvcAttachmentData {
     CONST_VTBL struct ISceSvcAttachmentDataVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/sdoias.h b/mingw-w64-headers/include/sdoias.h
index 103bf8f..71607f3 100755
--- a/mingw-w64-headers/include/sdoias.h
+++ b/mingw-w64-headers/include/sdoias.h
@@ -19,27 +19,27 @@
 
 #ifndef __ISdoMachine_FWD_DEFINED__
 #define __ISdoMachine_FWD_DEFINED__
-typedef interface ISdoMachine ISdoMachine;
+typedef struct ISdoMachine ISdoMachine;
 #endif
 
 #ifndef __ISdoServiceControl_FWD_DEFINED__
 #define __ISdoServiceControl_FWD_DEFINED__
-typedef interface ISdoServiceControl ISdoServiceControl;
+typedef struct ISdoServiceControl ISdoServiceControl;
 #endif
 
 #ifndef __ISdo_FWD_DEFINED__
 #define __ISdo_FWD_DEFINED__
-typedef interface ISdo ISdo;
+typedef struct ISdo ISdo;
 #endif
 
 #ifndef __ISdoCollection_FWD_DEFINED__
 #define __ISdoCollection_FWD_DEFINED__
-typedef interface ISdoCollection ISdoCollection;
+typedef struct ISdoCollection ISdoCollection;
 #endif
 
 #ifndef __ISdoDictionaryOld_FWD_DEFINED__
 #define __ISdoDictionaryOld_FWD_DEFINED__
-typedef interface ISdoDictionaryOld ISdoDictionaryOld;
+typedef struct ISdoDictionaryOld ISdoDictionaryOld;
 #endif
 
 #ifndef __SdoMachine_FWD_DEFINED__
@@ -394,7 +394,7 @@
       HRESULT (WINAPI *GetSDOSchema)(ISdoMachine *This,IUnknown **ppSDOSchema);
     END_INTERFACE
   } ISdoMachineVtbl;
-  interface ISdoMachine {
+  struct ISdoMachine {
     CONST_VTBL struct ISdoMachineVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -463,7 +463,7 @@
       HRESULT (WINAPI *ResetService)(ISdoServiceControl *This);
     END_INTERFACE
   } ISdoServiceControlVtbl;
-  interface ISdoServiceControl {
+  struct ISdoServiceControl {
     CONST_VTBL struct ISdoServiceControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -523,7 +523,7 @@
       HRESULT (WINAPI *get__NewEnum)(ISdo *This,IUnknown **ppEnumVARIANT);
     END_INTERFACE
   } ISdoVtbl;
-  interface ISdo {
+  struct ISdo {
     CONST_VTBL struct ISdoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -594,7 +594,7 @@
       HRESULT (WINAPI *get__NewEnum)(ISdoCollection *This,IUnknown **ppEnumVARIANT);
     END_INTERFACE
   } ISdoCollectionVtbl;
-  interface ISdoCollection {
+  struct ISdoCollection {
     CONST_VTBL struct ISdoCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -663,7 +663,7 @@
       HRESULT (WINAPI *GetAttributeID)(ISdoDictionaryOld *This,BSTR bstrAttributeName,ATTRIBUTEID *pId);
     END_INTERFACE
   } ISdoDictionaryOldVtbl;
-  interface ISdoDictionaryOld {
+  struct ISdoDictionaryOld {
     CONST_VTBL struct ISdoDictionaryOldVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/sdpblb.h b/mingw-w64-headers/include/sdpblb.h
index b2ac9eb..fd6a688 100755
--- a/mingw-w64-headers/include/sdpblb.h
+++ b/mingw-w64-headers/include/sdpblb.h
@@ -24,72 +24,72 @@
 
 #ifndef __ITConferenceBlob_FWD_DEFINED__
 #define __ITConferenceBlob_FWD_DEFINED__
-typedef interface ITConferenceBlob ITConferenceBlob;
+typedef struct ITConferenceBlob ITConferenceBlob;
 #endif
 
 #ifndef __ITMedia_FWD_DEFINED__
 #define __ITMedia_FWD_DEFINED__
-typedef interface ITMedia ITMedia;
+typedef struct ITMedia ITMedia;
 #endif
 
 #ifndef __IEnumMedia_FWD_DEFINED__
 #define __IEnumMedia_FWD_DEFINED__
-typedef interface IEnumMedia IEnumMedia;
+typedef struct IEnumMedia IEnumMedia;
 #endif
 
 #ifndef __ITMediaCollection_FWD_DEFINED__
 #define __ITMediaCollection_FWD_DEFINED__
-typedef interface ITMediaCollection ITMediaCollection;
+typedef struct ITMediaCollection ITMediaCollection;
 #endif
 
 #ifndef __ITTime_FWD_DEFINED__
 #define __ITTime_FWD_DEFINED__
-typedef interface ITTime ITTime;
+typedef struct ITTime ITTime;
 #endif
 
 #ifndef __IEnumTime_FWD_DEFINED__
 #define __IEnumTime_FWD_DEFINED__
-typedef interface IEnumTime IEnumTime;
+typedef struct IEnumTime IEnumTime;
 #endif
 
 #ifndef __ITTimeCollection_FWD_DEFINED__
 #define __ITTimeCollection_FWD_DEFINED__
-typedef interface ITTimeCollection ITTimeCollection;
+typedef struct ITTimeCollection ITTimeCollection;
 #endif
 
 #ifndef __ITSdp_FWD_DEFINED__
 #define __ITSdp_FWD_DEFINED__
-typedef interface ITSdp ITSdp;
+typedef struct ITSdp ITSdp;
 #endif
 
 #ifndef __ITConnection_FWD_DEFINED__
 #define __ITConnection_FWD_DEFINED__
-typedef interface ITConnection ITConnection;
+typedef struct ITConnection ITConnection;
 #endif
 
 #ifndef __ITAttributeList_FWD_DEFINED__
 #define __ITAttributeList_FWD_DEFINED__
-typedef interface ITAttributeList ITAttributeList;
+typedef struct ITAttributeList ITAttributeList;
 #endif
 
 #ifndef __ITMedia_FWD_DEFINED__
 #define __ITMedia_FWD_DEFINED__
-typedef interface ITMedia ITMedia;
+typedef struct ITMedia ITMedia;
 #endif
 
 #ifndef __ITTime_FWD_DEFINED__
 #define __ITTime_FWD_DEFINED__
-typedef interface ITTime ITTime;
+typedef struct ITTime ITTime;
 #endif
 
 #ifndef __ITConnection_FWD_DEFINED__
 #define __ITConnection_FWD_DEFINED__
-typedef interface ITConnection ITConnection;
+typedef struct ITConnection ITConnection;
 #endif
 
 #ifndef __ITAttributeList_FWD_DEFINED__
 #define __ITAttributeList_FWD_DEFINED__
-typedef interface ITAttributeList ITAttributeList;
+typedef struct ITAttributeList ITAttributeList;
 #endif
 
 #ifndef __SdpConferenceBlob_FWD_DEFINED__
@@ -151,7 +151,7 @@
       HRESULT (WINAPI *SetConferenceBlob)(ITConferenceBlob *This,BLOB_CHARACTER_SET CharacterSet,BSTR pBlob);
     END_INTERFACE
   } ITConferenceBlobVtbl;
-  interface ITConferenceBlob {
+  struct ITConferenceBlob {
     CONST_VTBL struct ITConferenceBlobVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -219,7 +219,7 @@
       HRESULT (WINAPI *SetPortInfo)(ITMedia *This,LONG StartPort,LONG NumPorts);
     END_INTERFACE
   } ITMediaVtbl;
-  interface ITMedia {
+  struct ITMedia {
     CONST_VTBL struct ITMediaVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -290,7 +290,7 @@
       HRESULT (WINAPI *Clone)(IEnumMedia *This,IEnumMedia **ppEnum);
     END_INTERFACE
   } IEnumMediaVtbl;
-  interface IEnumMedia {
+  struct IEnumMedia {
     CONST_VTBL struct IEnumMediaVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -344,7 +344,7 @@
       HRESULT (WINAPI *Delete)(ITMediaCollection *This,LONG Index);
     END_INTERFACE
   } ITMediaCollectionVtbl;
-  interface ITMediaCollection {
+  struct ITMediaCollection {
     CONST_VTBL struct ITMediaCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -404,7 +404,7 @@
       HRESULT (WINAPI *put_StopTime)(ITTime *This,DOUBLE Time);
     END_INTERFACE
   } ITTimeVtbl;
-  interface ITTime {
+  struct ITTime {
     CONST_VTBL struct ITTimeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -454,7 +454,7 @@
       HRESULT (WINAPI *Clone)(IEnumTime *This,IEnumTime **ppEnum);
     END_INTERFACE
   } IEnumTimeVtbl;
-  interface IEnumTime {
+  struct IEnumTime {
     CONST_VTBL struct IEnumTimeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -508,7 +508,7 @@
       HRESULT (WINAPI *Delete)(ITTimeCollection *This,LONG Index);
     END_INTERFACE
   } ITTimeCollectionVtbl;
-  interface ITTimeCollection {
+  struct ITTimeCollection {
     CONST_VTBL struct ITTimeCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -602,7 +602,7 @@
       HRESULT (WINAPI *get_TimeCollection)(ITSdp *This,ITTimeCollection **ppTimeCollection);
     END_INTERFACE
   } ITSdpVtbl;
-  interface ITSdp {
+  struct ITSdp {
     CONST_VTBL struct ITSdpVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -725,7 +725,7 @@
       HRESULT (WINAPI *GetEncryptionKey)(ITConnection *This,BSTR *ppKeyType,VARIANT_BOOL *pfValidKeyData,BSTR *ppKeyData);
     END_INTERFACE
   } ITConnectionVtbl;
-  interface ITConnection {
+  struct ITConnection {
     CONST_VTBL struct ITConnectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -810,7 +810,7 @@
       HRESULT (WINAPI *put_AttributeList)(ITAttributeList *This,VARIANT newVal);
     END_INTERFACE
   } ITAttributeListVtbl;
-  interface ITAttributeList {
+  struct ITAttributeList {
     CONST_VTBL struct ITAttributeListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/sensevts.h b/mingw-w64-headers/include/sensevts.h
index d9e2db2..73a6a5f 100755
--- a/mingw-w64-headers/include/sensevts.h
+++ b/mingw-w64-headers/include/sensevts.h
@@ -19,22 +19,22 @@
 
 #ifndef __ISensNetwork_FWD_DEFINED__
 #define __ISensNetwork_FWD_DEFINED__
-typedef interface ISensNetwork ISensNetwork;
+typedef struct ISensNetwork ISensNetwork;
 #endif
 
 #ifndef __ISensOnNow_FWD_DEFINED__
 #define __ISensOnNow_FWD_DEFINED__
-typedef interface ISensOnNow ISensOnNow;
+typedef struct ISensOnNow ISensOnNow;
 #endif
 
 #ifndef __ISensLogon_FWD_DEFINED__
 #define __ISensLogon_FWD_DEFINED__
-typedef interface ISensLogon ISensLogon;
+typedef struct ISensLogon ISensLogon;
 #endif
 
 #ifndef __ISensLogon2_FWD_DEFINED__
 #define __ISensLogon2_FWD_DEFINED__
-typedef interface ISensLogon2 ISensLogon2;
+typedef struct ISensLogon2 ISensLogon2;
 #endif
 
 #ifndef __SENS_FWD_DEFINED__
@@ -96,7 +96,7 @@
       HRESULT (WINAPI *DestinationReachableNoQOCInfo)(ISensNetwork *This,BSTR bstrDestination,BSTR bstrConnection,ULONG ulType);
     END_INTERFACE
   } ISensNetworkVtbl;
-  interface ISensNetwork {
+  struct ISensNetwork {
     CONST_VTBL struct ISensNetworkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -151,7 +151,7 @@
       HRESULT (WINAPI *BatteryLow)(ISensOnNow *This,DWORD dwBatteryLifePercent);
     END_INTERFACE
   } ISensOnNowVtbl;
-  interface ISensOnNow {
+  struct ISensOnNow {
     CONST_VTBL struct ISensOnNowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -208,7 +208,7 @@
       HRESULT (WINAPI *StopScreenSaver)(ISensLogon *This,BSTR bstrUserName);
     END_INTERFACE
   } ISensLogonVtbl;
-  interface ISensLogon {
+  struct ISensLogon {
     CONST_VTBL struct ISensLogonVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -273,7 +273,7 @@
       HRESULT (WINAPI *PostShell)(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
     END_INTERFACE
   } ISensLogon2Vtbl;
-  interface ISensLogon2 {
+  struct ISensLogon2 {
     CONST_VTBL struct ISensLogon2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/servprov.h b/mingw-w64-headers/include/servprov.h
index b00af92..ce40b0e 100755
--- a/mingw-w64-headers/include/servprov.h
+++ b/mingw-w64-headers/include/servprov.h
@@ -25,7 +25,7 @@
 
 #ifndef __IServiceProvider_FWD_DEFINED__
 #define __IServiceProvider_FWD_DEFINED__
-typedef interface IServiceProvider IServiceProvider;
+typedef struct IServiceProvider IServiceProvider;
 #endif
 
 #include "objidl.h"
@@ -73,7 +73,7 @@
       HRESULT (WINAPI *QueryService)(IServiceProvider *This,REFGUID guidService,REFIID riid,void **ppvObject);
     END_INTERFACE
   } IServiceProviderVtbl;
-  interface IServiceProvider {
+  struct IServiceProvider {
     CONST_VTBL struct IServiceProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/shappmgr.h b/mingw-w64-headers/include/shappmgr.h
index ca829d4..8d3e706 100755
--- a/mingw-w64-headers/include/shappmgr.h
+++ b/mingw-w64-headers/include/shappmgr.h
@@ -24,22 +24,22 @@
 
 #ifndef __IShellApp_FWD_DEFINED__
 #define __IShellApp_FWD_DEFINED__
-typedef interface IShellApp IShellApp;
+typedef struct IShellApp IShellApp;
 #endif
 
 #ifndef __IPublishedApp_FWD_DEFINED__
 #define __IPublishedApp_FWD_DEFINED__
-typedef interface IPublishedApp IPublishedApp;
+typedef struct IPublishedApp IPublishedApp;
 #endif
 
 #ifndef __IEnumPublishedApps_FWD_DEFINED__
 #define __IEnumPublishedApps_FWD_DEFINED__
-typedef interface IEnumPublishedApps IEnumPublishedApps;
+typedef struct IEnumPublishedApps IEnumPublishedApps;
 #endif
 
 #ifndef __IAppPublisher_FWD_DEFINED__
 #define __IAppPublisher_FWD_DEFINED__
-typedef interface IAppPublisher IAppPublisher;
+typedef struct IAppPublisher IAppPublisher;
 #endif
 
 #include "oaidl.h"
@@ -129,7 +129,7 @@
       HRESULT (WINAPI *IsInstalled)(IShellApp *This);
     END_INTERFACE
   } IShellAppVtbl;
-  interface IShellApp {
+  struct IShellApp {
     CONST_VTBL struct IShellAppVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -197,7 +197,7 @@
       HRESULT (WINAPI *Unschedule)(IPublishedApp *This);
     END_INTERFACE
   } IPublishedAppVtbl;
-  interface IPublishedApp {
+  struct IPublishedApp {
     CONST_VTBL struct IPublishedAppVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -241,7 +241,7 @@
       HRESULT (WINAPI *Reset)(IEnumPublishedApps *This);
     END_INTERFACE
   } IEnumPublishedAppsVtbl;
-  interface IEnumPublishedApps {
+  struct IEnumPublishedApps {
     CONST_VTBL struct IEnumPublishedAppsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -281,7 +281,7 @@
       HRESULT (WINAPI *EnumApps)(IAppPublisher *This,GUID *pAppCategoryId,IEnumPublishedApps **ppepa);
     END_INTERFACE
   } IAppPublisherVtbl;
-  interface IAppPublisher {
+  struct IAppPublisher {
     CONST_VTBL struct IAppPublisherVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/shdeprecated.h b/mingw-w64-headers/include/shdeprecated.h
index 7499a2f..2af45d3 100755
--- a/mingw-w64-headers/include/shdeprecated.h
+++ b/mingw-w64-headers/include/shdeprecated.h
@@ -24,37 +24,37 @@
 
 #ifndef __ITravelEntry_FWD_DEFINED__
 #define __ITravelEntry_FWD_DEFINED__
-typedef interface ITravelEntry ITravelEntry;
+typedef struct ITravelEntry ITravelEntry;
 #endif
 
 #ifndef __ITravelLog_FWD_DEFINED__
 #define __ITravelLog_FWD_DEFINED__
-typedef interface ITravelLog ITravelLog;
+typedef struct ITravelLog ITravelLog;
 #endif
 
 #ifndef __IExpDispSupport_FWD_DEFINED__
 #define __IExpDispSupport_FWD_DEFINED__
-typedef interface IExpDispSupport IExpDispSupport;
+typedef struct IExpDispSupport IExpDispSupport;
 #endif
 
 #ifndef __IBrowserService_FWD_DEFINED__
 #define __IBrowserService_FWD_DEFINED__
-typedef interface IBrowserService IBrowserService;
+typedef struct IBrowserService IBrowserService;
 #endif
 
 #ifndef __IShellService_FWD_DEFINED__
 #define __IShellService_FWD_DEFINED__
-typedef interface IShellService IShellService;
+typedef struct IShellService IShellService;
 #endif
 
 #ifndef __IBrowserService2_FWD_DEFINED__
 #define __IBrowserService2_FWD_DEFINED__
-typedef interface IBrowserService2 IBrowserService2;
+typedef struct IBrowserService2 IBrowserService2;
 #endif
 
 #ifndef __IBrowserService3_FWD_DEFINED__
 #define __IBrowserService3_FWD_DEFINED__
-typedef interface IBrowserService3 IBrowserService3;
+typedef struct IBrowserService3 IBrowserService3;
 #endif
 
 #include "objidl.h"
@@ -104,7 +104,7 @@
       HRESULT (WINAPI *GetPidl)(ITravelEntry *This,LPITEMIDLIST *ppidl);
     END_INTERFACE
   } ITravelEntryVtbl;
-  interface ITravelEntry {
+  struct ITravelEntry {
     CONST_VTBL struct ITravelEntryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -161,7 +161,7 @@
       HRESULT (WINAPI *Revert)(ITravelLog *This);
     END_INTERFACE
   } ITravelLogVtbl;
-  interface ITravelLog {
+  struct ITravelLog {
     CONST_VTBL struct ITravelLogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -237,7 +237,7 @@
       HRESULT (WINAPI *OnInvoke)(IExpDispSupport *This,DISPID dispidMember,REFIID iid,LCID lcid,WORD wFlags,DISPPARAMS *pdispparams,VARIANT *pVarResult,EXCEPINFO *pexcepinfo,UINT *puArgErr);
     END_INTERFACE
   } IExpDispSupportVtbl;
-  interface IExpDispSupport {
+  struct IExpDispSupport {
     CONST_VTBL struct IExpDispSupportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -366,7 +366,7 @@
       HRESULT (WINAPI *RegisterWindow)(IBrowserService *This,WINBOOL fForceRegister,int swc);
     END_INTERFACE
   } IBrowserServiceVtbl;
-  interface IBrowserService {
+  struct IBrowserService {
     CONST_VTBL struct IBrowserServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -484,7 +484,7 @@
       HRESULT (WINAPI *SetOwner)(IShellService *This,IUnknown *punkOwner);
     END_INTERFACE
   } IShellServiceVtbl;
-  interface IShellService {
+  struct IShellService {
     CONST_VTBL struct IShellServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -744,7 +744,7 @@
       HRESULT (WINAPI *v_CheckZoneCrossing)(IBrowserService2 *This,LPCITEMIDLIST pidl);
     END_INTERFACE
   } IBrowserService2Vtbl;
-  interface IBrowserService2 {
+  struct IBrowserService2 {
     CONST_VTBL struct IBrowserService2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1086,7 +1086,7 @@
       HRESULT (WINAPI *IEParseDisplayNameEx)(IBrowserService3 *This,UINT uiCP,LPCWSTR pwszPath,DWORD dwFlags,LPITEMIDLIST *ppidlOut);
     END_INTERFACE
   } IBrowserService3Vtbl;
-  interface IBrowserService3 {
+  struct IBrowserService3 {
     CONST_VTBL struct IBrowserService3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/shldisp.h b/mingw-w64-headers/include/shldisp.h
index 398de62..ff02a22 100755
--- a/mingw-w64-headers/include/shldisp.h
+++ b/mingw-w64-headers/include/shldisp.h
@@ -24,12 +24,12 @@
 
 #ifndef __IFolderViewOC_FWD_DEFINED__
 #define __IFolderViewOC_FWD_DEFINED__
-typedef interface IFolderViewOC IFolderViewOC;
+typedef struct IFolderViewOC IFolderViewOC;
 #endif
 
 #ifndef __DShellFolderViewEvents_FWD_DEFINED__
 #define __DShellFolderViewEvents_FWD_DEFINED__
-typedef interface DShellFolderViewEvents DShellFolderViewEvents;
+typedef struct DShellFolderViewEvents DShellFolderViewEvents;
 #endif
 
 #ifndef __ShellFolderViewOC_FWD_DEFINED__
@@ -43,52 +43,52 @@
 
 #ifndef __DFConstraint_FWD_DEFINED__
 #define __DFConstraint_FWD_DEFINED__
-typedef interface DFConstraint DFConstraint;
+typedef struct DFConstraint DFConstraint;
 #endif
 
 #ifndef __ISearchCommandExt_FWD_DEFINED__
 #define __ISearchCommandExt_FWD_DEFINED__
-typedef interface ISearchCommandExt ISearchCommandExt;
+typedef struct ISearchCommandExt ISearchCommandExt;
 #endif
 
 #ifndef __FolderItem_FWD_DEFINED__
 #define __FolderItem_FWD_DEFINED__
-typedef interface FolderItem FolderItem;
+typedef struct FolderItem FolderItem;
 #endif
 
 #ifndef __FolderItems_FWD_DEFINED__
 #define __FolderItems_FWD_DEFINED__
-typedef interface FolderItems FolderItems;
+typedef struct FolderItems FolderItems;
 #endif
 
 #ifndef __FolderItemVerb_FWD_DEFINED__
 #define __FolderItemVerb_FWD_DEFINED__
-typedef interface FolderItemVerb FolderItemVerb;
+typedef struct FolderItemVerb FolderItemVerb;
 #endif
 
 #ifndef __FolderItemVerbs_FWD_DEFINED__
 #define __FolderItemVerbs_FWD_DEFINED__
-typedef interface FolderItemVerbs FolderItemVerbs;
+typedef struct FolderItemVerbs FolderItemVerbs;
 #endif
 
 #ifndef __Folder_FWD_DEFINED__
 #define __Folder_FWD_DEFINED__
-typedef interface Folder Folder;
+typedef struct Folder Folder;
 #endif
 
 #ifndef __Folder2_FWD_DEFINED__
 #define __Folder2_FWD_DEFINED__
-typedef interface Folder2 Folder2;
+typedef struct Folder2 Folder2;
 #endif
 
 #ifndef __Folder3_FWD_DEFINED__
 #define __Folder3_FWD_DEFINED__
-typedef interface Folder3 Folder3;
+typedef struct Folder3 Folder3;
 #endif
 
 #ifndef __FolderItem2_FWD_DEFINED__
 #define __FolderItem2_FWD_DEFINED__
-typedef interface FolderItem2 FolderItem2;
+typedef struct FolderItem2 FolderItem2;
 #endif
 
 #ifndef __ShellFolderItem_FWD_DEFINED__
@@ -103,22 +103,22 @@
 
 #ifndef __FolderItems2_FWD_DEFINED__
 #define __FolderItems2_FWD_DEFINED__
-typedef interface FolderItems2 FolderItems2;
+typedef struct FolderItems2 FolderItems2;
 #endif
 
 #ifndef __FolderItems3_FWD_DEFINED__
 #define __FolderItems3_FWD_DEFINED__
-typedef interface FolderItems3 FolderItems3;
+typedef struct FolderItems3 FolderItems3;
 #endif
 
 #ifndef __IShellLinkDual_FWD_DEFINED__
 #define __IShellLinkDual_FWD_DEFINED__
-typedef interface IShellLinkDual IShellLinkDual;
+typedef struct IShellLinkDual IShellLinkDual;
 #endif
 
 #ifndef __IShellLinkDual2_FWD_DEFINED__
 #define __IShellLinkDual2_FWD_DEFINED__
-typedef interface IShellLinkDual2 IShellLinkDual2;
+typedef struct IShellLinkDual2 IShellLinkDual2;
 #endif
 
 #ifndef __ShellLinkObject_FWD_DEFINED__
@@ -132,12 +132,12 @@
 
 #ifndef __IShellFolderViewDual_FWD_DEFINED__
 #define __IShellFolderViewDual_FWD_DEFINED__
-typedef interface IShellFolderViewDual IShellFolderViewDual;
+typedef struct IShellFolderViewDual IShellFolderViewDual;
 #endif
 
 #ifndef __IShellFolderViewDual2_FWD_DEFINED__
 #define __IShellFolderViewDual2_FWD_DEFINED__
-typedef interface IShellFolderViewDual2 IShellFolderViewDual2;
+typedef struct IShellFolderViewDual2 IShellFolderViewDual2;
 #endif
 
 #ifndef __ShellFolderView_FWD_DEFINED__
@@ -151,22 +151,22 @@
 
 #ifndef __IShellDispatch_FWD_DEFINED__
 #define __IShellDispatch_FWD_DEFINED__
-typedef interface IShellDispatch IShellDispatch;
+typedef struct IShellDispatch IShellDispatch;
 #endif
 
 #ifndef __IShellDispatch2_FWD_DEFINED__
 #define __IShellDispatch2_FWD_DEFINED__
-typedef interface IShellDispatch2 IShellDispatch2;
+typedef struct IShellDispatch2 IShellDispatch2;
 #endif
 
 #ifndef __IShellDispatch3_FWD_DEFINED__
 #define __IShellDispatch3_FWD_DEFINED__
-typedef interface IShellDispatch3 IShellDispatch3;
+typedef struct IShellDispatch3 IShellDispatch3;
 #endif
 
 #ifndef __IShellDispatch4_FWD_DEFINED__
 #define __IShellDispatch4_FWD_DEFINED__
-typedef interface IShellDispatch4 IShellDispatch4;
+typedef struct IShellDispatch4 IShellDispatch4;
 #endif
 
 #ifndef __Shell_FWD_DEFINED__
@@ -198,7 +198,7 @@
 
 #ifndef __DSearchCommandEvents_FWD_DEFINED__
 #define __DSearchCommandEvents_FWD_DEFINED__
-typedef interface DSearchCommandEvents DSearchCommandEvents;
+typedef struct DSearchCommandEvents DSearchCommandEvents;
 #endif
 
 #ifndef __SearchCommand_FWD_DEFINED__
@@ -212,7 +212,7 @@
 
 #ifndef __IFileSearchBand_FWD_DEFINED__
 #define __IFileSearchBand_FWD_DEFINED__
-typedef interface IFileSearchBand IFileSearchBand;
+typedef struct IFileSearchBand IFileSearchBand;
 #endif
 
 #ifndef __FileSearchBand_FWD_DEFINED__
@@ -226,17 +226,17 @@
 
 #ifndef __IWebWizardHost_FWD_DEFINED__
 #define __IWebWizardHost_FWD_DEFINED__
-typedef interface IWebWizardHost IWebWizardHost;
+typedef struct IWebWizardHost IWebWizardHost;
 #endif
 
 #ifndef __INewWDEvents_FWD_DEFINED__
 #define __INewWDEvents_FWD_DEFINED__
-typedef interface INewWDEvents INewWDEvents;
+typedef struct INewWDEvents INewWDEvents;
 #endif
 
 #ifndef __IPassportClientServices_FWD_DEFINED__
 #define __IPassportClientServices_FWD_DEFINED__
-typedef interface IPassportClientServices IPassportClientServices;
+typedef struct IPassportClientServices IPassportClientServices;
 #endif
 
 #ifndef __PassportClientServices_FWD_DEFINED__
@@ -250,22 +250,22 @@
 
 #ifndef __IAutoComplete_FWD_DEFINED__
 #define __IAutoComplete_FWD_DEFINED__
-typedef interface IAutoComplete IAutoComplete;
+typedef struct IAutoComplete IAutoComplete;
 #endif
 
 #ifndef __IAutoComplete2_FWD_DEFINED__
 #define __IAutoComplete2_FWD_DEFINED__
-typedef interface IAutoComplete2 IAutoComplete2;
+typedef struct IAutoComplete2 IAutoComplete2;
 #endif
 
 #ifndef __IEnumACString_FWD_DEFINED__
 #define __IEnumACString_FWD_DEFINED__
-typedef interface IEnumACString IEnumACString;
+typedef struct IEnumACString IEnumACString;
 #endif
 
 #ifndef __IAsyncOperation_FWD_DEFINED__
 #define __IAsyncOperation_FWD_DEFINED__
-typedef interface IAsyncOperation IAsyncOperation;
+typedef struct IAsyncOperation IAsyncOperation;
 #endif
 
 #include "ocidl.h"
@@ -327,7 +327,7 @@
       HRESULT (WINAPI *SetFolderView)(IFolderViewOC *This,IDispatch *pdisp);
     END_INTERFACE
   } IFolderViewOCVtbl;
-  interface IFolderViewOC {
+  struct IFolderViewOC {
     CONST_VTBL struct IFolderViewOCVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -363,7 +363,7 @@
       HRESULT (WINAPI *Invoke)(DShellFolderViewEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DShellFolderViewEventsVtbl;
-  interface DShellFolderViewEvents {
+  struct DShellFolderViewEvents {
     CONST_VTBL struct DShellFolderViewEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -406,7 +406,7 @@
       HRESULT (WINAPI *get_Value)(DFConstraint *This,VARIANT *pv);
     END_INTERFACE
   } DFConstraintVtbl;
-  interface DFConstraint {
+  struct DFConstraint {
     CONST_VTBL struct DFConstraintVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -472,7 +472,7 @@
       HRESULT (WINAPI *GetNextConstraint)(ISearchCommandExt *This,VARIANT_BOOL fReset,DFConstraint **ppdfc);
     END_INTERFACE
   } ISearchCommandExtVtbl;
-  interface ISearchCommandExt {
+  struct ISearchCommandExt {
     CONST_VTBL struct ISearchCommandExtVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -575,7 +575,7 @@
       HRESULT (WINAPI *InvokeVerb)(FolderItem *This,VARIANT vVerb);
     END_INTERFACE
   } FolderItemVtbl;
-  interface FolderItem {
+  struct FolderItem {
     CONST_VTBL struct FolderItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -670,7 +670,7 @@
       HRESULT (WINAPI *_NewEnum)(FolderItems *This,IUnknown **ppunk);
     END_INTERFACE
   } FolderItemsVtbl;
-  interface FolderItems {
+  struct FolderItems {
     CONST_VTBL struct FolderItemsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -727,7 +727,7 @@
       HRESULT (WINAPI *DoIt)(FolderItemVerb *This);
     END_INTERFACE
   } FolderItemVerbVtbl;
-  interface FolderItemVerb {
+  struct FolderItemVerb {
     CONST_VTBL struct FolderItemVerbVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -783,7 +783,7 @@
       HRESULT (WINAPI *_NewEnum)(FolderItemVerbs *This,IUnknown **ppunk);
     END_INTERFACE
   } FolderItemVerbsVtbl;
-  interface FolderItemVerbs {
+  struct FolderItemVerbs {
     CONST_VTBL struct FolderItemVerbsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -852,7 +852,7 @@
       HRESULT (WINAPI *GetDetailsOf)(Folder *This,VARIANT vItem,int iColumn,BSTR *pbs);
     END_INTERFACE
   } FolderVtbl;
-  interface Folder {
+  struct Folder {
     CONST_VTBL struct FolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -936,7 +936,7 @@
       HRESULT (WINAPI *DismissedWebViewBarricade)(Folder2 *This);
     END_INTERFACE
   } Folder2Vtbl;
-  interface Folder2 {
+  struct Folder2 {
     CONST_VTBL struct Folder2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1014,7 +1014,7 @@
       HRESULT (WINAPI *put_ShowWebViewBarricade)(Folder3 *This,VARIANT_BOOL bShowWebViewBarricade);
     END_INTERFACE
   } Folder3Vtbl;
-  interface Folder3 {
+  struct Folder3 {
     CONST_VTBL struct Folder3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1090,7 +1090,7 @@
       HRESULT (WINAPI *ExtendedProperty)(FolderItem2 *This,BSTR bstrPropName,VARIANT *pvRet);
     END_INTERFACE
   } FolderItem2Vtbl;
-  interface FolderItem2 {
+  struct FolderItem2 {
     CONST_VTBL struct FolderItem2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1159,7 +1159,7 @@
       HRESULT (WINAPI *InvokeVerbEx)(FolderItems2 *This,VARIANT vVerb,VARIANT vArgs);
     END_INTERFACE
   } FolderItems2Vtbl;
-  interface FolderItems2 {
+  struct FolderItems2 {
     CONST_VTBL struct FolderItems2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1211,7 +1211,7 @@
       HRESULT (WINAPI *get_Verbs)(FolderItems3 *This,FolderItemVerbs **ppfic);
     END_INTERFACE
   } FolderItems3Vtbl;
-  interface FolderItems3 {
+  struct FolderItems3 {
     CONST_VTBL struct FolderItems3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1289,7 +1289,7 @@
       HRESULT (WINAPI *Save)(IShellLinkDual *This,VARIANT vWhere);
     END_INTERFACE
   } IShellLinkDualVtbl;
-  interface IShellLinkDual {
+  struct IShellLinkDual {
     CONST_VTBL struct IShellLinkDualVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1389,7 +1389,7 @@
       HRESULT (WINAPI *get_Target)(IShellLinkDual2 *This,FolderItem **ppfi);
     END_INTERFACE
   } IShellLinkDual2Vtbl;
-  interface IShellLinkDual2 {
+  struct IShellLinkDual2 {
     CONST_VTBL struct IShellLinkDual2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1465,7 +1465,7 @@
       HRESULT (WINAPI *get_ViewOptions)(IShellFolderViewDual *This,long *plViewOptions);
     END_INTERFACE
   } IShellFolderViewDualVtbl;
-  interface IShellFolderViewDual {
+  struct IShellFolderViewDual {
     CONST_VTBL struct IShellFolderViewDualVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1541,7 +1541,7 @@
       HRESULT (WINAPI *SelectItemRelative)(IShellFolderViewDual2 *This,int iRelative);
     END_INTERFACE
   } IShellFolderViewDual2Vtbl;
-  interface IShellFolderViewDual2 {
+  struct IShellFolderViewDual2 {
     CONST_VTBL struct IShellFolderViewDual2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1644,7 +1644,7 @@
       HRESULT (WINAPI *ControlPanelItem)(IShellDispatch *This,BSTR szDir);
     END_INTERFACE
   } IShellDispatchVtbl;
-  interface IShellDispatch {
+  struct IShellDispatch {
     CONST_VTBL struct IShellDispatchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1788,7 +1788,7 @@
       HRESULT (WINAPI *ShowBrowserBar)(IShellDispatch2 *This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess);
     END_INTERFACE
   } IShellDispatch2Vtbl;
-  interface IShellDispatch2 {
+  struct IShellDispatch2 {
     CONST_VTBL struct IShellDispatch2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1906,7 +1906,7 @@
       HRESULT (WINAPI *AddToRecent)(IShellDispatch3 *This,VARIANT varFile,BSTR bstrCategory);
     END_INTERFACE
   } IShellDispatch3Vtbl;
-  interface IShellDispatch3 {
+  struct IShellDispatch3 {
     CONST_VTBL struct IShellDispatch3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2016,7 +2016,7 @@
       HRESULT (WINAPI *GetSetting)(IShellDispatch4 *This,long lSetting,VARIANT_BOOL *pResult);
     END_INTERFACE
   } IShellDispatch4Vtbl;
-  interface IShellDispatch4 {
+  struct IShellDispatch4 {
     CONST_VTBL struct IShellDispatch4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2107,7 +2107,7 @@
       HRESULT (WINAPI *Invoke)(DSearchCommandEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } DSearchCommandEventsVtbl;
-  interface DSearchCommandEvents {
+  struct DSearchCommandEvents {
     CONST_VTBL struct DSearchCommandEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2156,7 +2156,7 @@
       HRESULT (WINAPI *get_QueryFile)(IFileSearchBand *This,VARIANT *pvarFile);
     END_INTERFACE
   } IFileSearchBandVtbl;
-  interface IFileSearchBand {
+  struct IFileSearchBand {
     CONST_VTBL struct IFileSearchBandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2228,7 +2228,7 @@
       HRESULT (WINAPI *SetHeaderText)(IWebWizardHost *This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle);
     END_INTERFACE
   } IWebWizardHostVtbl;
-  interface IWebWizardHost {
+  struct IWebWizardHost {
     CONST_VTBL struct IWebWizardHostVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2300,7 +2300,7 @@
       HRESULT (WINAPI *PassportAuthenticate)(INewWDEvents *This,BSTR bstrSignInUrl,VARIANT_BOOL *pvfAuthenitcated);
     END_INTERFACE
   } INewWDEventsVtbl;
-  interface INewWDEvents {
+  struct INewWDEvents {
     CONST_VTBL struct INewWDEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2348,7 +2348,7 @@
       HRESULT (WINAPI *MemberExists)(IPassportClientServices *This,BSTR bstrUser,BSTR bstrPassword,VARIANT_BOOL *pvfExists);
     END_INTERFACE
   } IPassportClientServicesVtbl;
-  interface IPassportClientServices {
+  struct IPassportClientServices {
     CONST_VTBL struct IPassportClientServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2395,7 +2395,7 @@
       HRESULT (WINAPI *Enable)(IAutoComplete *This,WINBOOL fEnable);
     END_INTERFACE
   } IAutoCompleteVtbl;
-  interface IAutoComplete {
+  struct IAutoComplete {
     CONST_VTBL struct IAutoCompleteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2440,7 +2440,7 @@
       HRESULT (WINAPI *GetOptions)(IAutoComplete2 *This,DWORD *pdwFlag);
     END_INTERFACE
   } IAutoComplete2Vtbl;
-  interface IAutoComplete2 {
+  struct IAutoComplete2 {
     CONST_VTBL struct IAutoComplete2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2493,7 +2493,7 @@
       HRESULT (WINAPI *GetEnumOptions)(IEnumACString *This,DWORD *pdwOptions);
     END_INTERFACE
   } IEnumACStringVtbl;
-  interface IEnumACString {
+  struct IEnumACString {
     CONST_VTBL struct IEnumACStringVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2546,7 +2546,7 @@
       HRESULT (WINAPI *EndOperation)(IAsyncOperation *This,HRESULT hResult,IBindCtx *pbcReserved,DWORD dwEffects);
     END_INTERFACE
   } IAsyncOperationVtbl;
-  interface IAsyncOperation {
+  struct IAsyncOperation {
     CONST_VTBL struct IAsyncOperationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/shlobj.h b/mingw-w64-headers/include/shlobj.h
index b108da8..c6fcd00 100755
--- a/mingw-w64-headers/include/shlobj.h
+++ b/mingw-w64-headers/include/shlobj.h
@@ -2773,7 +2773,7 @@
 
 SHDOCAPI_(WINBOOL) ImportPrivacySettings(LPCWSTR szFilename,WINBOOL *pfParsePrivacyPreferences,WINBOOL *pfParsePerSiteRules);
 #ifndef IEnumPrivacyRecords
-typedef interface IEnumPrivacyRecords IEnumPrivacyRecords;
+typedef struct IEnumPrivacyRecords IEnumPrivacyRecords;
 #endif
 SHDOCAPI DoPrivacyDlg(HWND hwndParent,LPOLESTR pszUrl,IEnumPrivacyRecords *pPrivacyEnum,WINBOOL fReportAllSites);
 #endif
diff --git a/mingw-w64-headers/include/shobjidl.h b/mingw-w64-headers/include/shobjidl.h
index 2f55e7d..68a2351 100755
--- a/mingw-w64-headers/include/shobjidl.h
+++ b/mingw-w64-headers/include/shobjidl.h
@@ -24,342 +24,342 @@
 
 #ifndef __IPersistFolder_FWD_DEFINED__
 #define __IPersistFolder_FWD_DEFINED__
-typedef interface IPersistFolder IPersistFolder;
+typedef struct IPersistFolder IPersistFolder;
 #endif
 
 #ifndef __IPersistFolder2_FWD_DEFINED__
 #define __IPersistFolder2_FWD_DEFINED__
-typedef interface IPersistFolder2 IPersistFolder2;
+typedef struct IPersistFolder2 IPersistFolder2;
 #endif
 
 #ifndef __IPersistIDList_FWD_DEFINED__
 #define __IPersistIDList_FWD_DEFINED__
-typedef interface IPersistIDList IPersistIDList;
+typedef struct IPersistIDList IPersistIDList;
 #endif
 
 #ifndef __IEnumIDList_FWD_DEFINED__
 #define __IEnumIDList_FWD_DEFINED__
-typedef interface IEnumIDList IEnumIDList;
+typedef struct IEnumIDList IEnumIDList;
 #endif
 
 #ifndef __IShellFolder_FWD_DEFINED__
 #define __IShellFolder_FWD_DEFINED__
-typedef interface IShellFolder IShellFolder;
+typedef struct IShellFolder IShellFolder;
 #endif
 
 #ifndef __IEnumExtraSearch_FWD_DEFINED__
 #define __IEnumExtraSearch_FWD_DEFINED__
-typedef interface IEnumExtraSearch IEnumExtraSearch;
+typedef struct IEnumExtraSearch IEnumExtraSearch;
 #endif
 
 #ifndef __IShellFolder2_FWD_DEFINED__
 #define __IShellFolder2_FWD_DEFINED__
-typedef interface IShellFolder2 IShellFolder2;
+typedef struct IShellFolder2 IShellFolder2;
 #endif
 
 #ifndef __IShellView_FWD_DEFINED__
 #define __IShellView_FWD_DEFINED__
-typedef interface IShellView IShellView;
+typedef struct IShellView IShellView;
 #endif
 
 #ifndef __IShellView2_FWD_DEFINED__
 #define __IShellView2_FWD_DEFINED__
-typedef interface IShellView2 IShellView2;
+typedef struct IShellView2 IShellView2;
 #endif
 
 #ifndef __IFolderView_FWD_DEFINED__
 #define __IFolderView_FWD_DEFINED__
-typedef interface IFolderView IFolderView;
+typedef struct IFolderView IFolderView;
 #endif
 
 #ifndef __IFolderFilterSite_FWD_DEFINED__
 #define __IFolderFilterSite_FWD_DEFINED__
-typedef interface IFolderFilterSite IFolderFilterSite;
+typedef struct IFolderFilterSite IFolderFilterSite;
 #endif
 
 #ifndef __IFolderFilter_FWD_DEFINED__
 #define __IFolderFilter_FWD_DEFINED__
-typedef interface IFolderFilter IFolderFilter;
+typedef struct IFolderFilter IFolderFilter;
 #endif
 
 #ifndef __IShellBrowser_FWD_DEFINED__
 #define __IShellBrowser_FWD_DEFINED__
-typedef interface IShellBrowser IShellBrowser;
+typedef struct IShellBrowser IShellBrowser;
 #endif
 
 #ifndef __IProfferService_FWD_DEFINED__
 #define __IProfferService_FWD_DEFINED__
-typedef interface IProfferService IProfferService;
+typedef struct IProfferService IProfferService;
 #endif
 
 #ifndef __IPropertyUI_FWD_DEFINED__
 #define __IPropertyUI_FWD_DEFINED__
-typedef interface IPropertyUI IPropertyUI;
+typedef struct IPropertyUI IPropertyUI;
 #endif
 
 #ifndef __ICategoryProvider_FWD_DEFINED__
 #define __ICategoryProvider_FWD_DEFINED__
-typedef interface ICategoryProvider ICategoryProvider;
+typedef struct ICategoryProvider ICategoryProvider;
 #endif
 
 #ifndef __ICategorizer_FWD_DEFINED__
 #define __ICategorizer_FWD_DEFINED__
-typedef interface ICategorizer ICategorizer;
+typedef struct ICategorizer ICategorizer;
 #endif
 
 #ifndef __IShellLinkA_FWD_DEFINED__
 #define __IShellLinkA_FWD_DEFINED__
-typedef interface IShellLinkA IShellLinkA;
+typedef struct IShellLinkA IShellLinkA;
 #endif
 
 #ifndef __IShellLinkW_FWD_DEFINED__
 #define __IShellLinkW_FWD_DEFINED__
-typedef interface IShellLinkW IShellLinkW;
+typedef struct IShellLinkW IShellLinkW;
 #endif
 
 #ifndef __IActionProgressDialog_FWD_DEFINED__
 #define __IActionProgressDialog_FWD_DEFINED__
-typedef interface IActionProgressDialog IActionProgressDialog;
+typedef struct IActionProgressDialog IActionProgressDialog;
 #endif
 
 #ifndef __IHWEventHandler_FWD_DEFINED__
 #define __IHWEventHandler_FWD_DEFINED__
-typedef interface IHWEventHandler IHWEventHandler;
+typedef struct IHWEventHandler IHWEventHandler;
 #endif
 
 #ifndef __IQueryCancelAutoPlay_FWD_DEFINED__
 #define __IQueryCancelAutoPlay_FWD_DEFINED__
-typedef interface IQueryCancelAutoPlay IQueryCancelAutoPlay;
+typedef struct IQueryCancelAutoPlay IQueryCancelAutoPlay;
 #endif
 
 #ifndef __IActionProgress_FWD_DEFINED__
 #define __IActionProgress_FWD_DEFINED__
-typedef interface IActionProgress IActionProgress;
+typedef struct IActionProgress IActionProgress;
 #endif
 
 #ifndef __IShellExtInit_FWD_DEFINED__
 #define __IShellExtInit_FWD_DEFINED__
-typedef interface IShellExtInit IShellExtInit;
+typedef struct IShellExtInit IShellExtInit;
 #endif
 
 #ifndef __IShellPropSheetExt_FWD_DEFINED__
 #define __IShellPropSheetExt_FWD_DEFINED__
-typedef interface IShellPropSheetExt IShellPropSheetExt;
+typedef struct IShellPropSheetExt IShellPropSheetExt;
 #endif
 
 #ifndef __IRemoteComputer_FWD_DEFINED__
 #define __IRemoteComputer_FWD_DEFINED__
-typedef interface IRemoteComputer IRemoteComputer;
+typedef struct IRemoteComputer IRemoteComputer;
 #endif
 
 #ifndef __IQueryContinue_FWD_DEFINED__
 #define __IQueryContinue_FWD_DEFINED__
-typedef interface IQueryContinue IQueryContinue;
+typedef struct IQueryContinue IQueryContinue;
 #endif
 
 #ifndef __IUserNotification_FWD_DEFINED__
 #define __IUserNotification_FWD_DEFINED__
-typedef interface IUserNotification IUserNotification;
+typedef struct IUserNotification IUserNotification;
 #endif
 
 #ifndef __IItemNameLimits_FWD_DEFINED__
 #define __IItemNameLimits_FWD_DEFINED__
-typedef interface IItemNameLimits IItemNameLimits;
+typedef struct IItemNameLimits IItemNameLimits;
 #endif
 
 #ifndef __INetCrawler_FWD_DEFINED__
 #define __INetCrawler_FWD_DEFINED__
-typedef interface INetCrawler INetCrawler;
+typedef struct INetCrawler INetCrawler;
 #endif
 
 #ifndef __IExtractImage_FWD_DEFINED__
 #define __IExtractImage_FWD_DEFINED__
-typedef interface IExtractImage IExtractImage;
+typedef struct IExtractImage IExtractImage;
 #endif
 
 #ifndef __IExtractImage2_FWD_DEFINED__
 #define __IExtractImage2_FWD_DEFINED__
-typedef interface IExtractImage2 IExtractImage2;
+typedef struct IExtractImage2 IExtractImage2;
 #endif
 
 #ifndef __IUserEventTimerCallback_FWD_DEFINED__
 #define __IUserEventTimerCallback_FWD_DEFINED__
-typedef interface IUserEventTimerCallback IUserEventTimerCallback;
+typedef struct IUserEventTimerCallback IUserEventTimerCallback;
 #endif
 
 #ifndef __IUserEventTimer_FWD_DEFINED__
 #define __IUserEventTimer_FWD_DEFINED__
-typedef interface IUserEventTimer IUserEventTimer;
+typedef struct IUserEventTimer IUserEventTimer;
 #endif
 
 #ifndef __IDockingWindow_FWD_DEFINED__
 #define __IDockingWindow_FWD_DEFINED__
-typedef interface IDockingWindow IDockingWindow;
+typedef struct IDockingWindow IDockingWindow;
 #endif
 
 #ifndef __IDeskBand_FWD_DEFINED__
 #define __IDeskBand_FWD_DEFINED__
-typedef interface IDeskBand IDeskBand;
+typedef struct IDeskBand IDeskBand;
 #endif
 
 #ifndef __ITaskbarList_FWD_DEFINED__
 #define __ITaskbarList_FWD_DEFINED__
-typedef interface ITaskbarList ITaskbarList;
+typedef struct ITaskbarList ITaskbarList;
 #endif
 
 #ifndef __ITaskbarList2_FWD_DEFINED__
 #define __ITaskbarList2_FWD_DEFINED__
-typedef interface ITaskbarList2 ITaskbarList2;
+typedef struct ITaskbarList2 ITaskbarList2;
 #endif
 
 #ifndef __ICDBurn_FWD_DEFINED__
 #define __ICDBurn_FWD_DEFINED__
-typedef interface ICDBurn ICDBurn;
+typedef struct ICDBurn ICDBurn;
 #endif
 
 #ifndef __IWizardSite_FWD_DEFINED__
 #define __IWizardSite_FWD_DEFINED__
-typedef interface IWizardSite IWizardSite;
+typedef struct IWizardSite IWizardSite;
 #endif
 
 #ifndef __IWizardExtension_FWD_DEFINED__
 #define __IWizardExtension_FWD_DEFINED__
-typedef interface IWizardExtension IWizardExtension;
+typedef struct IWizardExtension IWizardExtension;
 #endif
 
 #ifndef __IWebWizardExtension_FWD_DEFINED__
 #define __IWebWizardExtension_FWD_DEFINED__
-typedef interface IWebWizardExtension IWebWizardExtension;
+typedef struct IWebWizardExtension IWebWizardExtension;
 #endif
 
 #ifndef __IPublishingWizard_FWD_DEFINED__
 #define __IPublishingWizard_FWD_DEFINED__
-typedef interface IPublishingWizard IPublishingWizard;
+typedef struct IPublishingWizard IPublishingWizard;
 #endif
 
 #ifndef __IFolderViewHost_FWD_DEFINED__
 #define __IFolderViewHost_FWD_DEFINED__
-typedef interface IFolderViewHost IFolderViewHost;
+typedef struct IFolderViewHost IFolderViewHost;
 #endif
 
 #ifndef __IAutoCompleteDropDown_FWD_DEFINED__
 #define __IAutoCompleteDropDown_FWD_DEFINED__
-typedef interface IAutoCompleteDropDown IAutoCompleteDropDown;
+typedef struct IAutoCompleteDropDown IAutoCompleteDropDown;
 #endif
 
 #ifndef __IModalWindow_FWD_DEFINED__
 #define __IModalWindow_FWD_DEFINED__
-typedef interface IModalWindow IModalWindow;
+typedef struct IModalWindow IModalWindow;
 #endif
 
 #ifndef __IPassportWizard_FWD_DEFINED__
 #define __IPassportWizard_FWD_DEFINED__
-typedef interface IPassportWizard IPassportWizard;
+typedef struct IPassportWizard IPassportWizard;
 #endif
 
 #ifndef __ICDBurnExt_FWD_DEFINED__
 #define __ICDBurnExt_FWD_DEFINED__
-typedef interface ICDBurnExt ICDBurnExt;
+typedef struct ICDBurnExt ICDBurnExt;
 #endif
 
 #ifndef __IDVGetEnum_FWD_DEFINED__
 #define __IDVGetEnum_FWD_DEFINED__
-typedef interface IDVGetEnum IDVGetEnum;
+typedef struct IDVGetEnum IDVGetEnum;
 #endif
 
 #ifndef __IInsertItem_FWD_DEFINED__
 #define __IInsertItem_FWD_DEFINED__
-typedef interface IInsertItem IInsertItem;
+typedef struct IInsertItem IInsertItem;
 #endif
 
 #ifndef __IDeskBar_FWD_DEFINED__
 #define __IDeskBar_FWD_DEFINED__
-typedef interface IDeskBar IDeskBar;
+typedef struct IDeskBar IDeskBar;
 #endif
 
 #ifndef __IMenuBand_FWD_DEFINED__
 #define __IMenuBand_FWD_DEFINED__
-typedef interface IMenuBand IMenuBand;
+typedef struct IMenuBand IMenuBand;
 #endif
 
 #ifndef __IFolderBandPriv_FWD_DEFINED__
 #define __IFolderBandPriv_FWD_DEFINED__
-typedef interface IFolderBandPriv IFolderBandPriv;
+typedef struct IFolderBandPriv IFolderBandPriv;
 #endif
 
 #ifndef __IBandSite_FWD_DEFINED__
 #define __IBandSite_FWD_DEFINED__
-typedef interface IBandSite IBandSite;
+typedef struct IBandSite IBandSite;
 #endif
 
 #ifndef __INamespaceWalkCB_FWD_DEFINED__
 #define __INamespaceWalkCB_FWD_DEFINED__
-typedef interface INamespaceWalkCB INamespaceWalkCB;
+typedef struct INamespaceWalkCB INamespaceWalkCB;
 #endif
 
 #ifndef __INamespaceWalk_FWD_DEFINED__
 #define __INamespaceWalk_FWD_DEFINED__
-typedef interface INamespaceWalk INamespaceWalk;
+typedef struct INamespaceWalk INamespaceWalk;
 #endif
 
 #ifndef __IRegTreeItem_FWD_DEFINED__
 #define __IRegTreeItem_FWD_DEFINED__
-typedef interface IRegTreeItem IRegTreeItem;
+typedef struct IRegTreeItem IRegTreeItem;
 #endif
 
 #ifndef __IMenuPopup_FWD_DEFINED__
 #define __IMenuPopup_FWD_DEFINED__
-typedef interface IMenuPopup IMenuPopup;
+typedef struct IMenuPopup IMenuPopup;
 #endif
 
 #ifndef __IShellItem_FWD_DEFINED__
 #define __IShellItem_FWD_DEFINED__
-typedef interface IShellItem IShellItem;
+typedef struct IShellItem IShellItem;
 #endif
 
 #ifndef __IImageRecompress_FWD_DEFINED__
 #define __IImageRecompress_FWD_DEFINED__
-typedef interface IImageRecompress IImageRecompress;
+typedef struct IImageRecompress IImageRecompress;
 #endif
 
 #ifndef __IDefViewSafety_FWD_DEFINED__
 #define __IDefViewSafety_FWD_DEFINED__
-typedef interface IDefViewSafety IDefViewSafety;
+typedef struct IDefViewSafety IDefViewSafety;
 #endif
 
 #ifndef __IContextMenuSite_FWD_DEFINED__
 #define __IContextMenuSite_FWD_DEFINED__
-typedef interface IContextMenuSite IContextMenuSite;
+typedef struct IContextMenuSite IContextMenuSite;
 #endif
 
 #ifndef __IDelegateFolder_FWD_DEFINED__
 #define __IDelegateFolder_FWD_DEFINED__
-typedef interface IDelegateFolder IDelegateFolder;
+typedef struct IDelegateFolder IDelegateFolder;
 #endif
 
 #ifndef __IBrowserFrameOptions_FWD_DEFINED__
 #define __IBrowserFrameOptions_FWD_DEFINED__
-typedef interface IBrowserFrameOptions IBrowserFrameOptions;
+typedef struct IBrowserFrameOptions IBrowserFrameOptions;
 #endif
 
 #ifndef __INewWindowManager_FWD_DEFINED__
 #define __INewWindowManager_FWD_DEFINED__
-typedef interface INewWindowManager INewWindowManager;
+typedef struct INewWindowManager INewWindowManager;
 #endif
 
 #ifndef __IShellMenuCallback_FWD_DEFINED__
 #define __IShellMenuCallback_FWD_DEFINED__
-typedef interface IShellMenuCallback IShellMenuCallback;
+typedef struct IShellMenuCallback IShellMenuCallback;
 #endif
 
 #ifndef __IAttachmentExecute_FWD_DEFINED__
 #define __IAttachmentExecute_FWD_DEFINED__
-typedef interface IAttachmentExecute IAttachmentExecute;
+typedef struct IAttachmentExecute IAttachmentExecute;
 #endif
 
 #ifndef __IShellMenu_FWD_DEFINED__
 #define __IShellMenu_FWD_DEFINED__
-typedef interface IShellMenu IShellMenu;
+typedef struct IShellMenu IShellMenu;
 #endif
 
 #ifndef __QueryCancelAutoPlay_FWD_DEFINED__
@@ -640,7 +640,7 @@
       HRESULT (WINAPI *Initialize)(IPersistFolder *This,LPCITEMIDLIST pidl);
     END_INTERFACE
   } IPersistFolderVtbl;
-  interface IPersistFolder {
+  struct IPersistFolder {
     CONST_VTBL struct IPersistFolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -678,7 +678,7 @@
       HRESULT (WINAPI *GetCurFolder)(IPersistFolder2 *This,LPITEMIDLIST *ppidl);
     END_INTERFACE
   } IPersistFolder2Vtbl;
-  interface IPersistFolder2 {
+  struct IPersistFolder2 {
     CONST_VTBL struct IPersistFolder2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -719,7 +719,7 @@
       HRESULT (WINAPI *GetIDList)(IPersistIDList *This,LPITEMIDLIST *ppidl);
     END_INTERFACE
   } IPersistIDListVtbl;
-  interface IPersistIDList {
+  struct IPersistIDList {
     CONST_VTBL struct IPersistIDListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -760,7 +760,7 @@
       HRESULT (WINAPI *Clone)(IEnumIDList *This,IEnumIDList **ppenum);
     END_INTERFACE
   } IEnumIDListVtbl;
-  interface IEnumIDList {
+  struct IEnumIDList {
     CONST_VTBL struct IEnumIDListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -878,7 +878,7 @@
       HRESULT (WINAPI *SetNameOf)(IShellFolder *This,HWND hwnd,LPCITEMIDLIST pidl,LPCOLESTR pszName,SHGDNF uFlags,LPITEMIDLIST *ppidlOut);
     END_INTERFACE
   } IShellFolderVtbl;
-  interface IShellFolder {
+  struct IShellFolder {
     CONST_VTBL struct IShellFolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -956,7 +956,7 @@
       HRESULT (WINAPI *Clone)(IEnumExtraSearch *This,IEnumExtraSearch **ppenum);
     END_INTERFACE
   } IEnumExtraSearchVtbl;
-  interface IEnumExtraSearch {
+  struct IEnumExtraSearch {
     CONST_VTBL struct IEnumExtraSearchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1035,7 +1035,7 @@
       HRESULT (WINAPI *MapColumnToSCID)(IShellFolder2 *This,UINT iColumn,SHCOLUMNID *pscid);
     END_INTERFACE
   } IShellFolder2Vtbl;
-  interface IShellFolder2 {
+  struct IShellFolder2 {
     CONST_VTBL struct IShellFolder2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1173,7 +1173,7 @@
       HRESULT (WINAPI *GetItemObject)(IShellView *This,UINT uItem,REFIID riid,void **ppv);
     END_INTERFACE
   } IShellViewVtbl;
-  interface IShellView {
+  struct IShellView {
     CONST_VTBL struct IShellViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1274,7 +1274,7 @@
       HRESULT (WINAPI *SelectAndPositionItem)(IShellView2 *This,LPCITEMIDLIST pidlItem,UINT uFlags,POINT *ppt);
     END_INTERFACE
   } IShellView2Vtbl;
-  interface IShellView2 {
+  struct IShellView2 {
     CONST_VTBL struct IShellView2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1353,7 +1353,7 @@
       HRESULT (WINAPI *SelectAndPositionItems)(IFolderView *This,UINT cidl,LPCITEMIDLIST *apidl,POINT *apt,DWORD dwFlags);
     END_INTERFACE
   } IFolderViewVtbl;
-  interface IFolderView {
+  struct IFolderView {
     CONST_VTBL struct IFolderViewVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1430,7 +1430,7 @@
       HRESULT (WINAPI *SetFilter)(IFolderFilterSite *This,IUnknown *punk);
     END_INTERFACE
   } IFolderFilterSiteVtbl;
-  interface IFolderFilterSite {
+  struct IFolderFilterSite {
     CONST_VTBL struct IFolderFilterSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1463,7 +1463,7 @@
       HRESULT (WINAPI *GetEnumFlags)(IFolderFilter *This,IShellFolder *psf,LPCITEMIDLIST pidlFolder,HWND *phwnd,DWORD *pgrfFlags);
     END_INTERFACE
   } IFolderFilterVtbl;
-  interface IFolderFilter {
+  struct IFolderFilter {
     CONST_VTBL struct IFolderFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1562,7 +1562,7 @@
       HRESULT (WINAPI *SetToolbarItems)(IShellBrowser *This,LPTBBUTTONSB lpButtons,UINT nButtons,UINT uFlags);
     END_INTERFACE
   } IShellBrowserVtbl;
-  interface IShellBrowser {
+  struct IShellBrowser {
     CONST_VTBL struct IShellBrowserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1637,7 +1637,7 @@
       HRESULT (WINAPI *RevokeService)(IProfferService *This,DWORD dwCookie);
     END_INTERFACE
   } IProfferServiceVtbl;
-  interface IProfferService {
+  struct IProfferService {
     CONST_VTBL struct IProfferServiceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1700,7 +1700,7 @@
       HRESULT (WINAPI *GetHelpInfo)(IPropertyUI *This,REFFMTID fmtid,PROPID pid,LPWSTR pwszHelpFile,DWORD cch,UINT *puHelpID);
     END_INTERFACE
   } IPropertyUIVtbl;
-  interface IPropertyUI {
+  struct IPropertyUI {
     CONST_VTBL struct IPropertyUIVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1765,7 +1765,7 @@
       HRESULT (WINAPI *CreateCategory)(ICategoryProvider *This,GUID *pguid,REFIID riid,void **ppv);
     END_INTERFACE
   } ICategoryProviderVtbl;
-  interface ICategoryProvider {
+  struct ICategoryProvider {
     CONST_VTBL struct ICategoryProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1832,7 +1832,7 @@
       HRESULT (WINAPI *CompareCategory)(ICategorizer *This,CATSORT_FLAGS csfFlags,DWORD dwCategoryId1,DWORD dwCategoryId2);
     END_INTERFACE
   } ICategorizerVtbl;
-  interface ICategorizer {
+  struct ICategorizer {
     CONST_VTBL struct ICategorizerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1924,7 +1924,7 @@
       HRESULT (WINAPI *SetPath)(IShellLinkA *This,LPCSTR pszFile);
     END_INTERFACE
   } IShellLinkAVtbl;
-  interface IShellLinkA {
+  struct IShellLinkA {
     CONST_VTBL struct IShellLinkAVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2040,7 +2040,7 @@
       HRESULT (WINAPI *SetPath)(IShellLinkW *This,LPCWSTR pszFile);
     END_INTERFACE
   } IShellLinkWVtbl;
-  interface IShellLinkW {
+  struct IShellLinkW {
     CONST_VTBL struct IShellLinkWVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2129,7 +2129,7 @@
       HRESULT (WINAPI *Stop)(IActionProgressDialog *This);
     END_INTERFACE
   } IActionProgressDialogVtbl;
-  interface IActionProgressDialog {
+  struct IActionProgressDialog {
     CONST_VTBL struct IActionProgressDialogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2167,7 +2167,7 @@
       HRESULT (WINAPI *HandleEventWithContent)(IHWEventHandler *This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject);
     END_INTERFACE
   } IHWEventHandlerVtbl;
-  interface IHWEventHandler {
+  struct IHWEventHandler {
     CONST_VTBL struct IHWEventHandlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2216,7 +2216,7 @@
       HRESULT (WINAPI *AllowAutoPlay)(IQueryCancelAutoPlay *This,LPCWSTR pszPath,DWORD dwContentType,LPCWSTR pszLabel,DWORD dwSerialNumber);
     END_INTERFACE
   } IQueryCancelAutoPlayVtbl;
-  interface IQueryCancelAutoPlay {
+  struct IQueryCancelAutoPlay {
     CONST_VTBL struct IQueryCancelAutoPlayVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2237,7 +2237,7 @@
   };
   typedef DWORD SPBEGINF;
 
-  typedef enum _SPACTION { 
+  typedef enum _SPACTION {
     SPACTION_NONE = 0,SPACTION_MOVING = SPACTION_NONE + 1,SPACTION_COPYING = SPACTION_MOVING + 1,SPACTION_RECYCLING = SPACTION_COPYING + 1,
     SPACTION_APPLYINGATTRIBS = SPACTION_RECYCLING + 1,SPACTION_DOWNLOADING = SPACTION_APPLYINGATTRIBS + 1,
     SPACTION_SEARCHING_INTERNET = SPACTION_DOWNLOADING + 1,SPACTION_CALCULATING = SPACTION_SEARCHING_INTERNET + 1,
@@ -2272,7 +2272,7 @@
       HRESULT (WINAPI *End)(IActionProgress *This);
     END_INTERFACE
   } IActionProgressVtbl;
-  interface IActionProgress {
+  struct IActionProgress {
     CONST_VTBL struct IActionProgressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2318,7 +2318,7 @@
       HRESULT (WINAPI *Initialize)(IShellExtInit *This,LPCITEMIDLIST pidlFolder,IDataObject *pdtobj,HKEY hkeyProgID);
     END_INTERFACE
   } IShellExtInitVtbl;
-  interface IShellExtInit {
+  struct IShellExtInit {
     CONST_VTBL struct IShellExtInitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2360,7 +2360,7 @@
       HRESULT (WINAPI *ReplacePage)(IShellPropSheetExt *This,EXPPS uPageID,LPFNSVADDPROPSHEETPAGE pfnReplaceWith,LPARAM lParam);
     END_INTERFACE
   } IShellPropSheetExtVtbl;
-  interface IShellPropSheetExt {
+  struct IShellPropSheetExt {
     CONST_VTBL struct IShellPropSheetExtVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2398,7 +2398,7 @@
       HRESULT (WINAPI *Initialize)(IRemoteComputer *This,LPCWSTR pszMachine,WINBOOL bEnumerating);
     END_INTERFACE
   } IRemoteComputerVtbl;
-  interface IRemoteComputer {
+  struct IRemoteComputer {
     CONST_VTBL struct IRemoteComputerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2429,7 +2429,7 @@
       HRESULT (WINAPI *QueryContinue)(IQueryContinue *This);
     END_INTERFACE
   } IQueryContinueVtbl;
-  interface IQueryContinue {
+  struct IQueryContinue {
     CONST_VTBL struct IQueryContinueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2468,7 +2468,7 @@
       HRESULT (WINAPI *PlaySound)(IUserNotification *This,LPCWSTR pszSoundName);
     END_INTERFACE
   } IUserNotificationVtbl;
-  interface IUserNotification {
+  struct IUserNotification {
     CONST_VTBL struct IUserNotificationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2513,7 +2513,7 @@
       HRESULT (WINAPI *GetMaxLength)(IItemNameLimits *This,LPCWSTR pszName,int *piMaxNameLen);
     END_INTERFACE
   } IItemNameLimitsVtbl;
-  interface IItemNameLimits {
+  struct IItemNameLimits {
     CONST_VTBL struct IItemNameLimitsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2551,7 +2551,7 @@
       HRESULT (WINAPI *Update)(INetCrawler *This,DWORD dwFlags);
     END_INTERFACE
   } INetCrawlerVtbl;
-  interface INetCrawler {
+  struct INetCrawler {
     CONST_VTBL struct INetCrawlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2602,7 +2602,7 @@
       HRESULT (WINAPI *Extract)(IExtractImage *This,HBITMAP *phBmpThumbnail);
     END_INTERFACE
   } IExtractImageVtbl;
-  interface IExtractImage {
+  struct IExtractImage {
     CONST_VTBL struct IExtractImageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2643,7 +2643,7 @@
       HRESULT (WINAPI *GetDateStamp)(IExtractImage2 *This,FILETIME *pDateStamp);
     END_INTERFACE
   } IExtractImage2Vtbl;
-  interface IExtractImage2 {
+  struct IExtractImage2 {
     CONST_VTBL struct IExtractImage2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2681,7 +2681,7 @@
       HRESULT (WINAPI *UserEventTimerProc)(IUserEventTimerCallback *This,ULONG uUserEventTimerID,UINT uTimerElapse);
     END_INTERFACE
   } IUserEventTimerCallbackVtbl;
-  interface IUserEventTimerCallback {
+  struct IUserEventTimerCallback {
     CONST_VTBL struct IUserEventTimerCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2720,7 +2720,7 @@
       HRESULT (WINAPI *InitTimerTickInterval)(IUserEventTimer *This,UINT uTimerTickIntervalMs);
     END_INTERFACE
   } IUserEventTimerVtbl;
-  interface IUserEventTimer {
+  struct IUserEventTimer {
     CONST_VTBL struct IUserEventTimerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2766,7 +2766,7 @@
       HRESULT (WINAPI *ResizeBorderDW)(IDockingWindow *This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved);
     END_INTERFACE
   } IDockingWindowVtbl;
-  interface IDockingWindow {
+  struct IDockingWindow {
     CONST_VTBL struct IDockingWindowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2858,7 +2858,7 @@
       HRESULT (WINAPI *GetBandInfo)(IDeskBand *This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi);
     END_INTERFACE
   } IDeskBandVtbl;
-  interface IDeskBand {
+  struct IDeskBand {
     CONST_VTBL struct IDeskBandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2902,7 +2902,7 @@
       HRESULT (WINAPI *SetActiveAlt)(ITaskbarList *This,HWND hwnd);
     END_INTERFACE
   } ITaskbarListVtbl;
-  interface ITaskbarList {
+  struct ITaskbarList {
     CONST_VTBL struct ITaskbarListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2950,7 +2950,7 @@
       HRESULT (WINAPI *MarkFullscreenWindow)(ITaskbarList2 *This,HWND hwnd,WINBOOL fFullscreen);
     END_INTERFACE
   } ITaskbarList2Vtbl;
-  interface ITaskbarList2 {
+  struct ITaskbarList2 {
     CONST_VTBL struct ITaskbarList2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2990,7 +2990,7 @@
       HRESULT (WINAPI *HasRecordableDrive)(ICDBurn *This,WINBOOL *pfHasRecorder);
     END_INTERFACE
   } ICDBurnVtbl;
-  interface ICDBurn {
+  struct ICDBurn {
     CONST_VTBL struct ICDBurnVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3036,7 +3036,7 @@
       HRESULT (WINAPI *GetCancelledPage)(IWizardSite *This,HPROPSHEETPAGE *phpage);
     END_INTERFACE
   } IWizardSiteVtbl;
-  interface IWizardSite {
+  struct IWizardSite {
     CONST_VTBL struct IWizardSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3077,7 +3077,7 @@
       HRESULT (WINAPI *GetLastPage)(IWizardExtension *This,HPROPSHEETPAGE *phpage);
     END_INTERFACE
   } IWizardExtensionVtbl;
-  interface IWizardExtension {
+  struct IWizardExtension {
     CONST_VTBL struct IWizardExtensionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3119,7 +3119,7 @@
       HRESULT (WINAPI *SetErrorURL)(IWebWizardExtension *This,LPCWSTR pszErrorURL);
     END_INTERFACE
   } IWebWizardExtensionVtbl;
-  interface IWebWizardExtension {
+  struct IWebWizardExtension {
     CONST_VTBL struct IWebWizardExtensionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3170,7 +3170,7 @@
       HRESULT (WINAPI *GetTransferManifest)(IPublishingWizard *This,HRESULT *phrFromTransfer,IXMLDOMDocument **pdocManifest);
     END_INTERFACE
   } IPublishingWizardVtbl;
-  interface IPublishingWizard {
+  struct IPublishingWizard {
     CONST_VTBL struct IPublishingWizardVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3207,7 +3207,7 @@
       HRESULT (WINAPI *Initialize)(IFolderViewHost *This,HWND hwndParent,IDataObject *pdo,RECT *prc);
     END_INTERFACE
   } IFolderViewHostVtbl;
-  interface IFolderViewHost {
+  struct IFolderViewHost {
     CONST_VTBL struct IFolderViewHostVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3244,7 +3244,7 @@
       HRESULT (WINAPI *ResetEnumerator)(IAutoCompleteDropDown *This);
     END_INTERFACE
   } IAutoCompleteDropDownVtbl;
-  interface IAutoCompleteDropDown {
+  struct IAutoCompleteDropDown {
     CONST_VTBL struct IAutoCompleteDropDownVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3282,7 +3282,7 @@
       HRESULT (WINAPI *Show)(IModalWindow *This,HWND hwndParent);
     END_INTERFACE
   } IModalWindowVtbl;
-  interface IModalWindow {
+  struct IModalWindow {
     CONST_VTBL struct IModalWindowVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3314,7 +3314,7 @@
       HRESULT (WINAPI *SetOptions)(IPassportWizard *This,DWORD dwOptions);
     END_INTERFACE
   } IPassportWizardVtbl;
-  interface IPassportWizard {
+  struct IPassportWizard {
     CONST_VTBL struct IPassportWizardVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3359,7 +3359,7 @@
       HRESULT (WINAPI *GetSupportedActionTypes)(ICDBurnExt *This,DWORD *pdwActions);
     END_INTERFACE
   } ICDBurnExtVtbl;
-  interface ICDBurnExt {
+  struct ICDBurnExt {
     CONST_VTBL struct ICDBurnExtVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3396,7 +3396,7 @@
       HRESULT (WINAPI *CreateEnumIDListFromContents)(IDVGetEnum *This,LPCITEMIDLIST pidlFolder,DWORD dwEnumFlags,IEnumIDList **ppEnumIDList);
     END_INTERFACE
   } IDVGetEnumVtbl;
-  interface IDVGetEnum {
+  struct IDVGetEnum {
     CONST_VTBL struct IDVGetEnumVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3430,7 +3430,7 @@
       HRESULT (WINAPI *InsertItem)(IInsertItem *This,LPCITEMIDLIST pidl);
     END_INTERFACE
   } IInsertItemVtbl;
-  interface IInsertItem {
+  struct IInsertItem {
     CONST_VTBL struct IInsertItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3467,7 +3467,7 @@
       HRESULT (WINAPI *OnPosRectChangeDB)(IDeskBar *This,LPRECT prc);
     END_INTERFACE
   } IDeskBarVtbl;
-  interface IDeskBar {
+  struct IDeskBar {
     CONST_VTBL struct IDeskBarVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3512,7 +3512,7 @@
       HRESULT (WINAPI *TranslateMenuMessage)(IMenuBand *This,MSG *pmsg,LRESULT *plRet);
     END_INTERFACE
   } IMenuBandVtbl;
-  interface IMenuBand {
+  struct IMenuBand {
     CONST_VTBL struct IMenuBandVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3552,7 +3552,7 @@
       HRESULT (WINAPI *SetNoText)(IFolderBandPriv *This,WINBOOL f);
     END_INTERFACE
   } IFolderBandPrivVtbl;
-  interface IFolderBandPriv {
+  struct IFolderBandPriv {
     CONST_VTBL struct IFolderBandPrivVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3639,7 +3639,7 @@
       HRESULT (WINAPI *GetBandSiteInfo)(IBandSite *This,BANDSITEINFO *pbsinfo);
     END_INTERFACE
   } IBandSiteVtbl;
-  interface IBandSite {
+  struct IBandSite {
     CONST_VTBL struct IBandSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3700,7 +3700,7 @@
       HRESULT (WINAPI *InitializeProgressDialog)(INamespaceWalkCB *This,LPWSTR *ppszTitle,LPWSTR *ppszCancel);
     END_INTERFACE
   } INamespaceWalkCBVtbl;
-  interface INamespaceWalkCB {
+  struct INamespaceWalkCB {
     CONST_VTBL struct INamespaceWalkCBVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3748,7 +3748,7 @@
       HRESULT (WINAPI *GetIDArrayResult)(INamespaceWalk *This,UINT *pcItems,LPITEMIDLIST **pppidl);
     END_INTERFACE
   } INamespaceWalkVtbl;
-  interface INamespaceWalk {
+  struct INamespaceWalk {
     CONST_VTBL struct INamespaceWalkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3784,7 +3784,7 @@
       HRESULT (WINAPI *SetCheckState)(IRegTreeItem *This,WINBOOL bCheck);
     END_INTERFACE
   } IRegTreeItemVtbl;
-  interface IRegTreeItem {
+  struct IRegTreeItem {
     CONST_VTBL struct IRegTreeItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3839,7 +3839,7 @@
       HRESULT (WINAPI *SetSubMenu)(IMenuPopup *This,IMenuPopup *pmp,WINBOOL fSet);
     END_INTERFACE
   } IMenuPopupVtbl;
-  interface IMenuPopup {
+  struct IMenuPopup {
     CONST_VTBL struct IMenuPopupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3900,7 +3900,7 @@
       HRESULT (WINAPI *Compare)(IShellItem *This,IShellItem *psi,SICHINTF hint,int *piOrder);
     END_INTERFACE
   } IShellItemVtbl;
-  interface IShellItem {
+  struct IShellItem {
     CONST_VTBL struct IShellItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3943,7 +3943,7 @@
       HRESULT (WINAPI *RecompressImage)(IImageRecompress *This,IShellItem *psi,int cx,int cy,int iQuality,IStorage *pstg,IStream **ppstrmOut);
     END_INTERFACE
   } IImageRecompressVtbl;
-  interface IImageRecompress {
+  struct IImageRecompress {
     CONST_VTBL struct IImageRecompressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3974,7 +3974,7 @@
       HRESULT (WINAPI *IsSafePage)(IDefViewSafety *This);
     END_INTERFACE
   } IDefViewSafetyVtbl;
-  interface IDefViewSafety {
+  struct IDefViewSafety {
     CONST_VTBL struct IDefViewSafetyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4005,7 +4005,7 @@
       HRESULT (WINAPI *DoContextMenuPopup)(IContextMenuSite *This,IUnknown *punkContextMenu,UINT fFlags,POINT pt);
     END_INTERFACE
   } IContextMenuSiteVtbl;
-  interface IContextMenuSite {
+  struct IContextMenuSite {
     CONST_VTBL struct IContextMenuSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4050,7 +4050,7 @@
       HRESULT (WINAPI *SetItemAlloc)(IDelegateFolder *This,IMalloc *pmalloc);
     END_INTERFACE
   } IDelegateFolderVtbl;
-  interface IDelegateFolder {
+  struct IDelegateFolder {
     CONST_VTBL struct IDelegateFolderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4094,7 +4094,7 @@
       HRESULT (WINAPI *GetFrameOptions)(IBrowserFrameOptions *This,BROWSERFRAMEOPTIONS dwMask,BROWSERFRAMEOPTIONS *pdwOptions);
     END_INTERFACE
   } IBrowserFrameOptionsVtbl;
-  interface IBrowserFrameOptions {
+  struct IBrowserFrameOptions {
     CONST_VTBL struct IBrowserFrameOptionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4134,7 +4134,7 @@
       HRESULT (WINAPI *EvaluateNewWindow)(INewWindowManager *This,LPCWSTR pszUrl,LPCWSTR pszName,LPCWSTR pszUrlContext,LPCWSTR pszFeatures,WINBOOL fReplace,DWORD dwFlags,DWORD dwUserActionTime);
     END_INTERFACE
   } INewWindowManagerVtbl;
-  interface INewWindowManager {
+  struct INewWindowManager {
     CONST_VTBL struct INewWindowManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4242,7 +4242,7 @@
       HRESULT (WINAPI *CallbackSM)(IShellMenuCallback *This,LPSMDATA psmd,UINT uMsg,WPARAM wParam,LPARAM lParam);
     END_INTERFACE
   } IShellMenuCallbackVtbl;
-  interface IShellMenuCallback {
+  struct IShellMenuCallback {
     CONST_VTBL struct IShellMenuCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4303,7 +4303,7 @@
       HRESULT (WINAPI *ClearClientState)(IAttachmentExecute *This);
     END_INTERFACE
   } IAttachmentExecuteVtbl;
-  interface IAttachmentExecute {
+  struct IAttachmentExecute {
     CONST_VTBL struct IAttachmentExecuteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4398,7 +4398,7 @@
       HRESULT (WINAPI *SetMenuToolbar)(IShellMenu *This,IUnknown *punk,DWORD dwFlags);
     END_INTERFACE
   } IShellMenuVtbl;
-  interface IShellMenu {
+  struct IShellMenu {
     CONST_VTBL struct IShellMenuVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/simpdata.h b/mingw-w64-headers/include/simpdata.h
index c913a94..29e8f2f 100755
--- a/mingw-w64-headers/include/simpdata.h
+++ b/mingw-w64-headers/include/simpdata.h
@@ -15,12 +15,12 @@
 
 #ifndef __OLEDBSimpleProviderListener_FWD_DEFINED__
 #define __OLEDBSimpleProviderListener_FWD_DEFINED__
-typedef interface OLEDBSimpleProviderListener OLEDBSimpleProviderListener;
+typedef struct OLEDBSimpleProviderListener OLEDBSimpleProviderListener;
 #endif
 
 #ifndef __OLEDBSimpleProvider_FWD_DEFINED__
 #define __OLEDBSimpleProvider_FWD_DEFINED__
-typedef interface OLEDBSimpleProvider OLEDBSimpleProvider;
+typedef struct OLEDBSimpleProvider OLEDBSimpleProvider;
 #endif
 
 #include "oaidl.h"
@@ -107,7 +107,7 @@
       HRESULT (WINAPI *transferComplete)(OLEDBSimpleProviderListener *This,OSPXFER xfer);
     END_INTERFACE
   } OLEDBSimpleProviderListenerVtbl;
-  interface OLEDBSimpleProviderListener {
+  struct OLEDBSimpleProviderListener {
     CONST_VTBL struct OLEDBSimpleProviderListenerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -185,7 +185,7 @@
       HRESULT (WINAPI *stopTransfer)(OLEDBSimpleProvider *This);
     END_INTERFACE
   } OLEDBSimpleProviderVtbl;
-  interface OLEDBSimpleProvider {
+  struct OLEDBSimpleProvider {
     CONST_VTBL struct OLEDBSimpleProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/simpdc.h b/mingw-w64-headers/include/simpdc.h
index 70c1201..af159cf 100755
--- a/mingw-w64-headers/include/simpdc.h
+++ b/mingw-w64-headers/include/simpdc.h
@@ -19,7 +19,7 @@
 
 #ifndef __ISimpleDataConverter_FWD_DEFINED__
 #define __ISimpleDataConverter_FWD_DEFINED__
-  typedef interface ISimpleDataConverter ISimpleDataConverter;
+  typedef struct ISimpleDataConverter ISimpleDataConverter;
 #endif
 
 #include "oaidl.h"
@@ -47,7 +47,7 @@
       HRESULT (WINAPI *CanConvertData)(ISimpleDataConverter *This,long vt1,long vt2);
     END_INTERFACE
   } ISimpleDataConverterVtbl;
-  interface ISimpleDataConverter {
+  struct ISimpleDataConverter {
     CONST_VTBL struct ISimpleDataConverterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/sqloledb.h b/mingw-w64-headers/include/sqloledb.h
index 0260ff5..d2cfea4 100755
--- a/mingw-w64-headers/include/sqloledb.h
+++ b/mingw-w64-headers/include/sqloledb.h
@@ -246,12 +246,12 @@
 };
 
 #if defined(__cplusplus) && !defined(CINTERFACE)
-interface IUMSInitialize : public IUnknown {
+struct IUMSInitialize : public IUnknown {
 public:
   virtual HRESULT WINAPI Initialize (VOID *pUMS) = 0;
 };
 
-interface IUMS {
+struct IUMS {
 public:
   virtual VOID WINAPI SqlUmsSuspend (ULONG ticks) = 0;
   virtual VOID WINAPI SqlUmsYield (ULONG ticks) = 0;
@@ -286,17 +286,17 @@
 
 #ifndef __ISQLServerErrorInfo_FWD_DEFINED__
 #define __ISQLServerErrorInfo_FWD_DEFINED__
-  typedef interface ISQLServerErrorInfo ISQLServerErrorInfo;
+  typedef struct ISQLServerErrorInfo ISQLServerErrorInfo;
 #endif
 
 #ifndef __IRowsetFastLoad_FWD_DEFINED__
 #define __IRowsetFastLoad_FWD_DEFINED__
-  typedef interface IRowsetFastLoad IRowsetFastLoad;
+  typedef struct IRowsetFastLoad IRowsetFastLoad;
 #endif
 
 #ifndef __ISchemaLock_FWD_DEFINED__
 #define __ISchemaLock_FWD_DEFINED__
-  typedef interface ISchemaLock ISchemaLock;
+  typedef struct ISchemaLock ISchemaLock;
 #endif
 
 #include "unknwn.h"
@@ -333,7 +333,7 @@
       HRESULT (WINAPI *GetErrorInfo)(ISQLServerErrorInfo *This,SSERRORINFO **ppErrorInfo,OLECHAR **ppStringsBuffer);
     END_INTERFACE
   } ISQLServerErrorInfoVtbl;
-  interface ISQLServerErrorInfo {
+  struct ISQLServerErrorInfo {
     CONST_VTBL struct ISQLServerErrorInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -374,7 +374,7 @@
       HRESULT (WINAPI *Commit)(IRowsetFastLoad *This,WINBOOL fDone);
     END_INTERFACE
   } IRowsetFastLoadVtbl;
-  interface IRowsetFastLoad {
+  struct IRowsetFastLoad {
     CONST_VTBL struct IRowsetFastLoadVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -418,7 +418,7 @@
       HRESULT (WINAPI *ReleaseSchemaLock)(ISchemaLock *This,HANDLE hLockHandle);
     END_INTERFACE
   } ISchemaLockVtbl;
-  interface ISchemaLock {
+  struct ISchemaLock {
     CONST_VTBL struct ISchemaLockVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/stdlib.h b/mingw-w64-headers/include/stdlib.h
index 033ed59..cb1b19a 100755
--- a/mingw-w64-headers/include/stdlib.h
+++ b/mingw-w64-headers/include/stdlib.h
@@ -270,7 +270,7 @@
   void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
 #endif
   unsigned short __cdecl _byteswap_ushort(unsigned short _Short);
-  unsigned long __cdecl _byteswap_ulong (unsigned long _Long);
+  /*unsigned long __cdecl _byteswap_ulong (unsigned long _Long); */
 #if _INTEGRAL_MAX_BITS >= 64
   unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64 _Int64);
 #endif
@@ -472,7 +472,7 @@
   long long  __cdecl strtoll(const char* __restrict__, char** __restrict, int);
   unsigned long long  __cdecl strtoull(const char* __restrict__, char** __restrict__, int);
 
-  /* these are stubs for MS _i64 versions */ 
+  /* these are stubs for MS _i64 versions */
   long long  __cdecl atoll (const char *);
 
 #ifndef __STRICT_ANSI__
@@ -487,8 +487,8 @@
   __CRT_INLINE char *__cdecl lltoa (long long _n, char * _c, int _i) { return _i64toa (_n, _c, _i); }
   __CRT_INLINE char *__cdecl ulltoa (unsigned long long _n, char * _c, int _i) { return _ui64toa (_n, _c, _i); }
   __CRT_INLINE long long  __cdecl wtoll (const wchar_t * _w) { return _wtoi64 (_w); }
-  __CRT_INLINE wchar_t *__cdecl lltow (long long _n, wchar_t * _w, int _i) { return _i64tow (_n, _w, _i); } 
-  __CRT_INLINE wchar_t *__cdecl ulltow (unsigned long long _n, wchar_t * _w, int _i) { return _ui64tow (_n, _w, _i); } 
+  __CRT_INLINE wchar_t *__cdecl lltow (long long _n, wchar_t * _w, int _i) { return _i64tow (_n, _w, _i); }
+  __CRT_INLINE wchar_t *__cdecl ulltow (unsigned long long _n, wchar_t * _w, int _i) { return _ui64tow (_n, _w, _i); }
 #endif /* (__STRICT_ANSI__)  */
 
 #endif /* !__NO_ISOCEXT */
@@ -500,5 +500,6 @@
 #pragma pack(pop)
 
 #include <sec_api/stdlib_s.h>
+#include <malloc.h>
 
 #endif
diff --git a/mingw-w64-headers/include/sti.h b/mingw-w64-headers/include/sti.h
index 1dd166e..73a1286 100755
--- a/mingw-w64-headers/include/sti.h
+++ b/mingw-w64-headers/include/sti.h
@@ -265,13 +265,13 @@
 #define STI_RAW_RESERVED 0x1000
 
 #ifdef __cplusplus
-  interface IStillImageW;
-  interface IStillImageA;
-  interface IStiDevice;
+  struct IStillImageW;
+  struct IStillImageA;
+  struct IStiDevice;
 #endif
 
-  STDMETHODIMP StiCreateInstanceW(HINSTANCE hinst,DWORD dwVer,interface IStillImageW **ppSti,LPUNKNOWN punkOuter);
-  STDMETHODIMP StiCreateInstanceA(HINSTANCE hinst,DWORD dwVer,interface IStillImageA **ppSti,LPUNKNOWN punkOuter);
+  STDMETHODIMP StiCreateInstanceW(HINSTANCE hinst,DWORD dwVer,struct IStillImageW **ppSti,LPUNKNOWN punkOuter);
+  STDMETHODIMP StiCreateInstanceA(HINSTANCE hinst,DWORD dwVer,struct IStillImageA **ppSti,LPUNKNOWN punkOuter);
 
 #if defined(UNICODE) || defined(STI_UNICODE)
 #define IID_IStillImage IID_IStillImageW
@@ -283,13 +283,13 @@
 #define StiCreateInstance StiCreateInstanceA
 #endif
 
-  typedef interface IStiDevice *LPSTILLIMAGEDEVICE;
-  typedef interface IStillImage *PSTI;
-  typedef interface IStiDevice *PSTIDEVICE;
-  typedef interface IStillImageA *PSTIA;
-  typedef interface IStiDeviceA *PSTIDEVICEA;
-  typedef interface IStillImageW *PSTIW;
-  typedef interface IStiDeviceW *PSTIDEVICEW;
+  typedef struct IStiDevice *LPSTILLIMAGEDEVICE;
+  typedef struct IStillImage *PSTI;
+  typedef struct IStiDevice *PSTIDEVICE;
+  typedef struct IStillImageA *PSTIA;
+  typedef struct IStiDeviceA *PSTIDEVICEA;
+  typedef struct IStillImageW *PSTIW;
+  typedef struct IStiDeviceW *PSTIDEVICEW;
 
 #undef INTERFACE
 #define INTERFACE IStillImageW
diff --git a/mingw-w64-headers/include/strmif.h b/mingw-w64-headers/include/strmif.h
index c063d9e..c0d35d2 100755
--- a/mingw-w64-headers/include/strmif.h
+++ b/mingw-w64-headers/include/strmif.h
@@ -24,682 +24,682 @@
 
 #ifndef __ICreateDevEnum_FWD_DEFINED__
 #define __ICreateDevEnum_FWD_DEFINED__
-typedef interface ICreateDevEnum ICreateDevEnum;
+typedef struct ICreateDevEnum ICreateDevEnum;
 #endif
 
 #ifndef __IPin_FWD_DEFINED__
 #define __IPin_FWD_DEFINED__
-typedef interface IPin IPin;
+typedef struct IPin IPin;
 #endif
 
 #ifndef __IEnumPins_FWD_DEFINED__
 #define __IEnumPins_FWD_DEFINED__
-typedef interface IEnumPins IEnumPins;
+typedef struct IEnumPins IEnumPins;
 #endif
 
 #ifndef __IEnumMediaTypes_FWD_DEFINED__
 #define __IEnumMediaTypes_FWD_DEFINED__
-typedef interface IEnumMediaTypes IEnumMediaTypes;
+typedef struct IEnumMediaTypes IEnumMediaTypes;
 #endif
 
 #ifndef __IFilterGraph_FWD_DEFINED__
 #define __IFilterGraph_FWD_DEFINED__
-typedef interface IFilterGraph IFilterGraph;
+typedef struct IFilterGraph IFilterGraph;
 #endif
 
 #ifndef __IEnumFilters_FWD_DEFINED__
 #define __IEnumFilters_FWD_DEFINED__
-typedef interface IEnumFilters IEnumFilters;
+typedef struct IEnumFilters IEnumFilters;
 #endif
 
 #ifndef __IMediaFilter_FWD_DEFINED__
 #define __IMediaFilter_FWD_DEFINED__
-typedef interface IMediaFilter IMediaFilter;
+typedef struct IMediaFilter IMediaFilter;
 #endif
 
 #ifndef __IBaseFilter_FWD_DEFINED__
 #define __IBaseFilter_FWD_DEFINED__
-typedef interface IBaseFilter IBaseFilter;
+typedef struct IBaseFilter IBaseFilter;
 #endif
 
 #ifndef __IReferenceClock_FWD_DEFINED__
 #define __IReferenceClock_FWD_DEFINED__
-typedef interface IReferenceClock IReferenceClock;
+typedef struct IReferenceClock IReferenceClock;
 #endif
 
 #ifndef __IReferenceClock2_FWD_DEFINED__
 #define __IReferenceClock2_FWD_DEFINED__
-typedef interface IReferenceClock2 IReferenceClock2;
+typedef struct IReferenceClock2 IReferenceClock2;
 #endif
 
 #ifndef __IMediaSample_FWD_DEFINED__
 #define __IMediaSample_FWD_DEFINED__
-typedef interface IMediaSample IMediaSample;
+typedef struct IMediaSample IMediaSample;
 #endif
 
 #ifndef __IMediaSample2_FWD_DEFINED__
 #define __IMediaSample2_FWD_DEFINED__
-typedef interface IMediaSample2 IMediaSample2;
+typedef struct IMediaSample2 IMediaSample2;
 #endif
 
 #ifndef __IMemAllocator_FWD_DEFINED__
 #define __IMemAllocator_FWD_DEFINED__
-typedef interface IMemAllocator IMemAllocator;
+typedef struct IMemAllocator IMemAllocator;
 #endif
 
 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
-typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
+typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
 #endif
 
 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
-typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
+typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
 #endif
 
 #ifndef __IMemInputPin_FWD_DEFINED__
 #define __IMemInputPin_FWD_DEFINED__
-typedef interface IMemInputPin IMemInputPin;
+typedef struct IMemInputPin IMemInputPin;
 #endif
 
 #ifndef __IAMovieSetup_FWD_DEFINED__
 #define __IAMovieSetup_FWD_DEFINED__
-typedef interface IAMovieSetup IAMovieSetup;
+typedef struct IAMovieSetup IAMovieSetup;
 #endif
 
 #ifndef __IMediaSeeking_FWD_DEFINED__
 #define __IMediaSeeking_FWD_DEFINED__
-typedef interface IMediaSeeking IMediaSeeking;
+typedef struct IMediaSeeking IMediaSeeking;
 #endif
 
 #ifndef __IEnumRegFilters_FWD_DEFINED__
 #define __IEnumRegFilters_FWD_DEFINED__
-typedef interface IEnumRegFilters IEnumRegFilters;
+typedef struct IEnumRegFilters IEnumRegFilters;
 #endif
 
 #ifndef __IFilterMapper_FWD_DEFINED__
 #define __IFilterMapper_FWD_DEFINED__
-typedef interface IFilterMapper IFilterMapper;
+typedef struct IFilterMapper IFilterMapper;
 #endif
 
 #ifndef __IFilterMapper2_FWD_DEFINED__
 #define __IFilterMapper2_FWD_DEFINED__
-typedef interface IFilterMapper2 IFilterMapper2;
+typedef struct IFilterMapper2 IFilterMapper2;
 #endif
 
 #ifndef __IFilterMapper3_FWD_DEFINED__
 #define __IFilterMapper3_FWD_DEFINED__
-typedef interface IFilterMapper3 IFilterMapper3;
+typedef struct IFilterMapper3 IFilterMapper3;
 #endif
 
 #ifndef __IQualityControl_FWD_DEFINED__
 #define __IQualityControl_FWD_DEFINED__
-typedef interface IQualityControl IQualityControl;
+typedef struct IQualityControl IQualityControl;
 #endif
 
 #ifndef __IOverlayNotify_FWD_DEFINED__
 #define __IOverlayNotify_FWD_DEFINED__
-typedef interface IOverlayNotify IOverlayNotify;
+typedef struct IOverlayNotify IOverlayNotify;
 #endif
 
 #ifndef __IOverlayNotify2_FWD_DEFINED__
 #define __IOverlayNotify2_FWD_DEFINED__
-typedef interface IOverlayNotify2 IOverlayNotify2;
+typedef struct IOverlayNotify2 IOverlayNotify2;
 #endif
 
 #ifndef __IOverlay_FWD_DEFINED__
 #define __IOverlay_FWD_DEFINED__
-typedef interface IOverlay IOverlay;
+typedef struct IOverlay IOverlay;
 #endif
 
 #ifndef __IMediaEventSink_FWD_DEFINED__
 #define __IMediaEventSink_FWD_DEFINED__
-typedef interface IMediaEventSink IMediaEventSink;
+typedef struct IMediaEventSink IMediaEventSink;
 #endif
 
 #ifndef __IFileSourceFilter_FWD_DEFINED__
 #define __IFileSourceFilter_FWD_DEFINED__
-typedef interface IFileSourceFilter IFileSourceFilter;
+typedef struct IFileSourceFilter IFileSourceFilter;
 #endif
 
 #ifndef __IFileSinkFilter_FWD_DEFINED__
 #define __IFileSinkFilter_FWD_DEFINED__
-typedef interface IFileSinkFilter IFileSinkFilter;
+typedef struct IFileSinkFilter IFileSinkFilter;
 #endif
 
 #ifndef __IFileSinkFilter2_FWD_DEFINED__
 #define __IFileSinkFilter2_FWD_DEFINED__
-typedef interface IFileSinkFilter2 IFileSinkFilter2;
+typedef struct IFileSinkFilter2 IFileSinkFilter2;
 #endif
 
 #ifndef __IGraphBuilder_FWD_DEFINED__
 #define __IGraphBuilder_FWD_DEFINED__
-typedef interface IGraphBuilder IGraphBuilder;
+typedef struct IGraphBuilder IGraphBuilder;
 #endif
 
 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
 #define __ICaptureGraphBuilder_FWD_DEFINED__
-typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
+typedef struct ICaptureGraphBuilder ICaptureGraphBuilder;
 #endif
 
 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
-typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
+typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
 #endif
 
 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
 #define __ICaptureGraphBuilder2_FWD_DEFINED__
-typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
+typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2;
 #endif
 
 #ifndef __IFilterGraph2_FWD_DEFINED__
 #define __IFilterGraph2_FWD_DEFINED__
-typedef interface IFilterGraph2 IFilterGraph2;
+typedef struct IFilterGraph2 IFilterGraph2;
 #endif
 
 #ifndef __IStreamBuilder_FWD_DEFINED__
 #define __IStreamBuilder_FWD_DEFINED__
-typedef interface IStreamBuilder IStreamBuilder;
+typedef struct IStreamBuilder IStreamBuilder;
 #endif
 
 #ifndef __IAsyncReader_FWD_DEFINED__
 #define __IAsyncReader_FWD_DEFINED__
-typedef interface IAsyncReader IAsyncReader;
+typedef struct IAsyncReader IAsyncReader;
 #endif
 
 #ifndef __IGraphVersion_FWD_DEFINED__
 #define __IGraphVersion_FWD_DEFINED__
-typedef interface IGraphVersion IGraphVersion;
+typedef struct IGraphVersion IGraphVersion;
 #endif
 
 #ifndef __IResourceConsumer_FWD_DEFINED__
 #define __IResourceConsumer_FWD_DEFINED__
-typedef interface IResourceConsumer IResourceConsumer;
+typedef struct IResourceConsumer IResourceConsumer;
 #endif
 
 #ifndef __IResourceManager_FWD_DEFINED__
 #define __IResourceManager_FWD_DEFINED__
-typedef interface IResourceManager IResourceManager;
+typedef struct IResourceManager IResourceManager;
 #endif
 
 #ifndef __IDistributorNotify_FWD_DEFINED__
 #define __IDistributorNotify_FWD_DEFINED__
-typedef interface IDistributorNotify IDistributorNotify;
+typedef struct IDistributorNotify IDistributorNotify;
 #endif
 
 #ifndef __IAMStreamControl_FWD_DEFINED__
 #define __IAMStreamControl_FWD_DEFINED__
-typedef interface IAMStreamControl IAMStreamControl;
+typedef struct IAMStreamControl IAMStreamControl;
 #endif
 
 #ifndef __ISeekingPassThru_FWD_DEFINED__
 #define __ISeekingPassThru_FWD_DEFINED__
-typedef interface ISeekingPassThru ISeekingPassThru;
+typedef struct ISeekingPassThru ISeekingPassThru;
 #endif
 
 #ifndef __IAMStreamConfig_FWD_DEFINED__
 #define __IAMStreamConfig_FWD_DEFINED__
-typedef interface IAMStreamConfig IAMStreamConfig;
+typedef struct IAMStreamConfig IAMStreamConfig;
 #endif
 
 #ifndef __IConfigInterleaving_FWD_DEFINED__
 #define __IConfigInterleaving_FWD_DEFINED__
-typedef interface IConfigInterleaving IConfigInterleaving;
+typedef struct IConfigInterleaving IConfigInterleaving;
 #endif
 
 #ifndef __IConfigAviMux_FWD_DEFINED__
 #define __IConfigAviMux_FWD_DEFINED__
-typedef interface IConfigAviMux IConfigAviMux;
+typedef struct IConfigAviMux IConfigAviMux;
 #endif
 
 #ifndef __IAMVideoCompression_FWD_DEFINED__
 #define __IAMVideoCompression_FWD_DEFINED__
-typedef interface IAMVideoCompression IAMVideoCompression;
+typedef struct IAMVideoCompression IAMVideoCompression;
 #endif
 
 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
-typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
+typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
 #endif
 
 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
 #define __IAMVfwCompressDialogs_FWD_DEFINED__
-typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs;
+typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
 #endif
 
 #ifndef __IAMDroppedFrames_FWD_DEFINED__
 #define __IAMDroppedFrames_FWD_DEFINED__
-typedef interface IAMDroppedFrames IAMDroppedFrames;
+typedef struct IAMDroppedFrames IAMDroppedFrames;
 #endif
 
 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
 #define __IAMAudioInputMixer_FWD_DEFINED__
-typedef interface IAMAudioInputMixer IAMAudioInputMixer;
+typedef struct IAMAudioInputMixer IAMAudioInputMixer;
 #endif
 
 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
 #define __IAMBufferNegotiation_FWD_DEFINED__
-typedef interface IAMBufferNegotiation IAMBufferNegotiation;
+typedef struct IAMBufferNegotiation IAMBufferNegotiation;
 #endif
 
 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
-typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
+typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
 #endif
 
 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
 #define __IAMVideoProcAmp_FWD_DEFINED__
-typedef interface IAMVideoProcAmp IAMVideoProcAmp;
+typedef struct IAMVideoProcAmp IAMVideoProcAmp;
 #endif
 
 #ifndef __IAMCameraControl_FWD_DEFINED__
 #define __IAMCameraControl_FWD_DEFINED__
-typedef interface IAMCameraControl IAMCameraControl;
+typedef struct IAMCameraControl IAMCameraControl;
 #endif
 
 #ifndef __IAMVideoControl_FWD_DEFINED__
 #define __IAMVideoControl_FWD_DEFINED__
-typedef interface IAMVideoControl IAMVideoControl;
+typedef struct IAMVideoControl IAMVideoControl;
 #endif
 
 #ifndef __IAMCrossbar_FWD_DEFINED__
 #define __IAMCrossbar_FWD_DEFINED__
-typedef interface IAMCrossbar IAMCrossbar;
+typedef struct IAMCrossbar IAMCrossbar;
 #endif
 
 #ifndef __IAMTuner_FWD_DEFINED__
 #define __IAMTuner_FWD_DEFINED__
-typedef interface IAMTuner IAMTuner;
+typedef struct IAMTuner IAMTuner;
 #endif
 
 #ifndef __IAMTunerNotification_FWD_DEFINED__
 #define __IAMTunerNotification_FWD_DEFINED__
-typedef interface IAMTunerNotification IAMTunerNotification;
+typedef struct IAMTunerNotification IAMTunerNotification;
 #endif
 
 #ifndef __IAMTVTuner_FWD_DEFINED__
 #define __IAMTVTuner_FWD_DEFINED__
-typedef interface IAMTVTuner IAMTVTuner;
+typedef struct IAMTVTuner IAMTVTuner;
 #endif
 
 #ifndef __IBPCSatelliteTuner_FWD_DEFINED__
 #define __IBPCSatelliteTuner_FWD_DEFINED__
-typedef interface IBPCSatelliteTuner IBPCSatelliteTuner;
+typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
 #endif
 
 #ifndef __IAMTVAudio_FWD_DEFINED__
 #define __IAMTVAudio_FWD_DEFINED__
-typedef interface IAMTVAudio IAMTVAudio;
+typedef struct IAMTVAudio IAMTVAudio;
 #endif
 
 #ifndef __IAMTVAudioNotification_FWD_DEFINED__
 #define __IAMTVAudioNotification_FWD_DEFINED__
-typedef interface IAMTVAudioNotification IAMTVAudioNotification;
+typedef struct IAMTVAudioNotification IAMTVAudioNotification;
 #endif
 
 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
-typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
+typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
 #endif
 
 #ifndef __IKsPropertySet_FWD_DEFINED__
 #define __IKsPropertySet_FWD_DEFINED__
-typedef interface IKsPropertySet IKsPropertySet;
+typedef struct IKsPropertySet IKsPropertySet;
 #endif
 
 #ifndef __IMediaPropertyBag_FWD_DEFINED__
 #define __IMediaPropertyBag_FWD_DEFINED__
-typedef interface IMediaPropertyBag IMediaPropertyBag;
+typedef struct IMediaPropertyBag IMediaPropertyBag;
 #endif
 
 #ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
 #define __IPersistMediaPropertyBag_FWD_DEFINED__
-typedef interface IPersistMediaPropertyBag IPersistMediaPropertyBag;
+typedef struct IPersistMediaPropertyBag IPersistMediaPropertyBag;
 #endif
 
 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
 #define __IAMPhysicalPinInfo_FWD_DEFINED__
-typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo;
+typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
 #endif
 
 #ifndef __IAMExtDevice_FWD_DEFINED__
 #define __IAMExtDevice_FWD_DEFINED__
-typedef interface IAMExtDevice IAMExtDevice;
+typedef struct IAMExtDevice IAMExtDevice;
 #endif
 
 #ifndef __IAMExtTransport_FWD_DEFINED__
 #define __IAMExtTransport_FWD_DEFINED__
-typedef interface IAMExtTransport IAMExtTransport;
+typedef struct IAMExtTransport IAMExtTransport;
 #endif
 
 #ifndef __IAMTimecodeReader_FWD_DEFINED__
 #define __IAMTimecodeReader_FWD_DEFINED__
-typedef interface IAMTimecodeReader IAMTimecodeReader;
+typedef struct IAMTimecodeReader IAMTimecodeReader;
 #endif
 
 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
 #define __IAMTimecodeGenerator_FWD_DEFINED__
-typedef interface IAMTimecodeGenerator IAMTimecodeGenerator;
+typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
 #endif
 
 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
 #define __IAMTimecodeDisplay_FWD_DEFINED__
-typedef interface IAMTimecodeDisplay IAMTimecodeDisplay;
+typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
 #endif
 
 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
 #define __IAMDevMemoryAllocator_FWD_DEFINED__
-typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator;
+typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
 #endif
 
 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
 #define __IAMDevMemoryControl_FWD_DEFINED__
-typedef interface IAMDevMemoryControl IAMDevMemoryControl;
+typedef struct IAMDevMemoryControl IAMDevMemoryControl;
 #endif
 
 #ifndef __IAMStreamSelect_FWD_DEFINED__
 #define __IAMStreamSelect_FWD_DEFINED__
-typedef interface IAMStreamSelect IAMStreamSelect;
+typedef struct IAMStreamSelect IAMStreamSelect;
 #endif
 
 #ifndef __IAMResourceControl_FWD_DEFINED__
 #define __IAMResourceControl_FWD_DEFINED__
-typedef interface IAMResourceControl IAMResourceControl;
+typedef struct IAMResourceControl IAMResourceControl;
 #endif
 
 #ifndef __IAMClockAdjust_FWD_DEFINED__
 #define __IAMClockAdjust_FWD_DEFINED__
-typedef interface IAMClockAdjust IAMClockAdjust;
+typedef struct IAMClockAdjust IAMClockAdjust;
 #endif
 
 #ifndef __IAMFilterMiscFlags_FWD_DEFINED__
 #define __IAMFilterMiscFlags_FWD_DEFINED__
-typedef interface IAMFilterMiscFlags IAMFilterMiscFlags;
+typedef struct IAMFilterMiscFlags IAMFilterMiscFlags;
 #endif
 
 #ifndef __IDrawVideoImage_FWD_DEFINED__
 #define __IDrawVideoImage_FWD_DEFINED__
-typedef interface IDrawVideoImage IDrawVideoImage;
+typedef struct IDrawVideoImage IDrawVideoImage;
 #endif
 
 #ifndef __IDecimateVideoImage_FWD_DEFINED__
 #define __IDecimateVideoImage_FWD_DEFINED__
-typedef interface IDecimateVideoImage IDecimateVideoImage;
+typedef struct IDecimateVideoImage IDecimateVideoImage;
 #endif
 
 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
 #define __IAMVideoDecimationProperties_FWD_DEFINED__
-typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties;
+typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
 #endif
 
 #ifndef __IVideoFrameStep_FWD_DEFINED__
 #define __IVideoFrameStep_FWD_DEFINED__
-typedef interface IVideoFrameStep IVideoFrameStep;
+typedef struct IVideoFrameStep IVideoFrameStep;
 #endif
 
 #ifndef __IAMLatency_FWD_DEFINED__
 #define __IAMLatency_FWD_DEFINED__
-typedef interface IAMLatency IAMLatency;
+typedef struct IAMLatency IAMLatency;
 #endif
 
 #ifndef __IAMPushSource_FWD_DEFINED__
 #define __IAMPushSource_FWD_DEFINED__
-typedef interface IAMPushSource IAMPushSource;
+typedef struct IAMPushSource IAMPushSource;
 #endif
 
 #ifndef __IAMDeviceRemoval_FWD_DEFINED__
 #define __IAMDeviceRemoval_FWD_DEFINED__
-typedef interface IAMDeviceRemoval IAMDeviceRemoval;
+typedef struct IAMDeviceRemoval IAMDeviceRemoval;
 #endif
 
 #ifndef __IDVEnc_FWD_DEFINED__
 #define __IDVEnc_FWD_DEFINED__
-typedef interface IDVEnc IDVEnc;
+typedef struct IDVEnc IDVEnc;
 #endif
 
 #ifndef __IIPDVDec_FWD_DEFINED__
 #define __IIPDVDec_FWD_DEFINED__
-typedef interface IIPDVDec IIPDVDec;
+typedef struct IIPDVDec IIPDVDec;
 #endif
 
 #ifndef __IDVRGB219_FWD_DEFINED__
 #define __IDVRGB219_FWD_DEFINED__
-typedef interface IDVRGB219 IDVRGB219;
+typedef struct IDVRGB219 IDVRGB219;
 #endif
 
 #ifndef __IDVSplitter_FWD_DEFINED__
 #define __IDVSplitter_FWD_DEFINED__
-typedef interface IDVSplitter IDVSplitter;
+typedef struct IDVSplitter IDVSplitter;
 #endif
 
 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
 #define __IAMAudioRendererStats_FWD_DEFINED__
-typedef interface IAMAudioRendererStats IAMAudioRendererStats;
+typedef struct IAMAudioRendererStats IAMAudioRendererStats;
 #endif
 
 #ifndef __IAMGraphStreams_FWD_DEFINED__
 #define __IAMGraphStreams_FWD_DEFINED__
-typedef interface IAMGraphStreams IAMGraphStreams;
+typedef struct IAMGraphStreams IAMGraphStreams;
 #endif
 
 #ifndef __IAMOverlayFX_FWD_DEFINED__
 #define __IAMOverlayFX_FWD_DEFINED__
-typedef interface IAMOverlayFX IAMOverlayFX;
+typedef struct IAMOverlayFX IAMOverlayFX;
 #endif
 
 #ifndef __IAMOpenProgress_FWD_DEFINED__
 #define __IAMOpenProgress_FWD_DEFINED__
-typedef interface IAMOpenProgress IAMOpenProgress;
+typedef struct IAMOpenProgress IAMOpenProgress;
 #endif
 
 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
 #define __IMpeg2Demultiplexer_FWD_DEFINED__
-typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer;
+typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
 #endif
 
 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
 #define __IEnumStreamIdMap_FWD_DEFINED__
-typedef interface IEnumStreamIdMap IEnumStreamIdMap;
+typedef struct IEnumStreamIdMap IEnumStreamIdMap;
 #endif
 
 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
 #define __IMPEG2StreamIdMap_FWD_DEFINED__
-typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap;
+typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
 #endif
 
 #ifndef __IRegisterServiceProvider_FWD_DEFINED__
 #define __IRegisterServiceProvider_FWD_DEFINED__
-typedef interface IRegisterServiceProvider IRegisterServiceProvider;
+typedef struct IRegisterServiceProvider IRegisterServiceProvider;
 #endif
 
 #ifndef __IAMClockSlave_FWD_DEFINED__
 #define __IAMClockSlave_FWD_DEFINED__
-typedef interface IAMClockSlave IAMClockSlave;
+typedef struct IAMClockSlave IAMClockSlave;
 #endif
 
 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
 #define __IAMGraphBuilderCallback_FWD_DEFINED__
-typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
+typedef struct IAMGraphBuilderCallback IAMGraphBuilderCallback;
 #endif
 
 #ifndef __ICodecAPI_FWD_DEFINED__
 #define __ICodecAPI_FWD_DEFINED__
-typedef interface ICodecAPI ICodecAPI;
+typedef struct ICodecAPI ICodecAPI;
 #endif
 
 #ifndef __IGetCapabilitiesKey_FWD_DEFINED__
 #define __IGetCapabilitiesKey_FWD_DEFINED__
-typedef interface IGetCapabilitiesKey IGetCapabilitiesKey;
+typedef struct IGetCapabilitiesKey IGetCapabilitiesKey;
 #endif
 
 #ifndef __IEncoderAPI_FWD_DEFINED__
 #define __IEncoderAPI_FWD_DEFINED__
-typedef interface IEncoderAPI IEncoderAPI;
+typedef struct IEncoderAPI IEncoderAPI;
 #endif
 
 #ifndef __IVideoEncoder_FWD_DEFINED__
 #define __IVideoEncoder_FWD_DEFINED__
-typedef interface IVideoEncoder IVideoEncoder;
+typedef struct IVideoEncoder IVideoEncoder;
 #endif
 
 #ifndef __IAMDecoderCaps_FWD_DEFINED__
 #define __IAMDecoderCaps_FWD_DEFINED__
-typedef interface IAMDecoderCaps IAMDecoderCaps;
+typedef struct IAMDecoderCaps IAMDecoderCaps;
 #endif
 
 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
-typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
+typedef struct IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
 #endif
 
 #ifndef __IDvdControl_FWD_DEFINED__
 #define __IDvdControl_FWD_DEFINED__
-typedef interface IDvdControl IDvdControl;
+typedef struct IDvdControl IDvdControl;
 #endif
 
 #ifndef __IDvdInfo_FWD_DEFINED__
 #define __IDvdInfo_FWD_DEFINED__
-typedef interface IDvdInfo IDvdInfo;
+typedef struct IDvdInfo IDvdInfo;
 #endif
 
 #ifndef __IDvdCmd_FWD_DEFINED__
 #define __IDvdCmd_FWD_DEFINED__
-typedef interface IDvdCmd IDvdCmd;
+typedef struct IDvdCmd IDvdCmd;
 #endif
 
 #ifndef __IDvdState_FWD_DEFINED__
 #define __IDvdState_FWD_DEFINED__
-typedef interface IDvdState IDvdState;
+typedef struct IDvdState IDvdState;
 #endif
 
 #ifndef __IDvdControl2_FWD_DEFINED__
 #define __IDvdControl2_FWD_DEFINED__
-typedef interface IDvdControl2 IDvdControl2;
+typedef struct IDvdControl2 IDvdControl2;
 #endif
 
 #ifndef __IDvdInfo2_FWD_DEFINED__
 #define __IDvdInfo2_FWD_DEFINED__
-typedef interface IDvdInfo2 IDvdInfo2;
+typedef struct IDvdInfo2 IDvdInfo2;
 #endif
 
 #ifndef __IDvdGraphBuilder_FWD_DEFINED__
 #define __IDvdGraphBuilder_FWD_DEFINED__
-typedef interface IDvdGraphBuilder IDvdGraphBuilder;
+typedef struct IDvdGraphBuilder IDvdGraphBuilder;
 #endif
 
 #ifndef __IDDrawExclModeVideo_FWD_DEFINED__
 #define __IDDrawExclModeVideo_FWD_DEFINED__
-typedef interface IDDrawExclModeVideo IDDrawExclModeVideo;
+typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
 #endif
 
 #ifndef __IDDrawExclModeVideoCallback_FWD_DEFINED__
 #define __IDDrawExclModeVideoCallback_FWD_DEFINED__
-typedef interface IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
+typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
 #endif
 
 #ifndef __IPinConnection_FWD_DEFINED__
 #define __IPinConnection_FWD_DEFINED__
-typedef interface IPinConnection IPinConnection;
+typedef struct IPinConnection IPinConnection;
 #endif
 
 #ifndef __IPinFlowControl_FWD_DEFINED__
 #define __IPinFlowControl_FWD_DEFINED__
-typedef interface IPinFlowControl IPinFlowControl;
+typedef struct IPinFlowControl IPinFlowControl;
 #endif
 
 #ifndef __IGraphConfig_FWD_DEFINED__
 #define __IGraphConfig_FWD_DEFINED__
-typedef interface IGraphConfig IGraphConfig;
+typedef struct IGraphConfig IGraphConfig;
 #endif
 
 #ifndef __IGraphConfigCallback_FWD_DEFINED__
 #define __IGraphConfigCallback_FWD_DEFINED__
-typedef interface IGraphConfigCallback IGraphConfigCallback;
+typedef struct IGraphConfigCallback IGraphConfigCallback;
 #endif
 
 #ifndef __IFilterChain_FWD_DEFINED__
 #define __IFilterChain_FWD_DEFINED__
-typedef interface IFilterChain IFilterChain;
+typedef struct IFilterChain IFilterChain;
 #endif
 
 #ifndef __IVMRImagePresenter_FWD_DEFINED__
 #define __IVMRImagePresenter_FWD_DEFINED__
-typedef interface IVMRImagePresenter IVMRImagePresenter;
+typedef struct IVMRImagePresenter IVMRImagePresenter;
 #endif
 
 #ifndef __IVMRSurfaceAllocator_FWD_DEFINED__
 #define __IVMRSurfaceAllocator_FWD_DEFINED__
-typedef interface IVMRSurfaceAllocator IVMRSurfaceAllocator;
+typedef struct IVMRSurfaceAllocator IVMRSurfaceAllocator;
 #endif
 
 #ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
 #define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
-typedef interface IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
+typedef struct IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
 #endif
 
 #ifndef __IVMRWindowlessControl_FWD_DEFINED__
 #define __IVMRWindowlessControl_FWD_DEFINED__
-typedef interface IVMRWindowlessControl IVMRWindowlessControl;
+typedef struct IVMRWindowlessControl IVMRWindowlessControl;
 #endif
 
 #ifndef __IVMRMixerControl_FWD_DEFINED__
 #define __IVMRMixerControl_FWD_DEFINED__
-typedef interface IVMRMixerControl IVMRMixerControl;
+typedef struct IVMRMixerControl IVMRMixerControl;
 #endif
 
 #ifndef __IVMRMonitorConfig_FWD_DEFINED__
 #define __IVMRMonitorConfig_FWD_DEFINED__
-typedef interface IVMRMonitorConfig IVMRMonitorConfig;
+typedef struct IVMRMonitorConfig IVMRMonitorConfig;
 #endif
 
 #ifndef __IVMRFilterConfig_FWD_DEFINED__
 #define __IVMRFilterConfig_FWD_DEFINED__
-typedef interface IVMRFilterConfig IVMRFilterConfig;
+typedef struct IVMRFilterConfig IVMRFilterConfig;
 #endif
 
 #ifndef __IVMRAspectRatioControl_FWD_DEFINED__
 #define __IVMRAspectRatioControl_FWD_DEFINED__
-typedef interface IVMRAspectRatioControl IVMRAspectRatioControl;
+typedef struct IVMRAspectRatioControl IVMRAspectRatioControl;
 #endif
 
 #ifndef __IVMRDeinterlaceControl_FWD_DEFINED__
 #define __IVMRDeinterlaceControl_FWD_DEFINED__
-typedef interface IVMRDeinterlaceControl IVMRDeinterlaceControl;
+typedef struct IVMRDeinterlaceControl IVMRDeinterlaceControl;
 #endif
 
 #ifndef __IVMRMixerBitmap_FWD_DEFINED__
 #define __IVMRMixerBitmap_FWD_DEFINED__
-typedef interface IVMRMixerBitmap IVMRMixerBitmap;
+typedef struct IVMRMixerBitmap IVMRMixerBitmap;
 #endif
 
 #ifndef __IVMRImageCompositor_FWD_DEFINED__
 #define __IVMRImageCompositor_FWD_DEFINED__
-typedef interface IVMRImageCompositor IVMRImageCompositor;
+typedef struct IVMRImageCompositor IVMRImageCompositor;
 #endif
 
 #ifndef __IVMRVideoStreamControl_FWD_DEFINED__
 #define __IVMRVideoStreamControl_FWD_DEFINED__
-typedef interface IVMRVideoStreamControl IVMRVideoStreamControl;
+typedef struct IVMRVideoStreamControl IVMRVideoStreamControl;
 #endif
 
 #ifndef __IVMRSurface_FWD_DEFINED__
 #define __IVMRSurface_FWD_DEFINED__
-typedef interface IVMRSurface IVMRSurface;
+typedef struct IVMRSurface IVMRSurface;
 #endif
 
 #ifndef __IVMRImagePresenterConfig_FWD_DEFINED__
 #define __IVMRImagePresenterConfig_FWD_DEFINED__
-typedef interface IVMRImagePresenterConfig IVMRImagePresenterConfig;
+typedef struct IVMRImagePresenterConfig IVMRImagePresenterConfig;
 #endif
 
 #ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
 #define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
-typedef interface IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
+typedef struct IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
 #endif
 
 #ifndef __IVPManager_FWD_DEFINED__
 #define __IVPManager_FWD_DEFINED__
-typedef interface IVPManager IVPManager;
+typedef struct IVPManager IVPManager;
 #endif
 
 #include "unknwn.h"
@@ -742,7 +742,7 @@
       HRESULT (WINAPI *CreateClassEnumerator)(ICreateDevEnum *This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags);
     END_INTERFACE
   } ICreateDevEnumVtbl;
-  interface ICreateDevEnum {
+  struct ICreateDevEnum {
     CONST_VTBL struct ICreateDevEnumVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -840,7 +840,7 @@
       HRESULT (WINAPI *NewSegment)(IPin *This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate);
     END_INTERFACE
   } IPinVtbl;
-  interface IPin {
+  struct IPin {
     CONST_VTBL struct IPinVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -923,7 +923,7 @@
       HRESULT (WINAPI *Clone)(IEnumPins *This,IEnumPins **ppEnum);
     END_INTERFACE
   } IEnumPinsVtbl;
-  interface IEnumPins {
+  struct IEnumPins {
     CONST_VTBL struct IEnumPinsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -973,7 +973,7 @@
       HRESULT (WINAPI *Clone)(IEnumMediaTypes *This,IEnumMediaTypes **ppEnum);
     END_INTERFACE
   } IEnumMediaTypesVtbl;
-  interface IEnumMediaTypes {
+  struct IEnumMediaTypes {
     CONST_VTBL struct IEnumMediaTypesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1032,7 +1032,7 @@
       HRESULT (WINAPI *SetDefaultSyncSource)(IFilterGraph *This);
     END_INTERFACE
   } IFilterGraphVtbl;
-  interface IFilterGraph {
+  struct IFilterGraph {
     CONST_VTBL struct IFilterGraphVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1094,7 +1094,7 @@
       HRESULT (WINAPI *Clone)(IEnumFilters *This,IEnumFilters **ppEnum);
     END_INTERFACE
   } IEnumFiltersVtbl;
-  interface IEnumFilters {
+  struct IEnumFilters {
     CONST_VTBL struct IEnumFiltersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1153,7 +1153,7 @@
       HRESULT (WINAPI *GetSyncSource)(IMediaFilter *This,IReferenceClock **pClock);
     END_INTERFACE
   } IMediaFilterVtbl;
-  interface IMediaFilter {
+  struct IMediaFilter {
     CONST_VTBL struct IMediaFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1225,7 +1225,7 @@
       HRESULT (WINAPI *QueryVendorInfo)(IBaseFilter *This,LPWSTR *pVendorInfo);
     END_INTERFACE
   } IBaseFilterVtbl;
-  interface IBaseFilter {
+  struct IBaseFilter {
     CONST_VTBL struct IBaseFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1285,7 +1285,7 @@
       HRESULT (WINAPI *Unadvise)(IReferenceClock *This,DWORD_PTR dwAdviseCookie);
     END_INTERFACE
   } IReferenceClockVtbl;
-  interface IReferenceClock {
+  struct IReferenceClock {
     CONST_VTBL struct IReferenceClockVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1330,7 +1330,7 @@
       HRESULT (WINAPI *Unadvise)(IReferenceClock2 *This,DWORD_PTR dwAdviseCookie);
     END_INTERFACE
   } IReferenceClock2Vtbl;
-  interface IReferenceClock2 {
+  struct IReferenceClock2 {
     CONST_VTBL struct IReferenceClock2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1396,7 +1396,7 @@
       HRESULT (WINAPI *SetMediaTime)(IMediaSample *This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd);
     END_INTERFACE
   } IMediaSampleVtbl;
-  interface IMediaSample {
+  struct IMediaSample {
     CONST_VTBL struct IMediaSampleVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1512,7 +1512,7 @@
       HRESULT (WINAPI *SetProperties)(IMediaSample2 *This,DWORD cbProperties,const BYTE *pbProperties);
     END_INTERFACE
   } IMediaSample2Vtbl;
-  interface IMediaSample2 {
+  struct IMediaSample2 {
     CONST_VTBL struct IMediaSample2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1581,7 +1581,7 @@
       HRESULT (WINAPI *ReleaseBuffer)(IMemAllocator *This,IMediaSample *pBuffer);
     END_INTERFACE
   } IMemAllocatorVtbl;
-  interface IMemAllocator {
+  struct IMemAllocator {
     CONST_VTBL struct IMemAllocatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1639,7 +1639,7 @@
       HRESULT (WINAPI *GetFreeCount)(IMemAllocatorCallbackTemp *This,LONG *plBuffersFree);
     END_INTERFACE
   } IMemAllocatorCallbackTempVtbl;
-  interface IMemAllocatorCallbackTemp {
+  struct IMemAllocatorCallbackTemp {
     CONST_VTBL struct IMemAllocatorCallbackTempVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1679,7 +1679,7 @@
       HRESULT (WINAPI *NotifyRelease)(IMemAllocatorNotifyCallbackTemp *This);
     END_INTERFACE
   } IMemAllocatorNotifyCallbackTempVtbl;
-  interface IMemAllocatorNotifyCallbackTemp {
+  struct IMemAllocatorNotifyCallbackTemp {
     CONST_VTBL struct IMemAllocatorNotifyCallbackTempVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1720,7 +1720,7 @@
       HRESULT (WINAPI *ReceiveCanBlock)(IMemInputPin *This);
     END_INTERFACE
   } IMemInputPinVtbl;
-  interface IMemInputPin {
+  struct IMemInputPin {
     CONST_VTBL struct IMemInputPinVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1772,7 +1772,7 @@
       HRESULT (WINAPI *Unregister)(IAMovieSetup *This);
     END_INTERFACE
   } IAMovieSetupVtbl;
-  interface IAMovieSetup {
+  struct IAMovieSetup {
     CONST_VTBL struct IAMovieSetupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1853,7 +1853,7 @@
       HRESULT (WINAPI *GetPreroll)(IMediaSeeking *This,LONGLONG *pllPreroll);
     END_INTERFACE
   } IMediaSeekingVtbl;
-  interface IMediaSeeking {
+  struct IMediaSeeking {
     CONST_VTBL struct IMediaSeekingVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1951,7 +1951,7 @@
       HRESULT (WINAPI *Clone)(IEnumRegFilters *This,IEnumRegFilters **ppEnum);
     END_INTERFACE
   } IEnumRegFiltersVtbl;
-  interface IEnumRegFilters {
+  struct IEnumRegFilters {
     CONST_VTBL struct IEnumRegFiltersVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2013,7 +2013,7 @@
       HRESULT (WINAPI *EnumMatchingFilters)(IFilterMapper *This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub);
     END_INTERFACE
   } IFilterMapperVtbl;
-  interface IFilterMapper {
+  struct IFilterMapper {
     CONST_VTBL struct IFilterMapperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2124,7 +2124,7 @@
       HRESULT (WINAPI *EnumMatchingFilters)(IFilterMapper2 *This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut);
     END_INTERFACE
   } IFilterMapper2Vtbl;
-  interface IFilterMapper2 {
+  struct IFilterMapper2 {
     CONST_VTBL struct IFilterMapper2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2168,7 +2168,7 @@
       HRESULT (WINAPI *GetICreateDevEnum)(IFilterMapper3 *This,ICreateDevEnum **ppEnum);
     END_INTERFACE
   } IFilterMapper3Vtbl;
-  interface IFilterMapper3 {
+  struct IFilterMapper3 {
     CONST_VTBL struct IFilterMapper3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2220,7 +2220,7 @@
       HRESULT (WINAPI *SetSink)(IQualityControl *This,IQualityControl *piqc);
     END_INTERFACE
   } IQualityControlVtbl;
-  interface IQualityControl {
+  struct IQualityControl {
     CONST_VTBL struct IQualityControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2293,7 +2293,7 @@
       HRESULT (WINAPI *OnPositionChange)(IOverlayNotify *This,const RECT *pSourceRect,const RECT *pDestinationRect);
     END_INTERFACE
   } IOverlayNotifyVtbl;
-  interface IOverlayNotify {
+  struct IOverlayNotify {
     CONST_VTBL struct IOverlayNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2341,7 +2341,7 @@
       HRESULT (WINAPI *OnDisplayChange)(IOverlayNotify2 *This,HMONITOR hMonitor);
     END_INTERFACE
   } IOverlayNotify2Vtbl;
-  interface IOverlayNotify2 {
+  struct IOverlayNotify2 {
     CONST_VTBL struct IOverlayNotify2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2398,7 +2398,7 @@
       HRESULT (WINAPI *Unadvise)(IOverlay *This);
     END_INTERFACE
   } IOverlayVtbl;
-  interface IOverlay {
+  struct IOverlay {
     CONST_VTBL struct IOverlayVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2460,7 +2460,7 @@
       HRESULT (WINAPI *Notify)(IMediaEventSink *This,long EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2);
     END_INTERFACE
   } IMediaEventSinkVtbl;
-  interface IMediaEventSink {
+  struct IMediaEventSink {
     CONST_VTBL struct IMediaEventSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2497,7 +2497,7 @@
       HRESULT (WINAPI *GetCurFile)(IFileSourceFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
     END_INTERFACE
   } IFileSourceFilterVtbl;
-  interface IFileSourceFilter {
+  struct IFileSourceFilter {
     CONST_VTBL struct IFileSourceFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2537,7 +2537,7 @@
       HRESULT (WINAPI *GetCurFile)(IFileSinkFilter *This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt);
     END_INTERFACE
   } IFileSinkFilterVtbl;
-  interface IFileSinkFilter {
+  struct IFileSinkFilter {
     CONST_VTBL struct IFileSinkFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2579,7 +2579,7 @@
       HRESULT (WINAPI *GetMode)(IFileSinkFilter2 *This,DWORD *pdwFlags);
     END_INTERFACE
   } IFileSinkFilter2Vtbl;
-  interface IFileSinkFilter2 {
+  struct IFileSinkFilter2 {
     CONST_VTBL struct IFileSinkFilter2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2643,7 +2643,7 @@
       HRESULT (WINAPI *ShouldOperationContinue)(IGraphBuilder *This);
     END_INTERFACE
   } IGraphBuilderVtbl;
-  interface IGraphBuilder {
+  struct IGraphBuilder {
     CONST_VTBL struct IGraphBuilderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2714,7 +2714,7 @@
       HRESULT (WINAPI *CopyCaptureFile)(ICaptureGraphBuilder *This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback);
     END_INTERFACE
   } ICaptureGraphBuilderVtbl;
-  interface ICaptureGraphBuilder {
+  struct ICaptureGraphBuilder {
     CONST_VTBL struct ICaptureGraphBuilderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2766,7 +2766,7 @@
       HRESULT (WINAPI *Progress)(IAMCopyCaptureFileProgress *This,int iProgress);
     END_INTERFACE
   } IAMCopyCaptureFileProgressVtbl;
-  interface IAMCopyCaptureFileProgress {
+  struct IAMCopyCaptureFileProgress {
     CONST_VTBL struct IAMCopyCaptureFileProgressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2813,7 +2813,7 @@
       HRESULT (WINAPI *FindPin)(ICaptureGraphBuilder2 *This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin);
     END_INTERFACE
   } ICaptureGraphBuilder2Vtbl;
-  interface ICaptureGraphBuilder2 {
+  struct ICaptureGraphBuilder2 {
     CONST_VTBL struct ICaptureGraphBuilder2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2893,7 +2893,7 @@
       HRESULT (WINAPI *RenderEx)(IFilterGraph2 *This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext);
     END_INTERFACE
   } IFilterGraph2Vtbl;
-  interface IFilterGraph2 {
+  struct IFilterGraph2 {
     CONST_VTBL struct IFilterGraph2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2947,7 +2947,7 @@
       HRESULT (WINAPI *Backout)(IStreamBuilder *This,IPin *ppinOut,IGraphBuilder *pGraph);
     END_INTERFACE
   } IStreamBuilderVtbl;
-  interface IStreamBuilder {
+  struct IStreamBuilder {
     CONST_VTBL struct IStreamBuilderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2995,7 +2995,7 @@
       HRESULT (WINAPI *EndFlush)(IAsyncReader *This);
     END_INTERFACE
   } IAsyncReaderVtbl;
-  interface IAsyncReader {
+  struct IAsyncReader {
     CONST_VTBL struct IAsyncReaderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3047,7 +3047,7 @@
       HRESULT (WINAPI *QueryVersion)(IGraphVersion *This,LONG *pVersion);
     END_INTERFACE
   } IGraphVersionVtbl;
-  interface IGraphVersion {
+  struct IGraphVersion {
     CONST_VTBL struct IGraphVersionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3080,7 +3080,7 @@
       HRESULT (WINAPI *ReleaseResource)(IResourceConsumer *This,LONG idResource);
     END_INTERFACE
   } IResourceConsumerVtbl;
-  interface IResourceConsumer {
+  struct IResourceConsumer {
     CONST_VTBL struct IResourceConsumerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3128,7 +3128,7 @@
       HRESULT (WINAPI *ReleaseFocus)(IResourceManager *This,IUnknown *pFocusObject);
     END_INTERFACE
   } IResourceManagerVtbl;
-  interface IResourceManager {
+  struct IResourceManager {
     CONST_VTBL struct IResourceManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3188,7 +3188,7 @@
       HRESULT (WINAPI *NotifyGraphChange)(IDistributorNotify *This);
     END_INTERFACE
   } IDistributorNotifyVtbl;
-  interface IDistributorNotify {
+  struct IDistributorNotify {
     CONST_VTBL struct IDistributorNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3249,7 +3249,7 @@
       HRESULT (WINAPI *GetInfo)(IAMStreamControl *This,AM_STREAM_INFO *pInfo);
     END_INTERFACE
   } IAMStreamControlVtbl;
-  interface IAMStreamControl {
+  struct IAMStreamControl {
     CONST_VTBL struct IAMStreamControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3286,7 +3286,7 @@
       HRESULT (WINAPI *Init)(ISeekingPassThru *This,WINBOOL bSupportRendering,IPin *pPin);
     END_INTERFACE
   } ISeekingPassThruVtbl;
-  interface ISeekingPassThru {
+  struct ISeekingPassThru {
     CONST_VTBL struct ISeekingPassThruVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3360,7 +3360,7 @@
       HRESULT (WINAPI *GetStreamCaps)(IAMStreamConfig *This,int iIndex,AM_MEDIA_TYPE **ppmt,BYTE *pSCC);
     END_INTERFACE
   } IAMStreamConfigVtbl;
-  interface IAMStreamConfig {
+  struct IAMStreamConfig {
     CONST_VTBL struct IAMStreamConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3411,7 +3411,7 @@
       HRESULT (WINAPI *get_Interleaving)(IConfigInterleaving *This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll);
     END_INTERFACE
   } IConfigInterleavingVtbl;
-  interface IConfigInterleaving {
+  struct IConfigInterleaving {
     CONST_VTBL struct IConfigInterleavingVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3457,7 +3457,7 @@
       HRESULT (WINAPI *GetOutputCompatibilityIndex)(IConfigAviMux *This,WINBOOL *pfOldIndex);
     END_INTERFACE
   } IConfigAviMuxVtbl;
-  interface IConfigAviMux {
+  struct IConfigAviMux {
     CONST_VTBL struct IConfigAviMuxVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3524,7 +3524,7 @@
       HRESULT (WINAPI *OverrideFrameSize)(IAMVideoCompression *This,long FrameNumber,long Size);
     END_INTERFACE
   } IAMVideoCompressionVtbl;
-  interface IAMVideoCompression {
+  struct IAMVideoCompression {
     CONST_VTBL struct IAMVideoCompressionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3599,7 +3599,7 @@
       HRESULT (WINAPI *SendDriverMessage)(IAMVfwCaptureDialogs *This,int iDialog,int uMsg,long dw1,long dw2);
     END_INTERFACE
   } IAMVfwCaptureDialogsVtbl;
-  interface IAMVfwCaptureDialogs {
+  struct IAMVfwCaptureDialogs {
     CONST_VTBL struct IAMVfwCaptureDialogsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3642,7 +3642,7 @@
       HRESULT (WINAPI *SendDriverMessage)(IAMVfwCompressDialogs *This,int uMsg,long dw1,long dw2);
     END_INTERFACE
   } IAMVfwCompressDialogsVtbl;
-  interface IAMVfwCompressDialogs {
+  struct IAMVfwCompressDialogs {
     CONST_VTBL struct IAMVfwCompressDialogsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3688,7 +3688,7 @@
       HRESULT (WINAPI *GetAverageFrameSize)(IAMDroppedFrames *This,long *plAverageSize);
     END_INTERFACE
   } IAMDroppedFramesVtbl;
-  interface IAMDroppedFrames {
+  struct IAMDroppedFrames {
     CONST_VTBL struct IAMDroppedFramesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3762,7 +3762,7 @@
       HRESULT (WINAPI *get_BassRange)(IAMAudioInputMixer *This,double *pRange);
     END_INTERFACE
   } IAMAudioInputMixerVtbl;
-  interface IAMAudioInputMixer {
+  struct IAMAudioInputMixer {
     CONST_VTBL struct IAMAudioInputMixerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3840,7 +3840,7 @@
       HRESULT (WINAPI *GetAllocatorProperties)(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
     END_INTERFACE
   } IAMBufferNegotiationVtbl;
-  interface IAMBufferNegotiation {
+  struct IAMBufferNegotiation {
     CONST_VTBL struct IAMBufferNegotiationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3925,7 +3925,7 @@
       HRESULT (WINAPI *get_OutputEnable)(IAMAnalogVideoDecoder *This,long *plOutputEnable);
     END_INTERFACE
   } IAMAnalogVideoDecoderVtbl;
-  interface IAMAnalogVideoDecoder {
+  struct IAMAnalogVideoDecoder {
     CONST_VTBL struct IAMAnalogVideoDecoderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3997,7 +3997,7 @@
       HRESULT (WINAPI *Get)(IAMVideoProcAmp *This,long Property,long *lValue,long *Flags);
     END_INTERFACE
   } IAMVideoProcAmpVtbl;
-  interface IAMVideoProcAmp {
+  struct IAMVideoProcAmp {
     CONST_VTBL struct IAMVideoProcAmpVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4050,7 +4050,7 @@
       HRESULT (WINAPI *Get)(IAMCameraControl *This,long Property,long *lValue,long *Flags);
     END_INTERFACE
   } IAMCameraControlVtbl;
-  interface IAMCameraControl {
+  struct IAMCameraControl {
     CONST_VTBL struct IAMCameraControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4103,7 +4103,7 @@
       HRESULT (WINAPI *GetFrameRateList)(IAMVideoControl *This,IPin *pPin,long iIndex,SIZE Dimensions,long *ListSize,LONGLONG **FrameRates);
     END_INTERFACE
   } IAMVideoControlVtbl;
-  interface IAMVideoControl {
+  struct IAMVideoControl {
     CONST_VTBL struct IAMVideoControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4157,7 +4157,7 @@
       HRESULT (WINAPI *get_CrossbarPinInfo)(IAMCrossbar *This,WINBOOL IsInputPin,long PinIndex,long *PinIndexRelated,long *PhysicalType);
     END_INTERFACE
   } IAMCrossbarVtbl;
-  interface IAMCrossbar {
+  struct IAMCrossbar {
     CONST_VTBL struct IAMCrossbarVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4246,7 +4246,7 @@
       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify);
     END_INTERFACE
   } IAMTunerVtbl;
-  interface IAMTuner {
+  struct IAMTuner {
     CONST_VTBL struct IAMTunerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4319,7 +4319,7 @@
       HRESULT (WINAPI *OnEvent)(IAMTunerNotification *This,AMTunerEventType Event);
     END_INTERFACE
   } IAMTunerNotificationVtbl;
-  interface IAMTunerNotification {
+  struct IAMTunerNotification {
     CONST_VTBL struct IAMTunerNotificationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4385,7 +4385,7 @@
       HRESULT (WINAPI *get_AudioFrequency)(IAMTVTuner *This,long *lFreq);
     END_INTERFACE
   } IAMTVTunerVtbl;
-  interface IAMTVTuner {
+  struct IAMTVTuner {
     CONST_VTBL struct IAMTVTunerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4480,7 +4480,7 @@
       HRESULT (WINAPI *IsTapingPermitted)(IBPCSatelliteTuner *This);
     END_INTERFACE
   } IBPCSatelliteTunerVtbl;
-  interface IBPCSatelliteTuner {
+  struct IBPCSatelliteTuner {
     CONST_VTBL struct IBPCSatelliteTunerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4552,7 +4552,7 @@
       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify);
     END_INTERFACE
   } IAMTVAudioVtbl;
-  interface IAMTVAudio {
+  struct IAMTVAudio {
     CONST_VTBL struct IAMTVAudioVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4598,7 +4598,7 @@
       HRESULT (WINAPI *OnEvent)(IAMTVAudioNotification *This,AMTVAudioEventType Event);
     END_INTERFACE
   } IAMTVAudioNotificationVtbl;
-  interface IAMTVAudioNotification {
+  struct IAMTVAudioNotification {
     CONST_VTBL struct IAMTVAudioNotificationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4641,7 +4641,7 @@
       HRESULT (WINAPI *get_CCEnable)(IAMAnalogVideoEncoder *This,long *lCCEnable);
     END_INTERFACE
   } IAMAnalogVideoEncoderVtbl;
-  interface IAMAnalogVideoEncoder {
+  struct IAMAnalogVideoEncoder {
     CONST_VTBL struct IAMAnalogVideoEncoderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4705,7 +4705,7 @@
       HRESULT (WINAPI *QuerySupported)(IKsPropertySet *This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport);
     END_INTERFACE
   } IKsPropertySetVtbl;
-  interface IKsPropertySet {
+  struct IKsPropertySet {
     CONST_VTBL struct IKsPropertySetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4749,7 +4749,7 @@
       HRESULT (WINAPI *EnumProperty)(IMediaPropertyBag *This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue);
     END_INTERFACE
   } IMediaPropertyBagVtbl;
-  interface IMediaPropertyBag {
+  struct IMediaPropertyBag {
     CONST_VTBL struct IMediaPropertyBagVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4789,7 +4789,7 @@
       HRESULT (WINAPI *Save)(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);
     END_INTERFACE
   } IPersistMediaPropertyBagVtbl;
-  interface IPersistMediaPropertyBag {
+  struct IPersistMediaPropertyBag {
     CONST_VTBL struct IPersistMediaPropertyBagVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4827,7 +4827,7 @@
       HRESULT (WINAPI *GetPhysicalType)(IAMPhysicalPinInfo *This,long *pType,LPOLESTR *ppszType);
     END_INTERFACE
   } IAMPhysicalPinInfoVtbl;
-  interface IAMPhysicalPinInfo {
+  struct IAMPhysicalPinInfo {
     CONST_VTBL struct IAMPhysicalPinInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4876,7 +4876,7 @@
       HRESULT (WINAPI *get_DevicePort)(IAMExtDevice *This,long *pDevicePort);
     END_INTERFACE
   } IAMExtDeviceVtbl;
-  interface IAMExtDevice {
+  struct IAMExtDevice {
     CONST_VTBL struct IAMExtDeviceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4986,7 +4986,7 @@
       HRESULT (WINAPI *put_EditStart)(IAMExtTransport *This,long Value);
     END_INTERFACE
   } IAMExtTransportVtbl;
-  interface IAMExtTransport {
+  struct IAMExtTransport {
     CONST_VTBL struct IAMExtTransportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5133,7 +5133,7 @@
       HRESULT (WINAPI *GetTimecode)(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
     END_INTERFACE
   } IAMTimecodeReaderVtbl;
-  interface IAMTimecodeReader {
+  struct IAMTimecodeReader {
     CONST_VTBL struct IAMTimecodeReaderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5190,7 +5190,7 @@
       HRESULT (WINAPI *GetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
     END_INTERFACE
   } IAMTimecodeGeneratorVtbl;
-  interface IAMTimecodeGenerator {
+  struct IAMTimecodeGenerator {
     CONST_VTBL struct IAMTimecodeGeneratorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5246,7 +5246,7 @@
       HRESULT (WINAPI *SetTCDisplay)(IAMTimecodeDisplay *This,long Param,long Value);
     END_INTERFACE
   } IAMTimecodeDisplayVtbl;
-  interface IAMTimecodeDisplay {
+  struct IAMTimecodeDisplay {
     CONST_VTBL struct IAMTimecodeDisplayVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5298,7 +5298,7 @@
       HRESULT (WINAPI *GetDevMemoryObject)(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
     END_INTERFACE
   } IAMDevMemoryAllocatorVtbl;
-  interface IAMDevMemoryAllocator {
+  struct IAMDevMemoryAllocator {
     CONST_VTBL struct IAMDevMemoryAllocatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5349,7 +5349,7 @@
       HRESULT (WINAPI *GetDevId)(IAMDevMemoryControl *This,DWORD *pdwDevId);
     END_INTERFACE
   } IAMDevMemoryControlVtbl;
-  interface IAMDevMemoryControl {
+  struct IAMDevMemoryControl {
     CONST_VTBL struct IAMDevMemoryControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5402,7 +5402,7 @@
       HRESULT (WINAPI *Enable)(IAMStreamSelect *This,long lIndex,DWORD dwFlags);
     END_INTERFACE
   } IAMStreamSelectVtbl;
-  interface IAMStreamSelect {
+  struct IAMStreamSelect {
     CONST_VTBL struct IAMStreamSelectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5447,7 +5447,7 @@
       HRESULT (WINAPI *Reserve)(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
     END_INTERFACE
   } IAMResourceControlVtbl;
-  interface IAMResourceControl {
+  struct IAMResourceControl {
     CONST_VTBL struct IAMResourceControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5478,7 +5478,7 @@
       HRESULT (WINAPI *SetClockDelta)(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
     END_INTERFACE
   } IAMClockAdjustVtbl;
-  interface IAMClockAdjust {
+  struct IAMClockAdjust {
     CONST_VTBL struct IAMClockAdjustVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5515,7 +5515,7 @@
       ULONG (WINAPI *GetMiscFlags)(IAMFilterMiscFlags *This);
     END_INTERFACE
   } IAMFilterMiscFlagsVtbl;
-  interface IAMFilterMiscFlags {
+  struct IAMFilterMiscFlags {
     CONST_VTBL struct IAMFilterMiscFlagsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5550,7 +5550,7 @@
       HRESULT (WINAPI *DrawVideoImageDraw)(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
     END_INTERFACE
   } IDrawVideoImageVtbl;
-  interface IDrawVideoImage {
+  struct IDrawVideoImage {
     CONST_VTBL struct IDrawVideoImageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5589,7 +5589,7 @@
       HRESULT (WINAPI *ResetDecimationImageSize)(IDecimateVideoImage *This);
     END_INTERFACE
   } IDecimateVideoImageVtbl;
-  interface IDecimateVideoImage {
+  struct IDecimateVideoImage {
     CONST_VTBL struct IDecimateVideoImageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5632,7 +5632,7 @@
       HRESULT (WINAPI *SetDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
     END_INTERFACE
   } IAMVideoDecimationPropertiesVtbl;
-  interface IAMVideoDecimationProperties {
+  struct IAMVideoDecimationProperties {
     CONST_VTBL struct IAMVideoDecimationPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5670,7 +5670,7 @@
       HRESULT (WINAPI *CancelStep)(IVideoFrameStep *This);
     END_INTERFACE
   } IVideoFrameStepVtbl;
-  interface IVideoFrameStep {
+  struct IVideoFrameStep {
     CONST_VTBL struct IVideoFrameStepVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5714,7 +5714,7 @@
       HRESULT (WINAPI *GetLatency)(IAMLatency *This,REFERENCE_TIME *prtLatency);
     END_INTERFACE
   } IAMLatencyVtbl;
-  interface IAMLatency {
+  struct IAMLatency {
     CONST_VTBL struct IAMLatencyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5756,7 +5756,7 @@
       HRESULT (WINAPI *SetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
     END_INTERFACE
   } IAMPushSourceVtbl;
-  interface IAMPushSource {
+  struct IAMPushSource {
     CONST_VTBL struct IAMPushSourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5807,7 +5807,7 @@
       HRESULT (WINAPI *Disassociate)(IAMDeviceRemoval *This);
     END_INTERFACE
   } IAMDeviceRemovalVtbl;
-  interface IAMDeviceRemoval {
+  struct IAMDeviceRemoval {
     CONST_VTBL struct IAMDeviceRemovalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5872,7 +5872,7 @@
       HRESULT (WINAPI *put_IFormatResolution)(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
     END_INTERFACE
   } IDVEncVtbl;
-  interface IDVEnc {
+  struct IDVEnc {
     CONST_VTBL struct IDVEncVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5918,7 +5918,7 @@
       HRESULT (WINAPI *put_IPDisplay)(IIPDVDec *This,int displayPix);
     END_INTERFACE
   } IIPDVDecVtbl;
-  interface IIPDVDec {
+  struct IIPDVDec {
     CONST_VTBL struct IIPDVDecVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5952,7 +5952,7 @@
       HRESULT (WINAPI *SetRGB219)(IDVRGB219 *This,WINBOOL bState);
     END_INTERFACE
   } IDVRGB219Vtbl;
-  interface IDVRGB219 {
+  struct IDVRGB219 {
     CONST_VTBL struct IDVRGB219Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5983,7 +5983,7 @@
       HRESULT (WINAPI *DiscardAlternateVideoFrames)(IDVSplitter *This,int nDiscard);
     END_INTERFACE
   } IDVSplitterVtbl;
-  interface IDVSplitter {
+  struct IDVSplitter {
     CONST_VTBL struct IDVSplitterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6030,7 +6030,7 @@
       HRESULT (WINAPI *GetStatParam)(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
     END_INTERFACE
   } IAMAudioRendererStatsVtbl;
-  interface IAMAudioRendererStats {
+  struct IAMAudioRendererStats {
     CONST_VTBL struct IAMAudioRendererStatsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6071,7 +6071,7 @@
       HRESULT (WINAPI *SetMaxGraphLatency)(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
     END_INTERFACE
   } IAMGraphStreamsVtbl;
-  interface IAMGraphStreams {
+  struct IAMGraphStreams {
     CONST_VTBL struct IAMGraphStreamsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6118,7 +6118,7 @@
       HRESULT (WINAPI *GetOverlayFX)(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
     END_INTERFACE
   } IAMOverlayFXVtbl;
-  interface IAMOverlayFX {
+  struct IAMOverlayFX {
     CONST_VTBL struct IAMOverlayFXVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6157,7 +6157,7 @@
       HRESULT (WINAPI *AbortOperation)(IAMOpenProgress *This);
     END_INTERFACE
   } IAMOpenProgressVtbl;
-  interface IAMOpenProgress {
+  struct IAMOpenProgress {
     CONST_VTBL struct IAMOpenProgressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6195,7 +6195,7 @@
       HRESULT (WINAPI *DeleteOutputPin)(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
     END_INTERFACE
   } IMpeg2DemultiplexerVtbl;
-  interface IMpeg2Demultiplexer {
+  struct IMpeg2Demultiplexer {
     CONST_VTBL struct IMpeg2DemultiplexerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6255,7 +6255,7 @@
       HRESULT (WINAPI *Clone)(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
     END_INTERFACE
   } IEnumStreamIdMapVtbl;
-  interface IEnumStreamIdMap {
+  struct IEnumStreamIdMap {
     CONST_VTBL struct IEnumStreamIdMapVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6299,7 +6299,7 @@
       HRESULT (WINAPI *EnumStreamIdMap)(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
     END_INTERFACE
   } IMPEG2StreamIdMapVtbl;
-  interface IMPEG2StreamIdMap {
+  struct IMPEG2StreamIdMap {
     CONST_VTBL struct IMPEG2StreamIdMapVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6336,7 +6336,7 @@
       HRESULT (WINAPI *RegisterService)(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
     END_INTERFACE
   } IRegisterServiceProviderVtbl;
-  interface IRegisterServiceProvider {
+  struct IRegisterServiceProvider {
     CONST_VTBL struct IRegisterServiceProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6369,7 +6369,7 @@
       HRESULT (WINAPI *GetErrorTolerance)(IAMClockSlave *This,DWORD *pdwTolerance);
     END_INTERFACE
   } IAMClockSlaveVtbl;
-  interface IAMClockSlave {
+  struct IAMClockSlave {
     CONST_VTBL struct IAMClockSlaveVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6405,7 +6405,7 @@
       HRESULT (WINAPI *CreatedFilter)(IAMGraphBuilderCallback *This,IBaseFilter *pFil);
     END_INTERFACE
   } IAMGraphBuilderCallbackVtbl;
-  interface IAMGraphBuilderCallback {
+  struct IAMGraphBuilderCallback {
     CONST_VTBL struct IAMGraphBuilderCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6426,7 +6426,7 @@
 #ifndef _IAMFilterGraphCallback_
 #define _IAMFilterGraphCallback_
   EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
-  interface IAMFilterGraphCallback : public IUnknown {
+  struct IAMFilterGraphCallback : public IUnknown {
     virtual HRESULT UnableToRender(IPin *pPin) = 0;
   };
 #endif
@@ -6484,7 +6484,7 @@
       HRESULT (WINAPI *SetAllSettingsWithNotify)(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
     END_INTERFACE
   } ICodecAPIVtbl;
-  interface ICodecAPI {
+  struct ICodecAPI {
     CONST_VTBL struct ICodecAPIVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6557,7 +6557,7 @@
       HRESULT (WINAPI *GetCapabilitiesKey)(IGetCapabilitiesKey *This,HKEY *pHKey);
     END_INTERFACE
   } IGetCapabilitiesKeyVtbl;
-  interface IGetCapabilitiesKey {
+  struct IGetCapabilitiesKey {
     CONST_VTBL struct IGetCapabilitiesKeyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6600,7 +6600,7 @@
       HRESULT (WINAPI *SetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
     END_INTERFACE
   } IEncoderAPIVtbl;
-  interface IEncoderAPI {
+  struct IEncoderAPI {
     CONST_VTBL struct IEncoderAPIVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6654,7 +6654,7 @@
       HRESULT (WINAPI *SetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
     END_INTERFACE
   } IVideoEncoderVtbl;
-  interface IVideoEncoder {
+  struct IVideoEncoder {
     CONST_VTBL struct IVideoEncoderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6709,7 +6709,7 @@
       HRESULT (WINAPI *GetDecoderCaps)(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
     END_INTERFACE
   } IAMDecoderCapsVtbl;
-  interface IAMDecoderCaps {
+  struct IAMDecoderCaps {
     CONST_VTBL struct IAMDecoderCapsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -6780,7 +6780,7 @@
       HRESULT (WINAPI *ProtectionStatus)(IAMCertifiedOutputProtection *This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput);
     END_INTERFACE
   } IAMCertifiedOutputProtectionVtbl;
-  interface IAMCertifiedOutputProtection {
+  struct IAMCertifiedOutputProtection {
     CONST_VTBL struct IAMCertifiedOutputProtectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7125,7 +7125,7 @@
       HRESULT (WINAPI *ChapterPlayAutoStop)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
     END_INTERFACE
   } IDvdControlVtbl;
-  interface IDvdControl {
+  struct IDvdControl {
     CONST_VTBL struct IDvdControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7302,7 +7302,7 @@
       HRESULT (WINAPI *GetRoot)(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
     END_INTERFACE
   } IDvdInfoVtbl;
-  interface IDvdInfo {
+  struct IDvdInfo {
     CONST_VTBL struct IDvdInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7401,7 +7401,7 @@
       HRESULT (WINAPI *WaitForEnd)(IDvdCmd *This);
     END_INTERFACE
   } IDvdCmdVtbl;
-  interface IDvdCmd {
+  struct IDvdCmd {
     CONST_VTBL struct IDvdCmdVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7437,7 +7437,7 @@
       HRESULT (WINAPI *GetParentalLevel)(IDvdState *This,ULONG *pulParentalLevel);
     END_INTERFACE
   } IDvdStateVtbl;
-  interface IDvdState {
+  struct IDvdState {
     CONST_VTBL struct IDvdStateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7549,7 +7549,7 @@
       HRESULT (WINAPI *SelectDefaultSubpictureLanguage)(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
     END_INTERFACE
   } IDvdControl2Vtbl;
-  interface IDvdControl2 {
+  struct IDvdControl2 {
     CONST_VTBL struct IDvdControl2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7815,7 +7815,7 @@
       HRESULT (WINAPI *IsSubpictureStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
     END_INTERFACE
   } IDvdInfo2Vtbl;
-  interface IDvdInfo2 {
+  struct IDvdInfo2 {
     CONST_VTBL struct IDvdInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -7986,7 +7986,7 @@
       HRESULT (WINAPI *RenderDvdVideoVolume)(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
     END_INTERFACE
   } IDvdGraphBuilderVtbl;
-  interface IDvdGraphBuilder {
+  struct IDvdGraphBuilder {
     CONST_VTBL struct IDvdGraphBuilderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8035,7 +8035,7 @@
       HRESULT (WINAPI *SetCallbackInterface)(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
     END_INTERFACE
   } IDDrawExclModeVideoVtbl;
-  interface IDDrawExclModeVideo {
+  struct IDDrawExclModeVideo {
     CONST_VTBL struct IDDrawExclModeVideoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8094,7 +8094,7 @@
       HRESULT (WINAPI *OnUpdateSize)(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
     END_INTERFACE
   } IDDrawExclModeVideoCallbackVtbl;
-  interface IDDrawExclModeVideoCallback {
+  struct IDDrawExclModeVideoCallback {
     CONST_VTBL struct IDDrawExclModeVideoCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8139,7 +8139,7 @@
       HRESULT (WINAPI *DynamicDisconnect)(IPinConnection *This);
     END_INTERFACE
   } IPinConnectionVtbl;
-  interface IPinConnection {
+  struct IPinConnection {
     CONST_VTBL struct IPinConnectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8179,7 +8179,7 @@
       HRESULT (WINAPI *Block)(IPinFlowControl *This,DWORD dwBlockFlags,HANDLE hEvent);
     END_INTERFACE
   } IPinFlowControlVtbl;
-  interface IPinFlowControl {
+  struct IPinFlowControl {
     CONST_VTBL struct IPinFlowControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8246,7 +8246,7 @@
       HRESULT (WINAPI *RemoveFilterEx)(IGraphConfig *This,IBaseFilter *pFilter,DWORD Flags);
     END_INTERFACE
   } IGraphConfigVtbl;
-  interface IGraphConfig {
+  struct IGraphConfig {
     CONST_VTBL struct IGraphConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8304,7 +8304,7 @@
       HRESULT (WINAPI *Reconfigure)(IGraphConfigCallback *This,PVOID pvContext,DWORD dwFlags);
     END_INTERFACE
   } IGraphConfigCallbackVtbl;
-  interface IGraphConfigCallback {
+  struct IGraphConfigCallback {
     CONST_VTBL struct IGraphConfigCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8341,7 +8341,7 @@
       HRESULT (WINAPI *RemoveChain)(IFilterChain *This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter);
     END_INTERFACE
   } IFilterChainVtbl;
-  interface IFilterChain {
+  struct IFilterChain {
     CONST_VTBL struct IFilterChainVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8405,7 +8405,7 @@
       HRESULT (WINAPI *PresentImage)(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
     END_INTERFACE
   } IVMRImagePresenterVtbl;
-  interface IVMRImagePresenter {
+  struct IVMRImagePresenter {
     CONST_VTBL struct IVMRImagePresenterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8465,7 +8465,7 @@
       HRESULT (WINAPI *AdviseNotify)(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
     END_INTERFACE
   } IVMRSurfaceAllocatorVtbl;
-  interface IVMRSurfaceAllocator {
+  struct IVMRSurfaceAllocator {
     CONST_VTBL struct IVMRSurfaceAllocatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8515,7 +8515,7 @@
       HRESULT (WINAPI *SetBorderColor)(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
     END_INTERFACE
   } IVMRSurfaceAllocatorNotifyVtbl;
-  interface IVMRSurfaceAllocatorNotify {
+  struct IVMRSurfaceAllocatorNotify {
     CONST_VTBL struct IVMRSurfaceAllocatorNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8595,7 +8595,7 @@
       HRESULT (WINAPI *GetColorKey)(IVMRWindowlessControl *This,COLORREF *lpClr);
     END_INTERFACE
   } IVMRWindowlessControlVtbl;
-  interface IVMRWindowlessControl {
+  struct IVMRWindowlessControl {
     CONST_VTBL struct IVMRWindowlessControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8706,7 +8706,7 @@
       HRESULT (WINAPI *GetMixingPrefs)(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
     END_INTERFACE
   } IVMRMixerControlVtbl;
-  interface IVMRMixerControl {
+  struct IVMRMixerControl {
     CONST_VTBL struct IVMRMixerControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8794,7 +8794,7 @@
       HRESULT (WINAPI *GetAvailableMonitors)(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
     END_INTERFACE
   } IVMRMonitorConfigVtbl;
-  interface IVMRMonitorConfig {
+  struct IVMRMonitorConfig {
     CONST_VTBL struct IVMRMonitorConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8865,7 +8865,7 @@
       HRESULT (WINAPI *GetRenderingMode)(IVMRFilterConfig *This,DWORD *pMode);
     END_INTERFACE
   } IVMRFilterConfigVtbl;
-  interface IVMRFilterConfig {
+  struct IVMRFilterConfig {
     CONST_VTBL struct IVMRFilterConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8916,7 +8916,7 @@
       HRESULT (WINAPI *SetAspectRatioMode)(IVMRAspectRatioControl *This,DWORD dwARMode);
     END_INTERFACE
   } IVMRAspectRatioControlVtbl;
-  interface IVMRAspectRatioControl {
+  struct IVMRAspectRatioControl {
     CONST_VTBL struct IVMRAspectRatioControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -8997,7 +8997,7 @@
       HRESULT (WINAPI *GetActualDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
     END_INTERFACE
   } IVMRDeinterlaceControlVtbl;
-  interface IVMRDeinterlaceControl {
+  struct IVMRDeinterlaceControl {
     CONST_VTBL struct IVMRDeinterlaceControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9070,7 +9070,7 @@
       HRESULT (WINAPI *GetAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
     END_INTERFACE
   } IVMRMixerBitmapVtbl;
-  interface IVMRMixerBitmap {
+  struct IVMRMixerBitmap {
     CONST_VTBL struct IVMRMixerBitmapVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9125,7 +9125,7 @@
       HRESULT (WINAPI *CompositeImage)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams);
     END_INTERFACE
   } IVMRImageCompositorVtbl;
-  interface IVMRImageCompositor {
+  struct IVMRImageCompositor {
     CONST_VTBL struct IVMRImageCompositorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9171,7 +9171,7 @@
       HRESULT (WINAPI *GetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
     END_INTERFACE
   } IVMRVideoStreamControlVtbl;
-  interface IVMRVideoStreamControl {
+  struct IVMRVideoStreamControl {
     CONST_VTBL struct IVMRVideoStreamControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9217,7 +9217,7 @@
       HRESULT (WINAPI *GetSurface)(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
     END_INTERFACE
   } IVMRSurfaceVtbl;
-  interface IVMRSurface {
+  struct IVMRSurface {
     CONST_VTBL struct IVMRSurfaceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9260,7 +9260,7 @@
       HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
     END_INTERFACE
   } IVMRImagePresenterConfigVtbl;
-  interface IVMRImagePresenterConfig {
+  struct IVMRImagePresenterConfig {
     CONST_VTBL struct IVMRImagePresenterConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9298,7 +9298,7 @@
       HRESULT (WINAPI *GetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
     END_INTERFACE
   } IVMRImagePresenterExclModeConfigVtbl;
-  interface IVMRImagePresenterExclModeConfig {
+  struct IVMRImagePresenterExclModeConfig {
     CONST_VTBL struct IVMRImagePresenterExclModeConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -9336,7 +9336,7 @@
       HRESULT (WINAPI *GetVideoPortIndex)(IVPManager *This,DWORD *pdwVideoPortIndex);
     END_INTERFACE
   } IVPManagerVtbl;
-  interface IVPManager {
+  struct IVPManager {
     CONST_VTBL struct IVPManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/subsmgr.h b/mingw-w64-headers/include/subsmgr.h
index b0b5006..e1187ec 100755
--- a/mingw-w64-headers/include/subsmgr.h
+++ b/mingw-w64-headers/include/subsmgr.h
@@ -24,27 +24,27 @@
 
 #ifndef __IEnumItemProperties_FWD_DEFINED__
 #define __IEnumItemProperties_FWD_DEFINED__
-typedef interface IEnumItemProperties IEnumItemProperties;
+typedef struct IEnumItemProperties IEnumItemProperties;
 #endif
 
 #ifndef __ISubscriptionItem_FWD_DEFINED__
 #define __ISubscriptionItem_FWD_DEFINED__
-typedef interface ISubscriptionItem ISubscriptionItem;
+typedef struct ISubscriptionItem ISubscriptionItem;
 #endif
 
 #ifndef __IEnumSubscription_FWD_DEFINED__
 #define __IEnumSubscription_FWD_DEFINED__
-typedef interface IEnumSubscription IEnumSubscription;
+typedef struct IEnumSubscription IEnumSubscription;
 #endif
 
 #ifndef __ISubscriptionMgr_FWD_DEFINED__
 #define __ISubscriptionMgr_FWD_DEFINED__
-typedef interface ISubscriptionMgr ISubscriptionMgr;
+typedef struct ISubscriptionMgr ISubscriptionMgr;
 #endif
 
 #ifndef __ISubscriptionMgr2_FWD_DEFINED__
 #define __ISubscriptionMgr2_FWD_DEFINED__
-typedef interface ISubscriptionMgr2 ISubscriptionMgr2;
+typedef struct ISubscriptionMgr2 ISubscriptionMgr2;
 #endif
 
 #ifndef __SubscriptionMgr_FWD_DEFINED__
@@ -105,7 +105,7 @@
       HRESULT (WINAPI *GetCount)(IEnumItemProperties *This,ULONG *pnCount);
     END_INTERFACE
   } IEnumItemPropertiesVtbl;
-  interface IEnumItemProperties {
+  struct IEnumItemProperties {
     CONST_VTBL struct IEnumItemPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -175,7 +175,7 @@
       HRESULT (WINAPI *NotifyChanged)(ISubscriptionItem *This);
     END_INTERFACE
   } ISubscriptionItemVtbl;
-  interface ISubscriptionItem {
+  struct ISubscriptionItem {
     CONST_VTBL struct ISubscriptionItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -234,7 +234,7 @@
       HRESULT (WINAPI *GetCount)(IEnumSubscription *This,ULONG *pnCount);
     END_INTERFACE
   } IEnumSubscriptionVtbl;
-  interface IEnumSubscription {
+  struct IEnumSubscription {
     CONST_VTBL struct IEnumSubscriptionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -341,7 +341,7 @@
       HRESULT (WINAPI *CreateSubscription)(ISubscriptionMgr *This,HWND hwnd,LPCWSTR pwszURL,LPCWSTR pwszFriendlyName,DWORD dwFlags,SUBSCRIPTIONTYPE subsType,SUBSCRIPTIONINFO *pInfo);
     END_INTERFACE
   } ISubscriptionMgrVtbl;
-  interface ISubscriptionMgr {
+  struct ISubscriptionMgr {
     CONST_VTBL struct ISubscriptionMgrVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -426,7 +426,7 @@
       HRESULT (WINAPI *AbortAll)(ISubscriptionMgr2 *This);
     END_INTERFACE
   } ISubscriptionMgr2Vtbl;
-  interface ISubscriptionMgr2 {
+  struct ISubscriptionMgr2 {
     CONST_VTBL struct ISubscriptionMgr2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/tapi3.h b/mingw-w64-headers/include/tapi3.h
index 8598864..ed8b5d3 100755
--- a/mingw-w64-headers/include/tapi3.h
+++ b/mingw-w64-headers/include/tapi3.h
@@ -24,167 +24,167 @@
 
 #ifndef __ITAgent_FWD_DEFINED__
 #define __ITAgent_FWD_DEFINED__
-typedef interface ITAgent ITAgent;
+typedef struct ITAgent ITAgent;
 #endif
 
 #ifndef __ITAgentSession_FWD_DEFINED__
 #define __ITAgentSession_FWD_DEFINED__
-typedef interface ITAgentSession ITAgentSession;
+typedef struct ITAgentSession ITAgentSession;
 #endif
 
 #ifndef __ITACDGroup_FWD_DEFINED__
 #define __ITACDGroup_FWD_DEFINED__
-typedef interface ITACDGroup ITACDGroup;
+typedef struct ITACDGroup ITACDGroup;
 #endif
 
 #ifndef __ITQueue_FWD_DEFINED__
 #define __ITQueue_FWD_DEFINED__
-typedef interface ITQueue ITQueue;
+typedef struct ITQueue ITQueue;
 #endif
 
 #ifndef __ITAgentEvent_FWD_DEFINED__
 #define __ITAgentEvent_FWD_DEFINED__
-typedef interface ITAgentEvent ITAgentEvent;
+typedef struct ITAgentEvent ITAgentEvent;
 #endif
 
 #ifndef __ITAgentSessionEvent_FWD_DEFINED__
 #define __ITAgentSessionEvent_FWD_DEFINED__
-typedef interface ITAgentSessionEvent ITAgentSessionEvent;
+typedef struct ITAgentSessionEvent ITAgentSessionEvent;
 #endif
 
 #ifndef __ITACDGroupEvent_FWD_DEFINED__
 #define __ITACDGroupEvent_FWD_DEFINED__
-typedef interface ITACDGroupEvent ITACDGroupEvent;
+typedef struct ITACDGroupEvent ITACDGroupEvent;
 #endif
 
 #ifndef __ITQueueEvent_FWD_DEFINED__
 #define __ITQueueEvent_FWD_DEFINED__
-typedef interface ITQueueEvent ITQueueEvent;
+typedef struct ITQueueEvent ITQueueEvent;
 #endif
 
 #ifndef __ITAgentHandlerEvent_FWD_DEFINED__
 #define __ITAgentHandlerEvent_FWD_DEFINED__
-typedef interface ITAgentHandlerEvent ITAgentHandlerEvent;
+typedef struct ITAgentHandlerEvent ITAgentHandlerEvent;
 #endif
 
 #ifndef __ITTAPICallCenter_FWD_DEFINED__
 #define __ITTAPICallCenter_FWD_DEFINED__
-typedef interface ITTAPICallCenter ITTAPICallCenter;
+typedef struct ITTAPICallCenter ITTAPICallCenter;
 #endif
 
 #ifndef __ITAgentHandler_FWD_DEFINED__
 #define __ITAgentHandler_FWD_DEFINED__
-typedef interface ITAgentHandler ITAgentHandler;
+typedef struct ITAgentHandler ITAgentHandler;
 #endif
 
 #ifndef __IEnumAgent_FWD_DEFINED__
 #define __IEnumAgent_FWD_DEFINED__
-typedef interface IEnumAgent IEnumAgent;
+typedef struct IEnumAgent IEnumAgent;
 #endif
 
 #ifndef __IEnumAgentSession_FWD_DEFINED__
 #define __IEnumAgentSession_FWD_DEFINED__
-typedef interface IEnumAgentSession IEnumAgentSession;
+typedef struct IEnumAgentSession IEnumAgentSession;
 #endif
 
 #ifndef __IEnumQueue_FWD_DEFINED__
 #define __IEnumQueue_FWD_DEFINED__
-typedef interface IEnumQueue IEnumQueue;
+typedef struct IEnumQueue IEnumQueue;
 #endif
 
 #ifndef __IEnumACDGroup_FWD_DEFINED__
 #define __IEnumACDGroup_FWD_DEFINED__
-typedef interface IEnumACDGroup IEnumACDGroup;
+typedef struct IEnumACDGroup IEnumACDGroup;
 #endif
 
 #ifndef __IEnumAgentHandler_FWD_DEFINED__
 #define __IEnumAgentHandler_FWD_DEFINED__
-typedef interface IEnumAgentHandler IEnumAgentHandler;
+typedef struct IEnumAgentHandler IEnumAgentHandler;
 #endif
 
 #ifndef __ITAMMediaFormat_FWD_DEFINED__
 #define __ITAMMediaFormat_FWD_DEFINED__
-typedef interface ITAMMediaFormat ITAMMediaFormat;
+typedef struct ITAMMediaFormat ITAMMediaFormat;
 #endif
 
 #ifndef __ITAllocatorProperties_FWD_DEFINED__
 #define __ITAllocatorProperties_FWD_DEFINED__
-typedef interface ITAllocatorProperties ITAllocatorProperties;
+typedef struct ITAllocatorProperties ITAllocatorProperties;
 #endif
 
 #ifndef __ITPluggableTerminalEventSink_FWD_DEFINED__
 #define __ITPluggableTerminalEventSink_FWD_DEFINED__
-typedef interface ITPluggableTerminalEventSink ITPluggableTerminalEventSink;
+typedef struct ITPluggableTerminalEventSink ITPluggableTerminalEventSink;
 #endif
 
 #ifndef __ITPluggableTerminalEventSinkRegistration_FWD_DEFINED__
 #define __ITPluggableTerminalEventSinkRegistration_FWD_DEFINED__
-typedef interface ITPluggableTerminalEventSinkRegistration ITPluggableTerminalEventSinkRegistration;
+typedef struct ITPluggableTerminalEventSinkRegistration ITPluggableTerminalEventSinkRegistration;
 #endif
 
 #ifndef __ITMSPAddress_FWD_DEFINED__
 #define __ITMSPAddress_FWD_DEFINED__
-typedef interface ITMSPAddress ITMSPAddress;
+typedef struct ITMSPAddress ITMSPAddress;
 #endif
 
 #ifndef __ITAgent_FWD_DEFINED__
 #define __ITAgent_FWD_DEFINED__
-typedef interface ITAgent ITAgent;
+typedef struct ITAgent ITAgent;
 #endif
 
 #ifndef __ITAgentEvent_FWD_DEFINED__
 #define __ITAgentEvent_FWD_DEFINED__
-typedef interface ITAgentEvent ITAgentEvent;
+typedef struct ITAgentEvent ITAgentEvent;
 #endif
 
 #ifndef __ITAgentSession_FWD_DEFINED__
 #define __ITAgentSession_FWD_DEFINED__
-typedef interface ITAgentSession ITAgentSession;
+typedef struct ITAgentSession ITAgentSession;
 #endif
 
 #ifndef __ITAgentSessionEvent_FWD_DEFINED__
 #define __ITAgentSessionEvent_FWD_DEFINED__
-typedef interface ITAgentSessionEvent ITAgentSessionEvent;
+typedef struct ITAgentSessionEvent ITAgentSessionEvent;
 #endif
 
 #ifndef __ITACDGroup_FWD_DEFINED__
 #define __ITACDGroup_FWD_DEFINED__
-typedef interface ITACDGroup ITACDGroup;
+typedef struct ITACDGroup ITACDGroup;
 #endif
 
 #ifndef __ITACDGroupEvent_FWD_DEFINED__
 #define __ITACDGroupEvent_FWD_DEFINED__
-typedef interface ITACDGroupEvent ITACDGroupEvent;
+typedef struct ITACDGroupEvent ITACDGroupEvent;
 #endif
 
 #ifndef __ITQueue_FWD_DEFINED__
 #define __ITQueue_FWD_DEFINED__
-typedef interface ITQueue ITQueue;
+typedef struct ITQueue ITQueue;
 #endif
 
 #ifndef __ITQueueEvent_FWD_DEFINED__
 #define __ITQueueEvent_FWD_DEFINED__
-typedef interface ITQueueEvent ITQueueEvent;
+typedef struct ITQueueEvent ITQueueEvent;
 #endif
 
 #ifndef __ITTAPICallCenter_FWD_DEFINED__
 #define __ITTAPICallCenter_FWD_DEFINED__
-typedef interface ITTAPICallCenter ITTAPICallCenter;
+typedef struct ITTAPICallCenter ITTAPICallCenter;
 #endif
 
 #ifndef __ITAgentHandler_FWD_DEFINED__
 #define __ITAgentHandler_FWD_DEFINED__
-typedef interface ITAgentHandler ITAgentHandler;
+typedef struct ITAgentHandler ITAgentHandler;
 #endif
 
 #ifndef __ITAgentHandlerEvent_FWD_DEFINED__
 #define __ITAgentHandlerEvent_FWD_DEFINED__
-typedef interface ITAgentHandlerEvent ITAgentHandlerEvent;
+typedef struct ITAgentHandlerEvent ITAgentHandlerEvent;
 #endif
 
 #ifndef __ITTAPIDispatchEventNotification_FWD_DEFINED__
 #define __ITTAPIDispatchEventNotification_FWD_DEFINED__
-typedef interface ITTAPIDispatchEventNotification ITTAPIDispatchEventNotification;
+typedef struct ITTAPIDispatchEventNotification ITTAPIDispatchEventNotification;
 #endif
 
 #ifndef __TAPI_FWD_DEFINED__
@@ -217,7 +217,7 @@
 
 #ifndef __ITTAPIDispatchEventNotification_FWD_DEFINED__
 #define __ITTAPIDispatchEventNotification_FWD_DEFINED__
-typedef interface ITTAPIDispatchEventNotification ITTAPIDispatchEventNotification;
+typedef struct ITTAPIDispatchEventNotification ITTAPIDispatchEventNotification;
 #endif
 
 #include "oaidl.h"
@@ -318,7 +318,7 @@
       HRESULT (WINAPI *get_AgentSessions)(ITAgent *This,VARIANT *pVariant);
     END_INTERFACE
   } ITAgentVtbl;
-  interface ITAgent {
+  struct ITAgent {
     CONST_VTBL struct ITAgentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -437,7 +437,7 @@
       HRESULT (WINAPI *get_AverageTimeToAnswer)(ITAgentSession *This,long *plAnswerTime);
     END_INTERFACE
   } ITAgentSessionVtbl;
-  interface ITAgentSession {
+  struct ITAgentSession {
     CONST_VTBL struct ITAgentSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -528,7 +528,7 @@
       HRESULT (WINAPI *get_Queues)(ITACDGroup *This,VARIANT *pVariant);
     END_INTERFACE
   } ITACDGroupVtbl;
-  interface ITACDGroup {
+  struct ITACDGroup {
     CONST_VTBL struct ITACDGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -595,7 +595,7 @@
       HRESULT (WINAPI *get_Name)(ITQueue *This,BSTR *ppName);
     END_INTERFACE
   } ITQueueVtbl;
-  interface ITQueue {
+  struct ITQueue {
     CONST_VTBL struct ITQueueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -669,7 +669,7 @@
       HRESULT (WINAPI *get_Event)(ITAgentEvent *This,AGENT_EVENT *pEvent);
     END_INTERFACE
   } ITAgentEventVtbl;
-  interface ITAgentEvent {
+  struct ITAgentEvent {
     CONST_VTBL struct ITAgentEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -713,7 +713,7 @@
       HRESULT (WINAPI *get_Event)(ITAgentSessionEvent *This,AGENT_SESSION_EVENT *pEvent);
     END_INTERFACE
   } ITAgentSessionEventVtbl;
-  interface ITAgentSessionEvent {
+  struct ITAgentSessionEvent {
     CONST_VTBL struct ITAgentSessionEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -757,7 +757,7 @@
       HRESULT (WINAPI *get_Event)(ITACDGroupEvent *This,ACDGROUP_EVENT *pEvent);
     END_INTERFACE
   } ITACDGroupEventVtbl;
-  interface ITACDGroupEvent {
+  struct ITACDGroupEvent {
     CONST_VTBL struct ITACDGroupEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -801,7 +801,7 @@
       HRESULT (WINAPI *get_Event)(ITQueueEvent *This,ACDQUEUE_EVENT *pEvent);
     END_INTERFACE
   } ITQueueEventVtbl;
-  interface ITQueueEvent {
+  struct ITQueueEvent {
     CONST_VTBL struct ITQueueEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -845,7 +845,7 @@
       HRESULT (WINAPI *get_Event)(ITAgentHandlerEvent *This,AGENTHANDLER_EVENT *pEvent);
     END_INTERFACE
   } ITAgentHandlerEventVtbl;
-  interface ITAgentHandlerEvent {
+  struct ITAgentHandlerEvent {
     CONST_VTBL struct ITAgentHandlerEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -889,7 +889,7 @@
       HRESULT (WINAPI *get_AgentHandlers)(ITTAPICallCenter *This,VARIANT *pVariant);
     END_INTERFACE
   } ITTAPICallCenterVtbl;
-  interface ITTAPICallCenter {
+  struct ITTAPICallCenter {
     CONST_VTBL struct ITTAPICallCenterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -943,7 +943,7 @@
       HRESULT (WINAPI *get_UsableAddresses)(ITAgentHandler *This,VARIANT *pVariant);
     END_INTERFACE
   } ITAgentHandlerVtbl;
-  interface ITAgentHandler {
+  struct ITAgentHandler {
     CONST_VTBL struct ITAgentHandlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1002,7 +1002,7 @@
       HRESULT (WINAPI *Clone)(IEnumAgent *This,IEnumAgent **ppEnum);
     END_INTERFACE
   } IEnumAgentVtbl;
-  interface IEnumAgent {
+  struct IEnumAgent {
     CONST_VTBL struct IEnumAgentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1048,7 +1048,7 @@
       HRESULT (WINAPI *Clone)(IEnumAgentSession *This,IEnumAgentSession **ppEnum);
     END_INTERFACE
   } IEnumAgentSessionVtbl;
-  interface IEnumAgentSession {
+  struct IEnumAgentSession {
     CONST_VTBL struct IEnumAgentSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1094,7 +1094,7 @@
       HRESULT (WINAPI *Clone)(IEnumQueue *This,IEnumQueue **ppEnum);
     END_INTERFACE
   } IEnumQueueVtbl;
-  interface IEnumQueue {
+  struct IEnumQueue {
     CONST_VTBL struct IEnumQueueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1140,7 +1140,7 @@
       HRESULT (WINAPI *Clone)(IEnumACDGroup *This,IEnumACDGroup **ppEnum);
     END_INTERFACE
   } IEnumACDGroupVtbl;
-  interface IEnumACDGroup {
+  struct IEnumACDGroup {
     CONST_VTBL struct IEnumACDGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1186,7 +1186,7 @@
       HRESULT (WINAPI *Clone)(IEnumAgentHandler *This,IEnumAgentHandler **ppEnum);
     END_INTERFACE
   } IEnumAgentHandlerVtbl;
-  interface IEnumAgentHandler {
+  struct IEnumAgentHandler {
     CONST_VTBL struct IEnumAgentHandlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1230,7 +1230,7 @@
       HRESULT (WINAPI *put_MediaFormat)(ITAMMediaFormat *This,const AM_MEDIA_TYPE *pmt);
     END_INTERFACE
   } ITAMMediaFormatVtbl;
-  interface ITAMMediaFormat {
+  struct ITAMMediaFormat {
     CONST_VTBL struct ITAMMediaFormatVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1274,7 +1274,7 @@
       HRESULT (WINAPI *GetBufferSize)(ITAllocatorProperties *This,DWORD *pBufferSize);
     END_INTERFACE
   } ITAllocatorPropertiesVtbl;
-  interface ITAllocatorProperties {
+  struct ITAllocatorProperties {
     CONST_VTBL struct ITAllocatorPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1392,7 +1392,7 @@
       HRESULT (WINAPI *FireEvent)(ITPluggableTerminalEventSink *This,const MSP_EVENT_INFO *pMspEventInfo);
     END_INTERFACE
   } ITPluggableTerminalEventSinkVtbl;
-  interface ITPluggableTerminalEventSink {
+  struct ITPluggableTerminalEventSink {
     CONST_VTBL struct ITPluggableTerminalEventSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1425,7 +1425,7 @@
       HRESULT (WINAPI *UnregisterSink)(ITPluggableTerminalEventSinkRegistration *This);
     END_INTERFACE
   } ITPluggableTerminalEventSinkRegistrationVtbl;
-  interface ITPluggableTerminalEventSinkRegistration {
+  struct ITPluggableTerminalEventSinkRegistration {
     CONST_VTBL struct ITPluggableTerminalEventSinkRegistrationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1469,7 +1469,7 @@
       HRESULT (WINAPI *GetEvent)(ITMSPAddress *This,DWORD *pdwSize,byte *pEventBuffer);
     END_INTERFACE
   } ITMSPAddressVtbl;
-  interface ITMSPAddress {
+  struct ITMSPAddress {
     CONST_VTBL struct ITMSPAddressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1519,7 +1519,7 @@
       HRESULT (WINAPI *Invoke)(ITTAPIDispatchEventNotification *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } ITTAPIDispatchEventNotificationVtbl;
-  interface ITTAPIDispatchEventNotification {
+  struct ITTAPIDispatchEventNotification {
     CONST_VTBL struct ITTAPIDispatchEventNotificationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/tapi3cc.h b/mingw-w64-headers/include/tapi3cc.h
index fbd0add..cbf15f2 100755
--- a/mingw-w64-headers/include/tapi3cc.h
+++ b/mingw-w64-headers/include/tapi3cc.h
@@ -24,82 +24,82 @@
 
 #ifndef __ITAgent_FWD_DEFINED__
 #define __ITAgent_FWD_DEFINED__
-typedef interface ITAgent ITAgent;
+typedef struct ITAgent ITAgent;
 #endif
 
 #ifndef __ITAgentSession_FWD_DEFINED__
 #define __ITAgentSession_FWD_DEFINED__
-typedef interface ITAgentSession ITAgentSession;
+typedef struct ITAgentSession ITAgentSession;
 #endif
 
 #ifndef __ITACDGroup_FWD_DEFINED__
 #define __ITACDGroup_FWD_DEFINED__
-typedef interface ITACDGroup ITACDGroup;
+typedef struct ITACDGroup ITACDGroup;
 #endif
 
 #ifndef __ITQueue_FWD_DEFINED__
 #define __ITQueue_FWD_DEFINED__
-typedef interface ITQueue ITQueue;
+typedef struct ITQueue ITQueue;
 #endif
 
 #ifndef __ITAgentEvent_FWD_DEFINED__
 #define __ITAgentEvent_FWD_DEFINED__
-typedef interface ITAgentEvent ITAgentEvent;
+typedef struct ITAgentEvent ITAgentEvent;
 #endif
 
 #ifndef __ITAgentSessionEvent_FWD_DEFINED__
 #define __ITAgentSessionEvent_FWD_DEFINED__
-typedef interface ITAgentSessionEvent ITAgentSessionEvent;
+typedef struct ITAgentSessionEvent ITAgentSessionEvent;
 #endif
 
 #ifndef __ITACDGroupEvent_FWD_DEFINED__
 #define __ITACDGroupEvent_FWD_DEFINED__
-typedef interface ITACDGroupEvent ITACDGroupEvent;
+typedef struct ITACDGroupEvent ITACDGroupEvent;
 #endif
 
 #ifndef __ITQueueEvent_FWD_DEFINED__
 #define __ITQueueEvent_FWD_DEFINED__
-typedef interface ITQueueEvent ITQueueEvent;
+typedef struct ITQueueEvent ITQueueEvent;
 #endif
 
 #ifndef __ITAgentHandlerEvent_FWD_DEFINED__
 #define __ITAgentHandlerEvent_FWD_DEFINED__
-typedef interface ITAgentHandlerEvent ITAgentHandlerEvent;
+typedef struct ITAgentHandlerEvent ITAgentHandlerEvent;
 #endif
 
 #ifndef __ITTAPICallCenter_FWD_DEFINED__
 #define __ITTAPICallCenter_FWD_DEFINED__
-typedef interface ITTAPICallCenter ITTAPICallCenter;
+typedef struct ITTAPICallCenter ITTAPICallCenter;
 #endif
 
 #ifndef __ITAgentHandler_FWD_DEFINED__
 #define __ITAgentHandler_FWD_DEFINED__
-typedef interface ITAgentHandler ITAgentHandler;
+typedef struct ITAgentHandler ITAgentHandler;
 #endif
 
 #ifndef __IEnumAgent_FWD_DEFINED__
 #define __IEnumAgent_FWD_DEFINED__
-typedef interface IEnumAgent IEnumAgent;
+typedef struct IEnumAgent IEnumAgent;
 #endif
 
 #ifndef __IEnumAgentSession_FWD_DEFINED__
 #define __IEnumAgentSession_FWD_DEFINED__
-typedef interface IEnumAgentSession IEnumAgentSession;
+typedef struct IEnumAgentSession IEnumAgentSession;
 #endif
 
 #ifndef __IEnumQueue_FWD_DEFINED__
 #define __IEnumQueue_FWD_DEFINED__
-typedef interface IEnumQueue IEnumQueue;
+typedef struct IEnumQueue IEnumQueue;
 #endif
 
 #ifndef __IEnumACDGroup_FWD_DEFINED__
 #define __IEnumACDGroup_FWD_DEFINED__
-typedef interface IEnumACDGroup IEnumACDGroup;
+typedef struct IEnumACDGroup IEnumACDGroup;
 #endif
 
 #ifndef __IEnumAgentHandler_FWD_DEFINED__
 #define __IEnumAgentHandler_FWD_DEFINED__
-typedef interface IEnumAgentHandler IEnumAgentHandler;
+typedef struct IEnumAgentHandler IEnumAgentHandler;
 #endif
 
 #include "oaidl.h"
@@ -199,7 +199,7 @@
       HRESULT (WINAPI *get_AgentSessions)(ITAgent *This,VARIANT *pVariant);
     END_INTERFACE
   } ITAgentVtbl;
-  interface ITAgent {
+  struct ITAgent {
     CONST_VTBL struct ITAgentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -318,7 +318,7 @@
       HRESULT (WINAPI *get_AverageTimeToAnswer)(ITAgentSession *This,long *plAnswerTime);
     END_INTERFACE
   } ITAgentSessionVtbl;
-  interface ITAgentSession {
+  struct ITAgentSession {
     CONST_VTBL struct ITAgentSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -409,7 +409,7 @@
       HRESULT (WINAPI *get_Queues)(ITACDGroup *This,VARIANT *pVariant);
     END_INTERFACE
   } ITACDGroupVtbl;
-  interface ITACDGroup {
+  struct ITACDGroup {
     CONST_VTBL struct ITACDGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -476,7 +476,7 @@
       HRESULT (WINAPI *get_Name)(ITQueue *This,BSTR *ppName);
     END_INTERFACE
   } ITQueueVtbl;
-  interface ITQueue {
+  struct ITQueue {
     CONST_VTBL struct ITQueueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -550,7 +550,7 @@
       HRESULT (WINAPI *get_Event)(ITAgentEvent *This,AGENT_EVENT *pEvent);
     END_INTERFACE
   } ITAgentEventVtbl;
-  interface ITAgentEvent {
+  struct ITAgentEvent {
     CONST_VTBL struct ITAgentEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -594,7 +594,7 @@
       HRESULT (WINAPI *get_Event)(ITAgentSessionEvent *This,AGENT_SESSION_EVENT *pEvent);
     END_INTERFACE
   } ITAgentSessionEventVtbl;
-  interface ITAgentSessionEvent {
+  struct ITAgentSessionEvent {
     CONST_VTBL struct ITAgentSessionEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -638,7 +638,7 @@
       HRESULT (WINAPI *get_Event)(ITACDGroupEvent *This,ACDGROUP_EVENT *pEvent);
     END_INTERFACE
   } ITACDGroupEventVtbl;
-  interface ITACDGroupEvent {
+  struct ITACDGroupEvent {
     CONST_VTBL struct ITACDGroupEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -682,7 +682,7 @@
       HRESULT (WINAPI *get_Event)(ITQueueEvent *This,ACDQUEUE_EVENT *pEvent);
     END_INTERFACE
   } ITQueueEventVtbl;
-  interface ITQueueEvent {
+  struct ITQueueEvent {
     CONST_VTBL struct ITQueueEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -726,7 +726,7 @@
       HRESULT (WINAPI *get_Event)(ITAgentHandlerEvent *This,AGENTHANDLER_EVENT *pEvent);
     END_INTERFACE
   } ITAgentHandlerEventVtbl;
-  interface ITAgentHandlerEvent {
+  struct ITAgentHandlerEvent {
     CONST_VTBL struct ITAgentHandlerEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -770,7 +770,7 @@
       HRESULT (WINAPI *get_AgentHandlers)(ITTAPICallCenter *This,VARIANT *pVariant);
     END_INTERFACE
   } ITTAPICallCenterVtbl;
-  interface ITTAPICallCenter {
+  struct ITTAPICallCenter {
     CONST_VTBL struct ITTAPICallCenterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -824,7 +824,7 @@
       HRESULT (WINAPI *get_UsableAddresses)(ITAgentHandler *This,VARIANT *pVariant);
     END_INTERFACE
   } ITAgentHandlerVtbl;
-  interface ITAgentHandler {
+  struct ITAgentHandler {
     CONST_VTBL struct ITAgentHandlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -883,7 +883,7 @@
       HRESULT (WINAPI *Clone)(IEnumAgent *This,IEnumAgent **ppEnum);
     END_INTERFACE
   } IEnumAgentVtbl;
-  interface IEnumAgent {
+  struct IEnumAgent {
     CONST_VTBL struct IEnumAgentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -929,7 +929,7 @@
       HRESULT (WINAPI *Clone)(IEnumAgentSession *This,IEnumAgentSession **ppEnum);
     END_INTERFACE
   } IEnumAgentSessionVtbl;
-  interface IEnumAgentSession {
+  struct IEnumAgentSession {
     CONST_VTBL struct IEnumAgentSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -975,7 +975,7 @@
       HRESULT (WINAPI *Clone)(IEnumQueue *This,IEnumQueue **ppEnum);
     END_INTERFACE
   } IEnumQueueVtbl;
-  interface IEnumQueue {
+  struct IEnumQueue {
     CONST_VTBL struct IEnumQueueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1021,7 +1021,7 @@
       HRESULT (WINAPI *Clone)(IEnumACDGroup *This,IEnumACDGroup **ppEnum);
     END_INTERFACE
   } IEnumACDGroupVtbl;
-  interface IEnumACDGroup {
+  struct IEnumACDGroup {
     CONST_VTBL struct IEnumACDGroupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1067,7 +1067,7 @@
       HRESULT (WINAPI *Clone)(IEnumAgentHandler *This,IEnumAgentHandler **ppEnum);
     END_INTERFACE
   } IEnumAgentHandlerVtbl;
-  interface IEnumAgentHandler {
+  struct IEnumAgentHandler {
     CONST_VTBL struct IEnumAgentHandlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/tapi3ds.h b/mingw-w64-headers/include/tapi3ds.h
index 37e23ed..d8aff4a 100755
--- a/mingw-w64-headers/include/tapi3ds.h
+++ b/mingw-w64-headers/include/tapi3ds.h
@@ -24,12 +24,12 @@
 
 #ifndef __ITAMMediaFormat_FWD_DEFINED__
 #define __ITAMMediaFormat_FWD_DEFINED__
-typedef interface ITAMMediaFormat ITAMMediaFormat;
+typedef struct ITAMMediaFormat ITAMMediaFormat;
 #endif
 
 #ifndef __ITAllocatorProperties_FWD_DEFINED__
 #define __ITAllocatorProperties_FWD_DEFINED__
-typedef interface ITAllocatorProperties ITAllocatorProperties;
+typedef struct ITAllocatorProperties ITAllocatorProperties;
 #endif
 
 #include "oaidl.h"
@@ -63,7 +63,7 @@
       HRESULT (WINAPI *put_MediaFormat)(ITAMMediaFormat *This,const AM_MEDIA_TYPE *pmt);
     END_INTERFACE
   } ITAMMediaFormatVtbl;
-  interface ITAMMediaFormat {
+  struct ITAMMediaFormat {
     CONST_VTBL struct ITAMMediaFormatVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -107,7 +107,7 @@
       HRESULT (WINAPI *GetBufferSize)(ITAllocatorProperties *This,DWORD *pBufferSize);
     END_INTERFACE
   } ITAllocatorPropertiesVtbl;
-  interface ITAllocatorProperties {
+  struct ITAllocatorProperties {
     CONST_VTBL struct ITAllocatorPropertiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/tapi3if.h b/mingw-w64-headers/include/tapi3if.h
index e59c665..f8784db 100755
--- a/mingw-w64-headers/include/tapi3if.h
+++ b/mingw-w64-headers/include/tapi3if.h
@@ -24,417 +24,417 @@
 
 #ifndef __ITTAPI_FWD_DEFINED__
 #define __ITTAPI_FWD_DEFINED__
-typedef interface ITTAPI ITTAPI;
+typedef struct ITTAPI ITTAPI;
 #endif
 
 #ifndef __ITTAPI2_FWD_DEFINED__
 #define __ITTAPI2_FWD_DEFINED__
-typedef interface ITTAPI2 ITTAPI2;
+typedef struct ITTAPI2 ITTAPI2;
 #endif
 
 #ifndef __ITMediaSupport_FWD_DEFINED__
 #define __ITMediaSupport_FWD_DEFINED__
-typedef interface ITMediaSupport ITMediaSupport;
+typedef struct ITMediaSupport ITMediaSupport;
 #endif
 
 #ifndef __ITPluggableTerminalClassInfo_FWD_DEFINED__
 #define __ITPluggableTerminalClassInfo_FWD_DEFINED__
-typedef interface ITPluggableTerminalClassInfo ITPluggableTerminalClassInfo;
+typedef struct ITPluggableTerminalClassInfo ITPluggableTerminalClassInfo;
 #endif
 
 #ifndef __ITPluggableTerminalSuperclassInfo_FWD_DEFINED__
 #define __ITPluggableTerminalSuperclassInfo_FWD_DEFINED__
-typedef interface ITPluggableTerminalSuperclassInfo ITPluggableTerminalSuperclassInfo;
+typedef struct ITPluggableTerminalSuperclassInfo ITPluggableTerminalSuperclassInfo;
 #endif
 
 #ifndef __ITTerminalSupport_FWD_DEFINED__
 #define __ITTerminalSupport_FWD_DEFINED__
-typedef interface ITTerminalSupport ITTerminalSupport;
+typedef struct ITTerminalSupport ITTerminalSupport;
 #endif
 
 #ifndef __ITTerminalSupport2_FWD_DEFINED__
 #define __ITTerminalSupport2_FWD_DEFINED__
-typedef interface ITTerminalSupport2 ITTerminalSupport2;
+typedef struct ITTerminalSupport2 ITTerminalSupport2;
 #endif
 
 #ifndef __ITAddress_FWD_DEFINED__
 #define __ITAddress_FWD_DEFINED__
-typedef interface ITAddress ITAddress;
+typedef struct ITAddress ITAddress;
 #endif
 
 #ifndef __ITAddress2_FWD_DEFINED__
 #define __ITAddress2_FWD_DEFINED__
-typedef interface ITAddress2 ITAddress2;
+typedef struct ITAddress2 ITAddress2;
 #endif
 
 #ifndef __ITAddressCapabilities_FWD_DEFINED__
 #define __ITAddressCapabilities_FWD_DEFINED__
-typedef interface ITAddressCapabilities ITAddressCapabilities;
+typedef struct ITAddressCapabilities ITAddressCapabilities;
 #endif
 
 #ifndef __ITPhone_FWD_DEFINED__
 #define __ITPhone_FWD_DEFINED__
-typedef interface ITPhone ITPhone;
+typedef struct ITPhone ITPhone;
 #endif
 
 #ifndef __ITAutomatedPhoneControl_FWD_DEFINED__
 #define __ITAutomatedPhoneControl_FWD_DEFINED__
-typedef interface ITAutomatedPhoneControl ITAutomatedPhoneControl;
+typedef struct ITAutomatedPhoneControl ITAutomatedPhoneControl;
 #endif
 
 #ifndef __ITBasicCallControl_FWD_DEFINED__
 #define __ITBasicCallControl_FWD_DEFINED__
-typedef interface ITBasicCallControl ITBasicCallControl;
+typedef struct ITBasicCallControl ITBasicCallControl;
 #endif
 
 #ifndef __ITCallInfo_FWD_DEFINED__
 #define __ITCallInfo_FWD_DEFINED__
-typedef interface ITCallInfo ITCallInfo;
+typedef struct ITCallInfo ITCallInfo;
 #endif
 
 #ifndef __ITCallInfo2_FWD_DEFINED__
 #define __ITCallInfo2_FWD_DEFINED__
-typedef interface ITCallInfo2 ITCallInfo2;
+typedef struct ITCallInfo2 ITCallInfo2;
 #endif
 
 #ifndef __ITTerminal_FWD_DEFINED__
 #define __ITTerminal_FWD_DEFINED__
-typedef interface ITTerminal ITTerminal;
+typedef struct ITTerminal ITTerminal;
 #endif
 
 #ifndef __ITMultiTrackTerminal_FWD_DEFINED__
 #define __ITMultiTrackTerminal_FWD_DEFINED__
-typedef interface ITMultiTrackTerminal ITMultiTrackTerminal;
+typedef struct ITMultiTrackTerminal ITMultiTrackTerminal;
 #endif
 
 #ifndef __ITFileTrack_FWD_DEFINED__
 #define __ITFileTrack_FWD_DEFINED__
-typedef interface ITFileTrack ITFileTrack;
+typedef struct ITFileTrack ITFileTrack;
 #endif
 
 #ifndef __ITMediaPlayback_FWD_DEFINED__
 #define __ITMediaPlayback_FWD_DEFINED__
-typedef interface ITMediaPlayback ITMediaPlayback;
+typedef struct ITMediaPlayback ITMediaPlayback;
 #endif
 
 #ifndef __ITMediaRecord_FWD_DEFINED__
 #define __ITMediaRecord_FWD_DEFINED__
-typedef interface ITMediaRecord ITMediaRecord;
+typedef struct ITMediaRecord ITMediaRecord;
 #endif
 
 #ifndef __ITMediaControl_FWD_DEFINED__
 #define __ITMediaControl_FWD_DEFINED__
-typedef interface ITMediaControl ITMediaControl;
+typedef struct ITMediaControl ITMediaControl;
 #endif
 
 #ifndef __ITBasicAudioTerminal_FWD_DEFINED__
 #define __ITBasicAudioTerminal_FWD_DEFINED__
-typedef interface ITBasicAudioTerminal ITBasicAudioTerminal;
+typedef struct ITBasicAudioTerminal ITBasicAudioTerminal;
 #endif
 
 #ifndef __ITStaticAudioTerminal_FWD_DEFINED__
 #define __ITStaticAudioTerminal_FWD_DEFINED__
-typedef interface ITStaticAudioTerminal ITStaticAudioTerminal;
+typedef struct ITStaticAudioTerminal ITStaticAudioTerminal;
 #endif
 
 #ifndef __ITCallHub_FWD_DEFINED__
 #define __ITCallHub_FWD_DEFINED__
-typedef interface ITCallHub ITCallHub;
+typedef struct ITCallHub ITCallHub;
 #endif
 
 #ifndef __ITLegacyAddressMediaControl_FWD_DEFINED__
 #define __ITLegacyAddressMediaControl_FWD_DEFINED__
-typedef interface ITLegacyAddressMediaControl ITLegacyAddressMediaControl;
+typedef struct ITLegacyAddressMediaControl ITLegacyAddressMediaControl;
 #endif
 
 #ifndef __ITPrivateEvent_FWD_DEFINED__
 #define __ITPrivateEvent_FWD_DEFINED__
-typedef interface ITPrivateEvent ITPrivateEvent;
+typedef struct ITPrivateEvent ITPrivateEvent;
 #endif
 
 #ifndef __ITLegacyAddressMediaControl2_FWD_DEFINED__
 #define __ITLegacyAddressMediaControl2_FWD_DEFINED__
-typedef interface ITLegacyAddressMediaControl2 ITLegacyAddressMediaControl2;
+typedef struct ITLegacyAddressMediaControl2 ITLegacyAddressMediaControl2;
 #endif
 
 #ifndef __ITLegacyCallMediaControl_FWD_DEFINED__
 #define __ITLegacyCallMediaControl_FWD_DEFINED__
-typedef interface ITLegacyCallMediaControl ITLegacyCallMediaControl;
+typedef struct ITLegacyCallMediaControl ITLegacyCallMediaControl;
 #endif
 
 #ifndef __ITLegacyCallMediaControl2_FWD_DEFINED__
 #define __ITLegacyCallMediaControl2_FWD_DEFINED__
-typedef interface ITLegacyCallMediaControl2 ITLegacyCallMediaControl2;
+typedef struct ITLegacyCallMediaControl2 ITLegacyCallMediaControl2;
 #endif
 
 #ifndef __ITDetectTone_FWD_DEFINED__
 #define __ITDetectTone_FWD_DEFINED__
-typedef interface ITDetectTone ITDetectTone;
+typedef struct ITDetectTone ITDetectTone;
 #endif
 
 #ifndef __ITCustomTone_FWD_DEFINED__
 #define __ITCustomTone_FWD_DEFINED__
-typedef interface ITCustomTone ITCustomTone;
+typedef struct ITCustomTone ITCustomTone;
 #endif
 
 #ifndef __IEnumPhone_FWD_DEFINED__
 #define __IEnumPhone_FWD_DEFINED__
-typedef interface IEnumPhone IEnumPhone;
+typedef struct IEnumPhone IEnumPhone;
 #endif
 
 #ifndef __IEnumTerminal_FWD_DEFINED__
 #define __IEnumTerminal_FWD_DEFINED__
-typedef interface IEnumTerminal IEnumTerminal;
+typedef struct IEnumTerminal IEnumTerminal;
 #endif
 
 #ifndef __IEnumTerminalClass_FWD_DEFINED__
 #define __IEnumTerminalClass_FWD_DEFINED__
-typedef interface IEnumTerminalClass IEnumTerminalClass;
+typedef struct IEnumTerminalClass IEnumTerminalClass;
 #endif
 
 #ifndef __IEnumCall_FWD_DEFINED__
 #define __IEnumCall_FWD_DEFINED__
-typedef interface IEnumCall IEnumCall;
+typedef struct IEnumCall IEnumCall;
 #endif
 
 #ifndef __IEnumAddress_FWD_DEFINED__
 #define __IEnumAddress_FWD_DEFINED__
-typedef interface IEnumAddress IEnumAddress;
+typedef struct IEnumAddress IEnumAddress;
 #endif
 
 #ifndef __IEnumCallHub_FWD_DEFINED__
 #define __IEnumCallHub_FWD_DEFINED__
-typedef interface IEnumCallHub IEnumCallHub;
+typedef struct IEnumCallHub IEnumCallHub;
 #endif
 
 #ifndef __IEnumBstr_FWD_DEFINED__
 #define __IEnumBstr_FWD_DEFINED__
-typedef interface IEnumBstr IEnumBstr;
+typedef struct IEnumBstr IEnumBstr;
 #endif
 
 #ifndef __IEnumPluggableTerminalClassInfo_FWD_DEFINED__
 #define __IEnumPluggableTerminalClassInfo_FWD_DEFINED__
-typedef interface IEnumPluggableTerminalClassInfo IEnumPluggableTerminalClassInfo;
+typedef struct IEnumPluggableTerminalClassInfo IEnumPluggableTerminalClassInfo;
 #endif
 
 #ifndef __IEnumPluggableSuperclassInfo_FWD_DEFINED__
 #define __IEnumPluggableSuperclassInfo_FWD_DEFINED__
-typedef interface IEnumPluggableSuperclassInfo IEnumPluggableSuperclassInfo;
+typedef struct IEnumPluggableSuperclassInfo IEnumPluggableSuperclassInfo;
 #endif
 
 #ifndef __ITPhoneEvent_FWD_DEFINED__
 #define __ITPhoneEvent_FWD_DEFINED__
-typedef interface ITPhoneEvent ITPhoneEvent;
+typedef struct ITPhoneEvent ITPhoneEvent;
 #endif
 
 #ifndef __ITCallStateEvent_FWD_DEFINED__
 #define __ITCallStateEvent_FWD_DEFINED__
-typedef interface ITCallStateEvent ITCallStateEvent;
+typedef struct ITCallStateEvent ITCallStateEvent;
 #endif
 
 #ifndef __ITPhoneDeviceSpecificEvent_FWD_DEFINED__
 #define __ITPhoneDeviceSpecificEvent_FWD_DEFINED__
-typedef interface ITPhoneDeviceSpecificEvent ITPhoneDeviceSpecificEvent;
+typedef struct ITPhoneDeviceSpecificEvent ITPhoneDeviceSpecificEvent;
 #endif
 
 #ifndef __ITCallMediaEvent_FWD_DEFINED__
 #define __ITCallMediaEvent_FWD_DEFINED__
-typedef interface ITCallMediaEvent ITCallMediaEvent;
+typedef struct ITCallMediaEvent ITCallMediaEvent;
 #endif
 
 #ifndef __ITDigitDetectionEvent_FWD_DEFINED__
 #define __ITDigitDetectionEvent_FWD_DEFINED__
-typedef interface ITDigitDetectionEvent ITDigitDetectionEvent;
+typedef struct ITDigitDetectionEvent ITDigitDetectionEvent;
 #endif
 
 #ifndef __ITDigitGenerationEvent_FWD_DEFINED__
 #define __ITDigitGenerationEvent_FWD_DEFINED__
-typedef interface ITDigitGenerationEvent ITDigitGenerationEvent;
+typedef struct ITDigitGenerationEvent ITDigitGenerationEvent;
 #endif
 
 #ifndef __ITDigitsGatheredEvent_FWD_DEFINED__
 #define __ITDigitsGatheredEvent_FWD_DEFINED__
-typedef interface ITDigitsGatheredEvent ITDigitsGatheredEvent;
+typedef struct ITDigitsGatheredEvent ITDigitsGatheredEvent;
 #endif
 
 #ifndef __ITToneDetectionEvent_FWD_DEFINED__
 #define __ITToneDetectionEvent_FWD_DEFINED__
-typedef interface ITToneDetectionEvent ITToneDetectionEvent;
+typedef struct ITToneDetectionEvent ITToneDetectionEvent;
 #endif
 
 #ifndef __ITTAPIObjectEvent_FWD_DEFINED__
 #define __ITTAPIObjectEvent_FWD_DEFINED__
-typedef interface ITTAPIObjectEvent ITTAPIObjectEvent;
+typedef struct ITTAPIObjectEvent ITTAPIObjectEvent;
 #endif
 
 #ifndef __ITTAPIObjectEvent2_FWD_DEFINED__
 #define __ITTAPIObjectEvent2_FWD_DEFINED__
-typedef interface ITTAPIObjectEvent2 ITTAPIObjectEvent2;
+typedef struct ITTAPIObjectEvent2 ITTAPIObjectEvent2;
 #endif
 
 #ifndef __ITTAPIEventNotification_FWD_DEFINED__
 #define __ITTAPIEventNotification_FWD_DEFINED__
-typedef interface ITTAPIEventNotification ITTAPIEventNotification;
+typedef struct ITTAPIEventNotification ITTAPIEventNotification;
 #endif
 
 #ifndef __ITCallHubEvent_FWD_DEFINED__
 #define __ITCallHubEvent_FWD_DEFINED__
-typedef interface ITCallHubEvent ITCallHubEvent;
+typedef struct ITCallHubEvent ITCallHubEvent;
 #endif
 
 #ifndef __ITAddressEvent_FWD_DEFINED__
 #define __ITAddressEvent_FWD_DEFINED__
-typedef interface ITAddressEvent ITAddressEvent;
+typedef struct ITAddressEvent ITAddressEvent;
 #endif
 
 #ifndef __ITAddressDeviceSpecificEvent_FWD_DEFINED__
 #define __ITAddressDeviceSpecificEvent_FWD_DEFINED__
-typedef interface ITAddressDeviceSpecificEvent ITAddressDeviceSpecificEvent;
+typedef struct ITAddressDeviceSpecificEvent ITAddressDeviceSpecificEvent;
 #endif
 
 #ifndef __ITFileTerminalEvent_FWD_DEFINED__
 #define __ITFileTerminalEvent_FWD_DEFINED__
-typedef interface ITFileTerminalEvent ITFileTerminalEvent;
+typedef struct ITFileTerminalEvent ITFileTerminalEvent;
 #endif
 
 #ifndef __ITTTSTerminalEvent_FWD_DEFINED__
 #define __ITTTSTerminalEvent_FWD_DEFINED__
-typedef interface ITTTSTerminalEvent ITTTSTerminalEvent;
+typedef struct ITTTSTerminalEvent ITTTSTerminalEvent;
 #endif
 
 #ifndef __ITASRTerminalEvent_FWD_DEFINED__
 #define __ITASRTerminalEvent_FWD_DEFINED__
-typedef interface ITASRTerminalEvent ITASRTerminalEvent;
+typedef struct ITASRTerminalEvent ITASRTerminalEvent;
 #endif
 
 #ifndef __ITToneTerminalEvent_FWD_DEFINED__
 #define __ITToneTerminalEvent_FWD_DEFINED__
-typedef interface ITToneTerminalEvent ITToneTerminalEvent;
+typedef struct ITToneTerminalEvent ITToneTerminalEvent;
 #endif
 
 #ifndef __ITQOSEvent_FWD_DEFINED__
 #define __ITQOSEvent_FWD_DEFINED__
-typedef interface ITQOSEvent ITQOSEvent;
+typedef struct ITQOSEvent ITQOSEvent;
 #endif
 
 #ifndef __ITCallInfoChangeEvent_FWD_DEFINED__
 #define __ITCallInfoChangeEvent_FWD_DEFINED__
-typedef interface ITCallInfoChangeEvent ITCallInfoChangeEvent;
+typedef struct ITCallInfoChangeEvent ITCallInfoChangeEvent;
 #endif
 
 #ifndef __ITRequest_FWD_DEFINED__
 #define __ITRequest_FWD_DEFINED__
-typedef interface ITRequest ITRequest;
+typedef struct ITRequest ITRequest;
 #endif
 
 #ifndef __ITRequestEvent_FWD_DEFINED__
 #define __ITRequestEvent_FWD_DEFINED__
-typedef interface ITRequestEvent ITRequestEvent;
+typedef struct ITRequestEvent ITRequestEvent;
 #endif
 
 #ifndef __ITCollection_FWD_DEFINED__
 #define __ITCollection_FWD_DEFINED__
-typedef interface ITCollection ITCollection;
+typedef struct ITCollection ITCollection;
 #endif
 
 #ifndef __ITCollection2_FWD_DEFINED__
 #define __ITCollection2_FWD_DEFINED__
-typedef interface ITCollection2 ITCollection2;
+typedef struct ITCollection2 ITCollection2;
 #endif
 
 #ifndef __ITForwardInformation_FWD_DEFINED__
 #define __ITForwardInformation_FWD_DEFINED__
-typedef interface ITForwardInformation ITForwardInformation;
+typedef struct ITForwardInformation ITForwardInformation;
 #endif
 
 #ifndef __ITForwardInformation2_FWD_DEFINED__
 #define __ITForwardInformation2_FWD_DEFINED__
-typedef interface ITForwardInformation2 ITForwardInformation2;
+typedef struct ITForwardInformation2 ITForwardInformation2;
 #endif
 
 #ifndef __ITAddressTranslation_FWD_DEFINED__
 #define __ITAddressTranslation_FWD_DEFINED__
-typedef interface ITAddressTranslation ITAddressTranslation;
+typedef struct ITAddressTranslation ITAddressTranslation;
 #endif
 
 #ifndef __ITAddressTranslationInfo_FWD_DEFINED__
 #define __ITAddressTranslationInfo_FWD_DEFINED__
-typedef interface ITAddressTranslationInfo ITAddressTranslationInfo;
+typedef struct ITAddressTranslationInfo ITAddressTranslationInfo;
 #endif
 
 #ifndef __ITLocationInfo_FWD_DEFINED__
 #define __ITLocationInfo_FWD_DEFINED__
-typedef interface ITLocationInfo ITLocationInfo;
+typedef struct ITLocationInfo ITLocationInfo;
 #endif
 
 #ifndef __IEnumLocation_FWD_DEFINED__
 #define __IEnumLocation_FWD_DEFINED__
-typedef interface IEnumLocation IEnumLocation;
+typedef struct IEnumLocation IEnumLocation;
 #endif
 
 #ifndef __ITCallingCard_FWD_DEFINED__
 #define __ITCallingCard_FWD_DEFINED__
-typedef interface ITCallingCard ITCallingCard;
+typedef struct ITCallingCard ITCallingCard;
 #endif
 
 #ifndef __IEnumCallingCard_FWD_DEFINED__
 #define __IEnumCallingCard_FWD_DEFINED__
-typedef interface IEnumCallingCard IEnumCallingCard;
+typedef struct IEnumCallingCard IEnumCallingCard;
 #endif
 
 #ifndef __ITCallNotificationEvent_FWD_DEFINED__
 #define __ITCallNotificationEvent_FWD_DEFINED__
-typedef interface ITCallNotificationEvent ITCallNotificationEvent;
+typedef struct ITCallNotificationEvent ITCallNotificationEvent;
 #endif
 
 #ifndef __ITDispatchMapper_FWD_DEFINED__
 #define __ITDispatchMapper_FWD_DEFINED__
-typedef interface ITDispatchMapper ITDispatchMapper;
+typedef struct ITDispatchMapper ITDispatchMapper;
 #endif
 
 #ifndef __ITStreamControl_FWD_DEFINED__
 #define __ITStreamControl_FWD_DEFINED__
-typedef interface ITStreamControl ITStreamControl;
+typedef struct ITStreamControl ITStreamControl;
 #endif
 
 #ifndef __ITStream_FWD_DEFINED__
 #define __ITStream_FWD_DEFINED__
-typedef interface ITStream ITStream;
+typedef struct ITStream ITStream;
 #endif
 
 #ifndef __IEnumStream_FWD_DEFINED__
 #define __IEnumStream_FWD_DEFINED__
-typedef interface IEnumStream IEnumStream;
+typedef struct IEnumStream IEnumStream;
 #endif
 
 #ifndef __ITSubStreamControl_FWD_DEFINED__
 #define __ITSubStreamControl_FWD_DEFINED__
-typedef interface ITSubStreamControl ITSubStreamControl;
+typedef struct ITSubStreamControl ITSubStreamControl;
 #endif
 
 #ifndef __ITSubStream_FWD_DEFINED__
 #define __ITSubStream_FWD_DEFINED__
-typedef interface ITSubStream ITSubStream;
+typedef struct ITSubStream ITSubStream;
 #endif
 
 #ifndef __IEnumSubStream_FWD_DEFINED__
 #define __IEnumSubStream_FWD_DEFINED__
-typedef interface IEnumSubStream IEnumSubStream;
+typedef struct IEnumSubStream IEnumSubStream;
 #endif
 
 #ifndef __ITLegacyWaveSupport_FWD_DEFINED__
 #define __ITLegacyWaveSupport_FWD_DEFINED__
-typedef interface ITLegacyWaveSupport ITLegacyWaveSupport;
+typedef struct ITLegacyWaveSupport ITLegacyWaveSupport;
 #endif
 
 #ifndef __ITBasicCallControl2_FWD_DEFINED__
 #define __ITBasicCallControl2_FWD_DEFINED__
-typedef interface ITBasicCallControl2 ITBasicCallControl2;
+typedef struct ITBasicCallControl2 ITBasicCallControl2;
 #endif
 
 #ifndef __ITScriptableAudioFormat_FWD_DEFINED__
 #define __ITScriptableAudioFormat_FWD_DEFINED__
-typedef interface ITScriptableAudioFormat ITScriptableAudioFormat;
+typedef struct ITScriptableAudioFormat ITScriptableAudioFormat;
 #endif
 
 #include "oaidl.h"
@@ -793,7 +793,7 @@
       HRESULT (WINAPI *get_EventFilter)(ITTAPI *This,long *plFilterMask);
     END_INTERFACE
   } ITTAPIVtbl;
-  interface ITTAPI {
+  struct ITTAPI {
     CONST_VTBL struct ITTAPIVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -897,7 +897,7 @@
       HRESULT (WINAPI *CreateEmptyCollectionObject)(ITTAPI2 *This,ITCollection2 **ppCollection);
     END_INTERFACE
   } ITTAPI2Vtbl;
-  interface ITTAPI2 {
+  struct ITTAPI2 {
     CONST_VTBL struct ITTAPI2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -960,7 +960,7 @@
       HRESULT (WINAPI *QueryMediaType)(ITMediaSupport *This,long lMediaType,VARIANT_BOOL *pfSupport);
     END_INTERFACE
   } ITMediaSupportVtbl;
-  interface ITMediaSupport {
+  struct ITMediaSupport {
     CONST_VTBL struct ITMediaSupportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1014,7 +1014,7 @@
       HRESULT (WINAPI *get_MediaTypes)(ITPluggableTerminalClassInfo *This,long *pMediaTypes);
     END_INTERFACE
   } ITPluggableTerminalClassInfoVtbl;
-  interface ITPluggableTerminalClassInfo {
+  struct ITPluggableTerminalClassInfo {
     CONST_VTBL struct ITPluggableTerminalClassInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1073,7 +1073,7 @@
       HRESULT (WINAPI *get_CLSID)(ITPluggableTerminalSuperclassInfo *This,BSTR *pCLSID);
     END_INTERFACE
   } ITPluggableTerminalSuperclassInfoVtbl;
-  interface ITPluggableTerminalSuperclassInfo {
+  struct ITPluggableTerminalSuperclassInfo {
     CONST_VTBL struct ITPluggableTerminalSuperclassInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1125,7 +1125,7 @@
       HRESULT (WINAPI *GetDefaultStaticTerminal)(ITTerminalSupport *This,long lMediaType,TERMINAL_DIRECTION Direction,ITTerminal **ppTerminal);
     END_INTERFACE
   } ITTerminalSupportVtbl;
-  interface ITTerminalSupport {
+  struct ITTerminalSupport {
     CONST_VTBL struct ITTerminalSupportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1191,7 +1191,7 @@
       HRESULT (WINAPI *EnumeratePluggableTerminalClasses)(ITTerminalSupport2 *This,CLSID iidTerminalSuperclass,long lMediaType,IEnumPluggableTerminalClassInfo **ppClassEnumerator);
     END_INTERFACE
   } ITTerminalSupport2Vtbl;
-  interface ITTerminalSupport2 {
+  struct ITTerminalSupport2 {
     CONST_VTBL struct ITTerminalSupport2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1273,7 +1273,7 @@
       HRESULT (WINAPI *get_DoNotDisturb)(ITAddress *This,VARIANT_BOOL *pfDoNotDisturb);
     END_INTERFACE
   } ITAddressVtbl;
-  interface ITAddress {
+  struct ITAddress {
     CONST_VTBL struct ITAddressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1387,7 +1387,7 @@
       HRESULT (WINAPI *NegotiateExtVersion)(ITAddress2 *This,long lLowVersion,long lHighVersion,long *plExtVersion);
     END_INTERFACE
   } ITAddress2Vtbl;
-  interface ITAddress2 {
+  struct ITAddress2 {
     CONST_VTBL struct ITAddress2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1482,7 +1482,7 @@
       HRESULT (WINAPI *EnumerateDeviceClasses)(ITAddressCapabilities *This,IEnumBstr **ppEnumDeviceClass);
     END_INTERFACE
   } ITAddressCapabilitiesVtbl;
-  interface ITAddressCapabilities {
+  struct ITAddressCapabilities {
     CONST_VTBL struct ITAddressCapabilitiesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1606,7 +1606,7 @@
       HRESULT (WINAPI *NegotiateExtVersion)(ITPhone *This,long lLowVersion,long lHighVersion,long *plExtVersion);
     END_INTERFACE
   } ITPhoneVtbl;
-  interface ITPhone {
+  struct ITPhone {
     CONST_VTBL struct ITPhoneVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1803,7 +1803,7 @@
       HRESULT (WINAPI *get_SelectedCalls)(ITAutomatedPhoneControl *This,VARIANT *pVariant);
     END_INTERFACE
   } ITAutomatedPhoneControlVtbl;
-  interface ITAutomatedPhoneControl {
+  struct ITAutomatedPhoneControl {
     CONST_VTBL struct ITAutomatedPhoneControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1969,7 +1969,7 @@
       HRESULT (WINAPI *RemoveFromConference)(ITBasicCallControl *This);
     END_INTERFACE
   } ITBasicCallControlVtbl;
-  interface ITBasicCallControl {
+  struct ITBasicCallControl {
     CONST_VTBL struct ITBasicCallControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2083,7 +2083,7 @@
       HRESULT (WINAPI *ReleaseUserUserInfo)(ITCallInfo *This);
     END_INTERFACE
   } ITCallInfoVtbl;
-  interface ITCallInfo {
+  struct ITCallInfo {
     CONST_VTBL struct ITCallInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2173,7 +2173,7 @@
       HRESULT (WINAPI *put_EventFilter)(ITCallInfo2 *This,TAPI_EVENT TapiEvent,long lSubEvent,VARIANT_BOOL bEnable);
     END_INTERFACE
   } ITCallInfo2Vtbl;
-  interface ITCallInfo2 {
+  struct ITCallInfo2 {
     CONST_VTBL struct ITCallInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2238,7 +2238,7 @@
       HRESULT (WINAPI *get_Direction)(ITTerminal *This,TERMINAL_DIRECTION *pDirection);
     END_INTERFACE
   } ITTerminalVtbl;
-  interface ITTerminal {
+  struct ITTerminal {
     CONST_VTBL struct ITTerminalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2302,7 +2302,7 @@
       HRESULT (WINAPI *RemoveTrackTerminal)(ITMultiTrackTerminal *This,ITTerminal *pTrackTerminalToRemove);
     END_INTERFACE
   } ITMultiTrackTerminalVtbl;
-  interface ITMultiTrackTerminal {
+  struct ITMultiTrackTerminal {
     CONST_VTBL struct ITMultiTrackTerminalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2376,7 +2376,7 @@
       HRESULT (WINAPI *get_EmptyAudioFormatForScripting)(ITFileTrack *This,ITScriptableAudioFormat **ppAudioFormat);
     END_INTERFACE
   } ITFileTrackVtbl;
-  interface ITFileTrack {
+  struct ITFileTrack {
     CONST_VTBL struct ITFileTrackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2432,7 +2432,7 @@
       HRESULT (WINAPI *get_PlayList)(ITMediaPlayback *This,VARIANTARG *pPlayListVariant);
     END_INTERFACE
   } ITMediaPlaybackVtbl;
-  interface ITMediaPlayback {
+  struct ITMediaPlayback {
     CONST_VTBL struct ITMediaPlaybackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2476,7 +2476,7 @@
       HRESULT (WINAPI *get_FileName)(ITMediaRecord *This,BSTR *pbstrFileName);
     END_INTERFACE
   } ITMediaRecordVtbl;
-  interface ITMediaRecord {
+  struct ITMediaRecord {
     CONST_VTBL struct ITMediaRecordVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2524,7 +2524,7 @@
       HRESULT (WINAPI *get_MediaState)(ITMediaControl *This,TERMINAL_MEDIA_STATE *pTerminalMediaState);
     END_INTERFACE
   } ITMediaControlVtbl;
-  interface ITMediaControl {
+  struct ITMediaControl {
     CONST_VTBL struct ITMediaControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2578,7 +2578,7 @@
       HRESULT (WINAPI *get_Balance)(ITBasicAudioTerminal *This,long *plBalance);
     END_INTERFACE
   } ITBasicAudioTerminalVtbl;
-  interface ITBasicAudioTerminal {
+  struct ITBasicAudioTerminal {
     CONST_VTBL struct ITBasicAudioTerminalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2626,7 +2626,7 @@
       HRESULT (WINAPI *get_WaveId)(ITStaticAudioTerminal *This,long *plWaveId);
     END_INTERFACE
   } ITStaticAudioTerminalVtbl;
-  interface ITStaticAudioTerminal {
+  struct ITStaticAudioTerminal {
     CONST_VTBL struct ITStaticAudioTerminalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2673,7 +2673,7 @@
       HRESULT (WINAPI *get_State)(ITCallHub *This,CALLHUB_STATE *pState);
     END_INTERFACE
   } ITCallHubVtbl;
-  interface ITCallHub {
+  struct ITCallHub {
     CONST_VTBL struct ITCallHubVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2724,7 +2724,7 @@
       HRESULT (WINAPI *SetDevConfig)(ITLegacyAddressMediaControl *This,BSTR pDeviceClass,DWORD dwSize,BYTE *pDeviceConfig);
     END_INTERFACE
   } ITLegacyAddressMediaControlVtbl;
-  interface ITLegacyAddressMediaControl {
+  struct ITLegacyAddressMediaControl {
     CONST_VTBL struct ITLegacyAddressMediaControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2773,7 +2773,7 @@
       HRESULT (WINAPI *get_EventInterface)(ITPrivateEvent *This,IDispatch **pEventInterface);
     END_INTERFACE
   } ITPrivateEventVtbl;
-  interface ITPrivateEvent {
+  struct ITPrivateEvent {
     CONST_VTBL struct ITPrivateEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2825,7 +2825,7 @@
       HRESULT (WINAPI *ConfigDialogEdit)(ITLegacyAddressMediaControl2 *This,HWND hwndOwner,BSTR pDeviceClass,DWORD dwSizeIn,BYTE *pDeviceConfigIn,DWORD *pdwSizeOut,BYTE **ppDeviceConfigOut);
     END_INTERFACE
   } ITLegacyAddressMediaControl2Vtbl;
-  interface ITLegacyAddressMediaControl2 {
+  struct ITLegacyAddressMediaControl2 {
     CONST_VTBL struct ITLegacyAddressMediaControl2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2874,7 +2874,7 @@
       HRESULT (WINAPI *MonitorMedia)(ITLegacyCallMediaControl *This,long lMediaType);
     END_INTERFACE
   } ITLegacyCallMediaControlVtbl;
-  interface ITLegacyCallMediaControl {
+  struct ITLegacyCallMediaControl {
     CONST_VTBL struct ITLegacyCallMediaControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2948,7 +2948,7 @@
       HRESULT (WINAPI *GetIDAsVariant)(ITLegacyCallMediaControl2 *This,BSTR bstrDeviceClass,VARIANT *pVarDeviceID);
     END_INTERFACE
   } ITLegacyCallMediaControl2Vtbl;
-  interface ITLegacyCallMediaControl2 {
+  struct ITLegacyCallMediaControl2 {
     CONST_VTBL struct ITLegacyCallMediaControl2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3029,7 +3029,7 @@
       HRESULT (WINAPI *put_Frequency)(ITDetectTone *This,long Index,long lFrequency);
     END_INTERFACE
   } ITDetectToneVtbl;
-  interface ITDetectTone {
+  struct ITDetectTone {
     CONST_VTBL struct ITDetectToneVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3097,7 +3097,7 @@
       HRESULT (WINAPI *put_Volume)(ITCustomTone *This,long lVolume);
     END_INTERFACE
   } ITCustomToneVtbl;
-  interface ITCustomTone {
+  struct ITCustomTone {
     CONST_VTBL struct ITCustomToneVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3159,7 +3159,7 @@
       HRESULT (WINAPI *Clone)(IEnumPhone *This,IEnumPhone **ppEnum);
     END_INTERFACE
   } IEnumPhoneVtbl;
-  interface IEnumPhone {
+  struct IEnumPhone {
     CONST_VTBL struct IEnumPhoneVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3205,7 +3205,7 @@
       HRESULT (WINAPI *Clone)(IEnumTerminal *This,IEnumTerminal **ppEnum);
     END_INTERFACE
   } IEnumTerminalVtbl;
-  interface IEnumTerminal {
+  struct IEnumTerminal {
     CONST_VTBL struct IEnumTerminalVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3251,7 +3251,7 @@
       HRESULT (WINAPI *Clone)(IEnumTerminalClass *This,IEnumTerminalClass **ppEnum);
     END_INTERFACE
   } IEnumTerminalClassVtbl;
-  interface IEnumTerminalClass {
+  struct IEnumTerminalClass {
     CONST_VTBL struct IEnumTerminalClassVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3297,7 +3297,7 @@
       HRESULT (WINAPI *Clone)(IEnumCall *This,IEnumCall **ppEnum);
     END_INTERFACE
   } IEnumCallVtbl;
-  interface IEnumCall {
+  struct IEnumCall {
     CONST_VTBL struct IEnumCallVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3343,7 +3343,7 @@
       HRESULT (WINAPI *Clone)(IEnumAddress *This,IEnumAddress **ppEnum);
     END_INTERFACE
   } IEnumAddressVtbl;
-  interface IEnumAddress {
+  struct IEnumAddress {
     CONST_VTBL struct IEnumAddressVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3389,7 +3389,7 @@
       HRESULT (WINAPI *Clone)(IEnumCallHub *This,IEnumCallHub **ppEnum);
     END_INTERFACE
   } IEnumCallHubVtbl;
-  interface IEnumCallHub {
+  struct IEnumCallHub {
     CONST_VTBL struct IEnumCallHubVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3435,7 +3435,7 @@
       HRESULT (WINAPI *Clone)(IEnumBstr *This,IEnumBstr **ppEnum);
     END_INTERFACE
   } IEnumBstrVtbl;
-  interface IEnumBstr {
+  struct IEnumBstr {
     CONST_VTBL struct IEnumBstrVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3481,7 +3481,7 @@
       HRESULT (WINAPI *Clone)(IEnumPluggableTerminalClassInfo *This,IEnumPluggableTerminalClassInfo **ppEnum);
     END_INTERFACE
   } IEnumPluggableTerminalClassInfoVtbl;
-  interface IEnumPluggableTerminalClassInfo {
+  struct IEnumPluggableTerminalClassInfo {
     CONST_VTBL struct IEnumPluggableTerminalClassInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3527,7 +3527,7 @@
       HRESULT (WINAPI *Clone)(IEnumPluggableSuperclassInfo *This,IEnumPluggableSuperclassInfo **ppEnum);
     END_INTERFACE
   } IEnumPluggableSuperclassInfoVtbl;
-  interface IEnumPluggableSuperclassInfo {
+  struct IEnumPluggableSuperclassInfo {
     CONST_VTBL struct IEnumPluggableSuperclassInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3587,7 +3587,7 @@
       HRESULT (WINAPI *get_Call)(ITPhoneEvent *This,ITCallInfo **ppCallInfo);
     END_INTERFACE
   } ITPhoneEventVtbl;
-  interface ITPhoneEvent {
+  struct ITPhoneEvent {
     CONST_VTBL struct ITPhoneEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3656,7 +3656,7 @@
       HRESULT (WINAPI *get_CallbackInstance)(ITCallStateEvent *This,long *plCallbackInstance);
     END_INTERFACE
   } ITCallStateEventVtbl;
-  interface ITCallStateEvent {
+  struct ITCallStateEvent {
     CONST_VTBL struct ITCallStateEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3710,7 +3710,7 @@
       HRESULT (WINAPI *get_lParam3)(ITPhoneDeviceSpecificEvent *This,long *pParam3);
     END_INTERFACE
   } ITPhoneDeviceSpecificEventVtbl;
-  interface ITPhoneDeviceSpecificEvent {
+  struct ITPhoneDeviceSpecificEvent {
     CONST_VTBL struct ITPhoneDeviceSpecificEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3768,7 +3768,7 @@
       HRESULT (WINAPI *get_Cause)(ITCallMediaEvent *This,CALL_MEDIA_EVENT_CAUSE *pCause);
     END_INTERFACE
   } ITCallMediaEventVtbl;
-  interface ITCallMediaEvent {
+  struct ITCallMediaEvent {
     CONST_VTBL struct ITCallMediaEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3830,7 +3830,7 @@
       HRESULT (WINAPI *get_CallbackInstance)(ITDigitDetectionEvent *This,long *plCallbackInstance);
     END_INTERFACE
   } ITDigitDetectionEventVtbl;
-  interface ITDigitDetectionEvent {
+  struct ITDigitDetectionEvent {
     CONST_VTBL struct ITDigitDetectionEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3887,7 +3887,7 @@
       HRESULT (WINAPI *get_CallbackInstance)(ITDigitGenerationEvent *This,long *plCallbackInstance);
     END_INTERFACE
   } ITDigitGenerationEventVtbl;
-  interface ITDigitGenerationEvent {
+  struct ITDigitGenerationEvent {
     CONST_VTBL struct ITDigitGenerationEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -3943,7 +3943,7 @@
       HRESULT (WINAPI *get_CallbackInstance)(ITDigitsGatheredEvent *This,long *plCallbackInstance);
     END_INTERFACE
   } ITDigitsGatheredEventVtbl;
-  interface ITDigitsGatheredEvent {
+  struct ITDigitsGatheredEvent {
     CONST_VTBL struct ITDigitsGatheredEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4000,7 +4000,7 @@
       HRESULT (WINAPI *get_CallbackInstance)(ITToneDetectionEvent *This,long *plCallbackInstance);
     END_INTERFACE
   } ITToneDetectionEventVtbl;
-  interface ITToneDetectionEvent {
+  struct ITToneDetectionEvent {
     CONST_VTBL struct ITToneDetectionEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4054,7 +4054,7 @@
       HRESULT (WINAPI *get_CallbackInstance)(ITTAPIObjectEvent *This,long *plCallbackInstance);
     END_INTERFACE
   } ITTAPIObjectEventVtbl;
-  interface ITTAPIObjectEvent {
+  struct ITTAPIObjectEvent {
     CONST_VTBL struct ITTAPIObjectEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4106,7 +4106,7 @@
       HRESULT (WINAPI *get_Phone)(ITTAPIObjectEvent2 *This,ITPhone **ppPhone);
     END_INTERFACE
   } ITTAPIObjectEvent2Vtbl;
-  interface ITTAPIObjectEvent2 {
+  struct ITTAPIObjectEvent2 {
     CONST_VTBL struct ITTAPIObjectEvent2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4145,7 +4145,7 @@
       HRESULT (WINAPI *Event)(ITTAPIEventNotification *This,TAPI_EVENT TapiEvent,IDispatch *pEvent);
     END_INTERFACE
   } ITTAPIEventNotificationVtbl;
-  interface ITTAPIEventNotification {
+  struct ITTAPIEventNotification {
     CONST_VTBL struct ITTAPIEventNotificationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4184,7 +4184,7 @@
       HRESULT (WINAPI *get_Call)(ITCallHubEvent *This,ITCallInfo **ppCall);
     END_INTERFACE
   } ITCallHubEventVtbl;
-  interface ITCallHubEvent {
+  struct ITCallHubEvent {
     CONST_VTBL struct ITCallHubEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4233,7 +4233,7 @@
       HRESULT (WINAPI *get_Terminal)(ITAddressEvent *This,ITTerminal **ppTerminal);
     END_INTERFACE
   } ITAddressEventVtbl;
-  interface ITAddressEvent {
+  struct ITAddressEvent {
     CONST_VTBL struct ITAddressEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4286,7 +4286,7 @@
       HRESULT (WINAPI *get_lParam3)(ITAddressDeviceSpecificEvent *This,long *pParam3);
     END_INTERFACE
   } ITAddressDeviceSpecificEventVtbl;
-  interface ITAddressDeviceSpecificEvent {
+  struct ITAddressDeviceSpecificEvent {
     CONST_VTBL struct ITAddressDeviceSpecificEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4347,7 +4347,7 @@
       HRESULT (WINAPI *get_Error)(ITFileTerminalEvent *This,HRESULT *phrErrorCode);
     END_INTERFACE
   } ITFileTerminalEventVtbl;
-  interface ITFileTerminalEvent {
+  struct ITFileTerminalEvent {
     CONST_VTBL struct ITFileTerminalEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4405,7 +4405,7 @@
       HRESULT (WINAPI *get_Error)(ITTTSTerminalEvent *This,HRESULT *phrErrorCode);
     END_INTERFACE
   } ITTTSTerminalEventVtbl;
-  interface ITTTSTerminalEvent {
+  struct ITTTSTerminalEvent {
     CONST_VTBL struct ITTTSTerminalEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4454,7 +4454,7 @@
       HRESULT (WINAPI *get_Error)(ITASRTerminalEvent *This,HRESULT *phrErrorCode);
     END_INTERFACE
   } ITASRTerminalEventVtbl;
-  interface ITASRTerminalEvent {
+  struct ITASRTerminalEvent {
     CONST_VTBL struct ITASRTerminalEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4503,7 +4503,7 @@
       HRESULT (WINAPI *get_Error)(ITToneTerminalEvent *This,HRESULT *phrErrorCode);
     END_INTERFACE
   } ITToneTerminalEventVtbl;
-  interface ITToneTerminalEvent {
+  struct ITToneTerminalEvent {
     CONST_VTBL struct ITToneTerminalEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4552,7 +4552,7 @@
       HRESULT (WINAPI *get_MediaType)(ITQOSEvent *This,long *plMediaType);
     END_INTERFACE
   } ITQOSEventVtbl;
-  interface ITQOSEvent {
+  struct ITQOSEvent {
     CONST_VTBL struct ITQOSEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4601,7 +4601,7 @@
       HRESULT (WINAPI *get_CallbackInstance)(ITCallInfoChangeEvent *This,long *plCallbackInstance);
     END_INTERFACE
   } ITCallInfoChangeEventVtbl;
-  interface ITCallInfoChangeEvent {
+  struct ITCallInfoChangeEvent {
     CONST_VTBL struct ITCallInfoChangeEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4646,7 +4646,7 @@
       HRESULT (WINAPI *MakeCall)(ITRequest *This,BSTR pDestAddress,BSTR pAppName,BSTR pCalledParty,BSTR pComment);
     END_INTERFACE
   } ITRequestVtbl;
-  interface ITRequest {
+  struct ITRequest {
     CONST_VTBL struct ITRequestVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4695,7 +4695,7 @@
       HRESULT (WINAPI *get_Comment)(ITRequestEvent *This,BSTR *ppComment);
     END_INTERFACE
   } ITRequestEventVtbl;
-  interface ITRequestEvent {
+  struct ITRequestEvent {
     CONST_VTBL struct ITRequestEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4753,7 +4753,7 @@
       HRESULT (WINAPI *get__NewEnum)(ITCollection *This,IUnknown **ppNewEnum);
     END_INTERFACE
   } ITCollectionVtbl;
-  interface ITCollection {
+  struct ITCollection {
     CONST_VTBL struct ITCollectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4803,7 +4803,7 @@
       HRESULT (WINAPI *Remove)(ITCollection2 *This,long Index);
     END_INTERFACE
   } ITCollection2Vtbl;
-  interface ITCollection2 {
+  struct ITCollection2 {
     CONST_VTBL struct ITCollection2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4860,7 +4860,7 @@
       HRESULT (WINAPI *Clear)(ITForwardInformation *This);
     END_INTERFACE
   } ITForwardInformationVtbl;
-  interface ITForwardInformation {
+  struct ITForwardInformation {
     CONST_VTBL struct ITForwardInformationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4930,7 +4930,7 @@
       HRESULT (WINAPI *get_ForwardTypeCallerAddressType)(ITForwardInformation2 *This,long Forwardtype,long *pCallerAddressType);
     END_INTERFACE
   } ITForwardInformation2Vtbl;
-  interface ITForwardInformation2 {
+  struct ITForwardInformation2 {
     CONST_VTBL struct ITForwardInformation2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -4995,7 +4995,7 @@
       HRESULT (WINAPI *get_CallingCards)(ITAddressTranslation *This,VARIANT *pVariant);
     END_INTERFACE
   } ITAddressTranslationVtbl;
-  interface ITAddressTranslation {
+  struct ITAddressTranslation {
     CONST_VTBL struct ITAddressTranslationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5057,7 +5057,7 @@
       HRESULT (WINAPI *get_TranslationResults)(ITAddressTranslationInfo *This,long *plResults);
     END_INTERFACE
   } ITAddressTranslationInfoVtbl;
-  interface ITAddressTranslationInfo {
+  struct ITAddressTranslationInfo {
     CONST_VTBL struct ITAddressTranslationInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5128,7 +5128,7 @@
       HRESULT (WINAPI *get_CancelCallWaitingCode)(ITLocationInfo *This,BSTR *ppCode);
     END_INTERFACE
   } ITLocationInfoVtbl;
-  interface ITLocationInfo {
+  struct ITLocationInfo {
     CONST_VTBL struct ITLocationInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5199,7 +5199,7 @@
       HRESULT (WINAPI *Clone)(IEnumLocation *This,IEnumLocation **ppEnum);
     END_INTERFACE
   } IEnumLocationVtbl;
-  interface IEnumLocation {
+  struct IEnumLocation {
     CONST_VTBL struct IEnumLocationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5255,7 +5255,7 @@
       HRESULT (WINAPI *get_InternationalDialingRule)(ITCallingCard *This,BSTR *ppRule);
     END_INTERFACE
   } ITCallingCardVtbl;
-  interface ITCallingCard {
+  struct ITCallingCard {
     CONST_VTBL struct ITCallingCardVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5314,7 +5314,7 @@
       HRESULT (WINAPI *Clone)(IEnumCallingCard *This,IEnumCallingCard **ppEnum);
     END_INTERFACE
   } IEnumCallingCardVtbl;
-  interface IEnumCallingCard {
+  struct IEnumCallingCard {
     CONST_VTBL struct IEnumCallingCardVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5362,7 +5362,7 @@
       HRESULT (WINAPI *get_CallbackInstance)(ITCallNotificationEvent *This,long *plCallbackInstance);
     END_INTERFACE
   } ITCallNotificationEventVtbl;
-  interface ITCallNotificationEvent {
+  struct ITCallNotificationEvent {
     CONST_VTBL struct ITCallNotificationEventVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5407,7 +5407,7 @@
       HRESULT (WINAPI *QueryDispatchInterface)(ITDispatchMapper *This,BSTR pIID,IDispatch *pInterfaceToMap,IDispatch **ppReturnedInterface);
     END_INTERFACE
   } ITDispatchMapperVtbl;
-  interface ITDispatchMapper {
+  struct ITDispatchMapper {
     CONST_VTBL struct ITDispatchMapperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5452,7 +5452,7 @@
       HRESULT (WINAPI *get_Streams)(ITStreamControl *This,VARIANT *pVariant);
     END_INTERFACE
   } ITStreamControlVtbl;
-  interface ITStreamControl {
+  struct ITStreamControl {
     CONST_VTBL struct ITStreamControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5518,7 +5518,7 @@
       HRESULT (WINAPI *get_Terminals)(ITStream *This,VARIANT *pTerminals);
     END_INTERFACE
   } ITStreamVtbl;
-  interface ITStream {
+  struct ITStream {
     CONST_VTBL struct ITStreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5586,7 +5586,7 @@
       HRESULT (WINAPI *Clone)(IEnumStream *This,IEnumStream **ppEnum);
     END_INTERFACE
   } IEnumStreamVtbl;
-  interface IEnumStream {
+  struct IEnumStream {
     CONST_VTBL struct IEnumStreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5636,7 +5636,7 @@
       HRESULT (WINAPI *get_SubStreams)(ITSubStreamControl *This,VARIANT *pVariant);
     END_INTERFACE
   } ITSubStreamControlVtbl;
-  interface ITSubStreamControl {
+  struct ITSubStreamControl {
     CONST_VTBL struct ITSubStreamControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5698,7 +5698,7 @@
       HRESULT (WINAPI *get_Stream)(ITSubStream *This,ITStream **ppITStream);
     END_INTERFACE
   } ITSubStreamVtbl;
-  interface ITSubStream {
+  struct ITSubStream {
     CONST_VTBL struct ITSubStreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5760,7 +5760,7 @@
       HRESULT (WINAPI *Clone)(IEnumSubStream *This,IEnumSubStream **ppEnum);
     END_INTERFACE
   } IEnumSubStreamVtbl;
-  interface IEnumSubStream {
+  struct IEnumSubStream {
     CONST_VTBL struct IEnumSubStreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5804,7 +5804,7 @@
       HRESULT (WINAPI *IsFullDuplex)(ITLegacyWaveSupport *This,FULLDUPLEX_SUPPORT *pSupport);
     END_INTERFACE
   } ITLegacyWaveSupportVtbl;
-  interface ITLegacyWaveSupport {
+  struct ITLegacyWaveSupport {
     CONST_VTBL struct ITLegacyWaveSupportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5865,7 +5865,7 @@
       HRESULT (WINAPI *UnselectTerminalOnCall)(ITBasicCallControl2 *This,ITTerminal *pTerminal);
     END_INTERFACE
   } ITBasicCallControl2Vtbl;
-  interface ITBasicCallControl2 {
+  struct ITBasicCallControl2 {
     CONST_VTBL struct ITBasicCallControl2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -5950,7 +5950,7 @@
       HRESULT (WINAPI *put_FormatTag)(ITScriptableAudioFormat *This,const long nNewVal);
     END_INTERFACE
   } ITScriptableAudioFormatVtbl;
-  interface ITScriptableAudioFormat {
+  struct ITScriptableAudioFormat {
     CONST_VTBL struct ITScriptableAudioFormatVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/termmgr.h b/mingw-w64-headers/include/termmgr.h
index 965ad25..fd1dbfb 100755
--- a/mingw-w64-headers/include/termmgr.h
+++ b/mingw-w64-headers/include/termmgr.h
@@ -24,32 +24,32 @@
 
 #ifndef __ITTerminalControl_FWD_DEFINED__
 #define __ITTerminalControl_FWD_DEFINED__
-typedef interface ITTerminalControl ITTerminalControl;
+typedef struct ITTerminalControl ITTerminalControl;
 #endif
 
 #ifndef __ITPluggableTerminalInitialization_FWD_DEFINED__
 #define __ITPluggableTerminalInitialization_FWD_DEFINED__
-typedef interface ITPluggableTerminalInitialization ITPluggableTerminalInitialization;
+typedef struct ITPluggableTerminalInitialization ITPluggableTerminalInitialization;
 #endif
 
 #ifndef __ITTerminalManager_FWD_DEFINED__
 #define __ITTerminalManager_FWD_DEFINED__
-typedef interface ITTerminalManager ITTerminalManager;
+typedef struct ITTerminalManager ITTerminalManager;
 #endif
 
 #ifndef __ITTerminalManager2_FWD_DEFINED__
 #define __ITTerminalManager2_FWD_DEFINED__
-typedef interface ITTerminalManager2 ITTerminalManager2;
+typedef struct ITTerminalManager2 ITTerminalManager2;
 #endif
 
 #ifndef __ITPluggableTerminalClassRegistration_FWD_DEFINED__
 #define __ITPluggableTerminalClassRegistration_FWD_DEFINED__
-typedef interface ITPluggableTerminalClassRegistration ITPluggableTerminalClassRegistration;
+typedef struct ITPluggableTerminalClassRegistration ITPluggableTerminalClassRegistration;
 #endif
 
 #ifndef __ITPluggableTerminalSuperclassRegistration_FWD_DEFINED__
 #define __ITPluggableTerminalSuperclassRegistration_FWD_DEFINED__
-typedef interface ITPluggableTerminalSuperclassRegistration ITPluggableTerminalSuperclassRegistration;
+typedef struct ITPluggableTerminalSuperclassRegistration ITPluggableTerminalSuperclassRegistration;
 #endif
 
 #ifndef __TerminalManager_FWD_DEFINED__
@@ -130,7 +130,7 @@
       HRESULT (WINAPI *StopRenderFilter)(ITTerminalControl *This);
     END_INTERFACE
   } ITTerminalControlVtbl;
-  interface ITTerminalControl {
+  struct ITTerminalControl {
     CONST_VTBL struct ITTerminalControlVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -176,7 +176,7 @@
       HRESULT (WINAPI *InitializeDynamic)(ITPluggableTerminalInitialization *This,IID iidTerminalClass,DWORD dwMediaType,TERMINAL_DIRECTION Direction,MSP_HANDLE htAddress);
     END_INTERFACE
   } ITPluggableTerminalInitializationVtbl;
-  interface ITPluggableTerminalInitialization {
+  struct ITPluggableTerminalInitialization {
     CONST_VTBL struct ITPluggableTerminalInitializationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -209,7 +209,7 @@
       HRESULT (WINAPI *CreateDynamicTerminal)(ITTerminalManager *This,IUnknown *pOuterUnknown,IID iidTerminalClass,DWORD dwMediaType,TERMINAL_DIRECTION Direction,MSP_HANDLE htAddress,ITTerminal **ppTerminal);
     END_INTERFACE
   } ITTerminalManagerVtbl;
-  interface ITTerminalManager {
+  struct ITTerminalManager {
     CONST_VTBL struct ITTerminalManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -247,7 +247,7 @@
       HRESULT (WINAPI *GetPluggableTerminalClasses)(ITTerminalManager2 *This,IID iidSuperclass,DWORD dwMediaTypes,DWORD *pdwNumClasses,IID *pTerminalClasses);
     END_INTERFACE
   } ITTerminalManager2Vtbl;
-  interface ITTerminalManager2 {
+  struct ITTerminalManager2 {
     CONST_VTBL struct ITTerminalManager2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -319,7 +319,7 @@
       HRESULT (WINAPI *GetTerminalClassInfo)(ITPluggableTerminalClassRegistration *This,BSTR bstrSuperclass);
     END_INTERFACE
   } ITPluggableTerminalClassRegistrationVtbl;
-  interface ITPluggableTerminalClassRegistration {
+  struct ITPluggableTerminalClassRegistration {
     CONST_VTBL struct ITPluggableTerminalClassRegistrationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -422,7 +422,7 @@
       HRESULT (WINAPI *EnumerateTerminalClasses)(ITPluggableTerminalSuperclassRegistration *This,IEnumTerminalClass **ppTerminals);
     END_INTERFACE
   } ITPluggableTerminalSuperclassRegistrationVtbl;
-  interface ITPluggableTerminalSuperclassRegistration {
+  struct ITPluggableTerminalSuperclassRegistration {
     CONST_VTBL struct ITPluggableTerminalSuperclassRegistrationVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/tlogstg.h b/mingw-w64-headers/include/tlogstg.h
index 2da2008..6dde0d4 100755
--- a/mingw-w64-headers/include/tlogstg.h
+++ b/mingw-w64-headers/include/tlogstg.h
@@ -24,17 +24,17 @@
 
 #ifndef __ITravelLogEntry_FWD_DEFINED__
 #define __ITravelLogEntry_FWD_DEFINED__
-typedef interface ITravelLogEntry ITravelLogEntry;
+typedef struct ITravelLogEntry ITravelLogEntry;
 #endif
 
 #ifndef __IEnumTravelLogEntry_FWD_DEFINED__
 #define __IEnumTravelLogEntry_FWD_DEFINED__
-typedef interface IEnumTravelLogEntry IEnumTravelLogEntry;
+typedef struct IEnumTravelLogEntry IEnumTravelLogEntry;
 #endif
 
 #ifndef __ITravelLogStg_FWD_DEFINED__
 #define __ITravelLogStg_FWD_DEFINED__
-typedef interface ITravelLogStg ITravelLogStg;
+typedef struct ITravelLogStg ITravelLogStg;
 #endif
 
 #include "objidl.h"
@@ -70,7 +70,7 @@
       HRESULT (WINAPI *GetURL)(ITravelLogEntry *This,LPOLESTR *ppszURL);
     END_INTERFACE
   } ITravelLogEntryVtbl;
-  interface ITravelLogEntry {
+  struct ITravelLogEntry {
     CONST_VTBL struct ITravelLogEntryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -110,7 +110,7 @@
       HRESULT (WINAPI *Clone)(IEnumTravelLogEntry *This,IEnumTravelLogEntry **ppEnum);
     END_INTERFACE
   } IEnumTravelLogEntryVtbl;
-  interface IEnumTravelLogEntry {
+  struct IEnumTravelLogEntry {
     CONST_VTBL struct IEnumTravelLogEntryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -167,7 +167,7 @@
       HRESULT (WINAPI *GetRelativeEntry)(ITravelLogStg *This,int iOffset,ITravelLogEntry **ptle);
     END_INTERFACE
   } ITravelLogStgVtbl;
-  interface ITravelLogStg {
+  struct ITravelLogStg {
     CONST_VTBL struct ITravelLogStgVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/tom.h b/mingw-w64-headers/include/tom.h
index 5c04a31..6e2464e 100755
--- a/mingw-w64-headers/include/tom.h
+++ b/mingw-w64-headers/include/tom.h
@@ -28,82 +28,82 @@
 
 #ifndef __ITextDocument_FWD_DEFINED__
 #define __ITextDocument_FWD_DEFINED__
-  typedef interface ITextDocument ITextDocument;
+  typedef struct ITextDocument ITextDocument;
 #endif
 
 #ifndef __ITextRange_FWD_DEFINED__
 #define __ITextRange_FWD_DEFINED__
-  typedef interface ITextRange ITextRange;
+  typedef struct ITextRange ITextRange;
 #endif
 
 #ifndef __ITextSelection_FWD_DEFINED__
 #define __ITextSelection_FWD_DEFINED__
-  typedef interface ITextSelection ITextSelection;
+  typedef struct ITextSelection ITextSelection;
 #endif
 
 #ifndef __ITextFont_FWD_DEFINED__
 #define __ITextFont_FWD_DEFINED__
-  typedef interface ITextFont ITextFont;
+  typedef struct ITextFont ITextFont;
 #endif
 
 #ifndef __ITextPara_FWD_DEFINED__
 #define __ITextPara_FWD_DEFINED__
-  typedef interface ITextPara ITextPara;
+  typedef struct ITextPara ITextPara;
 #endif
 
 #ifndef __ITextStoryRanges_FWD_DEFINED__
 #define __ITextStoryRanges_FWD_DEFINED__
-  typedef interface ITextStoryRanges ITextStoryRanges;
+  typedef struct ITextStoryRanges ITextStoryRanges;
 #endif
 
 #ifndef __ITextDocument2_FWD_DEFINED__
 #define __ITextDocument2_FWD_DEFINED__
-  typedef interface ITextDocument2 ITextDocument2;
+  typedef struct ITextDocument2 ITextDocument2;
 #endif
 
 #ifndef __ITextMsgFilter_FWD_DEFINED__
 #define __ITextMsgFilter_FWD_DEFINED__
-  typedef interface ITextMsgFilter ITextMsgFilter;
+  typedef struct ITextMsgFilter ITextMsgFilter;
 #endif
 
 #ifndef __ITextDocument_FWD_DEFINED__
 #define __ITextDocument_FWD_DEFINED__
-  typedef interface ITextDocument ITextDocument;
+  typedef struct ITextDocument ITextDocument;
 #endif
 
 #ifndef __ITextRange_FWD_DEFINED__
 #define __ITextRange_FWD_DEFINED__
-  typedef interface ITextRange ITextRange;
+  typedef struct ITextRange ITextRange;
 #endif
 
 #ifndef __ITextSelection_FWD_DEFINED__
 #define __ITextSelection_FWD_DEFINED__
-  typedef interface ITextSelection ITextSelection;
+  typedef struct ITextSelection ITextSelection;
 #endif
 
 #ifndef __ITextFont_FWD_DEFINED__
 #define __ITextFont_FWD_DEFINED__
-  typedef interface ITextFont ITextFont;
+  typedef struct ITextFont ITextFont;
 #endif
 
 #ifndef __ITextPara_FWD_DEFINED__
 #define __ITextPara_FWD_DEFINED__
-  typedef interface ITextPara ITextPara;
+  typedef struct ITextPara ITextPara;
 #endif
 
 #ifndef __ITextStoryRanges_FWD_DEFINED__
 #define __ITextStoryRanges_FWD_DEFINED__
-  typedef interface ITextStoryRanges ITextStoryRanges;
+  typedef struct ITextStoryRanges ITextStoryRanges;
 #endif
 
 #ifndef __ITextDocument2_FWD_DEFINED__
 #define __ITextDocument2_FWD_DEFINED__
-  typedef interface ITextDocument2 ITextDocument2;
+  typedef struct ITextDocument2 ITextDocument2;
 #endif
 
 #ifndef __ITextMsgFilter_FWD_DEFINED__
 #define __ITextMsgFilter_FWD_DEFINED__
-  typedef interface ITextMsgFilter ITextMsgFilter;
+  typedef struct ITextMsgFilter ITextMsgFilter;
 #endif
 
 #include "oaidl.h"
@@ -203,7 +203,7 @@
       HRESULT (WINAPI *RangeFromPoint)(ITextDocument *This,long x,long y,ITextRange **ppRange);
     END_INTERFACE
   } ITextDocumentVtbl;
-  interface ITextDocument {
+  struct ITextDocument {
     CONST_VTBL struct ITextDocumentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -396,7 +396,7 @@
       HRESULT (WINAPI *GetEmbeddedObject)(ITextRange *This,IUnknown **ppv);
     END_INTERFACE
   } ITextRangeVtbl;
-  interface ITextRange {
+  struct ITextRange {
     CONST_VTBL struct ITextRangeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -655,7 +655,7 @@
     END_INTERFACE
   } ITextSelectionVtbl;
 
-  interface ITextSelection {
+  struct ITextSelection {
     CONST_VTBL struct ITextSelectionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -880,7 +880,7 @@
       HRESULT (WINAPI *SetWeight)(ITextFont *This,long Value);
     END_INTERFACE
   } ITextFontVtbl;
-  interface ITextFont {
+  struct ITextFont {
     CONST_VTBL struct ITextFontVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1175,7 +1175,7 @@
       HRESULT (WINAPI *GetTab)(ITextPara *This,long iTab,float *ptbPos,long *ptbAlign,long *ptbLeader);
     END_INTERFACE
   } ITextParaVtbl;
-  interface ITextPara {
+  struct ITextPara {
     CONST_VTBL struct ITextParaVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1359,7 +1359,7 @@
       HRESULT (WINAPI *GetCount)(ITextStoryRanges *This,long *pCount);
     END_INTERFACE
   } ITextStoryRangesVtbl;
-  interface ITextStoryRanges {
+  struct ITextStoryRanges {
     CONST_VTBL struct ITextStoryRangesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1461,7 +1461,7 @@
       HRESULT (WINAPI *Notify)(ITextDocument2 *This,long Notify);
     END_INTERFACE
   } ITextDocument2Vtbl;
-  interface ITextDocument2 {
+  struct ITextDocument2 {
     CONST_VTBL struct ITextDocument2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1576,7 +1576,7 @@
       HRESULT (WINAPI *AttachMsgFilter)(ITextMsgFilter *This,ITextMsgFilter *pMsgFilter);
     END_INTERFACE
   } ITextMsgFilterVtbl;
-  interface ITextMsgFilter {
+  struct ITextMsgFilter {
     CONST_VTBL struct ITextMsgFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/transact.h b/mingw-w64-headers/include/transact.h
index 2608035..80f3283 100755
--- a/mingw-w64-headers/include/transact.h
+++ b/mingw-w64-headers/include/transact.h
@@ -24,37 +24,37 @@
 
 #ifndef __ITransaction_FWD_DEFINED__
 #define __ITransaction_FWD_DEFINED__
-typedef interface ITransaction ITransaction;
+typedef struct ITransaction ITransaction;
 #endif
 
 #ifndef __ITransactionCloner_FWD_DEFINED__
 #define __ITransactionCloner_FWD_DEFINED__
-typedef interface ITransactionCloner ITransactionCloner;
+typedef struct ITransactionCloner ITransactionCloner;
 #endif
 
 #ifndef __ITransaction2_FWD_DEFINED__
 #define __ITransaction2_FWD_DEFINED__
-typedef interface ITransaction2 ITransaction2;
+typedef struct ITransaction2 ITransaction2;
 #endif
 
 #ifndef __ITransactionDispenser_FWD_DEFINED__
 #define __ITransactionDispenser_FWD_DEFINED__
-typedef interface ITransactionDispenser ITransactionDispenser;
+typedef struct ITransactionDispenser ITransactionDispenser;
 #endif
 
 #ifndef __ITransactionOptions_FWD_DEFINED__
 #define __ITransactionOptions_FWD_DEFINED__
-typedef interface ITransactionOptions ITransactionOptions;
+typedef struct ITransactionOptions ITransactionOptions;
 #endif
 
 #ifndef __ITransactionOutcomeEvents_FWD_DEFINED__
 #define __ITransactionOutcomeEvents_FWD_DEFINED__
-typedef interface ITransactionOutcomeEvents ITransactionOutcomeEvents;
+typedef struct ITransactionOutcomeEvents ITransactionOutcomeEvents;
 #endif
 
 #ifndef __ITmNodeName_FWD_DEFINED__
 #define __ITmNodeName_FWD_DEFINED__
-typedef interface ITmNodeName ITmNodeName;
+typedef struct ITmNodeName ITmNodeName;
 #endif
 
 #include "unknwn.h"
@@ -171,7 +171,7 @@
       HRESULT (WINAPI *GetTransactionInfo)(ITransaction *This,XACTTRANSINFO *pinfo);
     END_INTERFACE
   } ITransactionVtbl;
-  interface ITransaction {
+  struct ITransaction {
     CONST_VTBL struct ITransactionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -211,7 +211,7 @@
       HRESULT (WINAPI *CloneWithCommitDisabled)(ITransactionCloner *This,ITransaction **ppITransaction);
     END_INTERFACE
   } ITransactionClonerVtbl;
-  interface ITransactionCloner {
+  struct ITransactionCloner {
     CONST_VTBL struct ITransactionClonerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -249,7 +249,7 @@
       HRESULT (WINAPI *GetTransactionInfo2)(ITransaction2 *This,XACTTRANSINFO *pinfo);
     END_INTERFACE
   } ITransaction2Vtbl;
-  interface ITransaction2 {
+  struct ITransaction2 {
     CONST_VTBL struct ITransaction2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -286,7 +286,7 @@
       HRESULT (WINAPI *BeginTransaction)(ITransactionDispenser *This,IUnknown *punkOuter,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOptions,ITransaction **ppTransaction);
     END_INTERFACE
   } ITransactionDispenserVtbl;
-  interface ITransactionDispenser {
+  struct ITransactionDispenser {
     CONST_VTBL struct ITransactionDispenserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -322,7 +322,7 @@
       HRESULT (WINAPI *GetOptions)(ITransactionOptions *This,XACTOPT *pOptions);
     END_INTERFACE
   } ITransactionOptionsVtbl;
-  interface ITransactionOptions {
+  struct ITransactionOptions {
     CONST_VTBL struct ITransactionOptionsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -362,7 +362,7 @@
       HRESULT (WINAPI *Indoubt)(ITransactionOutcomeEvents *This);
     END_INTERFACE
   } ITransactionOutcomeEventsVtbl;
-  interface ITransactionOutcomeEvents {
+  struct ITransactionOutcomeEvents {
     CONST_VTBL struct ITransactionOutcomeEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -404,7 +404,7 @@
       HRESULT (WINAPI *GetNodeName)(ITmNodeName *This,ULONG cbNodeNameBufferSize,LPWSTR pNodeNameBuffer);
     END_INTERFACE
   } ITmNodeNameVtbl;
-  interface ITmNodeName {
+  struct ITmNodeName {
     CONST_VTBL struct ITmNodeNameVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/triedit.h b/mingw-w64-headers/include/triedit.h
index ca7c14e..d1cbbed 100755
--- a/mingw-w64-headers/include/triedit.h
+++ b/mingw-w64-headers/include/triedit.h
@@ -28,7 +28,7 @@
 
 #ifndef __ITriEditDocument_FWD_DEFINED__
 #define __ITriEditDocument_FWD_DEFINED__
-  typedef interface ITriEditDocument ITriEditDocument;
+  typedef struct ITriEditDocument ITriEditDocument;
 #endif
 
 #ifndef __TriEditDocument_FWD_DEFINED__
@@ -42,7 +42,7 @@
 
 #ifndef __IDocHostDragDropHandler_FWD_DEFINED__
 #define __IDocHostDragDropHandler_FWD_DEFINED__
-  typedef interface IDocHostDragDropHandler IDocHostDragDropHandler;
+  typedef struct IDocHostDragDropHandler IDocHostDragDropHandler;
 #endif
 
 #include "oaidl.h"
@@ -94,7 +94,7 @@
       HRESULT (WINAPI *FilterOut)(ITriEditDocument *This,IUnknown *pStmOld,IUnknown **ppStmNew,DWORD dwFlags,BSTR bstrBaseURL);
     END_INTERFACE
   } ITriEditDocumentVtbl;
-  interface ITriEditDocument {
+  struct ITriEditDocument {
     CONST_VTBL struct ITriEditDocumentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -141,7 +141,7 @@
       HRESULT (WINAPI *DrawDragFeedback)(IDocHostDragDropHandler *This,RECT *pRect);
     END_INTERFACE
   } IDocHostDragDropHandlerVtbl;
-  interface IDocHostDragDropHandler {
+  struct IDocHostDragDropHandler {
     CONST_VTBL struct IDocHostDragDropHandlerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/tsuserex.h b/mingw-w64-headers/include/tsuserex.h
index f34c3f9..bda0d5d 100755
--- a/mingw-w64-headers/include/tsuserex.h
+++ b/mingw-w64-headers/include/tsuserex.h
@@ -28,7 +28,7 @@
 
 #ifndef __IADsTSUserEx_FWD_DEFINED__
 #define __IADsTSUserEx_FWD_DEFINED__
-typedef interface IADsTSUserEx IADsTSUserEx;
+typedef struct IADsTSUserEx IADsTSUserEx;
 #endif
 
 #ifndef __ADsTSUserEx_FWD_DEFINED__
@@ -141,7 +141,7 @@
       HRESULT (WINAPI *put_TerminalServicesInitialProgram)(IADsTSUserEx *This,BSTR pNewVal);
     END_INTERFACE
   } IADsTSUserExVtbl;
-  interface IADsTSUserEx {
+  struct IADsTSUserEx {
     CONST_VTBL struct IADsTSUserExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/txcoord.h b/mingw-w64-headers/include/txcoord.h
index 4b5642e..96b1665 100755
--- a/mingw-w64-headers/include/txcoord.h
+++ b/mingw-w64-headers/include/txcoord.h
@@ -24,72 +24,72 @@
 
 #ifndef __ITransactionResourceAsync_FWD_DEFINED__
 #define __ITransactionResourceAsync_FWD_DEFINED__
-typedef interface ITransactionResourceAsync ITransactionResourceAsync;
+typedef struct ITransactionResourceAsync ITransactionResourceAsync;
 #endif
 
 #ifndef __ITransactionLastResourceAsync_FWD_DEFINED__
 #define __ITransactionLastResourceAsync_FWD_DEFINED__
-typedef interface ITransactionLastResourceAsync ITransactionLastResourceAsync;
+typedef struct ITransactionLastResourceAsync ITransactionLastResourceAsync;
 #endif
 
 #ifndef __ITransactionResource_FWD_DEFINED__
 #define __ITransactionResource_FWD_DEFINED__
-typedef interface ITransactionResource ITransactionResource;
+typedef struct ITransactionResource ITransactionResource;
 #endif
 
 #ifndef __ITransactionEnlistmentAsync_FWD_DEFINED__
 #define __ITransactionEnlistmentAsync_FWD_DEFINED__
-typedef interface ITransactionEnlistmentAsync ITransactionEnlistmentAsync;
+typedef struct ITransactionEnlistmentAsync ITransactionEnlistmentAsync;
 #endif
 
 #ifndef __ITransactionLastEnlistmentAsync_FWD_DEFINED__
 #define __ITransactionLastEnlistmentAsync_FWD_DEFINED__
-typedef interface ITransactionLastEnlistmentAsync ITransactionLastEnlistmentAsync;
+typedef struct ITransactionLastEnlistmentAsync ITransactionLastEnlistmentAsync;
 #endif
 
 #ifndef __ITransactionExportFactory_FWD_DEFINED__
 #define __ITransactionExportFactory_FWD_DEFINED__
-typedef interface ITransactionExportFactory ITransactionExportFactory;
+typedef struct ITransactionExportFactory ITransactionExportFactory;
 #endif
 
 #ifndef __ITransactionImportWhereabouts_FWD_DEFINED__
 #define __ITransactionImportWhereabouts_FWD_DEFINED__
-typedef interface ITransactionImportWhereabouts ITransactionImportWhereabouts;
+typedef struct ITransactionImportWhereabouts ITransactionImportWhereabouts;
 #endif
 
 #ifndef __ITransactionExport_FWD_DEFINED__
 #define __ITransactionExport_FWD_DEFINED__
-typedef interface ITransactionExport ITransactionExport;
+typedef struct ITransactionExport ITransactionExport;
 #endif
 
 #ifndef __ITransactionImport_FWD_DEFINED__
 #define __ITransactionImport_FWD_DEFINED__
-typedef interface ITransactionImport ITransactionImport;
+typedef struct ITransactionImport ITransactionImport;
 #endif
 
 #ifndef __ITipTransaction_FWD_DEFINED__
 #define __ITipTransaction_FWD_DEFINED__
-typedef interface ITipTransaction ITipTransaction;
+typedef struct ITipTransaction ITipTransaction;
 #endif
 
 #ifndef __ITipHelper_FWD_DEFINED__
 #define __ITipHelper_FWD_DEFINED__
-typedef interface ITipHelper ITipHelper;
+typedef struct ITipHelper ITipHelper;
 #endif
 
 #ifndef __ITipPullSink_FWD_DEFINED__
 #define __ITipPullSink_FWD_DEFINED__
-typedef interface ITipPullSink ITipPullSink;
+typedef struct ITipPullSink ITipPullSink;
 #endif
 
 #ifndef __IDtcNetworkAccessConfig_FWD_DEFINED__
 #define __IDtcNetworkAccessConfig_FWD_DEFINED__
-typedef interface IDtcNetworkAccessConfig IDtcNetworkAccessConfig;
+typedef struct IDtcNetworkAccessConfig IDtcNetworkAccessConfig;
 #endif
 
 #ifndef __IDtcNetworkAccessConfig2_FWD_DEFINED__
 #define __IDtcNetworkAccessConfig2_FWD_DEFINED__
-typedef interface IDtcNetworkAccessConfig2 IDtcNetworkAccessConfig2;
+typedef struct IDtcNetworkAccessConfig2 IDtcNetworkAccessConfig2;
 #endif
 
 #include "transact.h"
@@ -128,7 +128,7 @@
       HRESULT (WINAPI *TMDown)(ITransactionResourceAsync *This);
     END_INTERFACE
   } ITransactionResourceAsyncVtbl;
-  interface ITransactionResourceAsync {
+  struct ITransactionResourceAsync {
     CONST_VTBL struct ITransactionResourceAsyncVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -170,7 +170,7 @@
       HRESULT (WINAPI *ForgetRequest)(ITransactionLastResourceAsync *This,XACTUOW *pNewUOW);
     END_INTERFACE
   } ITransactionLastResourceAsyncVtbl;
-  interface ITransactionLastResourceAsync {
+  struct ITransactionLastResourceAsync {
     CONST_VTBL struct ITransactionLastResourceAsyncVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -210,7 +210,7 @@
       HRESULT (WINAPI *TMDown)(ITransactionResource *This);
     END_INTERFACE
   } ITransactionResourceVtbl;
-  interface ITransactionResource {
+  struct ITransactionResource {
     CONST_VTBL struct ITransactionResourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -254,7 +254,7 @@
       HRESULT (WINAPI *AbortRequestDone)(ITransactionEnlistmentAsync *This,HRESULT hr);
     END_INTERFACE
   } ITransactionEnlistmentAsyncVtbl;
-  interface ITransactionEnlistmentAsync {
+  struct ITransactionEnlistmentAsync {
     CONST_VTBL struct ITransactionEnlistmentAsyncVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -291,7 +291,7 @@
       HRESULT (WINAPI *TransactionOutcome)(ITransactionLastEnlistmentAsync *This,XACTSTAT XactStat,BOID *pboidReason);
     END_INTERFACE
   } ITransactionLastEnlistmentAsyncVtbl;
-  interface ITransactionLastEnlistmentAsync {
+  struct ITransactionLastEnlistmentAsync {
     CONST_VTBL struct ITransactionLastEnlistmentAsyncVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -324,7 +324,7 @@
       HRESULT (WINAPI *Create)(ITransactionExportFactory *This,ULONG cbWhereabouts,byte *rgbWhereabouts,ITransactionExport **ppExport);
     END_INTERFACE
   } ITransactionExportFactoryVtbl;
-  interface ITransactionExportFactory {
+  struct ITransactionExportFactory {
     CONST_VTBL struct ITransactionExportFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -360,7 +360,7 @@
       HRESULT (WINAPI *GetWhereabouts)(ITransactionImportWhereabouts *This,ULONG cbWhereabouts,byte *rgbWhereabouts,ULONG *pcbUsed);
     END_INTERFACE
   } ITransactionImportWhereaboutsVtbl;
-  interface ITransactionImportWhereabouts {
+  struct ITransactionImportWhereabouts {
     CONST_VTBL struct ITransactionImportWhereaboutsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -396,7 +396,7 @@
       HRESULT (WINAPI *GetTransactionCookie)(ITransactionExport *This,IUnknown *punkTransaction,ULONG cbTransactionCookie,byte *rgbTransactionCookie,ULONG *pcbUsed);
     END_INTERFACE
   } ITransactionExportVtbl;
-  interface ITransactionExport {
+  struct ITransactionExport {
     CONST_VTBL struct ITransactionExportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -430,7 +430,7 @@
       HRESULT (WINAPI *Import)(ITransactionImport *This,ULONG cbTransactionCookie,byte *rgbTransactionCookie,IID *piid,void **ppvTransaction);
     END_INTERFACE
   } ITransactionImportVtbl;
-  interface ITransactionImport {
+  struct ITransactionImport {
     CONST_VTBL struct ITransactionImportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -463,7 +463,7 @@
       HRESULT (WINAPI *GetTransactionUrl)(ITipTransaction *This,char **o_ppszLocalTxUrl);
     END_INTERFACE
   } ITipTransactionVtbl;
-  interface ITipTransaction {
+  struct ITipTransaction {
     CONST_VTBL struct ITipTransactionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -501,7 +501,7 @@
       HRESULT (WINAPI *GetLocalTmUrl)(ITipHelper *This,char **o_ppszLocalTmUrl);
     END_INTERFACE
   } ITipHelperVtbl;
-  interface ITipHelper {
+  struct ITipHelper {
     CONST_VTBL struct ITipHelperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -538,7 +538,7 @@
       HRESULT (WINAPI *PullComplete)(ITipPullSink *This,HRESULT i_hrPull);
     END_INTERFACE
   } ITipPullSinkVtbl;
-  interface ITipPullSink {
+  struct ITipPullSink {
     CONST_VTBL struct ITipPullSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -593,7 +593,7 @@
       HRESULT (WINAPI *RestartDtcService)(IDtcNetworkAccessConfig *This);
     END_INTERFACE
   } IDtcNetworkAccessConfigVtbl;
-  interface IDtcNetworkAccessConfig {
+  struct IDtcNetworkAccessConfig {
     CONST_VTBL struct IDtcNetworkAccessConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -690,7 +690,7 @@
       HRESULT (WINAPI *SetAuthenticationLevel)(IDtcNetworkAccessConfig2 *This,AUTHENTICATION_LEVEL AuthLevel);
     END_INTERFACE
   } IDtcNetworkAccessConfig2Vtbl;
-  interface IDtcNetworkAccessConfig2 {
+  struct IDtcNetworkAccessConfig2 {
     CONST_VTBL struct IDtcNetworkAccessConfig2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/txdtc.h b/mingw-w64-headers/include/txdtc.h
index abf31e4..0759aa8 100755
--- a/mingw-w64-headers/include/txdtc.h
+++ b/mingw-w64-headers/include/txdtc.h
@@ -24,192 +24,192 @@
 
 #ifndef __IXATransLookup_FWD_DEFINED__
 #define __IXATransLookup_FWD_DEFINED__
-typedef interface IXATransLookup IXATransLookup;
+typedef struct IXATransLookup IXATransLookup;
 #endif
 
 #ifndef __IXATransLookup2_FWD_DEFINED__
 #define __IXATransLookup2_FWD_DEFINED__
-typedef interface IXATransLookup2 IXATransLookup2;
+typedef struct IXATransLookup2 IXATransLookup2;
 #endif
 
 #ifndef __IResourceManagerSink_FWD_DEFINED__
 #define __IResourceManagerSink_FWD_DEFINED__
-typedef interface IResourceManagerSink IResourceManagerSink;
+typedef struct IResourceManagerSink IResourceManagerSink;
 #endif
 
 #ifndef __IResourceManager_FWD_DEFINED__
 #define __IResourceManager_FWD_DEFINED__
-typedef interface IResourceManager IResourceManager;
+typedef struct IResourceManager IResourceManager;
 #endif
 
 #ifndef __ILastResourceManager_FWD_DEFINED__
 #define __ILastResourceManager_FWD_DEFINED__
-typedef interface ILastResourceManager ILastResourceManager;
+typedef struct ILastResourceManager ILastResourceManager;
 #endif
 
 #ifndef __IResourceManager2_FWD_DEFINED__
 #define __IResourceManager2_FWD_DEFINED__
-typedef interface IResourceManager2 IResourceManager2;
+typedef struct IResourceManager2 IResourceManager2;
 #endif
 
 #ifndef __IXAConfig_FWD_DEFINED__
 #define __IXAConfig_FWD_DEFINED__
-typedef interface IXAConfig IXAConfig;
+typedef struct IXAConfig IXAConfig;
 #endif
 
 #ifndef __IRMHelper_FWD_DEFINED__
 #define __IRMHelper_FWD_DEFINED__
-typedef interface IRMHelper IRMHelper;
+typedef struct IRMHelper IRMHelper;
 #endif
 
 #ifndef __IXAObtainRMInfo_FWD_DEFINED__
 #define __IXAObtainRMInfo_FWD_DEFINED__
-typedef interface IXAObtainRMInfo IXAObtainRMInfo;
+typedef struct IXAObtainRMInfo IXAObtainRMInfo;
 #endif
 
 #ifndef __IResourceManagerFactory_FWD_DEFINED__
 #define __IResourceManagerFactory_FWD_DEFINED__
-typedef interface IResourceManagerFactory IResourceManagerFactory;
+typedef struct IResourceManagerFactory IResourceManagerFactory;
 #endif
 
 #ifndef __IResourceManagerFactory2_FWD_DEFINED__
 #define __IResourceManagerFactory2_FWD_DEFINED__
-typedef interface IResourceManagerFactory2 IResourceManagerFactory2;
+typedef struct IResourceManagerFactory2 IResourceManagerFactory2;
 #endif
 
 #ifndef __IPrepareInfo_FWD_DEFINED__
 #define __IPrepareInfo_FWD_DEFINED__
-typedef interface IPrepareInfo IPrepareInfo;
+typedef struct IPrepareInfo IPrepareInfo;
 #endif
 
 #ifndef __IPrepareInfo2_FWD_DEFINED__
 #define __IPrepareInfo2_FWD_DEFINED__
-typedef interface IPrepareInfo2 IPrepareInfo2;
+typedef struct IPrepareInfo2 IPrepareInfo2;
 #endif
 
 #ifndef __IGetDispenser_FWD_DEFINED__
 #define __IGetDispenser_FWD_DEFINED__
-typedef interface IGetDispenser IGetDispenser;
+typedef struct IGetDispenser IGetDispenser;
 #endif
 
 #ifndef __ITransactionVoterBallotAsync2_FWD_DEFINED__
 #define __ITransactionVoterBallotAsync2_FWD_DEFINED__
-typedef interface ITransactionVoterBallotAsync2 ITransactionVoterBallotAsync2;
+typedef struct ITransactionVoterBallotAsync2 ITransactionVoterBallotAsync2;
 #endif
 
 #ifndef __ITransactionVoterNotifyAsync2_FWD_DEFINED__
 #define __ITransactionVoterNotifyAsync2_FWD_DEFINED__
-typedef interface ITransactionVoterNotifyAsync2 ITransactionVoterNotifyAsync2;
+typedef struct ITransactionVoterNotifyAsync2 ITransactionVoterNotifyAsync2;
 #endif
 
 #ifndef __ITransactionVoterFactory2_FWD_DEFINED__
 #define __ITransactionVoterFactory2_FWD_DEFINED__
-typedef interface ITransactionVoterFactory2 ITransactionVoterFactory2;
+typedef struct ITransactionVoterFactory2 ITransactionVoterFactory2;
 #endif
 
 #ifndef __ITransactionPhase0EnlistmentAsync_FWD_DEFINED__
 #define __ITransactionPhase0EnlistmentAsync_FWD_DEFINED__
-typedef interface ITransactionPhase0EnlistmentAsync ITransactionPhase0EnlistmentAsync;
+typedef struct ITransactionPhase0EnlistmentAsync ITransactionPhase0EnlistmentAsync;
 #endif
 
 #ifndef __ITransactionPhase0NotifyAsync_FWD_DEFINED__
 #define __ITransactionPhase0NotifyAsync_FWD_DEFINED__
-typedef interface ITransactionPhase0NotifyAsync ITransactionPhase0NotifyAsync;
+typedef struct ITransactionPhase0NotifyAsync ITransactionPhase0NotifyAsync;
 #endif
 
 #ifndef __ITransactionPhase0Factory_FWD_DEFINED__
 #define __ITransactionPhase0Factory_FWD_DEFINED__
-typedef interface ITransactionPhase0Factory ITransactionPhase0Factory;
+typedef struct ITransactionPhase0Factory ITransactionPhase0Factory;
 #endif
 
 #ifndef __ITransactionTransmitter_FWD_DEFINED__
 #define __ITransactionTransmitter_FWD_DEFINED__
-typedef interface ITransactionTransmitter ITransactionTransmitter;
+typedef struct ITransactionTransmitter ITransactionTransmitter;
 #endif
 
 #ifndef __ITransactionTransmitterFactory_FWD_DEFINED__
 #define __ITransactionTransmitterFactory_FWD_DEFINED__
-typedef interface ITransactionTransmitterFactory ITransactionTransmitterFactory;
+typedef struct ITransactionTransmitterFactory ITransactionTransmitterFactory;
 #endif
 
 #ifndef __ITransactionReceiver_FWD_DEFINED__
 #define __ITransactionReceiver_FWD_DEFINED__
-typedef interface ITransactionReceiver ITransactionReceiver;
+typedef struct ITransactionReceiver ITransactionReceiver;
 #endif
 
 #ifndef __ITransactionReceiverFactory_FWD_DEFINED__
 #define __ITransactionReceiverFactory_FWD_DEFINED__
-typedef interface ITransactionReceiverFactory ITransactionReceiverFactory;
+typedef struct ITransactionReceiverFactory ITransactionReceiverFactory;
 #endif
 
 #ifndef __IDtcLuConfigure_FWD_DEFINED__
 #define __IDtcLuConfigure_FWD_DEFINED__
-typedef interface IDtcLuConfigure IDtcLuConfigure;
+typedef struct IDtcLuConfigure IDtcLuConfigure;
 #endif
 
 #ifndef __IDtcLuRecovery_FWD_DEFINED__
 #define __IDtcLuRecovery_FWD_DEFINED__
-typedef interface IDtcLuRecovery IDtcLuRecovery;
+typedef struct IDtcLuRecovery IDtcLuRecovery;
 #endif
 
 #ifndef __IDtcLuRecoveryFactory_FWD_DEFINED__
 #define __IDtcLuRecoveryFactory_FWD_DEFINED__
-typedef interface IDtcLuRecoveryFactory IDtcLuRecoveryFactory;
+typedef struct IDtcLuRecoveryFactory IDtcLuRecoveryFactory;
 #endif
 
 #ifndef __IDtcLuRecoveryInitiatedByDtcTransWork_FWD_DEFINED__
 #define __IDtcLuRecoveryInitiatedByDtcTransWork_FWD_DEFINED__
-typedef interface IDtcLuRecoveryInitiatedByDtcTransWork IDtcLuRecoveryInitiatedByDtcTransWork;
+typedef struct IDtcLuRecoveryInitiatedByDtcTransWork IDtcLuRecoveryInitiatedByDtcTransWork;
 #endif
 
 #ifndef __IDtcLuRecoveryInitiatedByDtcStatusWork_FWD_DEFINED__
 #define __IDtcLuRecoveryInitiatedByDtcStatusWork_FWD_DEFINED__
-typedef interface IDtcLuRecoveryInitiatedByDtcStatusWork IDtcLuRecoveryInitiatedByDtcStatusWork;
+typedef struct IDtcLuRecoveryInitiatedByDtcStatusWork IDtcLuRecoveryInitiatedByDtcStatusWork;
 #endif
 
 #ifndef __IDtcLuRecoveryInitiatedByDtc_FWD_DEFINED__
 #define __IDtcLuRecoveryInitiatedByDtc_FWD_DEFINED__
-typedef interface IDtcLuRecoveryInitiatedByDtc IDtcLuRecoveryInitiatedByDtc;
+typedef struct IDtcLuRecoveryInitiatedByDtc IDtcLuRecoveryInitiatedByDtc;
 #endif
 
 #ifndef __IDtcLuRecoveryInitiatedByLuWork_FWD_DEFINED__
 #define __IDtcLuRecoveryInitiatedByLuWork_FWD_DEFINED__
-typedef interface IDtcLuRecoveryInitiatedByLuWork IDtcLuRecoveryInitiatedByLuWork;
+typedef struct IDtcLuRecoveryInitiatedByLuWork IDtcLuRecoveryInitiatedByLuWork;
 #endif
 
 #ifndef __IDtcLuRecoveryInitiatedByLu_FWD_DEFINED__
 #define __IDtcLuRecoveryInitiatedByLu_FWD_DEFINED__
-typedef interface IDtcLuRecoveryInitiatedByLu IDtcLuRecoveryInitiatedByLu;
+typedef struct IDtcLuRecoveryInitiatedByLu IDtcLuRecoveryInitiatedByLu;
 #endif
 
 #ifndef __IDtcLuRmEnlistment_FWD_DEFINED__
 #define __IDtcLuRmEnlistment_FWD_DEFINED__
-typedef interface IDtcLuRmEnlistment IDtcLuRmEnlistment;
+typedef struct IDtcLuRmEnlistment IDtcLuRmEnlistment;
 #endif
 
 #ifndef __IDtcLuRmEnlistmentSink_FWD_DEFINED__
 #define __IDtcLuRmEnlistmentSink_FWD_DEFINED__
-typedef interface IDtcLuRmEnlistmentSink IDtcLuRmEnlistmentSink;
+typedef struct IDtcLuRmEnlistmentSink IDtcLuRmEnlistmentSink;
 #endif
 
 #ifndef __IDtcLuRmEnlistmentFactory_FWD_DEFINED__
 #define __IDtcLuRmEnlistmentFactory_FWD_DEFINED__
-typedef interface IDtcLuRmEnlistmentFactory IDtcLuRmEnlistmentFactory;
+typedef struct IDtcLuRmEnlistmentFactory IDtcLuRmEnlistmentFactory;
 #endif
 
 #ifndef __IDtcLuSubordinateDtc_FWD_DEFINED__
 #define __IDtcLuSubordinateDtc_FWD_DEFINED__
-typedef interface IDtcLuSubordinateDtc IDtcLuSubordinateDtc;
+typedef struct IDtcLuSubordinateDtc IDtcLuSubordinateDtc;
 #endif
 
 #ifndef __IDtcLuSubordinateDtcSink_FWD_DEFINED__
 #define __IDtcLuSubordinateDtcSink_FWD_DEFINED__
-typedef interface IDtcLuSubordinateDtcSink IDtcLuSubordinateDtcSink;
+typedef struct IDtcLuSubordinateDtcSink IDtcLuSubordinateDtcSink;
 #endif
 
 #ifndef __IDtcLuSubordinateDtcFactory_FWD_DEFINED__
 #define __IDtcLuSubordinateDtcFactory_FWD_DEFINED__
-typedef interface IDtcLuSubordinateDtcFactory IDtcLuSubordinateDtcFactory;
+typedef struct IDtcLuSubordinateDtcFactory IDtcLuSubordinateDtcFactory;
 #endif
 
 #include "txcoord.h"
@@ -279,7 +279,7 @@
       HRESULT (WINAPI *Lookup)(IXATransLookup *This,ITransaction **ppTransaction);
     END_INTERFACE
   } IXATransLookupVtbl;
-  interface IXATransLookup {
+  struct IXATransLookup {
     CONST_VTBL struct IXATransLookupVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -310,7 +310,7 @@
       HRESULT (WINAPI *Lookup)(IXATransLookup2 *This,XID *pXID,ITransaction **ppTransaction);
     END_INTERFACE
   } IXATransLookup2Vtbl;
-  interface IXATransLookup2 {
+  struct IXATransLookup2 {
     CONST_VTBL struct IXATransLookup2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -341,7 +341,7 @@
       HRESULT (WINAPI *TMDown)(IResourceManagerSink *This);
     END_INTERFACE
   } IResourceManagerSinkVtbl;
-  interface IResourceManagerSink {
+  struct IResourceManagerSink {
     CONST_VTBL struct IResourceManagerSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -377,7 +377,7 @@
       HRESULT (WINAPI *GetDistributedTransactionManager)(IResourceManager *This,REFIID iid,void **ppvObject);
     END_INTERFACE
   } IResourceManagerVtbl;
-  interface IResourceManager {
+  struct IResourceManager {
     CONST_VTBL struct IResourceManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -419,7 +419,7 @@
       HRESULT (WINAPI *RecoveryDone)(ILastResourceManager *This);
     END_INTERFACE
   } ILastResourceManagerVtbl;
-  interface ILastResourceManager {
+  struct ILastResourceManager {
     CONST_VTBL struct ILastResourceManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -459,7 +459,7 @@
       HRESULT (WINAPI *Reenlist2)(IResourceManager2 *This,XID *pXid,DWORD dwTimeout,XACTSTAT *pXactStat);
     END_INTERFACE
   } IResourceManager2Vtbl;
-  interface IResourceManager2 {
+  struct IResourceManager2 {
     CONST_VTBL struct IResourceManager2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -499,7 +499,7 @@
       HRESULT (WINAPI *Terminate)(IXAConfig *This);
     END_INTERFACE
   } IXAConfigVtbl;
-  interface IXAConfig {
+  struct IXAConfig {
     CONST_VTBL struct IXAConfigVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -535,7 +535,7 @@
       HRESULT (WINAPI *RMInfo)(IRMHelper *This,xa_switch_t *pXa_Switch,WINBOOL fCDeclCallingConv,char *pszOpenString,char *pszCloseString,GUID guidRMRecovery);
     END_INTERFACE
   } IRMHelperVtbl;
-  interface IRMHelper {
+  struct IRMHelper {
     CONST_VTBL struct IRMHelperVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -569,7 +569,7 @@
       HRESULT (WINAPI *ObtainRMInfo)(IXAObtainRMInfo *This,IRMHelper *pIRMHelper);
     END_INTERFACE
   } IXAObtainRMInfoVtbl;
-  interface IXAObtainRMInfo {
+  struct IXAObtainRMInfo {
     CONST_VTBL struct IXAObtainRMInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -600,7 +600,7 @@
       HRESULT (WINAPI *Create)(IResourceManagerFactory *This,GUID *pguidRM,CHAR *pszRMName,IResourceManagerSink *pIResMgrSink,IResourceManager **ppResMgr);
     END_INTERFACE
   } IResourceManagerFactoryVtbl;
-  interface IResourceManagerFactory {
+  struct IResourceManagerFactory {
     CONST_VTBL struct IResourceManagerFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -632,7 +632,7 @@
       HRESULT (WINAPI *CreateEx)(IResourceManagerFactory2 *This,GUID *pguidRM,CHAR *pszRMName,IResourceManagerSink *pIResMgrSink,REFIID riidRequested,void **ppvResMgr);
     END_INTERFACE
   } IResourceManagerFactory2Vtbl;
-  interface IResourceManagerFactory2 {
+  struct IResourceManagerFactory2 {
     CONST_VTBL struct IResourceManagerFactory2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -666,7 +666,7 @@
       HRESULT (WINAPI *GetPrepareInfo)(IPrepareInfo *This,byte *pPrepInfo);
     END_INTERFACE
   } IPrepareInfoVtbl;
-  interface IPrepareInfo {
+  struct IPrepareInfo {
     CONST_VTBL struct IPrepareInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -702,7 +702,7 @@
       HRESULT (WINAPI *GetPrepareInfo)(IPrepareInfo2 *This,ULONG cbPrepareInfo,byte *pPrepInfo);
     END_INTERFACE
   } IPrepareInfo2Vtbl;
-  interface IPrepareInfo2 {
+  struct IPrepareInfo2 {
     CONST_VTBL struct IPrepareInfo2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -736,7 +736,7 @@
       HRESULT (WINAPI *GetDispenser)(IGetDispenser *This,REFIID iid,void **ppvObject);
     END_INTERFACE
   } IGetDispenserVtbl;
-  interface IGetDispenser {
+  struct IGetDispenser {
     CONST_VTBL struct IGetDispenserVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -767,7 +767,7 @@
       HRESULT (WINAPI *VoteRequestDone)(ITransactionVoterBallotAsync2 *This,HRESULT hr,BOID *pboidReason);
     END_INTERFACE
   } ITransactionVoterBallotAsync2Vtbl;
-  interface ITransactionVoterBallotAsync2 {
+  struct ITransactionVoterBallotAsync2 {
     CONST_VTBL struct ITransactionVoterBallotAsync2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -802,7 +802,7 @@
       HRESULT (WINAPI *VoteRequest)(ITransactionVoterNotifyAsync2 *This);
     END_INTERFACE
   } ITransactionVoterNotifyAsync2Vtbl;
-  interface ITransactionVoterNotifyAsync2 {
+  struct ITransactionVoterNotifyAsync2 {
     CONST_VTBL struct ITransactionVoterNotifyAsync2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -837,7 +837,7 @@
       HRESULT (WINAPI *Create)(ITransactionVoterFactory2 *This,ITransaction *pTransaction,ITransactionVoterNotifyAsync2 *pVoterNotify,ITransactionVoterBallotAsync2 **ppVoterBallot);
     END_INTERFACE
   } ITransactionVoterFactory2Vtbl;
-  interface ITransactionVoterFactory2 {
+  struct ITransactionVoterFactory2 {
     CONST_VTBL struct ITransactionVoterFactory2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -876,7 +876,7 @@
       HRESULT (WINAPI *GetTransaction)(ITransactionPhase0EnlistmentAsync *This,ITransaction **ppITransaction);
     END_INTERFACE
   } ITransactionPhase0EnlistmentAsyncVtbl;
-  interface ITransactionPhase0EnlistmentAsync {
+  struct ITransactionPhase0EnlistmentAsync {
     CONST_VTBL struct ITransactionPhase0EnlistmentAsyncVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -921,7 +921,7 @@
       HRESULT (WINAPI *EnlistCompleted)(ITransactionPhase0NotifyAsync *This,HRESULT status);
     END_INTERFACE
   } ITransactionPhase0NotifyAsyncVtbl;
-  interface ITransactionPhase0NotifyAsync {
+  struct ITransactionPhase0NotifyAsync {
     CONST_VTBL struct ITransactionPhase0NotifyAsyncVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -955,7 +955,7 @@
       HRESULT (WINAPI *Create)(ITransactionPhase0Factory *This,ITransactionPhase0NotifyAsync *pPhase0Notify,ITransactionPhase0EnlistmentAsync **ppPhase0Enlistment);
     END_INTERFACE
   } ITransactionPhase0FactoryVtbl;
-  interface ITransactionPhase0Factory {
+  struct ITransactionPhase0Factory {
     CONST_VTBL struct ITransactionPhase0FactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -994,7 +994,7 @@
       HRESULT (WINAPI *Reset)(ITransactionTransmitter *This);
     END_INTERFACE
   } ITransactionTransmitterVtbl;
-  interface ITransactionTransmitter {
+  struct ITransactionTransmitter {
     CONST_VTBL struct ITransactionTransmitterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1037,7 +1037,7 @@
       HRESULT (WINAPI *Create)(ITransactionTransmitterFactory *This,ITransactionTransmitter **ppTransmitter);
     END_INTERFACE
   } ITransactionTransmitterFactoryVtbl;
-  interface ITransactionTransmitterFactory {
+  struct ITransactionTransmitterFactory {
     CONST_VTBL struct ITransactionTransmitterFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1074,7 +1074,7 @@
       HRESULT (WINAPI *Reset)(ITransactionReceiver *This);
     END_INTERFACE
   } ITransactionReceiverVtbl;
-  interface ITransactionReceiver {
+  struct ITransactionReceiver {
     CONST_VTBL struct ITransactionReceiverVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1114,7 +1114,7 @@
       HRESULT (WINAPI *Create)(ITransactionReceiverFactory *This,ITransactionReceiver **ppReceiver);
     END_INTERFACE
   } ITransactionReceiverFactoryVtbl;
-  interface ITransactionReceiverFactory {
+  struct ITransactionReceiverFactory {
     CONST_VTBL struct ITransactionReceiverFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1153,7 +1153,7 @@
       HRESULT (WINAPI *Delete)(IDtcLuConfigure *This,byte *pucLuPair,DWORD cbLuPair);
     END_INTERFACE
   } IDtcLuConfigureVtbl;
-  interface IDtcLuConfigure {
+  struct IDtcLuConfigure {
     CONST_VTBL struct IDtcLuConfigureVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1184,7 +1184,7 @@
       ULONG (WINAPI *Release)(IDtcLuRecovery *This);
     END_INTERFACE
   } IDtcLuRecoveryVtbl;
-  interface IDtcLuRecovery {
+  struct IDtcLuRecovery {
     CONST_VTBL struct IDtcLuRecoveryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1212,7 +1212,7 @@
       HRESULT (WINAPI *Create)(IDtcLuRecoveryFactory *This,byte *pucLuPair,DWORD cbLuPair,IDtcLuRecovery **ppRecovery);
     END_INTERFACE
   } IDtcLuRecoveryFactoryVtbl;
-  interface IDtcLuRecoveryFactory {
+  struct IDtcLuRecoveryFactory {
     CONST_VTBL struct IDtcLuRecoveryFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1311,7 +1311,7 @@
       HRESULT (WINAPI *ObsoleteRecoverySeqNum)(IDtcLuRecoveryInitiatedByDtcTransWork *This,LONG lNewRecoverySeqNum);
     END_INTERFACE
   } IDtcLuRecoveryInitiatedByDtcTransWorkVtbl;
-  interface IDtcLuRecoveryInitiatedByDtcTransWork {
+  struct IDtcLuRecoveryInitiatedByDtcTransWork {
     CONST_VTBL struct IDtcLuRecoveryInitiatedByDtcTransWorkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1378,7 +1378,7 @@
       HRESULT (WINAPI *HandleCheckLuStatus)(IDtcLuRecoveryInitiatedByDtcStatusWork *This,LONG lRecoverySeqNum);
     END_INTERFACE
   } IDtcLuRecoveryInitiatedByDtcStatusWorkVtbl;
-  interface IDtcLuRecoveryInitiatedByDtcStatusWork {
+  struct IDtcLuRecoveryInitiatedByDtcStatusWork {
     CONST_VTBL struct IDtcLuRecoveryInitiatedByDtcStatusWorkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1409,7 +1409,7 @@
       HRESULT (WINAPI *GetWork)(IDtcLuRecoveryInitiatedByDtc *This,DTCINITIATEDRECOVERYWORK *pWork,void **ppv);
     END_INTERFACE
   } IDtcLuRecoveryInitiatedByDtcVtbl;
-  interface IDtcLuRecoveryInitiatedByDtc {
+  struct IDtcLuRecoveryInitiatedByDtc {
     CONST_VTBL struct IDtcLuRecoveryInitiatedByDtcVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1454,7 +1454,7 @@
       HRESULT (WINAPI *ConversationLost)(IDtcLuRecoveryInitiatedByLuWork *This);
     END_INTERFACE
   } IDtcLuRecoveryInitiatedByLuWorkVtbl;
-  interface IDtcLuRecoveryInitiatedByLuWork {
+  struct IDtcLuRecoveryInitiatedByLuWork {
     CONST_VTBL struct IDtcLuRecoveryInitiatedByLuWorkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1506,7 +1506,7 @@
       HRESULT (WINAPI *GetObjectToHandleWorkFromLu)(IDtcLuRecoveryInitiatedByLu *This,IDtcLuRecoveryInitiatedByLuWork **ppWork);
     END_INTERFACE
   } IDtcLuRecoveryInitiatedByLuVtbl;
-  interface IDtcLuRecoveryInitiatedByLu {
+  struct IDtcLuRecoveryInitiatedByLu {
     CONST_VTBL struct IDtcLuRecoveryInitiatedByLuVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1547,7 +1547,7 @@
       HRESULT (WINAPI *RequestCommit)(IDtcLuRmEnlistment *This);
     END_INTERFACE
   } IDtcLuRmEnlistmentVtbl;
-  interface IDtcLuRmEnlistment {
+  struct IDtcLuRmEnlistment {
     CONST_VTBL struct IDtcLuRmEnlistmentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1609,7 +1609,7 @@
       HRESULT (WINAPI *RequestCommit)(IDtcLuRmEnlistmentSink *This);
     END_INTERFACE
   } IDtcLuRmEnlistmentSinkVtbl;
-  interface IDtcLuRmEnlistmentSink {
+  struct IDtcLuRmEnlistmentSink {
     CONST_VTBL struct IDtcLuRmEnlistmentSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1664,7 +1664,7 @@
       HRESULT (WINAPI *Create)(IDtcLuRmEnlistmentFactory *This,unsigned char *pucLuPair,DWORD cbLuPair,ITransaction *pITransaction,unsigned char *pTransId,DWORD cbTransId,IDtcLuRmEnlistmentSink *pRmEnlistmentSink,IDtcLuRmEnlistment **ppRmEnlistment);
     END_INTERFACE
   } IDtcLuRmEnlistmentFactoryVtbl;
-  interface IDtcLuRmEnlistmentFactory {
+  struct IDtcLuRmEnlistmentFactory {
     CONST_VTBL struct IDtcLuRmEnlistmentFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1707,7 +1707,7 @@
       HRESULT (WINAPI *RequestCommit)(IDtcLuSubordinateDtc *This);
     END_INTERFACE
   } IDtcLuSubordinateDtcVtbl;
-  interface IDtcLuSubordinateDtc {
+  struct IDtcLuSubordinateDtc {
     CONST_VTBL struct IDtcLuSubordinateDtcVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1770,7 +1770,7 @@
       HRESULT (WINAPI *RequestCommit)(IDtcLuSubordinateDtcSink *This);
     END_INTERFACE
   } IDtcLuSubordinateDtcSinkVtbl;
-  interface IDtcLuSubordinateDtcSink {
+  struct IDtcLuSubordinateDtcSink {
     CONST_VTBL struct IDtcLuSubordinateDtcSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1822,7 +1822,7 @@
       HRESULT (WINAPI *Create)(IDtcLuSubordinateDtcFactory *This,unsigned char *pucLuPair,DWORD cbLuPair,IUnknown *punkTransactionOuter,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOptions,ITransaction **ppTransaction,unsigned char *pTransId,DWORD cbTransId,IDtcLuSubordinateDtcSink *pSubordinateDtcSink,IDtcLuSubordinateDtc **ppSubordinateDtc);
     END_INTERFACE
   } IDtcLuSubordinateDtcFactoryVtbl;
-  interface IDtcLuSubordinateDtcFactory {
+  struct IDtcLuSubordinateDtcFactory {
     CONST_VTBL struct IDtcLuSubordinateDtcFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/unknwn.h b/mingw-w64-headers/include/unknwn.h
index 0f96699..941d3e1 100755
--- a/mingw-w64-headers/include/unknwn.h
+++ b/mingw-w64-headers/include/unknwn.h
@@ -25,17 +25,17 @@
 
 #ifndef __IUnknown_FWD_DEFINED__
 #define __IUnknown_FWD_DEFINED__
-typedef interface IUnknown IUnknown;
+typedef struct IUnknown IUnknown;
 #endif
 
 #ifndef __AsyncIUnknown_FWD_DEFINED__
 #define __AsyncIUnknown_FWD_DEFINED__
-typedef interface AsyncIUnknown AsyncIUnknown;
+typedef struct AsyncIUnknown AsyncIUnknown;
 #endif
 
 #ifndef __IClassFactory_FWD_DEFINED__
 #define __IClassFactory_FWD_DEFINED__
-typedef interface IClassFactory IClassFactory;
+typedef struct IClassFactory IClassFactory;
 #endif
 
 #include "wtypes.h"
@@ -95,7 +95,7 @@
       ULONG (WINAPI *Release)(IUnknown *This);
     END_INTERFACE
   } IUnknownVtbl;
-  interface IUnknown {
+  struct IUnknown {
     CONST_VTBL struct IUnknownVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -142,7 +142,7 @@
       ULONG (WINAPI *Finish_Release)(AsyncIUnknown *This);
     END_INTERFACE
   } AsyncIUnknownVtbl;
-  interface AsyncIUnknown {
+  struct AsyncIUnknown {
     CONST_VTBL struct AsyncIUnknownVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -192,7 +192,7 @@
       HRESULT (WINAPI *LockServer)(IClassFactory *This,WINBOOL fLock);
     END_INTERFACE
   } IClassFactoryVtbl;
-  interface IClassFactory {
+  struct IClassFactory {
     CONST_VTBL struct IClassFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/urlhist.h b/mingw-w64-headers/include/urlhist.h
index f59b8a1..8b936b3 100755
--- a/mingw-w64-headers/include/urlhist.h
+++ b/mingw-w64-headers/include/urlhist.h
@@ -24,22 +24,22 @@
 
 #ifndef __IEnumSTATURL_FWD_DEFINED__
 #define __IEnumSTATURL_FWD_DEFINED__
-typedef interface IEnumSTATURL IEnumSTATURL;
+typedef struct IEnumSTATURL IEnumSTATURL;
 #endif
 
 #ifndef __IUrlHistoryStg_FWD_DEFINED__
 #define __IUrlHistoryStg_FWD_DEFINED__
-typedef interface IUrlHistoryStg IUrlHistoryStg;
+typedef struct IUrlHistoryStg IUrlHistoryStg;
 #endif
 
 #ifndef __IUrlHistoryStg2_FWD_DEFINED__
 #define __IUrlHistoryStg2_FWD_DEFINED__
-typedef interface IUrlHistoryStg2 IUrlHistoryStg2;
+typedef struct IUrlHistoryStg2 IUrlHistoryStg2;
 #endif
 
 #ifndef __IUrlHistoryNotify_FWD_DEFINED__
 #define __IUrlHistoryNotify_FWD_DEFINED__
-typedef interface IUrlHistoryNotify IUrlHistoryNotify;
+typedef struct IUrlHistoryNotify IUrlHistoryNotify;
 #endif
 
 #include "objidl.h"
@@ -107,7 +107,7 @@
       HRESULT (WINAPI *SetFilter)(IEnumSTATURL *This,LPCOLESTR poszFilter,DWORD dwFlags);
     END_INTERFACE
   } IEnumSTATURLVtbl;
-  interface IEnumSTATURL {
+  struct IEnumSTATURL {
     CONST_VTBL struct IEnumSTATURLVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -165,7 +165,7 @@
       HRESULT (WINAPI *EnumUrls)(IUrlHistoryStg *This,IEnumSTATURL **ppEnum);
     END_INTERFACE
   } IUrlHistoryStgVtbl;
-  interface IUrlHistoryStg {
+  struct IUrlHistoryStg {
     CONST_VTBL struct IUrlHistoryStgVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -222,7 +222,7 @@
       HRESULT (WINAPI *ClearHistory)(IUrlHistoryStg2 *This);
     END_INTERFACE
   } IUrlHistoryStg2Vtbl;
-  interface IUrlHistoryStg2 {
+  struct IUrlHistoryStg2 {
     CONST_VTBL struct IUrlHistoryStg2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -267,7 +267,7 @@
       HRESULT (WINAPI *Exec)(IUrlHistoryNotify *This,const GUID *pguidCmdGroup,DWORD nCmdID,DWORD nCmdexecopt,VARIANT *pvaIn,VARIANT *pvaOut);
     END_INTERFACE
   } IUrlHistoryNotifyVtbl;
-  interface IUrlHistoryNotify {
+  struct IUrlHistoryNotify {
     CONST_VTBL struct IUrlHistoryNotifyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/urlmon.h b/mingw-w64-headers/include/urlmon.h
index 477e4dd..dc519ab 100755
--- a/mingw-w64-headers/include/urlmon.h
+++ b/mingw-w64-headers/include/urlmon.h
@@ -24,192 +24,192 @@
 
 #ifndef __IPersistMoniker_FWD_DEFINED__
 #define __IPersistMoniker_FWD_DEFINED__
-typedef interface IPersistMoniker IPersistMoniker;
+typedef struct IPersistMoniker IPersistMoniker;
 #endif
 
 #ifndef __IMonikerProp_FWD_DEFINED__
 #define __IMonikerProp_FWD_DEFINED__
-typedef interface IMonikerProp IMonikerProp;
+typedef struct IMonikerProp IMonikerProp;
 #endif
 
 #ifndef __IBindProtocol_FWD_DEFINED__
 #define __IBindProtocol_FWD_DEFINED__
-typedef interface IBindProtocol IBindProtocol;
+typedef struct IBindProtocol IBindProtocol;
 #endif
 
 #ifndef __IBinding_FWD_DEFINED__
 #define __IBinding_FWD_DEFINED__
-typedef interface IBinding IBinding;
+typedef struct IBinding IBinding;
 #endif
 
 #ifndef __IBindStatusCallback_FWD_DEFINED__
 #define __IBindStatusCallback_FWD_DEFINED__
-typedef interface IBindStatusCallback IBindStatusCallback;
+typedef struct IBindStatusCallback IBindStatusCallback;
 #endif
 
 #ifndef __IAuthenticate_FWD_DEFINED__
 #define __IAuthenticate_FWD_DEFINED__
-typedef interface IAuthenticate IAuthenticate;
+typedef struct IAuthenticate IAuthenticate;
 #endif
 
 #ifndef __IHttpNegotiate_FWD_DEFINED__
 #define __IHttpNegotiate_FWD_DEFINED__
-typedef interface IHttpNegotiate IHttpNegotiate;
+typedef struct IHttpNegotiate IHttpNegotiate;
 #endif
 
 #ifndef __IHttpNegotiate2_FWD_DEFINED__
 #define __IHttpNegotiate2_FWD_DEFINED__
-typedef interface IHttpNegotiate2 IHttpNegotiate2;
+typedef struct IHttpNegotiate2 IHttpNegotiate2;
 #endif
 
 #ifndef __IWinInetFileStream_FWD_DEFINED__
 #define __IWinInetFileStream_FWD_DEFINED__
-typedef interface IWinInetFileStream IWinInetFileStream;
+typedef struct IWinInetFileStream IWinInetFileStream;
 #endif
 
 #ifndef __IWindowForBindingUI_FWD_DEFINED__
 #define __IWindowForBindingUI_FWD_DEFINED__
-typedef interface IWindowForBindingUI IWindowForBindingUI;
+typedef struct IWindowForBindingUI IWindowForBindingUI;
 #endif
 
 #ifndef __ICodeInstall_FWD_DEFINED__
 #define __ICodeInstall_FWD_DEFINED__
-typedef interface ICodeInstall ICodeInstall;
+typedef struct ICodeInstall ICodeInstall;
 #endif
 
 #ifndef __IWinInetInfo_FWD_DEFINED__
 #define __IWinInetInfo_FWD_DEFINED__
-typedef interface IWinInetInfo IWinInetInfo;
+typedef struct IWinInetInfo IWinInetInfo;
 #endif
 
 #ifndef __IHttpSecurity_FWD_DEFINED__
 #define __IHttpSecurity_FWD_DEFINED__
-typedef interface IHttpSecurity IHttpSecurity;
+typedef struct IHttpSecurity IHttpSecurity;
 #endif
 
 #ifndef __IWinInetHttpInfo_FWD_DEFINED__
 #define __IWinInetHttpInfo_FWD_DEFINED__
-typedef interface IWinInetHttpInfo IWinInetHttpInfo;
+typedef struct IWinInetHttpInfo IWinInetHttpInfo;
 #endif
 
 #ifndef __IWinInetCacheHints_FWD_DEFINED__
 #define __IWinInetCacheHints_FWD_DEFINED__
-typedef interface IWinInetCacheHints IWinInetCacheHints;
+typedef struct IWinInetCacheHints IWinInetCacheHints;
 #endif
 
 #ifndef __IBindHost_FWD_DEFINED__
 #define __IBindHost_FWD_DEFINED__
-typedef interface IBindHost IBindHost;
+typedef struct IBindHost IBindHost;
 #endif
 
 #ifndef __IInternet_FWD_DEFINED__
 #define __IInternet_FWD_DEFINED__
-typedef interface IInternet IInternet;
+typedef struct IInternet IInternet;
 #endif
 
 #ifndef __IInternetBindInfo_FWD_DEFINED__
 #define __IInternetBindInfo_FWD_DEFINED__
-typedef interface IInternetBindInfo IInternetBindInfo;
+typedef struct IInternetBindInfo IInternetBindInfo;
 #endif
 
 #ifndef __IInternetProtocolRoot_FWD_DEFINED__
 #define __IInternetProtocolRoot_FWD_DEFINED__
-typedef interface IInternetProtocolRoot IInternetProtocolRoot;
+typedef struct IInternetProtocolRoot IInternetProtocolRoot;
 #endif
 
 #ifndef __IInternetProtocol_FWD_DEFINED__
 #define __IInternetProtocol_FWD_DEFINED__
-typedef interface IInternetProtocol IInternetProtocol;
+typedef struct IInternetProtocol IInternetProtocol;
 #endif
 
 #ifndef __IInternetProtocolSink_FWD_DEFINED__
 #define __IInternetProtocolSink_FWD_DEFINED__
-typedef interface IInternetProtocolSink IInternetProtocolSink;
+typedef struct IInternetProtocolSink IInternetProtocolSink;
 #endif
 
 #ifndef __IInternetProtocolSinkStackable_FWD_DEFINED__
 #define __IInternetProtocolSinkStackable_FWD_DEFINED__
-typedef interface IInternetProtocolSinkStackable IInternetProtocolSinkStackable;
+typedef struct IInternetProtocolSinkStackable IInternetProtocolSinkStackable;
 #endif
 
 #ifndef __IInternetSession_FWD_DEFINED__
 #define __IInternetSession_FWD_DEFINED__
-typedef interface IInternetSession IInternetSession;
+typedef struct IInternetSession IInternetSession;
 #endif
 
 #ifndef __IInternetThreadSwitch_FWD_DEFINED__
 #define __IInternetThreadSwitch_FWD_DEFINED__
-typedef interface IInternetThreadSwitch IInternetThreadSwitch;
+typedef struct IInternetThreadSwitch IInternetThreadSwitch;
 #endif
 
 #ifndef __IInternetPriority_FWD_DEFINED__
 #define __IInternetPriority_FWD_DEFINED__
-typedef interface IInternetPriority IInternetPriority;
+typedef struct IInternetPriority IInternetPriority;
 #endif
 
 #ifndef __IInternetProtocolInfo_FWD_DEFINED__
 #define __IInternetProtocolInfo_FWD_DEFINED__
-typedef interface IInternetProtocolInfo IInternetProtocolInfo;
+typedef struct IInternetProtocolInfo IInternetProtocolInfo;
 #endif
 
 #ifndef __IInternetSecurityMgrSite_FWD_DEFINED__
 #define __IInternetSecurityMgrSite_FWD_DEFINED__
-typedef interface IInternetSecurityMgrSite IInternetSecurityMgrSite;
+typedef struct IInternetSecurityMgrSite IInternetSecurityMgrSite;
 #endif
 
 #ifndef __IInternetSecurityManager_FWD_DEFINED__
 #define __IInternetSecurityManager_FWD_DEFINED__
-typedef interface IInternetSecurityManager IInternetSecurityManager;
+typedef struct IInternetSecurityManager IInternetSecurityManager;
 #endif
 
 #ifndef __IInternetSecurityManagerEx_FWD_DEFINED__
 #define __IInternetSecurityManagerEx_FWD_DEFINED__
-typedef interface IInternetSecurityManagerEx IInternetSecurityManagerEx;
+typedef struct IInternetSecurityManagerEx IInternetSecurityManagerEx;
 #endif
 
 #ifndef __IZoneIdentifier_FWD_DEFINED__
 #define __IZoneIdentifier_FWD_DEFINED__
-typedef interface IZoneIdentifier IZoneIdentifier;
+typedef struct IZoneIdentifier IZoneIdentifier;
 #endif
 
 #ifndef __IInternetHostSecurityManager_FWD_DEFINED__
 #define __IInternetHostSecurityManager_FWD_DEFINED__
-typedef interface IInternetHostSecurityManager IInternetHostSecurityManager;
+typedef struct IInternetHostSecurityManager IInternetHostSecurityManager;
 #endif
 
 #ifndef __IInternetZoneManager_FWD_DEFINED__
 #define __IInternetZoneManager_FWD_DEFINED__
-typedef interface IInternetZoneManager IInternetZoneManager;
+typedef struct IInternetZoneManager IInternetZoneManager;
 #endif
 
 #ifndef __IInternetZoneManagerEx_FWD_DEFINED__
 #define __IInternetZoneManagerEx_FWD_DEFINED__
-typedef interface IInternetZoneManagerEx IInternetZoneManagerEx;
+typedef struct IInternetZoneManagerEx IInternetZoneManagerEx;
 #endif
 
 #ifndef __ISoftDistExt_FWD_DEFINED__
 #define __ISoftDistExt_FWD_DEFINED__
-typedef interface ISoftDistExt ISoftDistExt;
+typedef struct ISoftDistExt ISoftDistExt;
 #endif
 
 #ifndef __ICatalogFileInfo_FWD_DEFINED__
 #define __ICatalogFileInfo_FWD_DEFINED__
-typedef interface ICatalogFileInfo ICatalogFileInfo;
+typedef struct ICatalogFileInfo ICatalogFileInfo;
 #endif
 
 #ifndef __IDataFilter_FWD_DEFINED__
 #define __IDataFilter_FWD_DEFINED__
-typedef interface IDataFilter IDataFilter;
+typedef struct IDataFilter IDataFilter;
 #endif
 
 #ifndef __IEncodingFilterFactory_FWD_DEFINED__
 #define __IEncodingFilterFactory_FWD_DEFINED__
-typedef interface IEncodingFilterFactory IEncodingFilterFactory;
+typedef struct IEncodingFilterFactory IEncodingFilterFactory;
 #endif
 
 #ifndef __IWrappedProtocol_FWD_DEFINED__
 #define __IWrappedProtocol_FWD_DEFINED__
-typedef interface IWrappedProtocol IWrappedProtocol;
+typedef struct IWrappedProtocol IWrappedProtocol;
 #endif
 
 #include "objidl.h"
@@ -416,7 +416,7 @@
       HRESULT (WINAPI *GetCurMoniker)(IPersistMoniker *This,IMoniker **ppimkName);
     END_INTERFACE
   } IPersistMonikerVtbl;
-  interface IPersistMoniker {
+  struct IPersistMoniker {
     CONST_VTBL struct IPersistMonikerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -473,7 +473,7 @@
       HRESULT (WINAPI *PutProperty)(IMonikerProp *This,MONIKERPROPERTY mkp,LPCWSTR val);
     END_INTERFACE
   } IMonikerPropVtbl;
-  interface IMonikerProp {
+  struct IMonikerProp {
     CONST_VTBL struct IMonikerPropVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -511,7 +511,7 @@
       HRESULT (WINAPI *CreateBinding)(IBindProtocol *This,LPCWSTR szUrl,IBindCtx *pbc,IBinding **ppb);
     END_INTERFACE
   } IBindProtocolVtbl;
-  interface IBindProtocol {
+  struct IBindProtocol {
     CONST_VTBL struct IBindProtocolVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -559,7 +559,7 @@
       HRESULT (WINAPI *GetBindResult)(IBinding *This,CLSID *pclsidProtocol,DWORD *pdwResult,LPOLESTR *pszResult,DWORD *pdwReserved);
     END_INTERFACE
   } IBindingVtbl;
-  interface IBinding {
+  struct IBinding {
     CONST_VTBL struct IBindingVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -740,7 +740,7 @@
       HRESULT (WINAPI *OnObjectAvailable)(IBindStatusCallback *This,REFIID riid,IUnknown *punk);
     END_INTERFACE
   } IBindStatusCallbackVtbl;
-  interface IBindStatusCallback {
+  struct IBindStatusCallback {
     CONST_VTBL struct IBindStatusCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -799,7 +799,7 @@
       HRESULT (WINAPI *Authenticate)(IAuthenticate *This,HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword);
     END_INTERFACE
   } IAuthenticateVtbl;
-  interface IAuthenticate {
+  struct IAuthenticate {
     CONST_VTBL struct IAuthenticateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -839,7 +839,7 @@
       HRESULT (WINAPI *OnResponse)(IHttpNegotiate *This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders);
     END_INTERFACE
   } IHttpNegotiateVtbl;
-  interface IHttpNegotiate {
+  struct IHttpNegotiate {
     CONST_VTBL struct IHttpNegotiateVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -882,7 +882,7 @@
       HRESULT (WINAPI *GetRootSecurityId)(IHttpNegotiate2 *This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved);
     END_INTERFACE
   } IHttpNegotiate2Vtbl;
-  interface IHttpNegotiate2 {
+  struct IHttpNegotiate2 {
     CONST_VTBL struct IHttpNegotiate2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -924,7 +924,7 @@
       HRESULT (WINAPI *SetDeleteFile)(IWinInetFileStream *This,DWORD_PTR dwReserved);
     END_INTERFACE
   } IWinInetFileStreamVtbl;
-  interface IWinInetFileStream {
+  struct IWinInetFileStream {
     CONST_VTBL struct IWinInetFileStreamVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -965,7 +965,7 @@
       HRESULT (WINAPI *GetWindow)(IWindowForBindingUI *This,REFGUID rguidReason,HWND *phwnd);
     END_INTERFACE
   } IWindowForBindingUIVtbl;
-  interface IWindowForBindingUI {
+  struct IWindowForBindingUI {
     CONST_VTBL struct IWindowForBindingUIVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1012,7 +1012,7 @@
       HRESULT (WINAPI *OnCodeInstallProblem)(ICodeInstall *This,ULONG ulStatusCode,LPCWSTR szDestination,LPCWSTR szSource,DWORD dwReserved);
     END_INTERFACE
   } ICodeInstallVtbl;
-  interface ICodeInstall {
+  struct ICodeInstall {
     CONST_VTBL struct ICodeInstallVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1051,7 +1051,7 @@
       HRESULT (WINAPI *QueryOption)(IWinInetInfo *This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf);
     END_INTERFACE
   } IWinInetInfoVtbl;
-  interface IWinInetInfo {
+  struct IWinInetInfo {
     CONST_VTBL struct IWinInetInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1092,7 +1092,7 @@
       HRESULT (WINAPI *OnSecurityProblem)(IHttpSecurity *This,DWORD dwProblem);
     END_INTERFACE
   } IHttpSecurityVtbl;
-  interface IHttpSecurity {
+  struct IHttpSecurity {
     CONST_VTBL struct IHttpSecurityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1132,7 +1132,7 @@
       HRESULT (WINAPI *QueryInfo)(IWinInetHttpInfo *This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf,DWORD *pdwFlags,DWORD *pdwReserved);
     END_INTERFACE
   } IWinInetHttpInfoVtbl;
-  interface IWinInetHttpInfo {
+  struct IWinInetHttpInfo {
     CONST_VTBL struct IWinInetHttpInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1171,7 +1171,7 @@
       HRESULT (WINAPI *SetCacheExtension)(IWinInetCacheHints *This,LPCWSTR pwzExt,LPVOID pszCacheFile,DWORD *pcbCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved);
     END_INTERFACE
   } IWinInetCacheHintsVtbl;
-  interface IWinInetCacheHints {
+  struct IWinInetCacheHints {
     CONST_VTBL struct IWinInetCacheHintsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1217,7 +1217,7 @@
       HRESULT (WINAPI *MonikerBindToObject)(IBindHost *This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj);
     END_INTERFACE
   } IBindHostVtbl;
-  interface IBindHost {
+  struct IBindHost {
     CONST_VTBL struct IBindHostVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1298,7 +1298,7 @@
       ULONG (WINAPI *Release)(IInternet *This);
     END_INTERFACE
   } IInternetVtbl;
-  interface IInternet {
+  struct IInternet {
     CONST_VTBL struct IInternetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1346,7 +1346,7 @@
       HRESULT (WINAPI *GetBindString)(IInternetBindInfo *This,ULONG ulStringType,LPOLESTR *ppwzStr,ULONG cEl,ULONG *pcElFetched);
     END_INTERFACE
   } IInternetBindInfoVtbl;
-  interface IInternetBindInfo {
+  struct IInternetBindInfo {
     CONST_VTBL struct IInternetBindInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1416,7 +1416,7 @@
       HRESULT (WINAPI *Resume)(IInternetProtocolRoot *This);
     END_INTERFACE
   } IInternetProtocolRootVtbl;
-  interface IInternetProtocolRoot {
+  struct IInternetProtocolRoot {
     CONST_VTBL struct IInternetProtocolRootVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1481,7 +1481,7 @@
       HRESULT (WINAPI *UnlockRequest)(IInternetProtocol *This);
     END_INTERFACE
   } IInternetProtocolVtbl;
-  interface IInternetProtocol {
+  struct IInternetProtocol {
     CONST_VTBL struct IInternetProtocolVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1540,7 +1540,7 @@
       HRESULT (WINAPI *ReportResult)(IInternetProtocolSink *This,HRESULT hrResult,DWORD dwError,LPCWSTR szResult);
     END_INTERFACE
   } IInternetProtocolSinkVtbl;
-  interface IInternetProtocolSink {
+  struct IInternetProtocolSink {
     CONST_VTBL struct IInternetProtocolSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1591,7 +1591,7 @@
       HRESULT (WINAPI *RollbackSwitch)(IInternetProtocolSinkStackable *This);
     END_INTERFACE
   } IInternetProtocolSinkStackableVtbl;
-  interface IInternetProtocolSinkStackable {
+  struct IInternetProtocolSinkStackable {
     CONST_VTBL struct IInternetProtocolSinkStackableVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1651,7 +1651,7 @@
       HRESULT (WINAPI *GetSessionOption)(IInternetSession *This,DWORD dwOption,LPVOID pBuffer,DWORD *pdwBufferLength,DWORD dwReserved);
     END_INTERFACE
   } IInternetSessionVtbl;
-  interface IInternetSession {
+  struct IInternetSession {
     CONST_VTBL struct IInternetSessionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1709,7 +1709,7 @@
       HRESULT (WINAPI *Continue)(IInternetThreadSwitch *This);
     END_INTERFACE
   } IInternetThreadSwitchVtbl;
-  interface IInternetThreadSwitch {
+  struct IInternetThreadSwitch {
     CONST_VTBL struct IInternetThreadSwitchVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1752,7 +1752,7 @@
       HRESULT (WINAPI *GetPriority)(IInternetPriority *This,LONG *pnPriority);
     END_INTERFACE
   } IInternetPriorityVtbl;
-  interface IInternetPriority {
+  struct IInternetPriority {
     CONST_VTBL struct IInternetPriorityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1820,7 +1820,7 @@
       HRESULT (WINAPI *QueryInfo)(IInternetProtocolInfo *This,LPCWSTR pwzUrl,QUERYOPTION OueryOption,DWORD dwQueryFlags,LPVOID pBuffer,DWORD cbBuffer,DWORD *pcbBuf,DWORD dwReserved);
     END_INTERFACE
   } IInternetProtocolInfoVtbl;
-  interface IInternetProtocolInfo {
+  struct IInternetProtocolInfo {
     CONST_VTBL struct IInternetProtocolInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1973,7 +1973,7 @@
       HRESULT (WINAPI *EnableModeless)(IInternetSecurityMgrSite *This,WINBOOL fEnable);
     END_INTERFACE
   } IInternetSecurityMgrSiteVtbl;
-  interface IInternetSecurityMgrSite {
+  struct IInternetSecurityMgrSite {
     CONST_VTBL struct IInternetSecurityMgrSiteVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2051,7 +2051,7 @@
       HRESULT (WINAPI *GetZoneMappings)(IInternetSecurityManager *This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags);
     END_INTERFACE
   } IInternetSecurityManagerVtbl;
-  interface IInternetSecurityManager {
+  struct IInternetSecurityManager {
     CONST_VTBL struct IInternetSecurityManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2111,7 +2111,7 @@
       HRESULT (WINAPI *ProcessUrlActionEx)(IInternetSecurityManagerEx *This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved,DWORD *pdwOutFlags);
     END_INTERFACE
   } IInternetSecurityManagerExVtbl;
-  interface IInternetSecurityManagerEx {
+  struct IInternetSecurityManagerEx {
     CONST_VTBL struct IInternetSecurityManagerExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2159,7 +2159,7 @@
       HRESULT (WINAPI *Remove)(IZoneIdentifier *This);
     END_INTERFACE
   } IZoneIdentifierVtbl;
-  interface IZoneIdentifier {
+  struct IZoneIdentifier {
     CONST_VTBL struct IZoneIdentifierVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2205,7 +2205,7 @@
       HRESULT (WINAPI *QueryCustomPolicy)(IInternetHostSecurityManager *This,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved);
     END_INTERFACE
   } IInternetHostSecurityManagerVtbl;
-  interface IInternetHostSecurityManager {
+  struct IInternetHostSecurityManager {
     CONST_VTBL struct IInternetHostSecurityManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2452,7 +2452,7 @@
       HRESULT (WINAPI *CopyTemplatePoliciesToZone)(IInternetZoneManager *This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved);
     END_INTERFACE
   } IInternetZoneManagerVtbl;
-  interface IInternetZoneManager {
+  struct IInternetZoneManager {
     CONST_VTBL struct IInternetZoneManagerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2535,7 +2535,7 @@
       HRESULT (WINAPI *SetZoneActionPolicyEx)(IInternetZoneManagerEx *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags);
     END_INTERFACE
   } IInternetZoneManagerExVtbl;
-  interface IInternetZoneManagerEx {
+  struct IInternetZoneManagerEx {
     CONST_VTBL struct IInternetZoneManagerExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2634,7 +2634,7 @@
       HRESULT (WINAPI *AsyncInstallDistributionUnit)(ISoftDistExt *This,IBindCtx *pbc,LPVOID pvReserved,DWORD flags,LPCODEBASEHOLD lpcbh);
     END_INTERFACE
   } ISoftDistExtVtbl;
-  interface ISoftDistExt {
+  struct ISoftDistExt {
     CONST_VTBL struct ISoftDistExtVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2686,7 +2686,7 @@
       HRESULT (WINAPI *GetJavaTrust)(ICatalogFileInfo *This,void **ppJavaTrust);
     END_INTERFACE
   } ICatalogFileInfoVtbl;
-  interface ICatalogFileInfo {
+  struct ICatalogFileInfo {
     CONST_VTBL struct ICatalogFileInfoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2731,7 +2731,7 @@
       HRESULT (WINAPI *SetEncodingLevel)(IDataFilter *This,DWORD dwEncLevel);
     END_INTERFACE
   } IDataFilterVtbl;
-  interface IDataFilter {
+  struct IDataFilter {
     CONST_VTBL struct IDataFilterVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2792,7 +2792,7 @@
       HRESULT (WINAPI *GetDefaultFilter)(IEncodingFilterFactory *This,LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,IDataFilter **ppDF);
     END_INTERFACE
   } IEncodingFilterFactoryVtbl;
-  interface IEncodingFilterFactory {
+  struct IEncodingFilterFactory {
     CONST_VTBL struct IEncodingFilterFactoryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2863,7 +2863,7 @@
       HRESULT (WINAPI *GetWrapperCode)(IWrappedProtocol *This,LONG *pnCode,DWORD_PTR dwReserved);
     END_INTERFACE
   } IWrappedProtocolVtbl;
-  interface IWrappedProtocol {
+  struct IWrappedProtocol {
     CONST_VTBL struct IWrappedProtocolVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/wabdefs.h b/mingw-w64-headers/include/wabdefs.h
index b884cdf..f7aa011 100755
--- a/mingw-w64-headers/include/wabdefs.h
+++ b/mingw-w64-headers/include/wabdefs.h
@@ -434,9 +434,9 @@
 #define DECLARE_MAPI_INTERFACE(iface) DECLARE_INTERFACE(iface)
 #define DECLARE_MAPI_INTERFACE_(iface,baseiface) DECLARE_INTERFACE_(iface,baseiface)
 #ifdef __cplusplus
-#define DECLARE_MAPI_INTERFACE_PTR(iface,piface) interface iface; typedef iface *piface
+#define DECLARE_MAPI_INTERFACE_PTR(iface,piface) struct iface; typedef iface *piface
 #else
-#define DECLARE_MAPI_INTERFACE_PTR(iface,piface) typedef interface iface iface,*piface
+#define DECLARE_MAPI_INTERFACE_PTR(iface,piface) typedef struct iface iface,*piface
 #endif
 #endif
 
diff --git a/mingw-w64-headers/include/wbemads.h b/mingw-w64-headers/include/wbemads.h
index 69a184e..5635a9f 100755
--- a/mingw-w64-headers/include/wbemads.h
+++ b/mingw-w64-headers/include/wbemads.h
@@ -24,7 +24,7 @@
 
 #ifndef __IWMIExtension_FWD_DEFINED__
 #define __IWMIExtension_FWD_DEFINED__
-typedef interface IWMIExtension IWMIExtension;
+typedef struct IWMIExtension IWMIExtension;
 #endif
 
 #ifndef __WMIExtension_FWD_DEFINED__
@@ -39,7 +39,7 @@
 
 #ifndef __IWMIExtension_FWD_DEFINED__
 #define __IWMIExtension_FWD_DEFINED__
-typedef interface IWMIExtension IWMIExtension;
+typedef struct IWMIExtension IWMIExtension;
 #endif
 
 #include "oaidl.h"
@@ -83,7 +83,7 @@
       HRESULT (WINAPI *GetWMIServices)(IWMIExtension *This,ISWbemServices **objWMIServices);
     END_INTERFACE
   } IWMIExtensionVtbl;
-  interface IWMIExtension {
+  struct IWMIExtension {
     CONST_VTBL struct IWMIExtensionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/wbemcli.h b/mingw-w64-headers/include/wbemcli.h
index a75a365..1870645 100755
--- a/mingw-w64-headers/include/wbemcli.h
+++ b/mingw-w64-headers/include/wbemcli.h
@@ -24,87 +24,87 @@
 
 #ifndef __IWbemClassObject_FWD_DEFINED__
 #define __IWbemClassObject_FWD_DEFINED__
-typedef interface IWbemClassObject IWbemClassObject;
+typedef struct IWbemClassObject IWbemClassObject;
 #endif
 
 #ifndef __IWbemObjectAccess_FWD_DEFINED__
 #define __IWbemObjectAccess_FWD_DEFINED__
-typedef interface IWbemObjectAccess IWbemObjectAccess;
+typedef struct IWbemObjectAccess IWbemObjectAccess;
 #endif
 
 #ifndef __IWbemQualifierSet_FWD_DEFINED__
 #define __IWbemQualifierSet_FWD_DEFINED__
-typedef interface IWbemQualifierSet IWbemQualifierSet;
+typedef struct IWbemQualifierSet IWbemQualifierSet;
 #endif
 
 #ifndef __IWbemServices_FWD_DEFINED__
 #define __IWbemServices_FWD_DEFINED__
-typedef interface IWbemServices IWbemServices;
+typedef struct IWbemServices IWbemServices;
 #endif
 
 #ifndef __IWbemLocator_FWD_DEFINED__
 #define __IWbemLocator_FWD_DEFINED__
-typedef interface IWbemLocator IWbemLocator;
+typedef struct IWbemLocator IWbemLocator;
 #endif
 
 #ifndef __IWbemObjectSink_FWD_DEFINED__
 #define __IWbemObjectSink_FWD_DEFINED__
-typedef interface IWbemObjectSink IWbemObjectSink;
+typedef struct IWbemObjectSink IWbemObjectSink;
 #endif
 
 #ifndef __IEnumWbemClassObject_FWD_DEFINED__
 #define __IEnumWbemClassObject_FWD_DEFINED__
-typedef interface IEnumWbemClassObject IEnumWbemClassObject;
+typedef struct IEnumWbemClassObject IEnumWbemClassObject;
 #endif
 
 #ifndef __IWbemCallResult_FWD_DEFINED__
 #define __IWbemCallResult_FWD_DEFINED__
-typedef interface IWbemCallResult IWbemCallResult;
+typedef struct IWbemCallResult IWbemCallResult;
 #endif
 
 #ifndef __IWbemContext_FWD_DEFINED__
 #define __IWbemContext_FWD_DEFINED__
-typedef interface IWbemContext IWbemContext;
+typedef struct IWbemContext IWbemContext;
 #endif
 
 #ifndef __IUnsecuredApartment_FWD_DEFINED__
 #define __IUnsecuredApartment_FWD_DEFINED__
-typedef interface IUnsecuredApartment IUnsecuredApartment;
+typedef struct IUnsecuredApartment IUnsecuredApartment;
 #endif
 
 #ifndef __IWbemUnsecuredApartment_FWD_DEFINED__
 #define __IWbemUnsecuredApartment_FWD_DEFINED__
-typedef interface IWbemUnsecuredApartment IWbemUnsecuredApartment;
+typedef struct IWbemUnsecuredApartment IWbemUnsecuredApartment;
 #endif
 
 #ifndef __IWbemStatusCodeText_FWD_DEFINED__
 #define __IWbemStatusCodeText_FWD_DEFINED__
-typedef interface IWbemStatusCodeText IWbemStatusCodeText;
+typedef struct IWbemStatusCodeText IWbemStatusCodeText;
 #endif
 
 #ifndef __IWbemBackupRestore_FWD_DEFINED__
 #define __IWbemBackupRestore_FWD_DEFINED__
-typedef interface IWbemBackupRestore IWbemBackupRestore;
+typedef struct IWbemBackupRestore IWbemBackupRestore;
 #endif
 
 #ifndef __IWbemBackupRestoreEx_FWD_DEFINED__
 #define __IWbemBackupRestoreEx_FWD_DEFINED__
-typedef interface IWbemBackupRestoreEx IWbemBackupRestoreEx;
+typedef struct IWbemBackupRestoreEx IWbemBackupRestoreEx;
 #endif
 
 #ifndef __IWbemRefresher_FWD_DEFINED__
 #define __IWbemRefresher_FWD_DEFINED__
-typedef interface IWbemRefresher IWbemRefresher;
+typedef struct IWbemRefresher IWbemRefresher;
 #endif
 
 #ifndef __IWbemHiPerfEnum_FWD_DEFINED__
 #define __IWbemHiPerfEnum_FWD_DEFINED__
-typedef interface IWbemHiPerfEnum IWbemHiPerfEnum;
+typedef struct IWbemHiPerfEnum IWbemHiPerfEnum;
 #endif
 
 #ifndef __IWbemConfigureRefresher_FWD_DEFINED__
 #define __IWbemConfigureRefresher_FWD_DEFINED__
-typedef interface IWbemConfigureRefresher IWbemConfigureRefresher;
+typedef struct IWbemConfigureRefresher IWbemConfigureRefresher;
 #endif
 
 #ifndef __WbemLocator_FWD_DEFINED__
@@ -190,102 +190,102 @@
 
 #ifndef __IWbemClassObject_FWD_DEFINED__
 #define __IWbemClassObject_FWD_DEFINED__
-typedef interface IWbemClassObject IWbemClassObject;
+typedef struct IWbemClassObject IWbemClassObject;
 #endif
 
 #ifndef __IWbemQualifierSet_FWD_DEFINED__
 #define __IWbemQualifierSet_FWD_DEFINED__
-typedef interface IWbemQualifierSet IWbemQualifierSet;
+typedef struct IWbemQualifierSet IWbemQualifierSet;
 #endif
 
 #ifndef __IWbemLocator_FWD_DEFINED__
 #define __IWbemLocator_FWD_DEFINED__
-typedef interface IWbemLocator IWbemLocator;
+typedef struct IWbemLocator IWbemLocator;
 #endif
 
 #ifndef __IWbemObjectSink_FWD_DEFINED__
 #define __IWbemObjectSink_FWD_DEFINED__
-typedef interface IWbemObjectSink IWbemObjectSink;
+typedef struct IWbemObjectSink IWbemObjectSink;
 #endif
 
 #ifndef __IEnumWbemClassObject_FWD_DEFINED__
 #define __IEnumWbemClassObject_FWD_DEFINED__
-typedef interface IEnumWbemClassObject IEnumWbemClassObject;
+typedef struct IEnumWbemClassObject IEnumWbemClassObject;
 #endif
 
 #ifndef __IWbemContext_FWD_DEFINED__
 #define __IWbemContext_FWD_DEFINED__
-typedef interface IWbemContext IWbemContext;
+typedef struct IWbemContext IWbemContext;
 #endif
 
 #ifndef __IWbemCallResult_FWD_DEFINED__
 #define __IWbemCallResult_FWD_DEFINED__
-typedef interface IWbemCallResult IWbemCallResult;
+typedef struct IWbemCallResult IWbemCallResult;
 #endif
 
 #ifndef __IWbemServices_FWD_DEFINED__
 #define __IWbemServices_FWD_DEFINED__
-typedef interface IWbemServices IWbemServices;
+typedef struct IWbemServices IWbemServices;
 #endif
 
 #ifndef __IWbemShutdown_FWD_DEFINED__
 #define __IWbemShutdown_FWD_DEFINED__
-typedef interface IWbemShutdown IWbemShutdown;
+typedef struct IWbemShutdown IWbemShutdown;
 #endif
 
 #ifndef __IWbemObjectTextSrc_FWD_DEFINED__
 #define __IWbemObjectTextSrc_FWD_DEFINED__
-typedef interface IWbemObjectTextSrc IWbemObjectTextSrc;
+typedef struct IWbemObjectTextSrc IWbemObjectTextSrc;
 #endif
 
 #ifndef __IWbemObjectAccess_FWD_DEFINED__
 #define __IWbemObjectAccess_FWD_DEFINED__
-typedef interface IWbemObjectAccess IWbemObjectAccess;
+typedef struct IWbemObjectAccess IWbemObjectAccess;
 #endif
 
 #ifndef __IMofCompiler_FWD_DEFINED__
 #define __IMofCompiler_FWD_DEFINED__
-typedef interface IMofCompiler IMofCompiler;
+typedef struct IMofCompiler IMofCompiler;
 #endif
 
 #ifndef __IUnsecuredApartment_FWD_DEFINED__
 #define __IUnsecuredApartment_FWD_DEFINED__
-typedef interface IUnsecuredApartment IUnsecuredApartment;
+typedef struct IUnsecuredApartment IUnsecuredApartment;
 #endif
 
 #ifndef __IWbemUnsecuredApartment_FWD_DEFINED__
 #define __IWbemUnsecuredApartment_FWD_DEFINED__
-typedef interface IWbemUnsecuredApartment IWbemUnsecuredApartment;
+typedef struct IWbemUnsecuredApartment IWbemUnsecuredApartment;
 #endif
 
 #ifndef __IWbemStatusCodeText_FWD_DEFINED__
 #define __IWbemStatusCodeText_FWD_DEFINED__
-typedef interface IWbemStatusCodeText IWbemStatusCodeText;
+typedef struct IWbemStatusCodeText IWbemStatusCodeText;
 #endif
 
 #ifndef __IWbemBackupRestore_FWD_DEFINED__
 #define __IWbemBackupRestore_FWD_DEFINED__
-typedef interface IWbemBackupRestore IWbemBackupRestore;
+typedef struct IWbemBackupRestore IWbemBackupRestore;
 #endif
 
 #ifndef __IWbemBackupRestoreEx_FWD_DEFINED__
 #define __IWbemBackupRestoreEx_FWD_DEFINED__
-typedef interface IWbemBackupRestoreEx IWbemBackupRestoreEx;
+typedef struct IWbemBackupRestoreEx IWbemBackupRestoreEx;
 #endif
 
 #ifndef __IWbemRefresher_FWD_DEFINED__
 #define __IWbemRefresher_FWD_DEFINED__
-typedef interface IWbemRefresher IWbemRefresher;
+typedef struct IWbemRefresher IWbemRefresher;
 #endif
 
 #ifndef __IWbemHiPerfEnum_FWD_DEFINED__
 #define __IWbemHiPerfEnum_FWD_DEFINED__
-typedef interface IWbemHiPerfEnum IWbemHiPerfEnum;
+typedef struct IWbemHiPerfEnum IWbemHiPerfEnum;
 #endif
 
 #ifndef __IWbemConfigureRefresher_FWD_DEFINED__
 #define __IWbemConfigureRefresher_FWD_DEFINED__
-typedef interface IWbemConfigureRefresher IWbemConfigureRefresher;
+typedef struct IWbemConfigureRefresher IWbemConfigureRefresher;
 #endif
 
 #ifdef __cplusplus
@@ -518,7 +518,7 @@
       HRESULT (WINAPI *GetMethodOrigin)(IWbemClassObject *This,LPCWSTR wszMethodName,BSTR *pstrClassName);
     END_INTERFACE
   } IWbemClassObjectVtbl;
-  interface IWbemClassObject {
+  struct IWbemClassObject {
     CONST_VTBL struct IWbemClassObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -660,7 +660,7 @@
       HRESULT (WINAPI *Unlock)(IWbemObjectAccess *This,long lFlags);
     END_INTERFACE
   } IWbemObjectAccessVtbl;
-  interface IWbemObjectAccess {
+  struct IWbemObjectAccess {
     CONST_VTBL struct IWbemObjectAccessVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -754,7 +754,7 @@
       HRESULT (WINAPI *EndEnumeration)(IWbemQualifierSet *This);
     END_INTERFACE
   } IWbemQualifierSetVtbl;
-  interface IWbemQualifierSet {
+  struct IWbemQualifierSet {
     CONST_VTBL struct IWbemQualifierSetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -847,7 +847,7 @@
       HRESULT (WINAPI *ExecMethodAsync)(IWbemServices *This,const BSTR strObjectPath,const BSTR strMethodName,long lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemObjectSink *pResponseHandler);
     END_INTERFACE
   } IWbemServicesVtbl;
-  interface IWbemServices {
+  struct IWbemServices {
     CONST_VTBL struct IWbemServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -944,7 +944,7 @@
       HRESULT (WINAPI *ConnectServer)(IWbemLocator *This,const BSTR strNetworkResource,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,long lSecurityFlags,const BSTR strAuthority,IWbemContext *pCtx,IWbemServices **ppNamespace);
     END_INTERFACE
   } IWbemLocatorVtbl;
-  interface IWbemLocator {
+  struct IWbemLocator {
     CONST_VTBL struct IWbemLocatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -977,7 +977,7 @@
       HRESULT (WINAPI *SetStatus)(IWbemObjectSink *This,long lFlags,HRESULT hResult,BSTR strParam,IWbemClassObject *pObjParam);
     END_INTERFACE
   } IWbemObjectSinkVtbl;
-  interface IWbemObjectSink {
+  struct IWbemObjectSink {
     CONST_VTBL struct IWbemObjectSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1019,7 +1019,7 @@
       HRESULT (WINAPI *Skip)(IEnumWbemClassObject *This,long lTimeout,ULONG nCount);
     END_INTERFACE
   } IEnumWbemClassObjectVtbl;
-  interface IEnumWbemClassObject {
+  struct IEnumWbemClassObject {
     CONST_VTBL struct IEnumWbemClassObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1068,7 +1068,7 @@
       HRESULT (WINAPI *GetCallStatus)(IWbemCallResult *This,long lTimeout,long *plStatus);
     END_INTERFACE
   } IWbemCallResultVtbl;
-  interface IWbemCallResult {
+  struct IWbemCallResult {
     CONST_VTBL struct IWbemCallResultVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1124,7 +1124,7 @@
       HRESULT (WINAPI *DeleteAll)(IWbemContext *This);
     END_INTERFACE
   } IWbemContextVtbl;
-  interface IWbemContext {
+  struct IWbemContext {
     CONST_VTBL struct IWbemContextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1179,7 +1179,7 @@
       HRESULT (WINAPI *CreateObjectStub)(IUnsecuredApartment *This,IUnknown *pObject,IUnknown **ppStub);
     END_INTERFACE
   } IUnsecuredApartmentVtbl;
-  interface IUnsecuredApartment {
+  struct IUnsecuredApartment {
     CONST_VTBL struct IUnsecuredApartmentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1211,7 +1211,7 @@
       HRESULT (WINAPI *CreateSinkStub)(IWbemUnsecuredApartment *This,IWbemObjectSink *pSink,DWORD dwFlags,LPCWSTR wszReserved,IWbemObjectSink **ppStub);
     END_INTERFACE
   } IWbemUnsecuredApartmentVtbl;
-  interface IWbemUnsecuredApartment {
+  struct IWbemUnsecuredApartment {
     CONST_VTBL struct IWbemUnsecuredApartmentVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1245,7 +1245,7 @@
       HRESULT (WINAPI *GetFacilityCodeText)(IWbemStatusCodeText *This,HRESULT hRes,LCID LocaleId,long lFlags,BSTR *MessageText);
     END_INTERFACE
   } IWbemStatusCodeTextVtbl;
-  interface IWbemStatusCodeText {
+  struct IWbemStatusCodeText {
     CONST_VTBL struct IWbemStatusCodeTextVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1281,7 +1281,7 @@
       HRESULT (WINAPI *Restore)(IWbemBackupRestore *This,LPCWSTR strRestoreFromFile,long lFlags);
     END_INTERFACE
   } IWbemBackupRestoreVtbl;
-  interface IWbemBackupRestore {
+  struct IWbemBackupRestore {
     CONST_VTBL struct IWbemBackupRestoreVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1319,7 +1319,7 @@
       HRESULT (WINAPI *Resume)(IWbemBackupRestoreEx *This);
     END_INTERFACE
   } IWbemBackupRestoreExVtbl;
-  interface IWbemBackupRestoreEx {
+  struct IWbemBackupRestoreEx {
     CONST_VTBL struct IWbemBackupRestoreExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1355,7 +1355,7 @@
       HRESULT (WINAPI *Refresh)(IWbemRefresher *This,long lFlags);
     END_INTERFACE
   } IWbemRefresherVtbl;
-  interface IWbemRefresher {
+  struct IWbemRefresher {
     CONST_VTBL struct IWbemRefresherVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1392,7 +1392,7 @@
       HRESULT (WINAPI *RemoveAll)(IWbemHiPerfEnum *This,long lFlags);
     END_INTERFACE
   } IWbemHiPerfEnumVtbl;
-  interface IWbemHiPerfEnum {
+  struct IWbemHiPerfEnum {
     CONST_VTBL struct IWbemHiPerfEnumVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1440,7 +1440,7 @@
       HRESULT (WINAPI *AddEnum)(IWbemConfigureRefresher *This,IWbemServices *pNamespace,LPCWSTR wszClassName,long lFlags,IWbemContext *pContext,IWbemHiPerfEnum **ppEnum,long *plId);
     END_INTERFACE
   } IWbemConfigureRefresherVtbl;
-  interface IWbemConfigureRefresher {
+  struct IWbemConfigureRefresher {
     CONST_VTBL struct IWbemConfigureRefresherVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1526,7 +1526,7 @@
       HRESULT (WINAPI *Shutdown)(IWbemShutdown *This,LONG uReason,ULONG uMaxMilliseconds,IWbemContext *pCtx);
     END_INTERFACE
   } IWbemShutdownVtbl;
-  interface IWbemShutdown {
+  struct IWbemShutdown {
     CONST_VTBL struct IWbemShutdownVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1567,7 +1567,7 @@
       HRESULT (WINAPI *CreateFromText)(IWbemObjectTextSrc *This,long lFlags,BSTR strText,ULONG uObjTextFormat,IWbemContext *pCtx,IWbemClassObject **pNewObj);
     END_INTERFACE
   } IWbemObjectTextSrcVtbl;
-  interface IWbemObjectTextSrc {
+  struct IWbemObjectTextSrc {
     CONST_VTBL struct IWbemObjectTextSrcVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1625,7 +1625,7 @@
       HRESULT (WINAPI *CreateBMOF)(IMofCompiler *This,LPWSTR TextFileName,LPWSTR BMOFFileName,LPWSTR ServerAndNamespace,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo);
     END_INTERFACE
   } IMofCompilerVtbl;
-  interface IMofCompiler {
+  struct IMofCompiler {
     CONST_VTBL struct IMofCompilerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/wbemdisp.h b/mingw-w64-headers/include/wbemdisp.h
index 8e71bf9..6cae4b3 100755
--- a/mingw-w64-headers/include/wbemdisp.h
+++ b/mingw-w64-headers/include/wbemdisp.h
@@ -24,127 +24,127 @@
 
 #ifndef __ISWbemServices_FWD_DEFINED__
 #define __ISWbemServices_FWD_DEFINED__
-typedef interface ISWbemServices ISWbemServices;
+typedef struct ISWbemServices ISWbemServices;
 #endif
 
 #ifndef __ISWbemLocator_FWD_DEFINED__
 #define __ISWbemLocator_FWD_DEFINED__
-typedef interface ISWbemLocator ISWbemLocator;
+typedef struct ISWbemLocator ISWbemLocator;
 #endif
 
 #ifndef __ISWbemObject_FWD_DEFINED__
 #define __ISWbemObject_FWD_DEFINED__
-typedef interface ISWbemObject ISWbemObject;
+typedef struct ISWbemObject ISWbemObject;
 #endif
 
 #ifndef __ISWbemObjectSet_FWD_DEFINED__
 #define __ISWbemObjectSet_FWD_DEFINED__
-typedef interface ISWbemObjectSet ISWbemObjectSet;
+typedef struct ISWbemObjectSet ISWbemObjectSet;
 #endif
 
 #ifndef __ISWbemNamedValue_FWD_DEFINED__
 #define __ISWbemNamedValue_FWD_DEFINED__
-typedef interface ISWbemNamedValue ISWbemNamedValue;
+typedef struct ISWbemNamedValue ISWbemNamedValue;
 #endif
 
 #ifndef __ISWbemNamedValueSet_FWD_DEFINED__
 #define __ISWbemNamedValueSet_FWD_DEFINED__
-typedef interface ISWbemNamedValueSet ISWbemNamedValueSet;
+typedef struct ISWbemNamedValueSet ISWbemNamedValueSet;
 #endif
 
 #ifndef __ISWbemQualifier_FWD_DEFINED__
 #define __ISWbemQualifier_FWD_DEFINED__
-typedef interface ISWbemQualifier ISWbemQualifier;
+typedef struct ISWbemQualifier ISWbemQualifier;
 #endif
 
 #ifndef __ISWbemQualifierSet_FWD_DEFINED__
 #define __ISWbemQualifierSet_FWD_DEFINED__
-typedef interface ISWbemQualifierSet ISWbemQualifierSet;
+typedef struct ISWbemQualifierSet ISWbemQualifierSet;
 #endif
 
 #ifndef __ISWbemProperty_FWD_DEFINED__
 #define __ISWbemProperty_FWD_DEFINED__
-typedef interface ISWbemProperty ISWbemProperty;
+typedef struct ISWbemProperty ISWbemProperty;
 #endif
 
 #ifndef __ISWbemPropertySet_FWD_DEFINED__
 #define __ISWbemPropertySet_FWD_DEFINED__
-typedef interface ISWbemPropertySet ISWbemPropertySet;
+typedef struct ISWbemPropertySet ISWbemPropertySet;
 #endif
 
 #ifndef __ISWbemMethod_FWD_DEFINED__
 #define __ISWbemMethod_FWD_DEFINED__
-typedef interface ISWbemMethod ISWbemMethod;
+typedef struct ISWbemMethod ISWbemMethod;
 #endif
 
 #ifndef __ISWbemMethodSet_FWD_DEFINED__
 #define __ISWbemMethodSet_FWD_DEFINED__
-typedef interface ISWbemMethodSet ISWbemMethodSet;
+typedef struct ISWbemMethodSet ISWbemMethodSet;
 #endif
 
 #ifndef __ISWbemEventSource_FWD_DEFINED__
 #define __ISWbemEventSource_FWD_DEFINED__
-typedef interface ISWbemEventSource ISWbemEventSource;
+typedef struct ISWbemEventSource ISWbemEventSource;
 #endif
 
 #ifndef __ISWbemObjectPath_FWD_DEFINED__
 #define __ISWbemObjectPath_FWD_DEFINED__
-typedef interface ISWbemObjectPath ISWbemObjectPath;
+typedef struct ISWbemObjectPath ISWbemObjectPath;
 #endif
 
 #ifndef __ISWbemLastError_FWD_DEFINED__
 #define __ISWbemLastError_FWD_DEFINED__
-typedef interface ISWbemLastError ISWbemLastError;
+typedef struct ISWbemLastError ISWbemLastError;
 #endif
 
 #ifndef __ISWbemSinkEvents_FWD_DEFINED__
 #define __ISWbemSinkEvents_FWD_DEFINED__
-typedef interface ISWbemSinkEvents ISWbemSinkEvents;
+typedef struct ISWbemSinkEvents ISWbemSinkEvents;
 #endif
 
 #ifndef __ISWbemSink_FWD_DEFINED__
 #define __ISWbemSink_FWD_DEFINED__
-typedef interface ISWbemSink ISWbemSink;
+typedef struct ISWbemSink ISWbemSink;
 #endif
 
 #ifndef __ISWbemSecurity_FWD_DEFINED__
 #define __ISWbemSecurity_FWD_DEFINED__
-typedef interface ISWbemSecurity ISWbemSecurity;
+typedef struct ISWbemSecurity ISWbemSecurity;
 #endif
 
 #ifndef __ISWbemPrivilege_FWD_DEFINED__
 #define __ISWbemPrivilege_FWD_DEFINED__
-typedef interface ISWbemPrivilege ISWbemPrivilege;
+typedef struct ISWbemPrivilege ISWbemPrivilege;
 #endif
 
 #ifndef __ISWbemPrivilegeSet_FWD_DEFINED__
 #define __ISWbemPrivilegeSet_FWD_DEFINED__
-typedef interface ISWbemPrivilegeSet ISWbemPrivilegeSet;
+typedef struct ISWbemPrivilegeSet ISWbemPrivilegeSet;
 #endif
 
 #ifndef __ISWbemServicesEx_FWD_DEFINED__
 #define __ISWbemServicesEx_FWD_DEFINED__
-typedef interface ISWbemServicesEx ISWbemServicesEx;
+typedef struct ISWbemServicesEx ISWbemServicesEx;
 #endif
 
 #ifndef __ISWbemObjectEx_FWD_DEFINED__
 #define __ISWbemObjectEx_FWD_DEFINED__
-typedef interface ISWbemObjectEx ISWbemObjectEx;
+typedef struct ISWbemObjectEx ISWbemObjectEx;
 #endif
 
 #ifndef __ISWbemDateTime_FWD_DEFINED__
 #define __ISWbemDateTime_FWD_DEFINED__
-typedef interface ISWbemDateTime ISWbemDateTime;
+typedef struct ISWbemDateTime ISWbemDateTime;
 #endif
 
 #ifndef __ISWbemRefresher_FWD_DEFINED__
 #define __ISWbemRefresher_FWD_DEFINED__
-typedef interface ISWbemRefresher ISWbemRefresher;
+typedef struct ISWbemRefresher ISWbemRefresher;
 #endif
 
 #ifndef __ISWbemRefreshableItem_FWD_DEFINED__
 #define __ISWbemRefreshableItem_FWD_DEFINED__
-typedef interface ISWbemRefreshableItem ISWbemRefreshableItem;
+typedef struct ISWbemRefreshableItem ISWbemRefreshableItem;
 #endif
 
 #ifndef __SWbemLocator_FWD_DEFINED__
@@ -365,127 +365,127 @@
 
 #ifndef __ISWbemLocator_FWD_DEFINED__
 #define __ISWbemLocator_FWD_DEFINED__
-typedef interface ISWbemLocator ISWbemLocator;
+typedef struct ISWbemLocator ISWbemLocator;
 #endif
 
 #ifndef __ISWbemServices_FWD_DEFINED__
 #define __ISWbemServices_FWD_DEFINED__
-typedef interface ISWbemServices ISWbemServices;
+typedef struct ISWbemServices ISWbemServices;
 #endif
 
 #ifndef __ISWbemServicesEx_FWD_DEFINED__
 #define __ISWbemServicesEx_FWD_DEFINED__
-typedef interface ISWbemServicesEx ISWbemServicesEx;
+typedef struct ISWbemServicesEx ISWbemServicesEx;
 #endif
 
 #ifndef __ISWbemObject_FWD_DEFINED__
 #define __ISWbemObject_FWD_DEFINED__
-typedef interface ISWbemObject ISWbemObject;
+typedef struct ISWbemObject ISWbemObject;
 #endif
 
 #ifndef __ISWbemObjectEx_FWD_DEFINED__
 #define __ISWbemObjectEx_FWD_DEFINED__
-typedef interface ISWbemObjectEx ISWbemObjectEx;
+typedef struct ISWbemObjectEx ISWbemObjectEx;
 #endif
 
 #ifndef __ISWbemLastError_FWD_DEFINED__
 #define __ISWbemLastError_FWD_DEFINED__
-typedef interface ISWbemLastError ISWbemLastError;
+typedef struct ISWbemLastError ISWbemLastError;
 #endif
 
 #ifndef __ISWbemObjectSet_FWD_DEFINED__
 #define __ISWbemObjectSet_FWD_DEFINED__
-typedef interface ISWbemObjectSet ISWbemObjectSet;
+typedef struct ISWbemObjectSet ISWbemObjectSet;
 #endif
 
 #ifndef __ISWbemNamedValueSet_FWD_DEFINED__
 #define __ISWbemNamedValueSet_FWD_DEFINED__
-typedef interface ISWbemNamedValueSet ISWbemNamedValueSet;
+typedef struct ISWbemNamedValueSet ISWbemNamedValueSet;
 #endif
 
 #ifndef __ISWbemNamedValue_FWD_DEFINED__
 #define __ISWbemNamedValue_FWD_DEFINED__
-typedef interface ISWbemNamedValue ISWbemNamedValue;
+typedef struct ISWbemNamedValue ISWbemNamedValue;
 #endif
 
 #ifndef __ISWbemObjectPath_FWD_DEFINED__
 #define __ISWbemObjectPath_FWD_DEFINED__
-typedef interface ISWbemObjectPath ISWbemObjectPath;
+typedef struct ISWbemObjectPath ISWbemObjectPath;
 #endif
 
 #ifndef __ISWbemProperty_FWD_DEFINED__
 #define __ISWbemProperty_FWD_DEFINED__
-typedef interface ISWbemProperty ISWbemProperty;
+typedef struct ISWbemProperty ISWbemProperty;
 #endif
 
 #ifndef __ISWbemPropertySet_FWD_DEFINED__
 #define __ISWbemPropertySet_FWD_DEFINED__
-typedef interface ISWbemPropertySet ISWbemPropertySet;
+typedef struct ISWbemPropertySet ISWbemPropertySet;
 #endif
 
 #ifndef __ISWbemQualifier_FWD_DEFINED__
 #define __ISWbemQualifier_FWD_DEFINED__
-typedef interface ISWbemQualifier ISWbemQualifier;
+typedef struct ISWbemQualifier ISWbemQualifier;
 #endif
 
 #ifndef __ISWbemQualifierSet_FWD_DEFINED__
 #define __ISWbemQualifierSet_FWD_DEFINED__
-typedef interface ISWbemQualifierSet ISWbemQualifierSet;
+typedef struct ISWbemQualifierSet ISWbemQualifierSet;
 #endif
 
 #ifndef __ISWbemMethod_FWD_DEFINED__
 #define __ISWbemMethod_FWD_DEFINED__
-typedef interface ISWbemMethod ISWbemMethod;
+typedef struct ISWbemMethod ISWbemMethod;
 #endif
 
 #ifndef __ISWbemMethodSet_FWD_DEFINED__
 #define __ISWbemMethodSet_FWD_DEFINED__
-typedef interface ISWbemMethodSet ISWbemMethodSet;
+typedef struct ISWbemMethodSet ISWbemMethodSet;
 #endif
 
 #ifndef __ISWbemSink_FWD_DEFINED__
 #define __ISWbemSink_FWD_DEFINED__
-typedef interface ISWbemSink ISWbemSink;
+typedef struct ISWbemSink ISWbemSink;
 #endif
 
 #ifndef __ISWbemSinkEvents_FWD_DEFINED__
 #define __ISWbemSinkEvents_FWD_DEFINED__
-typedef interface ISWbemSinkEvents ISWbemSinkEvents;
+typedef struct ISWbemSinkEvents ISWbemSinkEvents;
 #endif
 
 #ifndef __ISWbemEventSource_FWD_DEFINED__
 #define __ISWbemEventSource_FWD_DEFINED__
-typedef interface ISWbemEventSource ISWbemEventSource;
+typedef struct ISWbemEventSource ISWbemEventSource;
 #endif
 
 #ifndef __ISWbemSecurity_FWD_DEFINED__
 #define __ISWbemSecurity_FWD_DEFINED__
-typedef interface ISWbemSecurity ISWbemSecurity;
+typedef struct ISWbemSecurity ISWbemSecurity;
 #endif
 
 #ifndef __ISWbemPrivilege_FWD_DEFINED__
 #define __ISWbemPrivilege_FWD_DEFINED__
-typedef interface ISWbemPrivilege ISWbemPrivilege;
+typedef struct ISWbemPrivilege ISWbemPrivilege;
 #endif
 
 #ifndef __ISWbemPrivilegeSet_FWD_DEFINED__
 #define __ISWbemPrivilegeSet_FWD_DEFINED__
-typedef interface ISWbemPrivilegeSet ISWbemPrivilegeSet;
+typedef struct ISWbemPrivilegeSet ISWbemPrivilegeSet;
 #endif
 
 #ifndef __ISWbemDateTime_FWD_DEFINED__
 #define __ISWbemDateTime_FWD_DEFINED__
-typedef interface ISWbemDateTime ISWbemDateTime;
+typedef struct ISWbemDateTime ISWbemDateTime;
 #endif
 
 #ifndef __ISWbemRefreshableItem_FWD_DEFINED__
 #define __ISWbemRefreshableItem_FWD_DEFINED__
-typedef interface ISWbemRefreshableItem ISWbemRefreshableItem;
+typedef struct ISWbemRefreshableItem ISWbemRefreshableItem;
 #endif
 
 #ifndef __ISWbemRefresher_FWD_DEFINED__
 #define __ISWbemRefresher_FWD_DEFINED__
-typedef interface ISWbemRefresher ISWbemRefresher;
+typedef struct ISWbemRefresher ISWbemRefresher;
 #endif
 
 #include "dispex.h"
@@ -662,7 +662,7 @@
       HRESULT (WINAPI *get_Security_)(ISWbemServices *This,ISWbemSecurity **objWbemSecurity);
     END_INTERFACE
   } ISWbemServicesVtbl;
-  interface ISWbemServices {
+  struct ISWbemServices {
     CONST_VTBL struct ISWbemServicesVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -757,7 +757,7 @@
       HRESULT (WINAPI *get_Security_)(ISWbemLocator *This,ISWbemSecurity **objWbemSecurity);
     END_INTERFACE
   } ISWbemLocatorVtbl;
-  interface ISWbemLocator {
+  struct ISWbemLocator {
     CONST_VTBL struct ISWbemLocatorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -849,7 +849,7 @@
       HRESULT (WINAPI *get_Security_)(ISWbemObject *This,ISWbemSecurity **objWbemSecurity);
     END_INTERFACE
   } ISWbemObjectVtbl;
-  interface ISWbemObject {
+  struct ISWbemObject {
     CONST_VTBL struct ISWbemObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -966,7 +966,7 @@
       HRESULT (WINAPI *get_Security_)(ISWbemObjectSet *This,ISWbemSecurity **objWbemSecurity);
     END_INTERFACE
   } ISWbemObjectSetVtbl;
-  interface ISWbemObjectSet {
+  struct ISWbemObjectSet {
     CONST_VTBL struct ISWbemObjectSetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1018,7 +1018,7 @@
       HRESULT (WINAPI *get_Name)(ISWbemNamedValue *This,BSTR *strName);
     END_INTERFACE
   } ISWbemNamedValueVtbl;
-  interface ISWbemNamedValue {
+  struct ISWbemNamedValue {
     CONST_VTBL struct ISWbemNamedValueVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1075,7 +1075,7 @@
       HRESULT (WINAPI *DeleteAll)(ISWbemNamedValueSet *This);
     END_INTERFACE
   } ISWbemNamedValueSetVtbl;
-  interface ISWbemNamedValueSet {
+  struct ISWbemNamedValueSet {
     CONST_VTBL struct ISWbemNamedValueSetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1152,7 +1152,7 @@
       HRESULT (WINAPI *get_IsAmended)(ISWbemQualifier *This,VARIANT_BOOL *bIsAmended);
     END_INTERFACE
   } ISWbemQualifierVtbl;
-  interface ISWbemQualifier {
+  struct ISWbemQualifier {
     CONST_VTBL struct ISWbemQualifierVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1229,7 +1229,7 @@
       HRESULT (WINAPI *Remove)(ISWbemQualifierSet *This,BSTR strName,long iFlags);
     END_INTERFACE
   } ISWbemQualifierSetVtbl;
-  interface ISWbemQualifierSet {
+  struct ISWbemQualifierSet {
     CONST_VTBL struct ISWbemQualifierSetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1294,7 +1294,7 @@
       HRESULT (WINAPI *get_IsArray)(ISWbemProperty *This,VARIANT_BOOL *bIsArray);
     END_INTERFACE
   } ISWbemPropertyVtbl;
-  interface ISWbemProperty {
+  struct ISWbemProperty {
     CONST_VTBL struct ISWbemPropertyVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1362,7 +1362,7 @@
       HRESULT (WINAPI *Remove)(ISWbemPropertySet *This,BSTR strName,long iFlags);
     END_INTERFACE
   } ISWbemPropertySetVtbl;
-  interface ISWbemPropertySet {
+  struct ISWbemPropertySet {
     CONST_VTBL struct ISWbemPropertySetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1421,7 +1421,7 @@
       HRESULT (WINAPI *get_Qualifiers_)(ISWbemMethod *This,ISWbemQualifierSet **objWbemQualifierSet);
     END_INTERFACE
   } ISWbemMethodVtbl;
-  interface ISWbemMethod {
+  struct ISWbemMethod {
     CONST_VTBL struct ISWbemMethodVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1476,7 +1476,7 @@
       HRESULT (WINAPI *get_Count)(ISWbemMethodSet *This,long *iCount);
     END_INTERFACE
   } ISWbemMethodSetVtbl;
-  interface ISWbemMethodSet {
+  struct ISWbemMethodSet {
     CONST_VTBL struct ISWbemMethodSetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1523,7 +1523,7 @@
       HRESULT (WINAPI *get_Security_)(ISWbemEventSource *This,ISWbemSecurity **objWbemSecurity);
     END_INTERFACE
   } ISWbemEventSourceVtbl;
-  interface ISWbemEventSource {
+  struct ISWbemEventSource {
     CONST_VTBL struct ISWbemEventSourceVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1609,7 +1609,7 @@
       HRESULT (WINAPI *put_Authority)(ISWbemObjectPath *This,BSTR strAuthority);
     END_INTERFACE
   } ISWbemObjectPathVtbl;
-  interface ISWbemObjectPath {
+  struct ISWbemObjectPath {
     CONST_VTBL struct ISWbemObjectPathVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1736,7 +1736,7 @@
       HRESULT (WINAPI *get_Security_)(ISWbemLastError *This,ISWbemSecurity **objWbemSecurity);
     END_INTERFACE
   } ISWbemLastErrorVtbl;
-  interface ISWbemLastError {
+  struct ISWbemLastError {
     CONST_VTBL struct ISWbemLastErrorVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1794,7 +1794,7 @@
       HRESULT (WINAPI *Invoke)(ISWbemSinkEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
     END_INTERFACE
   } ISWbemSinkEventsVtbl;
-  interface ISWbemSinkEvents {
+  struct ISWbemSinkEvents {
     CONST_VTBL struct ISWbemSinkEventsVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1830,7 +1830,7 @@
       HRESULT (WINAPI *Cancel)(ISWbemSink *This);
     END_INTERFACE
   } ISWbemSinkVtbl;
-  interface ISWbemSink {
+  struct ISWbemSink {
     CONST_VTBL struct ISWbemSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1877,7 +1877,7 @@
       HRESULT (WINAPI *get_Privileges)(ISWbemSecurity *This,ISWbemPrivilegeSet **objWbemPrivilegeSet);
     END_INTERFACE
   } ISWbemSecurityVtbl;
-  interface ISWbemSecurity {
+  struct ISWbemSecurity {
     CONST_VTBL struct ISWbemSecurityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1936,7 +1936,7 @@
       HRESULT (WINAPI *get_Identifier)(ISWbemPrivilege *This,WbemPrivilegeEnum *iPrivilege);
     END_INTERFACE
   } ISWbemPrivilegeVtbl;
-  interface ISWbemPrivilege {
+  struct ISWbemPrivilege {
     CONST_VTBL struct ISWbemPrivilegeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1999,7 +1999,7 @@
       HRESULT (WINAPI *AddAsString)(ISWbemPrivilegeSet *This,BSTR strPrivilege,VARIANT_BOOL bIsEnabled,ISWbemPrivilege **objWbemPrivilege);
     END_INTERFACE
   } ISWbemPrivilegeSetVtbl;
-  interface ISWbemPrivilegeSet {
+  struct ISWbemPrivilegeSet {
     CONST_VTBL struct ISWbemPrivilegeSetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2077,7 +2077,7 @@
       HRESULT (WINAPI *PutAsync)(ISWbemServicesEx *This,ISWbemSink *objWbemSink,ISWbemObjectEx *objWbemObject,long iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
     END_INTERFACE
   } ISWbemServicesExVtbl;
-  interface ISWbemServicesEx {
+  struct ISWbemServicesEx {
     CONST_VTBL struct ISWbemServicesExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2169,7 +2169,7 @@
       HRESULT (WINAPI *SetFromText_)(ISWbemObjectEx *This,BSTR bsText,WbemObjectTextFormatEnum iObjectTextFormat,long iFlags,IDispatch *objWbemNamedValueSet);
     END_INTERFACE
   } ISWbemObjectExVtbl;
-  interface ISWbemObjectEx {
+  struct ISWbemObjectEx {
     CONST_VTBL struct ISWbemObjectExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2320,7 +2320,7 @@
       HRESULT (WINAPI *SetFileTime)(ISWbemDateTime *This,BSTR strFileTime,VARIANT_BOOL bIsLocal);
     END_INTERFACE
   } ISWbemDateTimeVtbl;
-  interface ISWbemDateTime {
+  struct ISWbemDateTime {
     CONST_VTBL struct ISWbemDateTimeVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2494,7 +2494,7 @@
       HRESULT (WINAPI *DeleteAll)(ISWbemRefresher *This);
     END_INTERFACE
   } ISWbemRefresherVtbl;
-  interface ISWbemRefresher {
+  struct ISWbemRefresher {
     CONST_VTBL struct ISWbemRefresherVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -2570,7 +2570,7 @@
       HRESULT (WINAPI *Remove)(ISWbemRefreshableItem *This,long iFlags);
     END_INTERFACE
   } ISWbemRefreshableItemVtbl;
-  interface ISWbemRefreshableItem {
+  struct ISWbemRefreshableItem {
     CONST_VTBL struct ISWbemRefreshableItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/wbemprov.h b/mingw-w64-headers/include/wbemprov.h
index 91e296e..0a3a124 100755
--- a/mingw-w64-headers/include/wbemprov.h
+++ b/mingw-w64-headers/include/wbemprov.h
@@ -24,52 +24,52 @@
 
 #ifndef __IWbemPropertyProvider_FWD_DEFINED__
 #define __IWbemPropertyProvider_FWD_DEFINED__
-typedef interface IWbemPropertyProvider IWbemPropertyProvider;
+typedef struct IWbemPropertyProvider IWbemPropertyProvider;
 #endif
 
 #ifndef __IWbemUnboundObjectSink_FWD_DEFINED__
 #define __IWbemUnboundObjectSink_FWD_DEFINED__
-typedef interface IWbemUnboundObjectSink IWbemUnboundObjectSink;
+typedef struct IWbemUnboundObjectSink IWbemUnboundObjectSink;
 #endif
 
 #ifndef __IWbemEventProvider_FWD_DEFINED__
 #define __IWbemEventProvider_FWD_DEFINED__
-typedef interface IWbemEventProvider IWbemEventProvider;
+typedef struct IWbemEventProvider IWbemEventProvider;
 #endif
 
 #ifndef __IWbemEventProviderQuerySink_FWD_DEFINED__
 #define __IWbemEventProviderQuerySink_FWD_DEFINED__
-typedef interface IWbemEventProviderQuerySink IWbemEventProviderQuerySink;
+typedef struct IWbemEventProviderQuerySink IWbemEventProviderQuerySink;
 #endif
 
 #ifndef __IWbemEventProviderSecurity_FWD_DEFINED__
 #define __IWbemEventProviderSecurity_FWD_DEFINED__
-typedef interface IWbemEventProviderSecurity IWbemEventProviderSecurity;
+typedef struct IWbemEventProviderSecurity IWbemEventProviderSecurity;
 #endif
 
 #ifndef __IWbemEventConsumerProvider_FWD_DEFINED__
 #define __IWbemEventConsumerProvider_FWD_DEFINED__
-typedef interface IWbemEventConsumerProvider IWbemEventConsumerProvider;
+typedef struct IWbemEventConsumerProvider IWbemEventConsumerProvider;
 #endif
 
 #ifndef __IWbemProviderInitSink_FWD_DEFINED__
 #define __IWbemProviderInitSink_FWD_DEFINED__
-typedef interface IWbemProviderInitSink IWbemProviderInitSink;
+typedef struct IWbemProviderInitSink IWbemProviderInitSink;
 #endif
 
 #ifndef __IWbemProviderInit_FWD_DEFINED__
 #define __IWbemProviderInit_FWD_DEFINED__
-typedef interface IWbemProviderInit IWbemProviderInit;
+typedef struct IWbemProviderInit IWbemProviderInit;
 #endif
 
 #ifndef __IWbemHiPerfProvider_FWD_DEFINED__
 #define __IWbemHiPerfProvider_FWD_DEFINED__
-typedef interface IWbemHiPerfProvider IWbemHiPerfProvider;
+typedef struct IWbemHiPerfProvider IWbemHiPerfProvider;
 #endif
 
 #ifndef __IWbemDecoupledRegistrar_FWD_DEFINED__
 #define __IWbemDecoupledRegistrar_FWD_DEFINED__
-typedef interface IWbemDecoupledRegistrar IWbemDecoupledRegistrar;
+typedef struct IWbemDecoupledRegistrar IWbemDecoupledRegistrar;
 #endif
 
 #ifndef __WbemAdministrativeLocator_FWD_DEFINED__
@@ -119,67 +119,67 @@
 
 #ifndef __IWbemUnboundObjectSink_FWD_DEFINED__
 #define __IWbemUnboundObjectSink_FWD_DEFINED__
-typedef interface IWbemUnboundObjectSink IWbemUnboundObjectSink;
+typedef struct IWbemUnboundObjectSink IWbemUnboundObjectSink;
 #endif
 
 #ifndef __IWbemPropertyProvider_FWD_DEFINED__
 #define __IWbemPropertyProvider_FWD_DEFINED__
-typedef interface IWbemPropertyProvider IWbemPropertyProvider;
+typedef struct IWbemPropertyProvider IWbemPropertyProvider;
 #endif
 
 #ifndef __IWbemEventProvider_FWD_DEFINED__
 #define __IWbemEventProvider_FWD_DEFINED__
-typedef interface IWbemEventProvider IWbemEventProvider;
+typedef struct IWbemEventProvider IWbemEventProvider;
 #endif
 
 #ifndef __IWbemEventProviderQuerySink_FWD_DEFINED__
 #define __IWbemEventProviderQuerySink_FWD_DEFINED__
-typedef interface IWbemEventProviderQuerySink IWbemEventProviderQuerySink;
+typedef struct IWbemEventProviderQuerySink IWbemEventProviderQuerySink;
 #endif
 
 #ifndef __IWbemEventProviderSecurity_FWD_DEFINED__
 #define __IWbemEventProviderSecurity_FWD_DEFINED__
-typedef interface IWbemEventProviderSecurity IWbemEventProviderSecurity;
+typedef struct IWbemEventProviderSecurity IWbemEventProviderSecurity;
 #endif
 
 #ifndef __IWbemProviderIdentity_FWD_DEFINED__
 #define __IWbemProviderIdentity_FWD_DEFINED__
-typedef interface IWbemProviderIdentity IWbemProviderIdentity;
+typedef struct IWbemProviderIdentity IWbemProviderIdentity;
 #endif
 
 #ifndef __IWbemEventConsumerProvider_FWD_DEFINED__
 #define __IWbemEventConsumerProvider_FWD_DEFINED__
-typedef interface IWbemEventConsumerProvider IWbemEventConsumerProvider;
+typedef struct IWbemEventConsumerProvider IWbemEventConsumerProvider;
 #endif
 
 #ifndef __IWbemProviderInitSink_FWD_DEFINED__
 #define __IWbemProviderInitSink_FWD_DEFINED__
-typedef interface IWbemProviderInitSink IWbemProviderInitSink;
+typedef struct IWbemProviderInitSink IWbemProviderInitSink;
 #endif
 
 #ifndef __IWbemProviderInit_FWD_DEFINED__
 #define __IWbemProviderInit_FWD_DEFINED__
-typedef interface IWbemProviderInit IWbemProviderInit;
+typedef struct IWbemProviderInit IWbemProviderInit;
 #endif
 
 #ifndef __IWbemHiPerfProvider_FWD_DEFINED__
 #define __IWbemHiPerfProvider_FWD_DEFINED__
-typedef interface IWbemHiPerfProvider IWbemHiPerfProvider;
+typedef struct IWbemHiPerfProvider IWbemHiPerfProvider;
 #endif
 
 #ifndef __IWbemDecoupledRegistrar_FWD_DEFINED__
 #define __IWbemDecoupledRegistrar_FWD_DEFINED__
-typedef interface IWbemDecoupledRegistrar IWbemDecoupledRegistrar;
+typedef struct IWbemDecoupledRegistrar IWbemDecoupledRegistrar;
 #endif
 
 #ifndef __IWbemDecoupledBasicEventProvider_FWD_DEFINED__
 #define __IWbemDecoupledBasicEventProvider_FWD_DEFINED__
-typedef interface IWbemDecoupledBasicEventProvider IWbemDecoupledBasicEventProvider;
+typedef struct IWbemDecoupledBasicEventProvider IWbemDecoupledBasicEventProvider;
 #endif
 
 #ifndef __IWbemEventSink_FWD_DEFINED__
 #define __IWbemEventSink_FWD_DEFINED__
-typedef interface IWbemEventSink IWbemEventSink;
+typedef struct IWbemEventSink IWbemEventSink;
 #endif
 
 #include "objidl.h"
@@ -226,7 +226,7 @@
       HRESULT (WINAPI *PutProperty)(IWbemPropertyProvider *This,long lFlags,const BSTR strLocale,const BSTR strClassMapping,const BSTR strInstMapping,const BSTR strPropMapping,const VARIANT *pvValue);
     END_INTERFACE
   } IWbemPropertyProviderVtbl;
-  interface IWbemPropertyProvider {
+  struct IWbemPropertyProvider {
     CONST_VTBL struct IWbemPropertyProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -260,7 +260,7 @@
       HRESULT (WINAPI *IndicateToConsumer)(IWbemUnboundObjectSink *This,IWbemClassObject *pLogicalConsumer,long lNumObjects,IWbemClassObject **apObjects);
     END_INTERFACE
   } IWbemUnboundObjectSinkVtbl;
-  interface IWbemUnboundObjectSink {
+  struct IWbemUnboundObjectSink {
     CONST_VTBL struct IWbemUnboundObjectSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -291,7 +291,7 @@
       HRESULT (WINAPI *ProvideEvents)(IWbemEventProvider *This,IWbemObjectSink *pSink,long lFlags);
     END_INTERFACE
   } IWbemEventProviderVtbl;
-  interface IWbemEventProvider {
+  struct IWbemEventProvider {
     CONST_VTBL struct IWbemEventProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -324,7 +324,7 @@
       HRESULT (WINAPI *CancelQuery)(IWbemEventProviderQuerySink *This,unsigned long dwId);
     END_INTERFACE
   } IWbemEventProviderQuerySinkVtbl;
-  interface IWbemEventProviderQuerySink {
+  struct IWbemEventProviderQuerySink {
     CONST_VTBL struct IWbemEventProviderQuerySinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -358,7 +358,7 @@
       HRESULT (WINAPI *AccessCheck)(IWbemEventProviderSecurity *This,WBEM_CWSTR wszQueryLanguage,WBEM_CWSTR wszQuery,long lSidLength,const BYTE *pSid);
     END_INTERFACE
   } IWbemEventProviderSecurityVtbl;
-  interface IWbemEventProviderSecurity {
+  struct IWbemEventProviderSecurity {
     CONST_VTBL struct IWbemEventProviderSecurityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -389,7 +389,7 @@
       HRESULT (WINAPI *FindConsumer)(IWbemEventConsumerProvider *This,IWbemClassObject *pLogicalConsumer,IWbemUnboundObjectSink **ppConsumer);
     END_INTERFACE
   } IWbemEventConsumerProviderVtbl;
-  interface IWbemEventConsumerProvider {
+  struct IWbemEventConsumerProvider {
     CONST_VTBL struct IWbemEventConsumerProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -420,7 +420,7 @@
       HRESULT (WINAPI *SetStatus)(IWbemProviderInitSink *This,LONG lStatus,LONG lFlags);
     END_INTERFACE
   } IWbemProviderInitSinkVtbl;
-  interface IWbemProviderInitSink {
+  struct IWbemProviderInitSink {
     CONST_VTBL struct IWbemProviderInitSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -451,7 +451,7 @@
       HRESULT (WINAPI *Initialize)(IWbemProviderInit *This,LPWSTR wszUser,LONG lFlags,LPWSTR wszNamespace,LPWSTR wszLocale,IWbemServices *pNamespace,IWbemContext *pCtx,IWbemProviderInitSink *pInitSink);
     END_INTERFACE
   } IWbemProviderInitVtbl;
-  interface IWbemProviderInit {
+  struct IWbemProviderInit {
     CONST_VTBL struct IWbemProviderInitVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -492,7 +492,7 @@
       HRESULT (WINAPI *GetObjects)(IWbemHiPerfProvider *This,IWbemServices *pNamespace,long lNumObjects,IWbemObjectAccess **apObj,long lFlags,IWbemContext *pContext);
     END_INTERFACE
   } IWbemHiPerfProviderVtbl;
-  interface IWbemHiPerfProvider {
+  struct IWbemHiPerfProvider {
     CONST_VTBL struct IWbemHiPerfProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -540,7 +540,7 @@
       HRESULT (WINAPI *UnRegister)(IWbemDecoupledRegistrar *This);
     END_INTERFACE
   } IWbemDecoupledRegistrarVtbl;
-  interface IWbemDecoupledRegistrar {
+  struct IWbemDecoupledRegistrar {
     CONST_VTBL struct IWbemDecoupledRegistrarVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -596,7 +596,7 @@
       HRESULT (WINAPI *SetRegistrationObject)(IWbemProviderIdentity *This,long lFlags,IWbemClassObject *pProvReg);
     END_INTERFACE
   } IWbemProviderIdentityVtbl;
-  interface IWbemProviderIdentity {
+  struct IWbemProviderIdentity {
     CONST_VTBL struct IWbemProviderIdentityVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -642,7 +642,7 @@
       HRESULT (WINAPI *GetService)(IWbemDecoupledBasicEventProvider *This,long a_Flags,IWbemContext *a_Context,IWbemServices **a_Service);
     END_INTERFACE
   } IWbemDecoupledBasicEventProviderVtbl;
-  interface IWbemDecoupledBasicEventProvider {
+  struct IWbemDecoupledBasicEventProvider {
     CONST_VTBL struct IWbemDecoupledBasicEventProviderVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -692,7 +692,7 @@
       HRESULT (WINAPI *SetBatchingParameters)(IWbemEventSink *This,LONG lFlags,DWORD dwMaxBufferSize,DWORD dwMaxSendLatency);
     END_INTERFACE
   } IWbemEventSinkVtbl;
-  interface IWbemEventSink {
+  struct IWbemEventSink {
     CONST_VTBL struct IWbemEventSinkVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/wbemtran.h b/mingw-w64-headers/include/wbemtran.h
index ae654cb..df1f346 100755
--- a/mingw-w64-headers/include/wbemtran.h
+++ b/mingw-w64-headers/include/wbemtran.h
@@ -24,22 +24,22 @@
 
 #ifndef __IWbemTransport_FWD_DEFINED__
 #define __IWbemTransport_FWD_DEFINED__
-typedef interface IWbemTransport IWbemTransport;
+typedef struct IWbemTransport IWbemTransport;
 #endif
 
 #ifndef __IWbemLevel1Login_FWD_DEFINED__
 #define __IWbemLevel1Login_FWD_DEFINED__
-typedef interface IWbemLevel1Login IWbemLevel1Login;
+typedef struct IWbemLevel1Login IWbemLevel1Login;
 #endif
 
 #ifndef __IWbemConnectorLogin_FWD_DEFINED__
 #define __IWbemConnectorLogin_FWD_DEFINED__
-typedef interface IWbemConnectorLogin IWbemConnectorLogin;
+typedef struct IWbemConnectorLogin IWbemConnectorLogin;
 #endif
 
 #ifndef __IWbemAddressResolution_FWD_DEFINED__
 #define __IWbemAddressResolution_FWD_DEFINED__
-typedef interface IWbemAddressResolution IWbemAddressResolution;
+typedef struct IWbemAddressResolution IWbemAddressResolution;
 #endif
 
 #ifndef __WbemLevel1Login_FWD_DEFINED__
@@ -71,12 +71,12 @@
 
 #ifndef __IWbemClientTransport_FWD_DEFINED__
 #define __IWbemClientTransport_FWD_DEFINED__
-typedef interface IWbemClientTransport IWbemClientTransport;
+typedef struct IWbemClientTransport IWbemClientTransport;
 #endif
 
 #ifndef __IWbemClientConnectionTransport_FWD_DEFINED__
 #define __IWbemClientConnectionTransport_FWD_DEFINED__
-typedef interface IWbemClientConnectionTransport IWbemClientConnectionTransport;
+typedef struct IWbemClientConnectionTransport IWbemClientConnectionTransport;
 #endif
 
 #ifndef __WbemDCOMTransport_FWD_DEFINED__
@@ -90,37 +90,37 @@
 
 #ifndef __IWbemLevel1Login_FWD_DEFINED__
 #define __IWbemLevel1Login_FWD_DEFINED__
-typedef interface IWbemLevel1Login IWbemLevel1Login;
+typedef struct IWbemLevel1Login IWbemLevel1Login;
 #endif
 
 #ifndef __IWbemConnectorLogin_FWD_DEFINED__
 #define __IWbemConnectorLogin_FWD_DEFINED__
-typedef interface IWbemConnectorLogin IWbemConnectorLogin;
+typedef struct IWbemConnectorLogin IWbemConnectorLogin;
 #endif
 
 #ifndef __IWbemAddressResolution_FWD_DEFINED__
 #define __IWbemAddressResolution_FWD_DEFINED__
-typedef interface IWbemAddressResolution IWbemAddressResolution;
+typedef struct IWbemAddressResolution IWbemAddressResolution;
 #endif
 
 #ifndef __IWbemTransport_FWD_DEFINED__
 #define __IWbemTransport_FWD_DEFINED__
-typedef interface IWbemTransport IWbemTransport;
+typedef struct IWbemTransport IWbemTransport;
 #endif
 
 #ifndef __IWbemConstructClassObject_FWD_DEFINED__
 #define __IWbemConstructClassObject_FWD_DEFINED__
-typedef interface IWbemConstructClassObject IWbemConstructClassObject;
+typedef struct IWbemConstructClassObject IWbemConstructClassObject;
 #endif
 
 #ifndef __IWbemClientTransport_FWD_DEFINED__
 #define __IWbemClientTransport_FWD_DEFINED__
-typedef interface IWbemClientTransport IWbemClientTransport;
+typedef struct IWbemClientTransport IWbemClientTransport;
 #endif
 
 #ifndef __IWbemClientConnectionTransport_FWD_DEFINED__
 #define __IWbemClientConnectionTransport_FWD_DEFINED__
-typedef interface IWbemClientConnectionTransport IWbemClientConnectionTransport;
+typedef struct IWbemClientConnectionTransport IWbemClientConnectionTransport;
 #endif
 
 #include "objidl.h"
@@ -165,7 +165,7 @@
       HRESULT (WINAPI *Initialize)(IWbemTransport *This);
     END_INTERFACE
   } IWbemTransportVtbl;
-  interface IWbemTransport {
+  struct IWbemTransport {
     CONST_VTBL struct IWbemTransportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -202,7 +202,7 @@
       HRESULT (WINAPI *NTLMLogin)(IWbemLevel1Login *This,LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,long lFlags,IWbemContext *pCtx,IWbemServices **ppNamespace);
     END_INTERFACE
   } IWbemLevel1LoginVtbl;
-  interface IWbemLevel1Login {
+  struct IWbemLevel1Login {
     CONST_VTBL struct IWbemLevel1LoginVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -242,7 +242,7 @@
       HRESULT (WINAPI *ConnectorLogin)(IWbemConnectorLogin *This,LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,long lFlags,IWbemContext *pCtx,REFIID riid,void **pInterface);
     END_INTERFACE
   } IWbemConnectorLoginVtbl;
-  interface IWbemConnectorLogin {
+  struct IWbemConnectorLogin {
     CONST_VTBL struct IWbemConnectorLoginVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -273,7 +273,7 @@
       HRESULT (WINAPI *Resolve)(IWbemAddressResolution *This,LPWSTR wszNamespacePath,LPWSTR wszAddressType,DWORD *pdwAddressLength,BYTE **pabBinaryAddress);
     END_INTERFACE
   } IWbemAddressResolutionVtbl;
-  interface IWbemAddressResolution {
+  struct IWbemAddressResolution {
     CONST_VTBL struct IWbemAddressResolutionVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -317,7 +317,7 @@
       HRESULT (WINAPI *ConnectServer)(IWbemClientTransport *This,BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,BSTR strNetworkResource,BSTR strUser,BSTR strPassword,BSTR strLocale,long lSecurityFlags,BSTR strAuthority,IWbemContext *pCtx,IWbemServices **ppNamespace);
     END_INTERFACE
   } IWbemClientTransportVtbl;
-  interface IWbemClientTransport {
+  struct IWbemClientTransport {
     CONST_VTBL struct IWbemClientTransportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -352,7 +352,7 @@
       HRESULT (WINAPI *Cancel)(IWbemClientConnectionTransport *This,long lFlags,IWbemObjectSink *pHandler);
     END_INTERFACE
   } IWbemClientConnectionTransportVtbl;
-  interface IWbemClientConnectionTransport {
+  struct IWbemClientConnectionTransport {
     CONST_VTBL struct IWbemClientConnectionTransportVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -401,7 +401,7 @@
       HRESULT (WINAPI *SetServerNamespace)(IWbemConstructClassObject *This,LPCWSTR wszServer,LPCWSTR wszNamespace);
     END_INTERFACE
   } IWbemConstructClassObjectVtbl;
-  interface IWbemConstructClassObject {
+  struct IWbemConstructClassObject {
     CONST_VTBL struct IWbemConstructClassObjectVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/wchar.h b/mingw-w64-headers/include/wchar.h
index 92066e8..2769fb9 100755
--- a/mingw-w64-headers/include/wchar.h
+++ b/mingw-w64-headers/include/wchar.h
@@ -253,10 +253,10 @@
   _CRTIMP wchar_t *__cdecl _wmktemp(wchar_t *_TemplateName);
 #if _INTEGRAL_MAX_BITS >= 64
   _CRTIMP intptr_t __cdecl _wfindfirst32i64(const wchar_t *_Filename,struct _wfinddata32i64_t *_FindData);
-  _CRTIMP intptr_t __cdecl _wfindfirst64i32(const wchar_t *_Filename,struct _wfinddata64i32_t *_FindData);
+  intptr_t __cdecl _wfindfirst64i32(const wchar_t *_Filename,struct _wfinddata64i32_t *_FindData);
   _CRTIMP intptr_t __cdecl _wfindfirst64(const wchar_t *_Filename,struct _wfinddata64_t *_FindData);
   _CRTIMP int __cdecl _wfindnext32i64(intptr_t _FindHandle,struct _wfinddata32i64_t *_FindData);
-  _CRTIMP int __cdecl _wfindnext64i32(intptr_t _FindHandle,struct _wfinddata64i32_t *_FindData);
+  int __cdecl _wfindnext64i32(intptr_t _FindHandle,struct _wfinddata64i32_t *_FindData);
   _CRTIMP int __cdecl _wfindnext64(intptr_t _FindHandle,struct _wfinddata64_t *_FindData);
 #endif
   _CRTIMP errno_t __cdecl _wsopen_s(int *_FileHandle,const wchar_t *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionFlag);
diff --git a/mingw-w64-headers/include/wia.h b/mingw-w64-headers/include/wia.h
index de9e4cd..76ee99a 100755
--- a/mingw-w64-headers/include/wia.h
+++ b/mingw-w64-headers/include/wia.h
@@ -24,72 +24,72 @@
 
 #ifndef __IWiaDevMgr_FWD_DEFINED__
 #define __IWiaDevMgr_FWD_DEFINED__
-typedef interface IWiaDevMgr IWiaDevMgr;
+typedef struct IWiaDevMgr IWiaDevMgr;
 #endif
 
 #ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
 #define __IEnumWIA_DEV_INFO_FWD_DEFINED__
-typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
+typedef struct IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
 #endif
 
 #ifndef __IWiaEventCallback_FWD_DEFINED__
 #define __IWiaEventCallback_FWD_DEFINED__
-typedef interface IWiaEventCallback IWiaEventCallback;
+typedef struct IWiaEventCallback IWiaEventCallback;
 #endif
 
 #ifndef __IWiaDataCallback_FWD_DEFINED__
 #define __IWiaDataCallback_FWD_DEFINED__
-typedef interface IWiaDataCallback IWiaDataCallback;
+typedef struct IWiaDataCallback IWiaDataCallback;
 #endif
 
 #ifndef __IWiaDataTransfer_FWD_DEFINED__
 #define __IWiaDataTransfer_FWD_DEFINED__
-typedef interface IWiaDataTransfer IWiaDataTransfer;
+typedef struct IWiaDataTransfer IWiaDataTransfer;
 #endif
 
 #ifndef __IWiaItem_FWD_DEFINED__
 #define __IWiaItem_FWD_DEFINED__
-typedef interface IWiaItem IWiaItem;
+typedef struct IWiaItem IWiaItem;
 #endif
 
 #ifndef __IWiaPropertyStorage_FWD_DEFINED__
 #define __IWiaPropertyStorage_FWD_DEFINED__
-typedef interface IWiaPropertyStorage IWiaPropertyStorage;
+typedef struct IWiaPropertyStorage IWiaPropertyStorage;
 #endif
 
 #ifndef __IEnumWiaItem_FWD_DEFINED__
 #define __IEnumWiaItem_FWD_DEFINED__
-typedef interface IEnumWiaItem IEnumWiaItem;
+typedef struct IEnumWiaItem IEnumWiaItem;
 #endif
 
 #ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
 #define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
-typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
+typedef struct IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
 #endif
 
 #ifndef __IEnumWIA_FORMAT_INFO_FWD_DEFINED__
 #define __IEnumWIA_FORMAT_INFO_FWD_DEFINED__
-typedef interface IEnumWIA_FORMAT_INFO IEnumWIA_FORMAT_INFO;
+typedef struct IEnumWIA_FORMAT_INFO IEnumWIA_FORMAT_INFO;
 #endif
 
 #ifndef __IWiaLog_FWD_DEFINED__
 #define __IWiaLog_FWD_DEFINED__
-typedef interface IWiaLog IWiaLog;
+typedef struct IWiaLog IWiaLog;
 #endif
 
 #ifndef __IWiaLogEx_FWD_DEFINED__
 #define __IWiaLogEx_FWD_DEFINED__
-typedef interface IWiaLogEx IWiaLogEx;
+typedef struct IWiaLogEx IWiaLogEx;
 #endif
 
 #ifndef __IWiaNotifyDevMgr_FWD_DEFINED__
 #define __IWiaNotifyDevMgr_FWD_DEFINED__
-typedef interface IWiaNotifyDevMgr IWiaNotifyDevMgr;
+typedef struct IWiaNotifyDevMgr IWiaNotifyDevMgr;
 #endif
 
 #ifndef __IWiaItemExtras_FWD_DEFINED__
 #define __IWiaItemExtras_FWD_DEFINED__
-typedef interface IWiaItemExtras IWiaItemExtras;
+typedef struct IWiaItemExtras IWiaItemExtras;
 #endif
 
 #ifndef __WiaDevMgr_FWD_DEFINED__
@@ -185,7 +185,7 @@
       HRESULT (WINAPI *AddDeviceDlg)(IWiaDevMgr *This,HWND hwndParent,LONG lFlags);
     END_INTERFACE
   } IWiaDevMgrVtbl;
-  interface IWiaDevMgr {
+  struct IWiaDevMgr {
     CONST_VTBL struct IWiaDevMgrVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -248,7 +248,7 @@
       HRESULT (WINAPI *GetCount)(IEnumWIA_DEV_INFO *This,ULONG *celt);
     END_INTERFACE
   } IEnumWIA_DEV_INFOVtbl;
-  interface IEnumWIA_DEV_INFO {
+  struct IEnumWIA_DEV_INFO {
     CONST_VTBL struct IEnumWIA_DEV_INFOVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -291,7 +291,7 @@
       HRESULT (WINAPI *ImageEventCallback)(IWiaEventCallback *This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved);
     END_INTERFACE
   } IWiaEventCallbackVtbl;
-  interface IWiaEventCallback {
+  struct IWiaEventCallback {
     CONST_VTBL struct IWiaEventCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -333,7 +333,7 @@
       HRESULT (WINAPI *BandedDataCallback)(IWiaDataCallback *This,LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer);
     END_INTERFACE
   } IWiaDataCallbackVtbl;
-  interface IWiaDataCallback {
+  struct IWiaDataCallback {
     CONST_VTBL struct IWiaDataCallbackVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -396,7 +396,7 @@
       HRESULT (WINAPI *idtGetExtendedTransferInfo)(IWiaDataTransfer *This,PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo);
     END_INTERFACE
   } IWiaDataTransferVtbl;
-  interface IWiaDataTransfer {
+  struct IWiaDataTransfer {
     CONST_VTBL struct IWiaDataTransferVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -467,7 +467,7 @@
       HRESULT (WINAPI *Diagnostic)(IWiaItem *This,ULONG ulSize,BYTE *pBuffer);
     END_INTERFACE
   } IWiaItemVtbl;
-  interface IWiaItem {
+  struct IWiaItem {
     CONST_VTBL struct IWiaItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -570,7 +570,7 @@
       HRESULT (WINAPI *SetPropertyStream)(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream *pIStream);
     END_INTERFACE
   } IWiaPropertyStorageVtbl;
-  interface IWiaPropertyStorage {
+  struct IWiaPropertyStorage {
     CONST_VTBL struct IWiaPropertyStorageVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -654,7 +654,7 @@
       HRESULT (WINAPI *GetCount)(IEnumWiaItem *This,ULONG *celt);
     END_INTERFACE
   } IEnumWiaItemVtbl;
-  interface IEnumWiaItem {
+  struct IEnumWiaItem {
     CONST_VTBL struct IEnumWiaItemVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -720,7 +720,7 @@
       HRESULT (WINAPI *GetCount)(IEnumWIA_DEV_CAPS *This,ULONG *pcelt);
     END_INTERFACE
   } IEnumWIA_DEV_CAPSVtbl;
-  interface IEnumWIA_DEV_CAPS {
+  struct IEnumWIA_DEV_CAPS {
     CONST_VTBL struct IEnumWIA_DEV_CAPSVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -771,7 +771,7 @@
       HRESULT (WINAPI *GetCount)(IEnumWIA_FORMAT_INFO *This,ULONG *pcelt);
     END_INTERFACE
   } IEnumWIA_FORMAT_INFOVtbl;
-  interface IEnumWIA_FORMAT_INFO {
+  struct IEnumWIA_FORMAT_INFO {
     CONST_VTBL struct IEnumWIA_FORMAT_INFOVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -818,7 +818,7 @@
       HRESULT (WINAPI *Log)(IWiaLog *This,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
     END_INTERFACE
   } IWiaLogVtbl;
-  interface IWiaLog {
+  struct IWiaLog {
     CONST_VTBL struct IWiaLogVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -863,7 +863,7 @@
       HRESULT (WINAPI *LogEx)(IWiaLogEx *This,LONG lMethodId,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
     END_INTERFACE
   } IWiaLogExVtbl;
-  interface IWiaLogEx {
+  struct IWiaLogEx {
     CONST_VTBL struct IWiaLogExVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -906,7 +906,7 @@
       HRESULT (WINAPI *NewDeviceArrival)(IWiaNotifyDevMgr *This);
     END_INTERFACE
   } IWiaNotifyDevMgrVtbl;
-  interface IWiaNotifyDevMgr {
+  struct IWiaNotifyDevMgr {
     CONST_VTBL struct IWiaNotifyDevMgrVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -941,7 +941,7 @@
       HRESULT (WINAPI *CancelPendingIO)(IWiaItemExtras *This);
     END_INTERFACE
   } IWiaItemExtrasVtbl;
-  interface IWiaItemExtras {
+  struct IWiaItemExtras {
     CONST_VTBL struct IWiaItemExtrasVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/wiavideo.h b/mingw-w64-headers/include/wiavideo.h
index 17dec51..719e511 100755
--- a/mingw-w64-headers/include/wiavideo.h
+++ b/mingw-w64-headers/include/wiavideo.h
@@ -24,7 +24,7 @@
 
 #ifndef __IWiaVideo_FWD_DEFINED__
 #define __IWiaVideo_FWD_DEFINED__
-typedef interface IWiaVideo IWiaVideo;
+typedef struct IWiaVideo IWiaVideo;
 #endif
 
 #ifndef __WiaVideo_FWD_DEFINED__
@@ -94,7 +94,7 @@
       HRESULT (WINAPI *GetCurrentState)(IWiaVideo *This,WIAVIDEO_STATE *pState);
     END_INTERFACE
   } IWiaVideoVtbl;
-  interface IWiaVideo {
+  struct IWiaVideo {
     CONST_VTBL struct IWiaVideoVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/winsock.h b/mingw-w64-headers/include/winsock.h
index ecc8ecf..818df3c 100755
--- a/mingw-w64-headers/include/winsock.h
+++ b/mingw-w64-headers/include/winsock.h
@@ -3,6 +3,7 @@
  * This file is part of the w64 mingw-runtime package.
  * No warranty is given; refer to the file DISCLAIMER within this package.
  */
+#if 0
 #ifndef _WINSOCKAPI_
 #define _WINSOCKAPI_
 
@@ -606,3 +607,6 @@
 #error WINSOCK2 required.
 #endif
 #endif
+#else
+#include <winsock2.h>
+#endif
diff --git a/mingw-w64-headers/include/winsock2.h b/mingw-w64-headers/include/winsock2.h
index 3360217..55e4a90 100755
--- a/mingw-w64-headers/include/winsock2.h
+++ b/mingw-w64-headers/include/winsock2.h
@@ -35,20 +35,17 @@
 extern "C" {
 #endif
 
-#ifndef _WINSOCKAPI_
   typedef unsigned char u_char;
   typedef unsigned short u_short;
   typedef unsigned int u_int;
   typedef unsigned long u_long;
   typedef unsigned __int64 u_int64;
   typedef INT_PTR SOCKET;
-#endif
 
 #ifndef FD_SETSIZE
 #define FD_SETSIZE 64
 #endif
 
-#ifndef _WINSOCKAPI_
   typedef struct fd_set {
     u_int fd_count;
     SOCKET fd_array[FD_SETSIZE];
@@ -60,7 +57,6 @@
 #define FD_SET(fd,set) do { u_int __i; for(__i = 0;__i < ((fd_set *)(set))->fd_count;__i++) { if (((fd_set *)(set))->fd_array[__i]==(fd)) { break; } } if (__i==((fd_set *)(set))->fd_count) { if (((fd_set *)(set))->fd_count < FD_SETSIZE) { ((fd_set *)(set))->fd_array[__i] = (fd); ((fd_set *)(set))->fd_count++; } } } while(0)
 #define FD_ZERO(set) (((fd_set *)(set))->fd_count=0)
 #define FD_ISSET(fd,set) __WSAFDIsSet((SOCKET)(fd),(fd_set *)(set))
-#endif
 
 #ifndef _TIMEVAL_DEFINED /* also in winsock[2].h */
 #define _TIMEVAL_DEFINED
@@ -96,7 +92,6 @@
 
 #define h_addr h_addr_list[0]
 
-#ifndef _WINSOCKAPI_
   struct hostent {
     char *h_name;
     char **h_aliases;
@@ -129,7 +124,6 @@
     char **p_aliases;
     short p_proto;
   };
-#endif
 
 #define IPPROTO_IP 0
 #define IPPROTO_HOPOPTS 0
@@ -238,19 +232,16 @@
 
 #define ADDR_ANY INADDR_ANY
 
-#ifndef _WINSOCKAPI_
   struct sockaddr_in {
     short sin_family;
     u_short sin_port;
     struct in_addr sin_addr;
     char sin_zero[8];
   };
-#endif
 
 #define WSADESCRIPTION_LEN 256
 #define WSASYS_STATUS_LEN 128
 
-#ifndef _WINSOCKAPI_
   typedef struct WSAData {
     WORD wVersion;
     WORD wHighVersion;
@@ -268,7 +259,6 @@
     char *lpVendorInfo;
 #endif
   } WSADATA,*LPWSADATA;
-#endif
 
 #define INVALID_SOCKET (SOCKET)(~0)
 #define SOCKET_ERROR (-1)
@@ -355,12 +345,10 @@
 
 #define AF_MAX 32
 
-#ifndef _WINSOCKAPI_
   struct sockaddr {
     u_short sa_family;
     char sa_data[14];
   };
-#endif
 
 #define _SS_MAXSIZE 128
 #define _SS_ALIGNSIZE (sizeof(__int64))
@@ -377,12 +365,10 @@
 
   };
 
-#ifndef _WINSOCKAPI_
   struct sockproto {
     u_short sp_family;
     u_short sp_protocol;
   };
-#endif
 
 #define PF_UNSPEC AF_UNSPEC
 #define PF_UNIX AF_UNIX
@@ -412,12 +398,10 @@
 
 #define PF_MAX AF_MAX
 
-#ifndef _WINSOCKAPI_
   struct linger {
     u_short l_onoff;
     u_short l_linger;
   };
-#endif
 
 #define SOL_SOCKET 0xffff
 
diff --git a/mingw-w64-headers/include/wmiutils.h b/mingw-w64-headers/include/wmiutils.h
index 6065ec2..2ecb3bf 100755
--- a/mingw-w64-headers/include/wmiutils.h
+++ b/mingw-w64-headers/include/wmiutils.h
@@ -24,12 +24,12 @@
 
 #ifndef __IWbemPathKeyList_FWD_DEFINED__
 #define __IWbemPathKeyList_FWD_DEFINED__
-typedef interface IWbemPathKeyList IWbemPathKeyList;
+typedef struct IWbemPathKeyList IWbemPathKeyList;
 #endif
 
 #ifndef __IWbemPath_FWD_DEFINED__
 #define __IWbemPath_FWD_DEFINED__
-typedef interface IWbemPath IWbemPath;
+typedef struct IWbemPath IWbemPath;
 #endif
 
 #ifndef __WbemDefPath_FWD_DEFINED__
@@ -44,7 +44,7 @@
 
 #ifndef __IWbemQuery_FWD_DEFINED__
 #define __IWbemQuery_FWD_DEFINED__
-typedef interface IWbemQuery IWbemQuery;
+typedef struct IWbemQuery IWbemQuery;
 #endif
 
 #ifndef __WbemQuery_FWD_DEFINED__
@@ -58,7 +58,7 @@
 
 #ifndef __IWbemQuery_FWD_DEFINED__
 #define __IWbemQuery_FWD_DEFINED__
-typedef interface IWbemQuery IWbemQuery;
+typedef struct IWbemQuery IWbemQuery;
 #endif
 
 #ifdef __cplusplus
@@ -131,7 +131,7 @@
       HRESULT (WINAPI *GetText)(IWbemPathKeyList *This,long lFlags,ULONG *puBuffLength,LPWSTR pszText);
     END_INTERFACE
   } IWbemPathKeyListVtbl;
-  interface IWbemPathKeyList {
+  struct IWbemPathKeyList {
     CONST_VTBL struct IWbemPathKeyListVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -239,7 +239,7 @@
       WINBOOL (WINAPI *IsSameClassName)(IWbemPath *This,LPCWSTR wszClass);
     END_INTERFACE
   } IWbemPathVtbl;
-  interface IWbemPath {
+  struct IWbemPath {
     CONST_VTBL struct IWbemPathVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -362,7 +362,7 @@
       HRESULT (WINAPI *GetQueryInfo)(IWbemQuery *This,ULONG uAnalysisType,ULONG uInfoId,ULONG uBufSize,LPVOID pDestBuf);
     END_INTERFACE
   } IWbemQueryVtbl;
-  interface IWbemQuery {
+  struct IWbemQuery {
     CONST_VTBL struct IWbemQueryVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/ws2tcpip.h b/mingw-w64-headers/include/ws2tcpip.h
index 0e7dca4..af8c769 100755
--- a/mingw-w64-headers/include/ws2tcpip.h
+++ b/mingw-w64-headers/include/ws2tcpip.h
@@ -321,6 +321,9 @@
 #endif
 #endif
 
+#pragma push_macro("socklen_t")
+#undef socklen_t
+
   typedef int socklen_t;
 
 #ifdef UNICODE
@@ -347,6 +350,8 @@
 #endif
 #endif
 
+#pragma pop_macro("socklen_t")
+
 #ifdef UNICODE
 #define gai_strerror gai_strerrorW
 #else
diff --git a/mingw-w64-headers/include/xenroll.h b/mingw-w64-headers/include/xenroll.h
index 0bd8e28..c58aeea 100755
--- a/mingw-w64-headers/include/xenroll.h
+++ b/mingw-w64-headers/include/xenroll.h
@@ -24,37 +24,37 @@
 
 #ifndef __ICEnroll_FWD_DEFINED__
 #define __ICEnroll_FWD_DEFINED__
-typedef interface ICEnroll ICEnroll;
+typedef struct ICEnroll ICEnroll;
 #endif
 
 #ifndef __ICEnroll2_FWD_DEFINED__
 #define __ICEnroll2_FWD_DEFINED__
-typedef interface ICEnroll2 ICEnroll2;
+typedef struct ICEnroll2 ICEnroll2;
 #endif
 
 #ifndef __ICEnroll3_FWD_DEFINED__
 #define __ICEnroll3_FWD_DEFINED__
-typedef interface ICEnroll3 ICEnroll3;
+typedef struct ICEnroll3 ICEnroll3;
 #endif
 
 #ifndef __ICEnroll4_FWD_DEFINED__
 #define __ICEnroll4_FWD_DEFINED__
-typedef interface ICEnroll4 ICEnroll4;
+typedef struct ICEnroll4 ICEnroll4;
 #endif
 
 #ifndef __IEnroll_FWD_DEFINED__
 #define __IEnroll_FWD_DEFINED__
-typedef interface IEnroll IEnroll;
+typedef struct IEnroll IEnroll;
 #endif
 
 #ifndef __IEnroll2_FWD_DEFINED__
 #define __IEnroll2_FWD_DEFINED__
-typedef interface IEnroll2 IEnroll2;
+typedef struct IEnroll2 IEnroll2;
 #endif
 
 #ifndef __IEnroll4_FWD_DEFINED__
 #define __IEnroll4_FWD_DEFINED__
-typedef interface IEnroll4 IEnroll4;
+typedef struct IEnroll4 IEnroll4;
 #endif
 
 #ifndef __CEnroll2_FWD_DEFINED__
@@ -219,7 +219,7 @@
       HRESULT (WINAPI *put_HashAlgorithm)(ICEnroll *This,BSTR bstr);
     END_INTERFACE
   } ICEnrollVtbl;
-  interface ICEnroll {
+  struct ICEnroll {
     CONST_VTBL struct ICEnrollVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -489,7 +489,7 @@
       HRESULT (WINAPI *put_EnableT61DNEncoding)(ICEnroll2 *This,WINBOOL fBool);
     END_INTERFACE
   } ICEnroll2Vtbl;
-  interface ICEnroll2 {
+  struct ICEnroll2 {
     CONST_VTBL struct ICEnroll2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -687,7 +687,7 @@
       HRESULT (WINAPI *get_EnableSMIMECapabilities)(ICEnroll3 *This,WINBOOL *fEnableSMIMECapabilities);
     END_INTERFACE
   } ICEnroll3Vtbl;
-  interface ICEnroll3 {
+  struct ICEnroll3 {
     CONST_VTBL struct ICEnroll3Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -967,7 +967,7 @@
       HRESULT (WINAPI *get_IncludeSubjectKeyID)(ICEnroll4 *This,WINBOOL *pfInclude);
     END_INTERFACE
   } ICEnroll4Vtbl;
-  interface ICEnroll4 {
+  struct ICEnroll4 {
     CONST_VTBL struct ICEnroll4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1312,7 +1312,7 @@
       HRESULT (WINAPI *CreatePKCS7RequestFromRequest)(IEnroll *This,PCRYPT_DATA_BLOB pRequest,PCCERT_CONTEXT pSigningCertContext,PCRYPT_DATA_BLOB pPkcs7Blob);
     END_INTERFACE
   } IEnrollVtbl;
-  interface IEnroll {
+  struct IEnroll {
     CONST_VTBL struct IEnrollVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1654,7 +1654,7 @@
       HRESULT (WINAPI *get_EnableSMIMECapabilities)(IEnroll2 *This,WINBOOL *fEnableSMIMECapabilities);
     END_INTERFACE
   } IEnroll2Vtbl;
-  interface IEnroll2 {
+  struct IEnroll2 {
     CONST_VTBL struct IEnroll2Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -1956,7 +1956,7 @@
       HRESULT (WINAPI *get_IncludeSubjectKeyID)(IEnroll4 *This,WINBOOL *pfInclude);
     END_INTERFACE
   } IEnroll4Vtbl;
-  interface IEnroll4 {
+  struct IEnroll4 {
     CONST_VTBL struct IEnroll4Vtbl *lpVtbl;
   };
 #ifdef COBJMACROS
diff --git a/mingw-w64-headers/include/xmltrnsf.h b/mingw-w64-headers/include/xmltrnsf.h
index 77f172d..6d9ee43 100755
--- a/mingw-w64-headers/include/xmltrnsf.h
+++ b/mingw-w64-headers/include/xmltrnsf.h
@@ -24,7 +24,7 @@
 
 #ifndef __IWmiXMLTransformer_FWD_DEFINED__
 #define __IWmiXMLTransformer_FWD_DEFINED__
-typedef interface IWmiXMLTransformer IWmiXMLTransformer;
+typedef struct IWmiXMLTransformer IWmiXMLTransformer;
 #endif
 
 #ifndef __WmiXMLTransformer_FWD_DEFINED__
@@ -38,12 +38,12 @@
 
 #ifndef __ISWbemXMLDocumentSet_FWD_DEFINED__
 #define __ISWbemXMLDocumentSet_FWD_DEFINED__
-typedef interface ISWbemXMLDocumentSet ISWbemXMLDocumentSet;
+typedef struct ISWbemXMLDocumentSet ISWbemXMLDocumentSet;
 #endif
 
 #ifndef __IWmiXMLTransformer_FWD_DEFINED__
 #define __IWmiXMLTransformer_FWD_DEFINED__
-typedef interface IWmiXMLTransformer IWmiXMLTransformer;
+typedef struct IWmiXMLTransformer IWmiXMLTransformer;
 #endif
 
 #include "msxml.h"
@@ -145,7 +145,7 @@
       HRESULT (WINAPI *get_CompilationErrors)(IWmiXMLTransformer *This,BSTR *pstrErrors);
     END_INTERFACE
   } IWmiXMLTransformerVtbl;
-  interface IWmiXMLTransformer {
+  struct IWmiXMLTransformer {
     CONST_VTBL struct IWmiXMLTransformerVtbl *lpVtbl;
   };
 #ifdef COBJMACROS
@@ -282,7 +282,7 @@
       HRESULT (WINAPI *SkipNextDocument)(ISWbemXMLDocumentSet *This);
     END_INTERFACE
   } ISWbemXMLDocumentSetVtbl;
-  interface ISWbemXMLDocumentSet {
+  struct ISWbemXMLDocumentSet {
     CONST_VTBL struct ISWbemXMLDocumentSetVtbl *lpVtbl;
   };
 #ifdef COBJMACROS