Generate headers by IDL.
Adjust dispex.h for IID_...variants of guids, which are different handled
by wild in comparison to midl.
diff --git a/mingw-w64-headers/include/dispex.h b/mingw-w64-headers/include/dispex.h
index 3f45545..09a9c94 100644
--- a/mingw-w64-headers/include/dispex.h
+++ b/mingw-w64-headers/include/dispex.h
@@ -1,168 +1,302 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
+/*** Autogenerated by WIDL 1.6 from dispex.idl - Do not edit ***/
+
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 440
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
 
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error This stub requires an updated version of <rpcndr.h>
-#endif
+#include <rpc.h>
+#include <rpcndr.h>
 
 #ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
+#include <windows.h>
+#include <ole2.h>
 #endif
 
 #ifndef __dispex_h__
 #define __dispex_h__
 
+/* Forward declarations */
+
 #ifndef __IDispatchEx_FWD_DEFINED__
 #define __IDispatchEx_FWD_DEFINED__
-typedef struct IDispatchEx IDispatchEx;
+typedef interface IDispatchEx IDispatchEx;
 #endif
 
 #ifndef __IDispError_FWD_DEFINED__
 #define __IDispError_FWD_DEFINED__
-typedef struct IDispError IDispError;
+typedef interface IDispError IDispError;
 #endif
 
 #ifndef __IVariantChangeType_FWD_DEFINED__
 #define __IVariantChangeType_FWD_DEFINED__
-typedef struct IVariantChangeType IVariantChangeType;
+typedef interface IVariantChangeType IVariantChangeType;
 #endif
 
 #ifndef __IObjectIdentity_FWD_DEFINED__
 #define __IObjectIdentity_FWD_DEFINED__
-typedef struct IObjectIdentity IObjectIdentity;
+typedef interface IObjectIdentity IObjectIdentity;
+#endif
+
+#ifndef __ICanHandleException_FWD_DEFINED__
+#define __ICanHandleException_FWD_DEFINED__
+typedef interface ICanHandleException ICanHandleException;
 #endif
 
 #ifndef __IProvideRuntimeContext_FWD_DEFINED__
 #define __IProvideRuntimeContext_FWD_DEFINED__
-typedef struct IProvideRuntimeContext IProvideRuntimeContext;
+typedef interface IProvideRuntimeContext IProvideRuntimeContext;
 #endif
 
-#include "ocidl.h"
+/* Headers for imported files */
+
+#include <ocidl.h>
+#include <oleidl.h>
+#include <oaidl.h>
+#include <servprov.h>
 
 #ifdef __cplusplus
-extern "C"{
+extern "C" {
 #endif
 
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
-  void *__RPC_API MIDL_user_allocate(size_t);
-  void __RPC_API MIDL_user_free(void *);
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#ifndef __IDispatchEx_FWD_DEFINED__
+#define __IDispatchEx_FWD_DEFINED__
+typedef interface IDispatchEx IDispatchEx;
+#endif
+
+#ifndef __IDispError_FWD_DEFINED__
+#define __IDispError_FWD_DEFINED__
+typedef interface IDispError IDispError;
+#endif
+
+#ifndef __IVariantChangeType_FWD_DEFINED__
+#define __IVariantChangeType_FWD_DEFINED__
+typedef interface IVariantChangeType IVariantChangeType;
 #endif
 
 #ifndef DISPEX_H_
 #define DISPEX_H_
 
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
 #include "servprov.h"
 
 #ifndef _NO_DISPATCHEX_GUIDS
-  DEFINE_GUID(IID_IDispatchEx,0xa6ef9860,0xc720,0x11d0,0x93,0x37,0x0,0xa0,0xc9,0xd,0xca,0xa9);
-  DEFINE_GUID(IID_IDispError,0xa6ef9861,0xc720,0x11d0,0x93,0x37,0x0,0xa0,0xc9,0xd,0xca,0xa9);
-  DEFINE_GUID(IID_IVariantChangeType,0xa6ef9862,0xc720,0x11d0,0x93,0x37,0x0,0xa0,0xc9,0xd,0xca,0xa9);
-  DEFINE_GUID(SID_VariantConversion,0x1f101481,0xbccd,0x11d0,0x93,0x36,0x0,0xa0,0xc9,0xd,0xca,0xa9);
-  DEFINE_GUID(SID_GetCaller,0x4717cc40,0xbcb9,0x11d0,0x93,0x36,0x0,0xa0,0xc9,0xd,0xca,0xa9);
-  DEFINE_GUID(SID_ProvideRuntimeContext,0x74a5040c,0xdd0c,0x48f0,0xac,0x85,0x19,0x4c,0x32,0x59,0x18,0xa);
-  DEFINE_GUID(IID_IProvideRuntimeContext,0x10e2414a,0xec59,0x49d2,0xbc,0x51,0x5a,0xdd,0x2c,0x36,0xfe,0xbc);
-  DEFINE_GUID(IID_IObjectIdentity,0xca04b7e6,0xd21,0x11d1,0x8c,0xc5,0x0,0xc0,0x4f,0xc2,0xb0,0x85);
+
+DEFINE_GUID(SID_VariantConversion, 0x1f101481, 0xbccd, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);
+DEFINE_GUID(SID_GetCaller, 0x4717cc40, 0xbcb9, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);
+DEFINE_GUID(SID_ProvideRuntimeContext, 0x74a5040c, 0xdd0c, 0x48f0, 0xac, 0x85, 0x19, 0x4c, 0x32, 0x59, 0x18, 0xa);
 
 #define SID_GetScriptSite IID_IActiveScriptSite
 #endif
 
 #ifndef _NO_DISPATCHEX_CONSTS
-#define fdexNameCaseSensitive __MSABI_LONG(0x00000001)
-#define fdexNameEnsure __MSABI_LONG(0x00000002)
-#define fdexNameImplicit __MSABI_LONG(0x00000004)
-#define fdexNameCaseInsensitive __MSABI_LONG(0x00000008)
-#define fdexNameInternal __MSABI_LONG(0x00000010)
-#define fdexNameNoDynamicProperties __MSABI_LONG(0x00000020)
 
-#define fdexPropCanGet __MSABI_LONG(0x00000001)
-#define fdexPropCannotGet __MSABI_LONG(0x00000002)
-#define fdexPropCanPut __MSABI_LONG(0x00000004)
-#define fdexPropCannotPut __MSABI_LONG(0x00000008)
-#define fdexPropCanPutRef __MSABI_LONG(0x00000010)
-#define fdexPropCannotPutRef __MSABI_LONG(0x00000020)
-#define fdexPropNoSideEffects __MSABI_LONG(0x00000040)
-#define fdexPropDynamicType __MSABI_LONG(0x00000080)
-#define fdexPropCanCall __MSABI_LONG(0x00000100)
-#define fdexPropCannotCall __MSABI_LONG(0x00000200)
-#define fdexPropCanConstruct __MSABI_LONG(0x00000400)
-#define fdexPropCannotConstruct __MSABI_LONG(0x00000800)
-#define fdexPropCanSourceEvents __MSABI_LONG(0x00001000)
-#define fdexPropCannotSourceEvents __MSABI_LONG(0x00002000)
+#define fdexNameCaseSensitive 0x1
+#define fdexNameEnsure 0x2
+#define fdexNameImplicit 0x4
+#define fdexNameCaseInsensitive 0x8
+#define fdexNameInternal 0x10
+#define fdexNameNoDynamicProperties 0x20
+
+#define fdexPropCanGet 0x1
+#define fdexPropCannotGet 0x2
+#define fdexPropCanPut 0x4
+#define fdexPropCannotPut 0x8
+#define fdexPropCanPutRef 0x10
+#define fdexPropCannotPutRef 0x20
+#define fdexPropNoSideEffects 0x40
+#define fdexPropDynamicType 0x80
+#define fdexPropCanCall 0x100
+#define fdexPropCannotCall 0x200
+#define fdexPropCanConstruct 0x400
+#define fdexPropCannotConstruct 0x800
+#define fdexPropCanSourceEvents 0x1000
+#define fdexPropCannotSourceEvents 0x02000
 
 #define grfdexPropCanAll (fdexPropCanGet | fdexPropCanPut | fdexPropCanPutRef | fdexPropCanCall | fdexPropCanConstruct | fdexPropCanSourceEvents)
 #define grfdexPropCannotAll (fdexPropCannotGet | fdexPropCannotPut | fdexPropCannotPutRef | fdexPropCannotCall | fdexPropCannotConstruct | fdexPropCannotSourceEvents)
 #define grfdexPropExtraAll (fdexPropNoSideEffects | fdexPropDynamicType)
 #define grfdexPropAll (grfdexPropCanAll | grfdexPropCannotAll | grfdexPropExtraAll)
 
-#define fdexEnumDefault __MSABI_LONG(0x00000001)
-#define fdexEnumAll __MSABI_LONG(0x00000002)
+#define fdexEnumDefault 0x1
+#define fdexEnumAll 0x2
 
 #define DISPATCH_CONSTRUCT 0x4000
-
 #define DISPID_THIS (-613)
 #define DISPID_STARTENUM DISPID_UNKNOWN
 #endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_dispex_0000_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_dispex_0000_v0_0_s_ifspec;
-
+/*****************************************************************************
+ * IDispatchEx interface
+ */
 #ifndef __IDispatchEx_INTERFACE_DEFINED__
 #define __IDispatchEx_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDispatchEx;
+
+DEFINE_GUID(IID_IDispatchEx, 0xa6ef9860, 0xc720, 0x11d0, 0x93,0x37, 0x00,0xa0,0xc9,0x0d,0xca,0xa9);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDispatchEx : public IDispatch {
-  public:
-    virtual HRESULT WINAPI GetDispID(BSTR bstrName,DWORD grfdex,DISPID *pid) = 0;
-    virtual HRESULT WINAPI InvokeEx(DISPID id,LCID lcid,WORD wFlags,DISPPARAMS *pdp,VARIANT *pvarRes,EXCEPINFO *pei,IServiceProvider *pspCaller) = 0;
-    virtual HRESULT WINAPI DeleteMemberByName(BSTR bstrName,DWORD grfdex) = 0;
-    virtual HRESULT WINAPI DeleteMemberByDispID(DISPID id) = 0;
-    virtual HRESULT WINAPI GetMemberProperties(DISPID id,DWORD grfdexFetch,DWORD *pgrfdex) = 0;
-    virtual HRESULT WINAPI GetMemberName(DISPID id,BSTR *pbstrName) = 0;
-    virtual HRESULT WINAPI GetNextDispID(DWORD grfdex,DISPID id,DISPID *pid) = 0;
-    virtual HRESULT WINAPI GetNameSpaceParent(IUnknown **ppunk) = 0;
-  };
+MIDL_INTERFACE("a6ef9860-c720-11d0-9337-00a0c90dcaa9")
+IDispatchEx : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDispID(
+        BSTR bstrName,
+        DWORD grfdex,
+        DISPID *pid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InvokeEx(
+        DISPID id,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pdp,
+        VARIANT *pvarRes,
+        EXCEPINFO *pei,
+        IServiceProvider *pspCaller) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteMemberByName(
+        BSTR bstrName,
+        DWORD grfdex) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteMemberByDispID(
+        DISPID id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMemberProperties(
+        DISPID id,
+        DWORD grfdexFetch,
+        DWORD *pgrfdex) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMemberName(
+        DISPID id,
+        BSTR *pbstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNextDispID(
+        DWORD grfdex,
+        DISPID id,
+        DISPID *pid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNameSpaceParent(
+        IUnknown **ppunk) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDispatchEx, 0xa6ef9860, 0xc720, 0x11d0, 0x93,0x37, 0x00,0xa0,0xc9,0x0d,0xca,0xa9)
+#endif
 #else
-  typedef struct IDispatchExVtbl {
+typedef struct IDispatchExVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDispatchEx *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDispatchEx *This);
-      ULONG (WINAPI *Release)(IDispatchEx *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IDispatchEx *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IDispatchEx *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IDispatchEx *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IDispatchEx *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *GetDispID)(IDispatchEx *This,BSTR bstrName,DWORD grfdex,DISPID *pid);
-      HRESULT (WINAPI *InvokeEx)(IDispatchEx *This,DISPID id,LCID lcid,WORD wFlags,DISPPARAMS *pdp,VARIANT *pvarRes,EXCEPINFO *pei,IServiceProvider *pspCaller);
-      HRESULT (WINAPI *DeleteMemberByName)(IDispatchEx *This,BSTR bstrName,DWORD grfdex);
-      HRESULT (WINAPI *DeleteMemberByDispID)(IDispatchEx *This,DISPID id);
-      HRESULT (WINAPI *GetMemberProperties)(IDispatchEx *This,DISPID id,DWORD grfdexFetch,DWORD *pgrfdex);
-      HRESULT (WINAPI *GetMemberName)(IDispatchEx *This,DISPID id,BSTR *pbstrName);
-      HRESULT (WINAPI *GetNextDispID)(IDispatchEx *This,DWORD grfdex,DISPID id,DISPID *pid);
-      HRESULT (WINAPI *GetNameSpaceParent)(IDispatchEx *This,IUnknown **ppunk);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDispatchEx* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDispatchEx* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDispatchEx* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IDispatchEx* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IDispatchEx* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IDispatchEx* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IDispatchEx* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IDispatchEx methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDispID)(
+        IDispatchEx* This,
+        BSTR bstrName,
+        DWORD grfdex,
+        DISPID *pid);
+
+    HRESULT (STDMETHODCALLTYPE *InvokeEx)(
+        IDispatchEx* This,
+        DISPID id,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pdp,
+        VARIANT *pvarRes,
+        EXCEPINFO *pei,
+        IServiceProvider *pspCaller);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteMemberByName)(
+        IDispatchEx* This,
+        BSTR bstrName,
+        DWORD grfdex);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteMemberByDispID)(
+        IDispatchEx* This,
+        DISPID id);
+
+    HRESULT (STDMETHODCALLTYPE *GetMemberProperties)(
+        IDispatchEx* This,
+        DISPID id,
+        DWORD grfdexFetch,
+        DWORD *pgrfdex);
+
+    HRESULT (STDMETHODCALLTYPE *GetMemberName)(
+        IDispatchEx* This,
+        DISPID id,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetNextDispID)(
+        IDispatchEx* This,
+        DWORD grfdex,
+        DISPID id,
+        DISPID *pid);
+
+    HRESULT (STDMETHODCALLTYPE *GetNameSpaceParent)(
+        IDispatchEx* This,
+        IUnknown **ppunk);
+
     END_INTERFACE
-  } IDispatchExVtbl;
-  struct IDispatchEx {
-    CONST_VTBL struct IDispatchExVtbl *lpVtbl;
-  };
+} IDispatchExVtbl;
+interface IDispatchEx {
+    CONST_VTBL IDispatchExVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IDispatchEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IDispatchEx_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IDispatchEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IDispatchEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IDispatchEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IDispatchEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IDispatchEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IDispatchEx methods ***/
 #define IDispatchEx_GetDispID(This,bstrName,grfdex,pid) (This)->lpVtbl->GetDispID(This,bstrName,grfdex,pid)
 #define IDispatchEx_InvokeEx(This,id,lcid,wFlags,pdp,pvarRes,pei,pspCaller) (This)->lpVtbl->InvokeEx(This,id,lcid,wFlags,pdp,pvarRes,pei,pspCaller)
 #define IDispatchEx_DeleteMemberByName(This,bstrName,grfdex) (This)->lpVtbl->DeleteMemberByName(This,bstrName,grfdex)
@@ -171,192 +305,718 @@
 #define IDispatchEx_GetMemberName(This,id,pbstrName) (This)->lpVtbl->GetMemberName(This,id,pbstrName)
 #define IDispatchEx_GetNextDispID(This,grfdex,id,pid) (This)->lpVtbl->GetNextDispID(This,grfdex,id,pid)
 #define IDispatchEx_GetNameSpaceParent(This,ppunk) (This)->lpVtbl->GetNameSpaceParent(This,ppunk)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDispatchEx_QueryInterface(IDispatchEx* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDispatchEx_AddRef(IDispatchEx* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDispatchEx_Release(IDispatchEx* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IDispatchEx_GetTypeInfoCount(IDispatchEx* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IDispatchEx_GetTypeInfo(IDispatchEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IDispatchEx_GetIDsOfNames(IDispatchEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IDispatchEx_Invoke(IDispatchEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IDispatchEx methods ***/
+static FORCEINLINE HRESULT IDispatchEx_GetDispID(IDispatchEx* This,BSTR bstrName,DWORD grfdex,DISPID *pid) {
+    return This->lpVtbl->GetDispID(This,bstrName,grfdex,pid);
+}
+static FORCEINLINE HRESULT IDispatchEx_InvokeEx(IDispatchEx* This,DISPID id,LCID lcid,WORD wFlags,DISPPARAMS *pdp,VARIANT *pvarRes,EXCEPINFO *pei,IServiceProvider *pspCaller) {
+    return This->lpVtbl->InvokeEx(This,id,lcid,wFlags,pdp,pvarRes,pei,pspCaller);
+}
+static FORCEINLINE HRESULT IDispatchEx_DeleteMemberByName(IDispatchEx* This,BSTR bstrName,DWORD grfdex) {
+    return This->lpVtbl->DeleteMemberByName(This,bstrName,grfdex);
+}
+static FORCEINLINE HRESULT IDispatchEx_DeleteMemberByDispID(IDispatchEx* This,DISPID id) {
+    return This->lpVtbl->DeleteMemberByDispID(This,id);
+}
+static FORCEINLINE HRESULT IDispatchEx_GetMemberProperties(IDispatchEx* This,DISPID id,DWORD grfdexFetch,DWORD *pgrfdex) {
+    return This->lpVtbl->GetMemberProperties(This,id,grfdexFetch,pgrfdex);
+}
+static FORCEINLINE HRESULT IDispatchEx_GetMemberName(IDispatchEx* This,DISPID id,BSTR *pbstrName) {
+    return This->lpVtbl->GetMemberName(This,id,pbstrName);
+}
+static FORCEINLINE HRESULT IDispatchEx_GetNextDispID(IDispatchEx* This,DWORD grfdex,DISPID id,DISPID *pid) {
+    return This->lpVtbl->GetNextDispID(This,grfdex,id,pid);
+}
+static FORCEINLINE HRESULT IDispatchEx_GetNameSpaceParent(IDispatchEx* This,IUnknown **ppunk) {
+    return This->lpVtbl->GetNameSpaceParent(This,ppunk);
+}
 #endif
 #endif
-  HRESULT WINAPI IDispatchEx_GetDispID_Proxy(IDispatchEx *This,BSTR bstrName,DWORD grfdex,DISPID *pid);
-  void __RPC_STUB IDispatchEx_GetDispID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispatchEx_RemoteInvokeEx_Proxy(IDispatchEx *This,DISPID id,LCID lcid,DWORD dwFlags,DISPPARAMS *pdp,VARIANT *pvarRes,EXCEPINFO *pei,IServiceProvider *pspCaller,UINT cvarRefArg,UINT *rgiRefArg,VARIANT *rgvarRefArg);
-  void __RPC_STUB IDispatchEx_RemoteInvokeEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispatchEx_DeleteMemberByName_Proxy(IDispatchEx *This,BSTR bstrName,DWORD grfdex);
-  void __RPC_STUB IDispatchEx_DeleteMemberByName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispatchEx_DeleteMemberByDispID_Proxy(IDispatchEx *This,DISPID id);
-  void __RPC_STUB IDispatchEx_DeleteMemberByDispID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispatchEx_GetMemberProperties_Proxy(IDispatchEx *This,DISPID id,DWORD grfdexFetch,DWORD *pgrfdex);
-  void __RPC_STUB IDispatchEx_GetMemberProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispatchEx_GetMemberName_Proxy(IDispatchEx *This,DISPID id,BSTR *pbstrName);
-  void __RPC_STUB IDispatchEx_GetMemberName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispatchEx_GetNextDispID_Proxy(IDispatchEx *This,DWORD grfdex,DISPID id,DISPID *pid);
-  void __RPC_STUB IDispatchEx_GetNextDispID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispatchEx_GetNameSpaceParent_Proxy(IDispatchEx *This,IUnknown **ppunk);
-  void __RPC_STUB IDispatchEx_GetNameSpaceParent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IDispatchEx_GetDispID_Proxy(
+    IDispatchEx* This,
+    BSTR bstrName,
+    DWORD grfdex,
+    DISPID *pid);
+void __RPC_STUB IDispatchEx_GetDispID_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispatchEx_RemoteInvokeEx_Proxy(
+    IDispatchEx* This,
+    DISPID id,
+    LCID lcid,
+    DWORD dwFlags,
+    DISPPARAMS *pdp,
+    VARIANT *pvarRes,
+    EXCEPINFO *pei,
+    IServiceProvider *pspCaller,
+    UINT cvarRefArg,
+    UINT *rgiRefArg,
+    VARIANT *rgvarRefArg);
+void __RPC_STUB IDispatchEx_RemoteInvokeEx_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispatchEx_DeleteMemberByName_Proxy(
+    IDispatchEx* This,
+    BSTR bstrName,
+    DWORD grfdex);
+void __RPC_STUB IDispatchEx_DeleteMemberByName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispatchEx_DeleteMemberByDispID_Proxy(
+    IDispatchEx* This,
+    DISPID id);
+void __RPC_STUB IDispatchEx_DeleteMemberByDispID_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispatchEx_GetMemberProperties_Proxy(
+    IDispatchEx* This,
+    DISPID id,
+    DWORD grfdexFetch,
+    DWORD *pgrfdex);
+void __RPC_STUB IDispatchEx_GetMemberProperties_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispatchEx_GetMemberName_Proxy(
+    IDispatchEx* This,
+    DISPID id,
+    BSTR *pbstrName);
+void __RPC_STUB IDispatchEx_GetMemberName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispatchEx_GetNextDispID_Proxy(
+    IDispatchEx* This,
+    DWORD grfdex,
+    DISPID id,
+    DISPID *pid);
+void __RPC_STUB IDispatchEx_GetNextDispID_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispatchEx_GetNameSpaceParent_Proxy(
+    IDispatchEx* This,
+    IUnknown **ppunk);
+void __RPC_STUB IDispatchEx_GetNameSpaceParent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IDispatchEx_InvokeEx_Proxy(
+    IDispatchEx* This,
+    DISPID id,
+    LCID lcid,
+    WORD wFlags,
+    DISPPARAMS *pdp,
+    VARIANT *pvarRes,
+    EXCEPINFO *pei,
+    IServiceProvider *pspCaller);
+HRESULT __RPC_STUB IDispatchEx_InvokeEx_Stub(
+    IDispatchEx* This,
+    DISPID id,
+    LCID lcid,
+    DWORD dwFlags,
+    DISPPARAMS *pdp,
+    VARIANT *pvarRes,
+    EXCEPINFO *pei,
+    IServiceProvider *pspCaller,
+    UINT cvarRefArg,
+    UINT *rgiRefArg,
+    VARIANT *rgvarRefArg);
+
+#endif  /* __IDispatchEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDispError interface
+ */
 #ifndef __IDispError_INTERFACE_DEFINED__
 #define __IDispError_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IDispError;
+
+DEFINE_GUID(IID_IDispError, 0xa6ef9861, 0xc720, 0x11d0, 0x93,0x37, 0x00,0xa0,0xc9,0x0d,0xca,0xa9);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IDispError : public IUnknown {
-  public:
-    virtual HRESULT WINAPI QueryErrorInfo(GUID guidErrorType,IDispError **ppde) = 0;
-    virtual HRESULT WINAPI GetNext(IDispError **ppde) = 0;
-    virtual HRESULT WINAPI GetHresult(HRESULT *phr) = 0;
-    virtual HRESULT WINAPI GetSource(BSTR *pbstrSource) = 0;
-    virtual HRESULT WINAPI GetHelpInfo(BSTR *pbstrFileName,DWORD *pdwContext) = 0;
-    virtual HRESULT WINAPI GetDescription(BSTR *pbstrDescription) = 0;
-  };
+MIDL_INTERFACE("a6ef9861-c720-11d0-9337-00a0c90dcaa9")
+IDispError : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE QueryErrorInfo(
+        GUID guidErrorType,
+        IDispError **ppde) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNext(
+        IDispError **ppde) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetHresult(
+        HRESULT *phr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSource(
+        BSTR *pbstrSource) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetHelpInfo(
+        BSTR *pbstrFileName,
+        DWORD *pdwContext) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDescription(
+        BSTR *pbstrDescription) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDispError, 0xa6ef9861, 0xc720, 0x11d0, 0x93,0x37, 0x00,0xa0,0xc9,0x0d,0xca,0xa9)
+#endif
 #else
-  typedef struct IDispErrorVtbl {
+typedef struct IDispErrorVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IDispError *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IDispError *This);
-      ULONG (WINAPI *Release)(IDispError *This);
-      HRESULT (WINAPI *QueryErrorInfo)(IDispError *This,GUID guidErrorType,IDispError **ppde);
-      HRESULT (WINAPI *GetNext)(IDispError *This,IDispError **ppde);
-      HRESULT (WINAPI *GetHresult)(IDispError *This,HRESULT *phr);
-      HRESULT (WINAPI *GetSource)(IDispError *This,BSTR *pbstrSource);
-      HRESULT (WINAPI *GetHelpInfo)(IDispError *This,BSTR *pbstrFileName,DWORD *pdwContext);
-      HRESULT (WINAPI *GetDescription)(IDispError *This,BSTR *pbstrDescription);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDispError* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDispError* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDispError* This);
+
+    /*** IDispError methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryErrorInfo)(
+        IDispError* This,
+        GUID guidErrorType,
+        IDispError **ppde);
+
+    HRESULT (STDMETHODCALLTYPE *GetNext)(
+        IDispError* This,
+        IDispError **ppde);
+
+    HRESULT (STDMETHODCALLTYPE *GetHresult)(
+        IDispError* This,
+        HRESULT *phr);
+
+    HRESULT (STDMETHODCALLTYPE *GetSource)(
+        IDispError* This,
+        BSTR *pbstrSource);
+
+    HRESULT (STDMETHODCALLTYPE *GetHelpInfo)(
+        IDispError* This,
+        BSTR *pbstrFileName,
+        DWORD *pdwContext);
+
+    HRESULT (STDMETHODCALLTYPE *GetDescription)(
+        IDispError* This,
+        BSTR *pbstrDescription);
+
     END_INTERFACE
-  } IDispErrorVtbl;
-  struct IDispError {
-    CONST_VTBL struct IDispErrorVtbl *lpVtbl;
-  };
+} IDispErrorVtbl;
+interface IDispError {
+    CONST_VTBL IDispErrorVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IDispError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IDispError_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IDispError_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispError methods ***/
 #define IDispError_QueryErrorInfo(This,guidErrorType,ppde) (This)->lpVtbl->QueryErrorInfo(This,guidErrorType,ppde)
 #define IDispError_GetNext(This,ppde) (This)->lpVtbl->GetNext(This,ppde)
 #define IDispError_GetHresult(This,phr) (This)->lpVtbl->GetHresult(This,phr)
 #define IDispError_GetSource(This,pbstrSource) (This)->lpVtbl->GetSource(This,pbstrSource)
 #define IDispError_GetHelpInfo(This,pbstrFileName,pdwContext) (This)->lpVtbl->GetHelpInfo(This,pbstrFileName,pdwContext)
 #define IDispError_GetDescription(This,pbstrDescription) (This)->lpVtbl->GetDescription(This,pbstrDescription)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDispError_QueryInterface(IDispError* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDispError_AddRef(IDispError* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDispError_Release(IDispError* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispError methods ***/
+static FORCEINLINE HRESULT IDispError_QueryErrorInfo(IDispError* This,GUID guidErrorType,IDispError **ppde) {
+    return This->lpVtbl->QueryErrorInfo(This,guidErrorType,ppde);
+}
+static FORCEINLINE HRESULT IDispError_GetNext(IDispError* This,IDispError **ppde) {
+    return This->lpVtbl->GetNext(This,ppde);
+}
+static FORCEINLINE HRESULT IDispError_GetHresult(IDispError* This,HRESULT *phr) {
+    return This->lpVtbl->GetHresult(This,phr);
+}
+static FORCEINLINE HRESULT IDispError_GetSource(IDispError* This,BSTR *pbstrSource) {
+    return This->lpVtbl->GetSource(This,pbstrSource);
+}
+static FORCEINLINE HRESULT IDispError_GetHelpInfo(IDispError* This,BSTR *pbstrFileName,DWORD *pdwContext) {
+    return This->lpVtbl->GetHelpInfo(This,pbstrFileName,pdwContext);
+}
+static FORCEINLINE HRESULT IDispError_GetDescription(IDispError* This,BSTR *pbstrDescription) {
+    return This->lpVtbl->GetDescription(This,pbstrDescription);
+}
 #endif
 #endif
-  HRESULT WINAPI IDispError_QueryErrorInfo_Proxy(IDispError *This,GUID guidErrorType,IDispError **ppde);
-  void __RPC_STUB IDispError_QueryErrorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispError_GetNext_Proxy(IDispError *This,IDispError **ppde);
-  void __RPC_STUB IDispError_GetNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispError_GetHresult_Proxy(IDispError *This,HRESULT *phr);
-  void __RPC_STUB IDispError_GetHresult_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispError_GetSource_Proxy(IDispError *This,BSTR *pbstrSource);
-  void __RPC_STUB IDispError_GetSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispError_GetHelpInfo_Proxy(IDispError *This,BSTR *pbstrFileName,DWORD *pdwContext);
-  void __RPC_STUB IDispError_GetHelpInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IDispError_GetDescription_Proxy(IDispError *This,BSTR *pbstrDescription);
-  void __RPC_STUB IDispError_GetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IDispError_QueryErrorInfo_Proxy(
+    IDispError* This,
+    GUID guidErrorType,
+    IDispError **ppde);
+void __RPC_STUB IDispError_QueryErrorInfo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispError_GetNext_Proxy(
+    IDispError* This,
+    IDispError **ppde);
+void __RPC_STUB IDispError_GetNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispError_GetHresult_Proxy(
+    IDispError* This,
+    HRESULT *phr);
+void __RPC_STUB IDispError_GetHresult_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispError_GetSource_Proxy(
+    IDispError* This,
+    BSTR *pbstrSource);
+void __RPC_STUB IDispError_GetSource_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispError_GetHelpInfo_Proxy(
+    IDispError* This,
+    BSTR *pbstrFileName,
+    DWORD *pdwContext);
+void __RPC_STUB IDispError_GetHelpInfo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDispError_GetDescription_Proxy(
+    IDispError* This,
+    BSTR *pbstrDescription);
+void __RPC_STUB IDispError_GetDescription_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDispError_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVariantChangeType interface
+ */
 #ifndef __IVariantChangeType_INTERFACE_DEFINED__
 #define __IVariantChangeType_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVariantChangeType;
+
+DEFINE_GUID(IID_IVariantChangeType, 0xa6ef9862, 0xc720, 0x11d0, 0x93,0x37, 0x00,0xa0,0xc9,0x0d,0xca,0xa9);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVariantChangeType : public IUnknown {
-  public:
-    virtual HRESULT WINAPI ChangeType(VARIANT *pvarDst,VARIANT *pvarSrc,LCID lcid,VARTYPE vtNew) = 0;
-  };
+MIDL_INTERFACE("a6ef9862-c720-11d0-9337-00a0c90dcaa9")
+IVariantChangeType : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ChangeType(
+        VARIANT *pvarDst,
+        VARIANT *pvarSrc,
+        LCID lcid,
+        VARTYPE vtNew) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVariantChangeType, 0xa6ef9862, 0xc720, 0x11d0, 0x93,0x37, 0x00,0xa0,0xc9,0x0d,0xca,0xa9)
+#endif
 #else
-  typedef struct IVariantChangeTypeVtbl {
+typedef struct IVariantChangeTypeVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVariantChangeType *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVariantChangeType *This);
-      ULONG (WINAPI *Release)(IVariantChangeType *This);
-      HRESULT (WINAPI *ChangeType)(IVariantChangeType *This,VARIANT *pvarDst,VARIANT *pvarSrc,LCID lcid,VARTYPE vtNew);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IVariantChangeType* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IVariantChangeType* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IVariantChangeType* This);
+
+    /*** IVariantChangeType methods ***/
+    HRESULT (STDMETHODCALLTYPE *ChangeType)(
+        IVariantChangeType* This,
+        VARIANT *pvarDst,
+        VARIANT *pvarSrc,
+        LCID lcid,
+        VARTYPE vtNew);
+
     END_INTERFACE
-  } IVariantChangeTypeVtbl;
-  struct IVariantChangeType {
-    CONST_VTBL struct IVariantChangeTypeVtbl *lpVtbl;
-  };
+} IVariantChangeTypeVtbl;
+interface IVariantChangeType {
+    CONST_VTBL IVariantChangeTypeVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IVariantChangeType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IVariantChangeType_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IVariantChangeType_Release(This) (This)->lpVtbl->Release(This)
+/*** IVariantChangeType methods ***/
 #define IVariantChangeType_ChangeType(This,pvarDst,pvarSrc,lcid,vtNew) (This)->lpVtbl->ChangeType(This,pvarDst,pvarSrc,lcid,vtNew)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVariantChangeType_QueryInterface(IVariantChangeType* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVariantChangeType_AddRef(IVariantChangeType* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVariantChangeType_Release(IVariantChangeType* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IVariantChangeType methods ***/
+static FORCEINLINE HRESULT IVariantChangeType_ChangeType(IVariantChangeType* This,VARIANT *pvarDst,VARIANT *pvarSrc,LCID lcid,VARTYPE vtNew) {
+    return This->lpVtbl->ChangeType(This,pvarDst,pvarSrc,lcid,vtNew);
+}
 #endif
 #endif
-  HRESULT WINAPI IVariantChangeType_ChangeType_Proxy(IVariantChangeType *This,VARIANT *pvarDst,VARIANT *pvarSrc,LCID lcid,VARTYPE vtNew);
-  void __RPC_STUB IVariantChangeType_ChangeType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IVariantChangeType_ChangeType_Proxy(
+    IVariantChangeType* This,
+    VARIANT *pvarDst,
+    VARIANT *pvarSrc,
+    LCID lcid,
+    VARTYPE vtNew);
+void __RPC_STUB IVariantChangeType_ChangeType_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IVariantChangeType_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IObjectIdentity interface
+ */
 #ifndef __IObjectIdentity_INTERFACE_DEFINED__
 #define __IObjectIdentity_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IObjectIdentity;
+
+DEFINE_GUID(IID_IObjectIdentity, 0xca04b7e6, 0x0d21, 0x11d1, 0x8c,0xc5, 0x00,0xc0,0x4f,0xc2,0xb0,0x85);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IObjectIdentity : public IUnknown {
-  public:
-    virtual HRESULT WINAPI IsEqualObject(IUnknown *punk) = 0;
-  };
+MIDL_INTERFACE("ca04b7e6-0d21-11d1-8cc5-00c04fc2b085")
+IObjectIdentity : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE IsEqualObject(
+        IUnknown *punk) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IObjectIdentity, 0xca04b7e6, 0x0d21, 0x11d1, 0x8c,0xc5, 0x00,0xc0,0x4f,0xc2,0xb0,0x85)
+#endif
 #else
-  typedef struct IObjectIdentityVtbl {
+typedef struct IObjectIdentityVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IObjectIdentity *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IObjectIdentity *This);
-      ULONG (WINAPI *Release)(IObjectIdentity *This);
-      HRESULT (WINAPI *IsEqualObject)(IObjectIdentity *This,IUnknown *punk);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IObjectIdentity* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IObjectIdentity* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IObjectIdentity* This);
+
+    /*** IObjectIdentity methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsEqualObject)(
+        IObjectIdentity* This,
+        IUnknown *punk);
+
     END_INTERFACE
-  } IObjectIdentityVtbl;
-  struct IObjectIdentity {
-    CONST_VTBL struct IObjectIdentityVtbl *lpVtbl;
-  };
+} IObjectIdentityVtbl;
+interface IObjectIdentity {
+    CONST_VTBL IObjectIdentityVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IObjectIdentity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IObjectIdentity_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IObjectIdentity_Release(This) (This)->lpVtbl->Release(This)
+/*** IObjectIdentity methods ***/
 #define IObjectIdentity_IsEqualObject(This,punk) (This)->lpVtbl->IsEqualObject(This,punk)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IObjectIdentity_QueryInterface(IObjectIdentity* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IObjectIdentity_AddRef(IObjectIdentity* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IObjectIdentity_Release(IObjectIdentity* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IObjectIdentity methods ***/
+static FORCEINLINE HRESULT IObjectIdentity_IsEqualObject(IObjectIdentity* This,IUnknown *punk) {
+    return This->lpVtbl->IsEqualObject(This,punk);
+}
 #endif
 #endif
-  HRESULT WINAPI IObjectIdentity_IsEqualObject_Proxy(IObjectIdentity *This,IUnknown *punk);
-  void __RPC_STUB IObjectIdentity_IsEqualObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IObjectIdentity_IsEqualObject_Proxy(
+    IObjectIdentity* This,
+    IUnknown *punk);
+void __RPC_STUB IObjectIdentity_IsEqualObject_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IObjectIdentity_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ICanHandleException interface
+ */
+#ifndef __ICanHandleException_INTERFACE_DEFINED__
+#define __ICanHandleException_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ICanHandleException, 0xc5598e60, 0xb307, 0x11d1, 0xb2,0x7d, 0x00,0x60,0x08,0xc3,0xfb,0xfb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c5598e60-b307-11d1-b27d-006008c3fbfb")
+ICanHandleException : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CanHandleException(
+        EXCEPINFO *pExcepInfo,
+        VARIANT *pvar) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ICanHandleException, 0xc5598e60, 0xb307, 0x11d1, 0xb2,0x7d, 0x00,0x60,0x08,0xc3,0xfb,0xfb)
+#endif
+#else
+typedef struct ICanHandleExceptionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ICanHandleException* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ICanHandleException* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ICanHandleException* This);
+
+    /*** ICanHandleException methods ***/
+    HRESULT (STDMETHODCALLTYPE *CanHandleException)(
+        ICanHandleException* This,
+        EXCEPINFO *pExcepInfo,
+        VARIANT *pvar);
+
+    END_INTERFACE
+} ICanHandleExceptionVtbl;
+interface ICanHandleException {
+    CONST_VTBL ICanHandleExceptionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ICanHandleException_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ICanHandleException_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ICanHandleException_Release(This) (This)->lpVtbl->Release(This)
+/*** ICanHandleException methods ***/
+#define ICanHandleException_CanHandleException(This,pExcepInfo,pvar) (This)->lpVtbl->CanHandleException(This,pExcepInfo,pvar)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ICanHandleException_QueryInterface(ICanHandleException* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ICanHandleException_AddRef(ICanHandleException* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ICanHandleException_Release(ICanHandleException* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ICanHandleException methods ***/
+static FORCEINLINE HRESULT ICanHandleException_CanHandleException(ICanHandleException* This,EXCEPINFO *pExcepInfo,VARIANT *pvar) {
+    return This->lpVtbl->CanHandleException(This,pExcepInfo,pvar);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ICanHandleException_CanHandleException_Proxy(
+    ICanHandleException* This,
+    EXCEPINFO *pExcepInfo,
+    VARIANT *pvar);
+void __RPC_STUB ICanHandleException_CanHandleException_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ICanHandleException_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IProvideRuntimeContext interface
+ */
 #ifndef __IProvideRuntimeContext_INTERFACE_DEFINED__
 #define __IProvideRuntimeContext_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IProvideRuntimeContext;
+
+DEFINE_GUID(IID_IProvideRuntimeContext, 0x10e2414a, 0xec59, 0x49d2, 0xbc,0x51, 0x5a,0xdd,0x2c,0x36,0xfe,0xbc);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IProvideRuntimeContext : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCurrentSourceContext(DWORD_PTR *pdwContext,VARIANT_BOOL *pfExecutingGlobalCode) = 0;
-  };
+MIDL_INTERFACE("10e2414a-ec59-49d2-bc51-5add2c36febc")
+IProvideRuntimeContext : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentSourceContext(
+        DWORD_PTR *pdwContext,
+        VARIANT_BOOL *pfExecutingGlobalCode) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IProvideRuntimeContext, 0x10e2414a, 0xec59, 0x49d2, 0xbc,0x51, 0x5a,0xdd,0x2c,0x36,0xfe,0xbc)
+#endif
 #else
-  typedef struct IProvideRuntimeContextVtbl {
+typedef struct IProvideRuntimeContextVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IProvideRuntimeContext *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IProvideRuntimeContext *This);
-      ULONG (WINAPI *Release)(IProvideRuntimeContext *This);
-      HRESULT (WINAPI *GetCurrentSourceContext)(IProvideRuntimeContext *This,DWORD_PTR *pdwContext,VARIANT_BOOL *pfExecutingGlobalCode);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IProvideRuntimeContext* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IProvideRuntimeContext* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IProvideRuntimeContext* This);
+
+    /*** IProvideRuntimeContext methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetCurrentSourceContext)(
+        IProvideRuntimeContext* This,
+        DWORD_PTR *pdwContext,
+        VARIANT_BOOL *pfExecutingGlobalCode);
+
     END_INTERFACE
-  } IProvideRuntimeContextVtbl;
-  struct IProvideRuntimeContext {
-    CONST_VTBL struct IProvideRuntimeContextVtbl *lpVtbl;
-  };
+} IProvideRuntimeContextVtbl;
+interface IProvideRuntimeContext {
+    CONST_VTBL IProvideRuntimeContextVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IProvideRuntimeContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IProvideRuntimeContext_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IProvideRuntimeContext_Release(This) (This)->lpVtbl->Release(This)
+/*** IProvideRuntimeContext methods ***/
 #define IProvideRuntimeContext_GetCurrentSourceContext(This,pdwContext,pfExecutingGlobalCode) (This)->lpVtbl->GetCurrentSourceContext(This,pdwContext,pfExecutingGlobalCode)
-#endif
-#endif
-  HRESULT WINAPI IProvideRuntimeContext_GetCurrentSourceContext_Proxy(IProvideRuntimeContext *This,DWORD_PTR *pdwContext,VARIANT_BOOL *pfExecutingGlobalCode);
-  void __RPC_STUB IProvideRuntimeContext_GetCurrentSourceContext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IProvideRuntimeContext_QueryInterface(IProvideRuntimeContext* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IProvideRuntimeContext_AddRef(IProvideRuntimeContext* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IProvideRuntimeContext_Release(IProvideRuntimeContext* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IProvideRuntimeContext methods ***/
+static FORCEINLINE HRESULT IProvideRuntimeContext_GetCurrentSourceContext(IProvideRuntimeContext* This,DWORD_PTR *pdwContext,VARIANT_BOOL *pfExecutingGlobalCode) {
+    return This->lpVtbl->GetCurrentSourceContext(This,pdwContext,pfExecutingGlobalCode);
+}
 #endif
 #endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_dispex_0268_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_dispex_0268_v0_0_s_ifspec;
+#endif
 
-  ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
-  unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
-  unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
-  void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
-  ULONG __RPC_API VARIANT_UserSize(ULONG *,ULONG,VARIANT *);
-  unsigned char *__RPC_API VARIANT_UserMarshal(ULONG *,unsigned char *,VARIANT *);
-  unsigned char *__RPC_API VARIANT_UserUnmarshal(ULONG *,unsigned char *,VARIANT *);
-  void __RPC_API VARIANT_UserFree(ULONG *,VARIANT *);
+HRESULT STDMETHODCALLTYPE IProvideRuntimeContext_GetCurrentSourceContext_Proxy(
+    IProvideRuntimeContext* This,
+    DWORD_PTR *pdwContext,
+    VARIANT_BOOL *pfExecutingGlobalCode);
+void __RPC_STUB IProvideRuntimeContext_GetCurrentSourceContext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
 
-  HRESULT WINAPI IDispatchEx_InvokeEx_Proxy(IDispatchEx *This,DISPID id,LCID lcid,WORD wFlags,DISPPARAMS *pdp,VARIANT *pvarRes,EXCEPINFO *pei,IServiceProvider *pspCaller);
-  HRESULT WINAPI IDispatchEx_InvokeEx_Stub(IDispatchEx *This,DISPID id,LCID lcid,DWORD dwFlags,DISPPARAMS *pdp,VARIANT *pvarRes,EXCEPINFO *pei,IServiceProvider *pspCaller,UINT cvarRefArg,UINT *rgiRefArg,VARIANT *rgvarRefArg);
+#endif  /* __IProvideRuntimeContext_INTERFACE_DEFINED__ */
+
+#endif
+#endif
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
+void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
+
+/* End additional prototypes */
 
 #ifdef __cplusplus
 }
 #endif
-#endif
+
+#endif /* __dispex_h__ */
diff --git a/mingw-w64-headers/include/dispex.idl b/mingw-w64-headers/include/dispex.idl
index 8f4b799..96642de 100644
--- a/mingw-w64-headers/include/dispex.idl
+++ b/mingw-w64-headers/include/dispex.idl
@@ -26,15 +26,10 @@
 cpp_quote("")
 cpp_quote("#ifndef _NO_DISPATCHEX_GUIDS")
 cpp_quote("")
-cpp_quote("DEFINE_GUID(IID_IDispatchEx, 0xa6ef9860, 0xc720, 0x11d0, 0x93, 0x37, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
-cpp_quote("DEFINE_GUID(IID_IDispError, 0xa6ef9861, 0xc720, 0x11d0, 0x93, 0x37, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
-cpp_quote("DEFINE_GUID(IID_IVariantChangeType, 0xa6ef9862, 0xc720, 0x11d0, 0x93, 0x37, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
+
 cpp_quote("DEFINE_GUID(SID_VariantConversion, 0x1f101481, 0xbccd, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
 cpp_quote("DEFINE_GUID(SID_GetCaller, 0x4717cc40, 0xbcb9, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
 cpp_quote("DEFINE_GUID(SID_ProvideRuntimeContext, 0x74a5040c, 0xdd0c, 0x48f0, 0xac, 0x85, 0x19, 0x4c, 0x32, 0x59, 0x18, 0xa);")
-cpp_quote("DEFINE_GUID(IID_IProvideRuntimeContext, 0x10e2414a, 0xec59, 0x49d2, 0xbc, 0x51, 0x5a, 0xdd, 0x2c, 0x36, 0xfe, 0xbc);")
-cpp_quote("DEFINE_GUID(IID_IObjectIdentity, 0xca04b7e6, 0xd21, 0x11d1, 0x8c, 0xc5, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);")
-cpp_quote("DEFINE_GUID(IID_ICanHandleException, 0xc5598e60, 0xb307, 0x11d1, 0xb2, 0x7d, 0x0, 0x60, 0x08, 0xc3, 0xfb, 0xfb);")
 cpp_quote("")
 cpp_quote("#define SID_GetScriptSite IID_IActiveScriptSite")
 cpp_quote("#endif")
diff --git a/mingw-w64-headers/include/wbemads.h b/mingw-w64-headers/include/wbemads.h
index bdeadd3..7b476a4 100644
--- a/mingw-w64-headers/include/wbemads.h
+++ b/mingw-w64-headers/include/wbemads.h
@@ -1,127 +1,257 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
+/*** Autogenerated by WIDL 1.6 from wbemads.idl - Do not edit ***/
+
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
 
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error This stub requires an updated version of <rpcndr.h>
-#endif
+#include <rpc.h>
+#include <rpcndr.h>
 
 #ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
+#include <windows.h>
+#include <ole2.h>
 #endif
 
 #ifndef __wbemads_h__
 #define __wbemads_h__
 
-#ifndef __IWMIExtension_FWD_DEFINED__
-#define __IWMIExtension_FWD_DEFINED__
-typedef struct IWMIExtension IWMIExtension;
-#endif
+/* Forward declarations */
 
 #ifndef __WMIExtension_FWD_DEFINED__
 #define __WMIExtension_FWD_DEFINED__
-
 #ifdef __cplusplus
 typedef class WMIExtension WMIExtension;
 #else
 typedef struct WMIExtension WMIExtension;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WMIExtension_FWD_DEFINED__ */
 
 #ifndef __IWMIExtension_FWD_DEFINED__
 #define __IWMIExtension_FWD_DEFINED__
-typedef struct IWMIExtension IWMIExtension;
+typedef interface IWMIExtension IWMIExtension;
 #endif
 
-#include "oaidl.h"
-#include "ocidl.h"
-#include "wbemdisp.h"
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <wbemdisp.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
-  void *__RPC_API MIDL_user_allocate(size_t);
-  void __RPC_API MIDL_user_free(void *);
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+DEFINE_GUID(LIBID_WMIEXTENSIONLib, 0xe503d000, 0x5c7f, 0x11d2, 0x8b,0x74, 0x00,0x10,0x4b,0x2a,0xfb,0x41);
+
+#ifndef __IWMIExtension_FWD_DEFINED__
+#define __IWMIExtension_FWD_DEFINED__
+typedef interface IWMIExtension IWMIExtension;
 #endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_wbemads_0000_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemads_0000_v0_0_s_ifspec;
-#ifndef __WMIEXTENSIONLib_LIBRARY_DEFINED__
-#define __WMIEXTENSIONLib_LIBRARY_DEFINED__
-  EXTERN_C const IID LIBID_WMIEXTENSIONLib;
+/*****************************************************************************
+ * WMIExtension coclass
+ */
+
+DEFINE_GUID(CLSID_WMIExtension, 0xf0975afe, 0x5c7f, 0x11d2, 0x8b,0x74, 0x00,0x10,0x4b,0x2a,0xfb,0x41);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("f0975afe-5c7f-11d2-8b74-00104b2afb41") WMIExtension;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WMIExtension, 0xf0975afe, 0x5c7f, 0x11d2, 0x8b,0x74, 0x00,0x10,0x4b,0x2a,0xfb,0x41)
+#endif
+#endif
+
+/*****************************************************************************
+ * IWMIExtension interface
+ */
 #ifndef __IWMIExtension_INTERFACE_DEFINED__
 #define __IWMIExtension_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWMIExtension;
+
+DEFINE_GUID(IID_IWMIExtension, 0xadc1f06e, 0x5c7e, 0x11d2, 0x8b,0x74, 0x00,0x10,0x4b,0x2a,0xfb,0x41);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWMIExtension : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_WMIObjectPath(BSTR *strWMIObjectPath) = 0;
-    virtual HRESULT WINAPI GetWMIObject(ISWbemObject **objWMIObject) = 0;
-    virtual HRESULT WINAPI GetWMIServices(ISWbemServices **objWMIServices) = 0;
-  };
+MIDL_INTERFACE("adc1f06e-5c7e-11d2-8b74-00104b2afb41")
+IWMIExtension : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_WMIObjectPath(
+        BSTR *strWMIObjectPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetWMIObject(
+        ISWbemObject **objWMIObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetWMIServices(
+        ISWbemServices **objWMIServices) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMIExtension, 0xadc1f06e, 0x5c7e, 0x11d2, 0x8b,0x74, 0x00,0x10,0x4b,0x2a,0xfb,0x41)
+#endif
 #else
-  typedef struct IWMIExtensionVtbl {
+typedef struct IWMIExtensionVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWMIExtension *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWMIExtension *This);
-      ULONG (WINAPI *Release)(IWMIExtension *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IWMIExtension *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IWMIExtension *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IWMIExtension *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IWMIExtension *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_WMIObjectPath)(IWMIExtension *This,BSTR *strWMIObjectPath);
-      HRESULT (WINAPI *GetWMIObject)(IWMIExtension *This,ISWbemObject **objWMIObject);
-      HRESULT (WINAPI *GetWMIServices)(IWMIExtension *This,ISWbemServices **objWMIServices);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMIExtension* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMIExtension* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMIExtension* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMIExtension* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMIExtension* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMIExtension* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMIExtension* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMIExtension methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_WMIObjectPath)(
+        IWMIExtension* This,
+        BSTR *strWMIObjectPath);
+
+    HRESULT (STDMETHODCALLTYPE *GetWMIObject)(
+        IWMIExtension* This,
+        ISWbemObject **objWMIObject);
+
+    HRESULT (STDMETHODCALLTYPE *GetWMIServices)(
+        IWMIExtension* This,
+        ISWbemServices **objWMIServices);
+
     END_INTERFACE
-  } IWMIExtensionVtbl;
-  struct IWMIExtension {
-    CONST_VTBL struct IWMIExtensionVtbl *lpVtbl;
-  };
+} IWMIExtensionVtbl;
+interface IWMIExtension {
+    CONST_VTBL IWMIExtensionVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWMIExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWMIExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWMIExtension_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IWMIExtension_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IWMIExtension_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IWMIExtension_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IWMIExtension_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMIExtension methods ***/
 #define IWMIExtension_get_WMIObjectPath(This,strWMIObjectPath) (This)->lpVtbl->get_WMIObjectPath(This,strWMIObjectPath)
 #define IWMIExtension_GetWMIObject(This,objWMIObject) (This)->lpVtbl->GetWMIObject(This,objWMIObject)
 #define IWMIExtension_GetWMIServices(This,objWMIServices) (This)->lpVtbl->GetWMIServices(This,objWMIServices)
-#endif
-#endif
-  HRESULT WINAPI IWMIExtension_get_WMIObjectPath_Proxy(IWMIExtension *This,BSTR *strWMIObjectPath);
-  void __RPC_STUB IWMIExtension_get_WMIObjectPath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWMIExtension_GetWMIObject_Proxy(IWMIExtension *This,ISWbemObject **objWMIObject);
-  void __RPC_STUB IWMIExtension_GetWMIObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWMIExtension_GetWMIServices_Proxy(IWMIExtension *This,ISWbemServices **objWMIServices);
-  void __RPC_STUB IWMIExtension_GetWMIServices_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  EXTERN_C const CLSID CLSID_WMIExtension;
-#ifdef __cplusplus
-  class WMIExtension;
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMIExtension_QueryInterface(IWMIExtension* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMIExtension_AddRef(IWMIExtension* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMIExtension_Release(IWMIExtension* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMIExtension_GetTypeInfoCount(IWMIExtension* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMIExtension_GetTypeInfo(IWMIExtension* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMIExtension_GetIDsOfNames(IWMIExtension* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMIExtension_Invoke(IWMIExtension* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IWMIExtension methods ***/
+static FORCEINLINE HRESULT IWMIExtension_get_WMIObjectPath(IWMIExtension* This,BSTR *strWMIObjectPath) {
+    return This->lpVtbl->get_WMIObjectPath(This,strWMIObjectPath);
+}
+static FORCEINLINE HRESULT IWMIExtension_GetWMIObject(IWMIExtension* This,ISWbemObject **objWMIObject) {
+    return This->lpVtbl->GetWMIObject(This,objWMIObject);
+}
+static FORCEINLINE HRESULT IWMIExtension_GetWMIServices(IWMIExtension* This,ISWbemServices **objWMIServices) {
+    return This->lpVtbl->GetWMIServices(This,objWMIServices);
+}
 #endif
 #endif
 
-  ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
-  unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
-  unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
-  void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMIExtension_get_WMIObjectPath_Proxy(
+    IWMIExtension* This,
+    BSTR *strWMIObjectPath);
+void __RPC_STUB IWMIExtension_get_WMIObjectPath_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMIExtension_GetWMIObject_Proxy(
+    IWMIExtension* This,
+    ISWbemObject **objWMIObject);
+void __RPC_STUB IWMIExtension_GetWMIObject_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMIExtension_GetWMIServices_Proxy(
+    IWMIExtension* This,
+    ISWbemServices **objWMIServices);
+void __RPC_STUB IWMIExtension_GetWMIServices_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWMIExtension_INTERFACE_DEFINED__ */
+
+#endif
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+
+/* End additional prototypes */
 
 #ifdef __cplusplus
 }
 #endif
-#endif
+
+#endif /* __wbemads_h__ */
diff --git a/mingw-w64-headers/include/wbemcli.h b/mingw-w64-headers/include/wbemcli.h
index 0df09d1..64275b9 100644
--- a/mingw-w64-headers/include/wbemcli.h
+++ b/mingw-w64-headers/include/wbemcli.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 1.6 from include/wbemcli.idl - Do not edit ***/
+/*** Autogenerated by WIDL 1.6 from wbemcli.idl - Do not edit ***/
 
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
@@ -17,15 +17,32 @@
 
 /* Forward declarations */
 
-#ifndef __IWbemContext_FWD_DEFINED__
-#define __IWbemContext_FWD_DEFINED__
-typedef interface IWbemContext IWbemContext;
-#endif
+#ifndef __WbemBackupRestore_FWD_DEFINED__
+#define __WbemBackupRestore_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class WbemBackupRestore WbemBackupRestore;
+#else
+typedef struct WbemBackupRestore WbemBackupRestore;
+#endif /* defined __cplusplus */
+#endif /* defined __WbemBackupRestore_FWD_DEFINED__ */
 
-#ifndef __IWbemLocator_FWD_DEFINED__
-#define __IWbemLocator_FWD_DEFINED__
-typedef interface IWbemLocator IWbemLocator;
-#endif
+#ifndef __WbemClassObject_FWD_DEFINED__
+#define __WbemClassObject_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class WbemClassObject WbemClassObject;
+#else
+typedef struct WbemClassObject WbemClassObject;
+#endif /* defined __cplusplus */
+#endif /* defined __WbemClassObject_FWD_DEFINED__ */
+
+#ifndef __WbemContext_FWD_DEFINED__
+#define __WbemContext_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class WbemContext WbemContext;
+#else
+typedef struct WbemContext WbemContext;
+#endif /* defined __cplusplus */
+#endif /* defined __WbemContext_FWD_DEFINED__ */
 
 #ifndef __WbemLocator_FWD_DEFINED__
 #define __WbemLocator_FWD_DEFINED__
@@ -36,117 +53,14 @@
 #endif /* defined __cplusplus */
 #endif /* defined __WbemLocator_FWD_DEFINED__ */
 
-/* Headers for imported files */
-
-#include <oaidl.h>
-#include <objidl.h>
-
+#ifndef __WbemStatusCodeText_FWD_DEFINED__
+#define __WbemStatusCodeText_FWD_DEFINED__
 #ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef __IWbemClassObject_FWD_DEFINED__
-#define __IWbemClassObject_FWD_DEFINED__
-typedef struct IWbemClassObject IWbemClassObject;
-#endif
-
-#ifndef __IWbemObjectAccess_FWD_DEFINED__
-#define __IWbemObjectAccess_FWD_DEFINED__
-typedef struct IWbemObjectAccess IWbemObjectAccess;
-#endif
-
-#ifndef __IWbemQualifierSet_FWD_DEFINED__
-#define __IWbemQualifierSet_FWD_DEFINED__
-typedef struct IWbemQualifierSet IWbemQualifierSet;
-#endif
-
-#ifndef __IWbemServices_FWD_DEFINED__
-#define __IWbemServices_FWD_DEFINED__
-typedef struct IWbemServices IWbemServices;
-#endif
-
-#ifndef __IWbemLocator_FWD_DEFINED__
-#define __IWbemLocator_FWD_DEFINED__
-typedef struct IWbemLocator IWbemLocator;
-#endif
-
-#ifndef __IWbemObjectSink_FWD_DEFINED__
-#define __IWbemObjectSink_FWD_DEFINED__
-typedef struct IWbemObjectSink IWbemObjectSink;
-#endif
-
-#ifndef __IEnumWbemClassObject_FWD_DEFINED__
-#define __IEnumWbemClassObject_FWD_DEFINED__
-typedef struct IEnumWbemClassObject IEnumWbemClassObject;
-#endif
-
-#ifndef __IWbemCallResult_FWD_DEFINED__
-#define __IWbemCallResult_FWD_DEFINED__
-typedef struct IWbemCallResult IWbemCallResult;
-#endif
-
-#ifndef __IUnsecuredApartment_FWD_DEFINED__
-#define __IUnsecuredApartment_FWD_DEFINED__
-typedef struct IUnsecuredApartment IUnsecuredApartment;
-#endif
-
-#ifndef __IWbemUnsecuredApartment_FWD_DEFINED__
-#define __IWbemUnsecuredApartment_FWD_DEFINED__
-typedef struct IWbemUnsecuredApartment IWbemUnsecuredApartment;
-#endif
-
-#ifndef __IWbemStatusCodeText_FWD_DEFINED__
-#define __IWbemStatusCodeText_FWD_DEFINED__
-typedef struct IWbemStatusCodeText IWbemStatusCodeText;
-#endif
-
-#ifndef __IWbemBackupRestore_FWD_DEFINED__
-#define __IWbemBackupRestore_FWD_DEFINED__
-typedef struct IWbemBackupRestore IWbemBackupRestore;
-#endif
-
-#ifndef __IWbemBackupRestoreEx_FWD_DEFINED__
-#define __IWbemBackupRestoreEx_FWD_DEFINED__
-typedef struct IWbemBackupRestoreEx IWbemBackupRestoreEx;
-#endif
-
-#ifndef __IWbemRefresher_FWD_DEFINED__
-#define __IWbemRefresher_FWD_DEFINED__
-typedef struct IWbemRefresher IWbemRefresher;
-#endif
-
-#ifndef __IWbemHiPerfEnum_FWD_DEFINED__
-#define __IWbemHiPerfEnum_FWD_DEFINED__
-typedef struct IWbemHiPerfEnum IWbemHiPerfEnum;
-#endif
-
-#ifndef __IWbemConfigureRefresher_FWD_DEFINED__
-#define __IWbemConfigureRefresher_FWD_DEFINED__
-typedef struct IWbemConfigureRefresher IWbemConfigureRefresher;
-#endif
-
-#ifndef __WbemLocator_FWD_DEFINED__
-#define __WbemLocator_FWD_DEFINED__
-#ifdef __cplusplus
-typedef class WbemLocator WbemLocator;
+typedef class WbemStatusCodeText WbemStatusCodeText;
 #else
-typedef struct WbemLocator WbemLocator;
-#endif
-#endif
-
-#ifndef __WbemContext_FWD_DEFINED__
-#define __WbemContext_FWD_DEFINED__
-#ifdef __cplusplus
-typedef class WbemContext WbemContext;
-#else
-typedef struct WbemContext WbemContext;
-#endif
-#endif
+typedef struct WbemStatusCodeText WbemStatusCodeText;
+#endif /* defined __cplusplus */
+#endif /* defined __WbemStatusCodeText_FWD_DEFINED__ */
 
 #ifndef __UnsecuredApartment_FWD_DEFINED__
 #define __UnsecuredApartment_FWD_DEFINED__
@@ -154,17 +68,8 @@
 typedef class UnsecuredApartment UnsecuredApartment;
 #else
 typedef struct UnsecuredApartment UnsecuredApartment;
-#endif
-#endif
-
-#ifndef __WbemClassObject_FWD_DEFINED__
-#define __WbemClassObject_FWD_DEFINED__
-#ifdef __cplusplus
-typedef class WbemClassObject WbemClassObject;
-#else
-typedef struct WbemClassObject WbemClassObject;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __UnsecuredApartment_FWD_DEFINED__ */
 
 #ifndef __MofCompiler_FWD_DEFINED__
 #define __MofCompiler_FWD_DEFINED__
@@ -172,35 +77,8 @@
 typedef class MofCompiler MofCompiler;
 #else
 typedef struct MofCompiler MofCompiler;
-#endif
-#endif
-
-#ifndef __WbemStatusCodeText_FWD_DEFINED__
-#define __WbemStatusCodeText_FWD_DEFINED__
-#ifdef __cplusplus
-typedef class WbemStatusCodeText WbemStatusCodeText;
-#else
-typedef struct WbemStatusCodeText WbemStatusCodeText;
-#endif
-#endif
-
-#ifndef __WbemBackupRestore_FWD_DEFINED__
-#define __WbemBackupRestore_FWD_DEFINED__
-#ifdef __cplusplus
-typedef class WbemBackupRestore WbemBackupRestore;
-#else
-typedef struct WbemBackupRestore WbemBackupRestore;
-#endif
-#endif
-
-#ifndef __WbemRefresher_FWD_DEFINED__
-#define __WbemRefresher_FWD_DEFINED__
-#ifdef __cplusplus
-typedef class WbemRefresher WbemRefresher;
-#else
-typedef struct WbemRefresher WbemRefresher;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __MofCompiler_FWD_DEFINED__ */
 
 #ifndef __WbemObjectTextSrc_FWD_DEFINED__
 #define __WbemObjectTextSrc_FWD_DEFINED__
@@ -208,329 +86,1035 @@
 typedef class WbemObjectTextSrc WbemObjectTextSrc;
 #else
 typedef struct WbemObjectTextSrc WbemObjectTextSrc;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemObjectTextSrc_FWD_DEFINED__ */
+
+#ifndef __WbemRefresher_FWD_DEFINED__
+#define __WbemRefresher_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class WbemRefresher WbemRefresher;
+#else
+typedef struct WbemRefresher WbemRefresher;
+#endif /* defined __cplusplus */
+#endif /* defined __WbemRefresher_FWD_DEFINED__ */
 
 #ifndef __IWbemClassObject_FWD_DEFINED__
 #define __IWbemClassObject_FWD_DEFINED__
-typedef struct IWbemClassObject IWbemClassObject;
+typedef interface IWbemClassObject IWbemClassObject;
 #endif
 
 #ifndef __IWbemQualifierSet_FWD_DEFINED__
 #define __IWbemQualifierSet_FWD_DEFINED__
-typedef struct IWbemQualifierSet IWbemQualifierSet;
+typedef interface IWbemQualifierSet IWbemQualifierSet;
+#endif
+
+#ifndef __IWbemLocator_FWD_DEFINED__
+#define __IWbemLocator_FWD_DEFINED__
+typedef interface IWbemLocator IWbemLocator;
 #endif
 
 #ifndef __IWbemObjectSink_FWD_DEFINED__
 #define __IWbemObjectSink_FWD_DEFINED__
-typedef struct IWbemObjectSink IWbemObjectSink;
+typedef interface IWbemObjectSink IWbemObjectSink;
+#endif
+
+#ifndef __IWbemObjectSinkEx_FWD_DEFINED__
+#define __IWbemObjectSinkEx_FWD_DEFINED__
+typedef interface IWbemObjectSinkEx IWbemObjectSinkEx;
 #endif
 
 #ifndef __IEnumWbemClassObject_FWD_DEFINED__
 #define __IEnumWbemClassObject_FWD_DEFINED__
-typedef struct IEnumWbemClassObject IEnumWbemClassObject;
+typedef interface IEnumWbemClassObject IEnumWbemClassObject;
+#endif
+
+#ifndef __IWbemContext_FWD_DEFINED__
+#define __IWbemContext_FWD_DEFINED__
+typedef interface IWbemContext IWbemContext;
 #endif
 
 #ifndef __IWbemCallResult_FWD_DEFINED__
 #define __IWbemCallResult_FWD_DEFINED__
-typedef struct IWbemCallResult IWbemCallResult;
+typedef interface IWbemCallResult IWbemCallResult;
 #endif
 
 #ifndef __IWbemServices_FWD_DEFINED__
 #define __IWbemServices_FWD_DEFINED__
-typedef struct IWbemServices IWbemServices;
+typedef interface IWbemServices IWbemServices;
 #endif
 
 #ifndef __IWbemShutdown_FWD_DEFINED__
 #define __IWbemShutdown_FWD_DEFINED__
-typedef struct IWbemShutdown IWbemShutdown;
+typedef interface IWbemShutdown IWbemShutdown;
 #endif
 
 #ifndef __IWbemObjectTextSrc_FWD_DEFINED__
 #define __IWbemObjectTextSrc_FWD_DEFINED__
-typedef struct IWbemObjectTextSrc IWbemObjectTextSrc;
+typedef interface IWbemObjectTextSrc IWbemObjectTextSrc;
 #endif
 
 #ifndef __IWbemObjectAccess_FWD_DEFINED__
 #define __IWbemObjectAccess_FWD_DEFINED__
-typedef struct IWbemObjectAccess IWbemObjectAccess;
+typedef interface IWbemObjectAccess IWbemObjectAccess;
 #endif
 
 #ifndef __IMofCompiler_FWD_DEFINED__
 #define __IMofCompiler_FWD_DEFINED__
-typedef struct IMofCompiler IMofCompiler;
+typedef interface IMofCompiler IMofCompiler;
 #endif
 
 #ifndef __IUnsecuredApartment_FWD_DEFINED__
 #define __IUnsecuredApartment_FWD_DEFINED__
-typedef struct IUnsecuredApartment IUnsecuredApartment;
+typedef interface IUnsecuredApartment IUnsecuredApartment;
 #endif
 
 #ifndef __IWbemUnsecuredApartment_FWD_DEFINED__
 #define __IWbemUnsecuredApartment_FWD_DEFINED__
-typedef struct IWbemUnsecuredApartment IWbemUnsecuredApartment;
+typedef interface IWbemUnsecuredApartment IWbemUnsecuredApartment;
 #endif
 
 #ifndef __IWbemStatusCodeText_FWD_DEFINED__
 #define __IWbemStatusCodeText_FWD_DEFINED__
-typedef struct IWbemStatusCodeText IWbemStatusCodeText;
+typedef interface IWbemStatusCodeText IWbemStatusCodeText;
 #endif
 
 #ifndef __IWbemBackupRestore_FWD_DEFINED__
 #define __IWbemBackupRestore_FWD_DEFINED__
-typedef struct IWbemBackupRestore IWbemBackupRestore;
+typedef interface IWbemBackupRestore IWbemBackupRestore;
 #endif
 
 #ifndef __IWbemBackupRestoreEx_FWD_DEFINED__
 #define __IWbemBackupRestoreEx_FWD_DEFINED__
-typedef struct IWbemBackupRestoreEx IWbemBackupRestoreEx;
+typedef interface IWbemBackupRestoreEx IWbemBackupRestoreEx;
 #endif
 
 #ifndef __IWbemRefresher_FWD_DEFINED__
 #define __IWbemRefresher_FWD_DEFINED__
-typedef struct IWbemRefresher IWbemRefresher;
+typedef interface IWbemRefresher IWbemRefresher;
 #endif
 
 #ifndef __IWbemHiPerfEnum_FWD_DEFINED__
 #define __IWbemHiPerfEnum_FWD_DEFINED__
-typedef struct IWbemHiPerfEnum IWbemHiPerfEnum;
+typedef interface IWbemHiPerfEnum IWbemHiPerfEnum;
 #endif
 
 #ifndef __IWbemConfigureRefresher_FWD_DEFINED__
 #define __IWbemConfigureRefresher_FWD_DEFINED__
-typedef struct IWbemConfigureRefresher IWbemConfigureRefresher;
+typedef interface IWbemConfigureRefresher IWbemConfigureRefresher;
 #endif
 
-#ifndef __WbemClient_v1_LIBRARY_DEFINED__
-#define __WbemClient_v1_LIBRARY_DEFINED__
+/* Headers for imported files */
 
-  typedef enum tag_WBEM_GENUS_TYPE {
-    WBEM_GENUS_CLASS = 1,WBEM_GENUS_INSTANCE = 2
-  } WBEM_GENUS_TYPE;
+#include <ocidl.h>
+#include <oleidl.h>
+#include <oaidl.h>
+#include <servprov.h>
 
-  typedef enum tag_WBEM_CHANGE_FLAG_TYPE {
-    WBEM_FLAG_CREATE_OR_UPDATE = 0,WBEM_FLAG_UPDATE_ONLY = 0x1,WBEM_FLAG_CREATE_ONLY = 0x2,WBEM_FLAG_UPDATE_COMPATIBLE = 0,
-    WBEM_FLAG_UPDATE_SAFE_MODE = 0x20,WBEM_FLAG_UPDATE_FORCE_MODE = 0x40,WBEM_MASK_UPDATE_MODE = 0x60,WBEM_FLAG_ADVISORY = 0x10000
-  } WBEM_CHANGE_FLAG_TYPE;
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-  typedef enum tag_WBEM_GENERIC_FLAG_TYPE {
-    WBEM_FLAG_RETURN_IMMEDIATELY = 0x10,WBEM_FLAG_RETURN_WBEM_COMPLETE = 0,WBEM_FLAG_BIDIRECTIONAL = 0,WBEM_FLAG_FORWARD_ONLY = 0x20,
-    WBEM_FLAG_NO_ERROR_OBJECT = 0x40,WBEM_FLAG_RETURN_ERROR_OBJECT = 0,WBEM_FLAG_SEND_STATUS = 0x80,WBEM_FLAG_DONT_SEND_STATUS = 0,
-    WBEM_FLAG_ENSURE_LOCATABLE = 0x100,WBEM_FLAG_DIRECT_READ = 0x200,WBEM_FLAG_SEND_ONLY_SELECTED = 0,WBEM_RETURN_WHEN_COMPLETE = 0,
-    WBEM_RETURN_IMMEDIATELY = 0x10,WBEM_MASK_RESERVED_FLAGS = 0x1f000,WBEM_FLAG_USE_AMENDED_QUALIFIERS = 0x20000,
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#ifndef __IEnumWbemClassObject_FWD_DEFINED__
+#define __IEnumWbemClassObject_FWD_DEFINED__
+typedef interface IEnumWbemClassObject IEnumWbemClassObject;
+#endif
+
+#ifndef __IUnsecuredApartment_FWD_DEFINED__
+#define __IUnsecuredApartment_FWD_DEFINED__
+typedef interface IUnsecuredApartment IUnsecuredApartment;
+#endif
+
+#ifndef __IWbemBackupRestore_FWD_DEFINED__
+#define __IWbemBackupRestore_FWD_DEFINED__
+typedef interface IWbemBackupRestore IWbemBackupRestore;
+#endif
+
+#ifndef __IWbemBackupRestoreEx_FWD_DEFINED__
+#define __IWbemBackupRestoreEx_FWD_DEFINED__
+typedef interface IWbemBackupRestoreEx IWbemBackupRestoreEx;
+#endif
+
+#ifndef __IWbemCallResult_FWD_DEFINED__
+#define __IWbemCallResult_FWD_DEFINED__
+typedef interface IWbemCallResult IWbemCallResult;
+#endif
+
+#ifndef __IWbemClassObject_FWD_DEFINED__
+#define __IWbemClassObject_FWD_DEFINED__
+typedef interface IWbemClassObject IWbemClassObject;
+#endif
+
+#ifndef __IWbemConfigureRefresher_FWD_DEFINED__
+#define __IWbemConfigureRefresher_FWD_DEFINED__
+typedef interface IWbemConfigureRefresher IWbemConfigureRefresher;
+#endif
+
+#ifndef __IWbemConnection_FWD_DEFINED__
+#define __IWbemConnection_FWD_DEFINED__
+typedef interface IWbemConnection IWbemConnection;
+#endif
+
+#ifndef __IWbemContext_FWD_DEFINED__
+#define __IWbemContext_FWD_DEFINED__
+typedef interface IWbemContext IWbemContext;
+#endif
+
+#ifndef __IWbemEventSink_FWD_DEFINED__
+#define __IWbemEventSink_FWD_DEFINED__
+typedef interface IWbemEventSink IWbemEventSink;
+#endif
+
+#ifndef __IWbemHiPerfEnum_FWD_DEFINED__
+#define __IWbemHiPerfEnum_FWD_DEFINED__
+typedef interface IWbemHiPerfEnum IWbemHiPerfEnum;
+#endif
+
+#ifndef __IWbemLocator_FWD_DEFINED__
+#define __IWbemLocator_FWD_DEFINED__
+typedef interface IWbemLocator IWbemLocator;
+#endif
+
+#ifndef __IWbemObjectAccess_FWD_DEFINED__
+#define __IWbemObjectAccess_FWD_DEFINED__
+typedef interface IWbemObjectAccess IWbemObjectAccess;
+#endif
+
+#ifndef __IWbemObjectSink_FWD_DEFINED__
+#define __IWbemObjectSink_FWD_DEFINED__
+typedef interface IWbemObjectSink IWbemObjectSink;
+#endif
+
+#ifndef __IWbemQualifierSet_FWD_DEFINED__
+#define __IWbemQualifierSet_FWD_DEFINED__
+typedef interface IWbemQualifierSet IWbemQualifierSet;
+#endif
+
+#ifndef __IWbemRefresher_FWD_DEFINED__
+#define __IWbemRefresher_FWD_DEFINED__
+typedef interface IWbemRefresher IWbemRefresher;
+#endif
+
+#ifndef __IWbemSecureObjectSink_FWD_DEFINED__
+#define __IWbemSecureObjectSink_FWD_DEFINED__
+typedef interface IWbemSecureObjectSink IWbemSecureObjectSink;
+#endif
+
+#ifndef __IWbemServices_FWD_DEFINED__
+#define __IWbemServices_FWD_DEFINED__
+typedef interface IWbemServices IWbemServices;
+#endif
+
+#ifndef __IWbemStatusCodeText_FWD_DEFINED__
+#define __IWbemStatusCodeText_FWD_DEFINED__
+typedef interface IWbemStatusCodeText IWbemStatusCodeText;
+#endif
+
+#ifndef __IWbemUnsecuredApartment_FWD_DEFINED__
+#define __IWbemUnsecuredApartment_FWD_DEFINED__
+typedef interface IWbemUnsecuredApartment IWbemUnsecuredApartment;
+#endif
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+DEFINE_GUID(LIBID_WbemClient_v1, 0x7ec196fe, 0x7005, 0x11d1, 0xad,0x90, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+
+typedef enum tag_WBEM_GENUS_TYPE {
+    WBEM_GENUS_CLASS = 1,
+    WBEM_GENUS_INSTANCE = 2
+} WBEM_GENUS_TYPE;
+typedef enum tag_WBEM_CHANGE_FLAG_TYPE {
+    WBEM_FLAG_CREATE_OR_UPDATE = 0,
+    WBEM_FLAG_UPDATE_ONLY = 0x1,
+    WBEM_FLAG_CREATE_ONLY = 0x2,
+    WBEM_FLAG_UPDATE_COMPATIBLE = 0x0,
+    WBEM_FLAG_UPDATE_SAFE_MODE = 0x20,
+    WBEM_FLAG_UPDATE_FORCE_MODE = 0x40,
+    WBEM_MASK_UPDATE_MODE = 0x60,
+    WBEM_FLAG_ADVISORY = 0x10000
+} WBEM_CHANGE_FLAG_TYPE;
+typedef enum tag_WBEM_GENERIC_FLAG_TYPE {
+    WBEM_FLAG_RETURN_IMMEDIATELY = 0x10,
+    WBEM_FLAG_RETURN_WBEM_COMPLETE = 0,
+    WBEM_FLAG_BIDIRECTIONAL = 0,
+    WBEM_FLAG_FORWARD_ONLY = 0x20,
+    WBEM_FLAG_NO_ERROR_OBJECT = 0x40,
+    WBEM_FLAG_RETURN_ERROR_OBJECT = 0,
+    WBEM_FLAG_SEND_STATUS = 0x80,
+    WBEM_FLAG_DONT_SEND_STATUS = 0,
+    WBEM_FLAG_ENSURE_LOCATABLE = 0x100,
+    WBEM_FLAG_DIRECT_READ = 0x200,
+    WBEM_FLAG_SEND_ONLY_SELECTED = 0,
+    WBEM_RETURN_WHEN_COMPLETE = 0,
+    WBEM_RETURN_IMMEDIATELY = 0x10,
+    WBEM_MASK_RESERVED_FLAGS = 0x1f000,
+    WBEM_FLAG_USE_AMENDED_QUALIFIERS = 0x20000,
     WBEM_FLAG_STRONG_VALIDATION = 0x100000
-  } WBEM_GENERIC_FLAG_TYPE;
-
-  typedef enum tag_WBEM_STATUS_TYPE {
-    WBEM_STATUS_COMPLETE = 0,WBEM_STATUS_REQUIREMENTS = 1,WBEM_STATUS_PROGRESS = 2
-  } WBEM_STATUS_TYPE;
-
-  typedef enum tag_WBEM_TIMEOUT_TYPE {
-    WBEM_NO_WAIT = 0,WBEM_INFINITE = 0xffffffff
-  } WBEM_TIMEOUT_TYPE;
-
-  typedef enum tag_WBEM_CONDITION_FLAG_TYPE {
-    WBEM_FLAG_ALWAYS = 0,WBEM_FLAG_ONLY_IF_TRUE = 0x1,WBEM_FLAG_ONLY_IF_FALSE = 0x2,WBEM_FLAG_ONLY_IF_IDENTICAL = 0x3,WBEM_MASK_PRIMARY_CONDITION = 0x3,
-    WBEM_FLAG_KEYS_ONLY = 0x4,WBEM_FLAG_REFS_ONLY = 0x8,WBEM_FLAG_LOCAL_ONLY = 0x10,WBEM_FLAG_PROPAGATED_ONLY = 0x20,WBEM_FLAG_SYSTEM_ONLY = 0x30,
-    WBEM_FLAG_NONSYSTEM_ONLY = 0x40,WBEM_MASK_CONDITION_ORIGIN = 0x70,WBEM_FLAG_CLASS_OVERRIDES_ONLY = 0x100,WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES = 0x200,
+} WBEM_GENERIC_FLAG_TYPE;
+typedef enum tag_WBEM_STATUS_TYPE {
+    WBEM_STATUS_COMPLETE = 0,
+    WBEM_STATUS_REQUIREMENTS = 1,
+    WBEM_STATUS_PROGRESS = 2,
+    WBEM_STATUS_LOGGING_INFORMATION = 0x100,
+    WBEM_STATUS_LOGGING_INFORMATION_PROVIDER = 0x200,
+    WBEM_STATUS_LOGGING_INFORMATION_HOST = 0x400,
+    WBEM_STATUS_LOGGING_INFORMATION_REPOSITORY = 0x800,
+    WBEM_STATUS_LOGGING_INFORMATION_ESS = 0x1000
+} WBEM_STATUS_TYPE;
+typedef enum tag_WBEM_TIMEOUT_TYPE {
+    WBEM_NO_WAIT = 0,
+    WBEM_INFINITE = 0xffffffff
+} WBEM_TIMEOUT_TYPE;
+typedef enum tag_WBEM_CONDITION_FLAG_TYPE {
+    WBEM_FLAG_ALWAYS = 0,
+    WBEM_FLAG_ONLY_IF_TRUE = 0x1,
+    WBEM_FLAG_ONLY_IF_FALSE = 0x2,
+    WBEM_FLAG_ONLY_IF_IDENTICAL = 0x3,
+    WBEM_MASK_PRIMARY_CONDITION = 0x3,
+    WBEM_FLAG_KEYS_ONLY = 0x4,
+    WBEM_FLAG_REFS_ONLY = 0x8,
+    WBEM_FLAG_LOCAL_ONLY = 0x10,
+    WBEM_FLAG_PROPAGATED_ONLY = 0x20,
+    WBEM_FLAG_SYSTEM_ONLY = 0x30,
+    WBEM_FLAG_NONSYSTEM_ONLY = 0x40,
+    WBEM_MASK_CONDITION_ORIGIN = 0x70,
+    WBEM_FLAG_CLASS_OVERRIDES_ONLY = 0x100,
+    WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES = 0x200,
     WBEM_MASK_CLASS_CONDITION = 0x300
-  } WBEM_CONDITION_FLAG_TYPE;
-
-  typedef enum tag_WBEM_FLAVOR_TYPE {
-    WBEM_FLAVOR_DONT_PROPAGATE = 0,WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE = 0x1,WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS = 0x2,
-    WBEM_FLAVOR_MASK_PROPAGATION = 0xf,WBEM_FLAVOR_OVERRIDABLE = 0,WBEM_FLAVOR_NOT_OVERRIDABLE = 0x10,WBEM_FLAVOR_MASK_PERMISSIONS = 0x10,
-    WBEM_FLAVOR_ORIGIN_LOCAL = 0,WBEM_FLAVOR_ORIGIN_PROPAGATED = 0x20,WBEM_FLAVOR_ORIGIN_SYSTEM = 0x40,WBEM_FLAVOR_MASK_ORIGIN = 0x60,
-    WBEM_FLAVOR_NOT_AMENDED = 0,WBEM_FLAVOR_AMENDED = 0x80,WBEM_FLAVOR_MASK_AMENDED = 0x80
-  } WBEM_FLAVOR_TYPE;
-
-  typedef enum tag_WBEM_QUERY_FLAG_TYPE {
-    WBEM_FLAG_DEEP = 0,WBEM_FLAG_SHALLOW = 1,WBEM_FLAG_PROTOTYPE = 2
-  } WBEM_QUERY_FLAG_TYPE;
-
-  typedef enum tag_WBEM_SECURITY_FLAGS {
-    WBEM_ENABLE = 1,WBEM_METHOD_EXECUTE = 2,WBEM_FULL_WRITE_REP = 4,WBEM_PARTIAL_WRITE_REP = 8,WBEM_WRITE_PROVIDER = 0x10,WBEM_REMOTE_ACCESS = 0x20,
-    WBEM_RIGHT_SUBSCRIBE = 0x40,WBEM_RIGHT_PUBLISH = 0x80
-  } WBEM_SECURITY_FLAGS;
-
-  typedef enum tag_WBEM_LIMITATION_FLAG_TYPE {
-    WBEM_FLAG_EXCLUDE_OBJECT_QUALIFIERS = 0x10,WBEM_FLAG_EXCLUDE_PROPERTY_QUALIFIERS = 0x20
-  } WBEM_LIMITATION_FLAG_TYPE;
-
-  typedef enum tag_WBEM_TEXT_FLAG_TYPE {
+} WBEM_CONDITION_FLAG_TYPE;
+typedef enum tag_WBEM_FLAVOR_TYPE {
+    WBEM_FLAVOR_DONT_PROPAGATE = 0,
+    WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE = 0x1,
+    WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS = 0x2,
+    WBEM_FLAVOR_MASK_PROPAGATION = 0xf,
+    WBEM_FLAVOR_OVERRIDABLE = 0,
+    WBEM_FLAVOR_NOT_OVERRIDABLE = 0x10,
+    WBEM_FLAVOR_MASK_PERMISSIONS = 0x10,
+    WBEM_FLAVOR_ORIGIN_LOCAL = 0,
+    WBEM_FLAVOR_ORIGIN_PROPAGATED = 0x20,
+    WBEM_FLAVOR_ORIGIN_SYSTEM = 0x40,
+    WBEM_FLAVOR_MASK_ORIGIN = 0x60,
+    WBEM_FLAVOR_NOT_AMENDED = 0,
+    WBEM_FLAVOR_AMENDED = 0x80,
+    WBEM_FLAVOR_MASK_AMENDED = 0x80
+} WBEM_FLAVOR_TYPE;
+typedef enum tag_WBEM_QUERY_FLAG_TYPE {
+    WBEM_FLAG_DEEP = 0,
+    WBEM_FLAG_SHALLOW = 1,
+    WBEM_FLAG_PROTOTYPE = 2
+} WBEM_QUERY_FLAG_TYPE;
+typedef enum tag_WBEM_SECURITY_FLAGS {
+    WBEM_ENABLE = 1,
+    WBEM_METHOD_EXECUTE = 2,
+    WBEM_FULL_WRITE_REP = 4,
+    WBEM_PARTIAL_WRITE_REP = 8,
+    WBEM_WRITE_PROVIDER = 0x10,
+    WBEM_REMOTE_ACCESS = 0x20,
+    WBEM_RIGHT_SUBSCRIBE = 0x40,
+    WBEM_RIGHT_PUBLISH = 0x80
+} WBEM_SECURITY_FLAGS;
+typedef enum tag_WBEM_LIMITATION_FLAG_TYPE {
+    WBEM_FLAG_EXCLUDE_OBJECT_QUALIFIERS = 0x10,
+    WBEM_FLAG_EXCLUDE_PROPERTY_QUALIFIERS = 0x20
+} WBEM_LIMITATION_FLAG_TYPE;
+typedef enum tag_WBEM_TEXT_FLAG_TYPE {
     WBEM_FLAG_NO_FLAVORS = 0x1
-  } WBEM_TEXT_FLAG_TYPE;
-
-  typedef enum tag_WBEM_COMPARISON_FLAG {
-    WBEM_COMPARISON_INCLUDE_ALL = 0,WBEM_FLAG_IGNORE_QUALIFIERS = 0x1,WBEM_FLAG_IGNORE_OBJECT_SOURCE = 0x2,WBEM_FLAG_IGNORE_DEFAULT_VALUES = 0x4,
-    WBEM_FLAG_IGNORE_CLASS = 0x8,WBEM_FLAG_IGNORE_CASE = 0x10,WBEM_FLAG_IGNORE_FLAVOR = 0x20
-  } WBEM_COMPARISON_FLAG;
-
-  typedef enum tag_WBEM_LOCKING {
+} WBEM_TEXT_FLAG_TYPE;
+typedef enum tag_WBEM_COMPARISON_FLAG {
+    WBEM_COMPARISON_INCLUDE_ALL = 0,
+    WBEM_FLAG_IGNORE_QUALIFIERS = 0x1,
+    WBEM_FLAG_IGNORE_OBJECT_SOURCE = 0x2,
+    WBEM_FLAG_IGNORE_DEFAULT_VALUES = 0x4,
+    WBEM_FLAG_IGNORE_CLASS = 0x8,
+    WBEM_FLAG_IGNORE_CASE = 0x10,
+    WBEM_FLAG_IGNORE_FLAVOR = 0x20
+} WBEM_COMPARISON_FLAG;
+typedef enum tag_WBEM_LOCKING {
     WBEM_FLAG_ALLOW_READ = 0x1
-  } WBEM_LOCKING_FLAG_TYPE;
+} WBEM_LOCKING_FLAG_TYPE;
+typedef enum tag_CIMTYPE_ENUMERATION {
+    CIM_ILLEGAL = 0xfff,
+    CIM_EMPTY = 0,
+    CIM_SINT8 = 16,
+    CIM_UINT8 = 17,
+    CIM_SINT16 = 2,
+    CIM_UINT16 = 18,
+    CIM_SINT32 = 3,
+    CIM_UINT32 = 19,
+    CIM_SINT64 = 20,
+    CIM_UINT64 = 21,
+    CIM_REAL32 = 4,
+    CIM_REAL64 = 5,
+    CIM_BOOLEAN = 11,
+    CIM_STRING = 8,
+    CIM_DATETIME = 101,
+    CIM_REFERENCE = 102,
+    CIM_CHAR16 = 103,
+    CIM_OBJECT = 13,
+    CIM_FLAG_ARRAY = 0x2000
+} CIMTYPE_ENUMERATION;
+typedef enum tag_WBEM_BACKUP_RESTORE_FLAGS {
+    WBEM_FLAG_BACKUP_RESTORE_DEFAULT = 0,
+    WBEM_FLAG_BACKUP_RESTORE_FORCE_SHUTDOWN = 1
+} WBEM_BACKUP_RESTORE_FLAGS;
+typedef enum tag_WBEM_REFRESHER_FLAGS {
+    WBEM_FLAG_REFRESH_AUTO_RECONNECT = 0,
+    WBEM_FLAG_REFRESH_NO_AUTO_RECONNECT = 1
+} WBEM_REFRESHER_FLAGS;
+typedef enum tag_WBEM_SHUTDOWN_FLAGS {
+    WBEM_SHUTDOWN_UNLOAD_COMPONENT = 1,
+    WBEM_SHUTDOWN_WMI = 2,
+    WBEM_SHUTDOWN_OS = 3
+} WBEM_SHUTDOWN_FLAGS;
+typedef enum tag_WBEMSTATUS_FORMAT {
+    WBEMSTATUS_FORMAT_NEWLINE = 0,
+    WBEMSTATUS_FORMAT_NO_NEWLINE = 1
+} WBEMSTATUS_FORMAT;
+typedef enum tag_WBEM_LIMITS {
+    WBEM_MAX_IDENTIFIER = 0x1000,
+    WBEM_MAX_QUERY = 0x4000,
+    WBEM_MAX_PATH = 0x2000,
+    WBEM_MAX_OBJECT_NESTING = 64,
+    WBEM_MAX_USER_PROPERTIES = 1024
+} WBEM_LIMITS;
+typedef enum tag_WBEMSTATUS {
+    WBEM_NO_ERROR = 0,
+    WBEM_S_NO_ERROR = 0,
+    WBEM_S_SAME = 0,
+    WBEM_S_FALSE = 1,
+    WBEM_S_ALREADY_EXISTS = 0x40001,
+    WBEM_S_RESET_TO_DEFAULT = 0x40002,
+    WBEM_S_DIFFERENT = 0x40003,
+    WBEM_S_TIMEDOUT = 0x40004,
+    WBEM_S_NO_MORE_DATA = 0x40005,
+    WBEM_S_OPERATION_CANCELLED = 0x40006,
+    WBEM_S_PENDING = 0x40007,
+    WBEM_S_DUPLICATE_OBJECTS = 0x40008,
+    WBEM_S_ACCESS_DENIED = 0x40009,
+    WBEM_S_PARTIAL_RESULTS = 0x40010,
+    WBEM_S_SOURCE_NOT_AVAILABLE = 0x40017,
+    WBEM_E_FAILED = 0x80041001,
+    WBEM_E_NOT_FOUND = 0x80041002,
+    WBEM_E_ACCESS_DENIED = 0x80041003,
+    WBEM_E_PROVIDER_FAILURE = 0x80041004,
+    WBEM_E_TYPE_MISMATCH = 0x80041005,
+    WBEM_E_OUT_OF_MEMORY = 0x80041006,
+    WBEM_E_INVALID_CONTEXT = 0x80041007,
+    WBEM_E_INVALID_PARAMETER = 0x80041008,
+    WBEM_E_NOT_AVAILABLE = 0x80041009,
+    WBEM_E_CRITICAL_ERROR = 0x8004100a,
+    WBEM_E_INVALID_STREAM = 0x8004100b,
+    WBEM_E_NOT_SUPPORTED = 0x8004100c,
+    WBEM_E_INVALID_SUPERCLASS = 0x8004100d,
+    WBEM_E_INVALID_NAMESPACE = 0x8004100e,
+    WBEM_E_INVALID_OBJECT = 0x8004100f,
+    WBEM_E_INVALID_CLASS = 0x80041010,
+    WBEM_E_PROVIDER_NOT_FOUND = 0x80041011,
+    WBEM_E_INVALID_PROVIDER_REGISTRATION = 0x80041012,
+    WBEM_E_PROVIDER_LOAD_FAILURE = 0x80041013,
+    WBEM_E_INITIALIZATION_FAILURE = 0x80041014,
+    WBEM_E_TRANSPORT_FAILURE = 0x80041015,
+    WBEM_E_INVALID_OPERATION = 0x80041016,
+    WBEM_E_INVALID_QUERY = 0x80041017,
+    WBEM_E_INVALID_QUERY_TYPE = 0x80041018,
+    WBEM_E_ALREADY_EXISTS = 0x80041019,
+    WBEM_E_OVERRIDE_NOT_ALLOWED = 0x8004101a,
+    WBEM_E_PROPAGATED_QUALIFIER = 0x8004101b,
+    WBEM_E_PROPAGATED_PROPERTY = 0x8004101c,
+    WBEM_E_UNEXPECTED = 0x8004101d,
+    WBEM_E_ILLEGAL_OPERATION = 0x8004101e,
+    WBEM_E_CANNOT_BE_KEY = 0x8004101f,
+    WBEM_E_INCOMPLETE_CLASS = 0x80041020,
+    WBEM_E_INVALID_SYNTAX = 0x80041021,
+    WBEM_E_NONDECORATED_OBJECT = 0x80041022,
+    WBEM_E_READ_ONLY = 0x80041023,
+    WBEM_E_PROVIDER_NOT_CAPABLE = 0x80041024,
+    WBEM_E_CLASS_HAS_CHILDREN = 0x80041025,
+    WBEM_E_CLASS_HAS_INSTANCES = 0x80041026,
+    WBEM_E_QUERY_NOT_IMPLEMENTED = 0x80041027,
+    WBEM_E_ILLEGAL_NULL = 0x80041028,
+    WBEM_E_INVALID_QUALIFIER_TYPE = 0x80041029,
+    WBEM_E_INVALID_PROPERTY_TYPE = 0x8004102a,
+    WBEM_E_VALUE_OUT_OF_RANGE = 0x8004102b,
+    WBEM_E_CANNOT_BE_SINGLETON = 0x8004102c,
+    WBEM_E_INVALID_CIM_TYPE = 0x8004102d,
+    WBEM_E_INVALID_METHOD = 0x8004102e,
+    WBEM_E_INVALID_METHOD_PARAMETERS = 0x8004102f,
+    WBEM_E_SYSTEM_PROPERTY = 0x80041030,
+    WBEM_E_INVALID_PROPERTY = 0x80041031,
+    WBEM_E_CALL_CANCELLED = 0x80041032,
+    WBEM_E_SHUTTING_DOWN = 0x80041033,
+    WBEM_E_PROPAGATED_METHOD = 0x80041034,
+    WBEM_E_UNSUPPORTED_PARAMETER = 0x80041035,
+    WBEM_E_MISSING_PARAMETER_ID = 0x80041036,
+    WBEM_E_INVALID_PARAMETER_ID = 0x80041037,
+    WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = 0x80041038,
+    WBEM_E_PARAMETER_ID_ON_RETVAL = 0x80041039,
+    WBEM_E_INVALID_OBJECT_PATH = 0x8004103a,
+    WBEM_E_OUT_OF_DISK_SPACE = 0x8004103b,
+    WBEM_E_BUFFER_TOO_SMALL = 0x8004103c,
+    WBEM_E_UNSUPPORTED_PUT_EXTENSION = 0x8004103d,
+    WBEM_E_UNKNOWN_OBJECT_TYPE = 0x8004103e,
+    WBEM_E_UNKNOWN_PACKET_TYPE = 0x8004103f,
+    WBEM_E_MARSHAL_VERSION_MISMATCH = 0x80041040,
+    WBEM_E_MARSHAL_INVALID_SIGNATURE = 0x80041041,
+    WBEM_E_INVALID_QUALIFIER = 0x80041042,
+    WBEM_E_INVALID_DUPLICATE_PARAMETER = 0x80041043,
+    WBEM_E_TOO_MUCH_DATA = 0x80041044,
+    WBEM_E_SERVER_TOO_BUSY = 0x80041045,
+    WBEM_E_INVALID_FLAVOR = 0x80041046,
+    WBEM_E_CIRCULAR_REFERENCE = 0x80041047,
+    WBEM_E_UNSUPPORTED_CLASS_UPDATE = 0x80041048,
+    WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = 0x80041049,
+    WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = 0x80041050,
+    WBEM_E_TOO_MANY_PROPERTIES = 0x80041051,
+    WBEM_E_UPDATE_TYPE_MISMATCH = 0x80041052,
+    WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = 0x80041053,
+    WBEM_E_UPDATE_PROPAGATED_METHOD = 0x80041054,
+    WBEM_E_METHOD_NOT_IMPLEMENTED = 0x80041055,
+    WBEM_E_METHOD_DISABLED = 0x80041056,
+    WBEM_E_REFRESHER_BUSY = 0x80041057,
+    WBEM_E_UNPARSABLE_QUERY = 0x80041058,
+    WBEM_E_NOT_EVENT_CLASS = 0x80041059,
+    WBEM_E_MISSING_GROUP_WITHIN = 0x8004105a,
+    WBEM_E_MISSING_AGGREGATION_LIST = 0x8004105b,
+    WBEM_E_PROPERTY_NOT_AN_OBJECT = 0x8004105c,
+    WBEM_E_AGGREGATING_BY_OBJECT = 0x8004105d,
+    WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = 0x8004105f,
+    WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = 0x80041060,
+    WBEM_E_QUEUE_OVERFLOW = 0x80041061,
+    WBEM_E_PRIVILEGE_NOT_HELD = 0x80041062,
+    WBEM_E_INVALID_OPERATOR = 0x80041063,
+    WBEM_E_LOCAL_CREDENTIALS = 0x80041064,
+    WBEM_E_CANNOT_BE_ABSTRACT = 0x80041065,
+    WBEM_E_AMENDED_OBJECT = 0x80041066,
+    WBEM_E_CLIENT_TOO_SLOW = 0x80041067,
+    WBEM_E_NULL_SECURITY_DESCRIPTOR = 0x80041068,
+    WBEM_E_TIMED_OUT = 0x80041069,
+    WBEM_E_INVALID_ASSOCIATION = 0x8004106a,
+    WBEM_E_AMBIGUOUS_OPERATION = 0x8004106b,
+    WBEM_E_QUOTA_VIOLATION = 0x8004106c,
+    WBEM_E_RESERVED_001 = 0x8004106d,
+    WBEM_E_RESERVED_002 = 0x8004106e,
+    WBEM_E_UNSUPPORTED_LOCALE = 0x8004106f,
+    WBEM_E_HANDLE_OUT_OF_DATE = 0x80041070,
+    WBEM_E_CONNECTION_FAILED = 0x80041071,
+    WBEM_E_INVALID_HANDLE_REQUEST = 0x80041072,
+    WBEM_E_PROPERTY_NAME_TOO_WIDE = 0x80041073,
+    WBEM_E_CLASS_NAME_TOO_WIDE = 0x80041074,
+    WBEM_E_METHOD_NAME_TOO_WIDE = 0x80041075,
+    WBEM_E_QUALIFIER_NAME_TOO_WIDE = 0x80041076,
+    WBEM_E_RERUN_COMMAND = 0x80041077,
+    WBEM_E_DATABASE_VER_MISMATCH = 0x80041078,
+    WBEM_E_VETO_DELETE = 0x80041079,
+    WBEM_E_VETO_PUT = 0x8004107a,
+    WBEM_E_INVALID_LOCALE = 0x80041080,
+    WBEM_E_PROVIDER_SUSPENDED = 0x80041081,
+    WBEM_E_SYNCHRONIZATION_REQUIRED = 0x80041082,
+    WBEM_E_NO_SCHEMA = 0x80041083,
+    WBEM_E_PROVIDER_ALREADY_REGISTERED = 0x80041084,
+    WBEM_E_PROVIDER_NOT_REGISTERED = 0x80041085,
+    WBEM_E_FATAL_TRANSPORT_ERROR = 0x80041086,
+    WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = 0x80041087,
+    WBEM_E_PROVIDER_TIMED_OUT = 0x80041088,
+    WBEM_E_NO_KEY = 0x80041089,
+    WBEM_E_PROVIDER_DISABLED = 0x8004108a,
+    WBEMESS_E_REGISTRATION_TOO_BROAD = 0x80042001,
+    WBEMESS_E_REGISTRATION_TOO_PRECISE = 0x80042002,
+    WBEMESS_E_AUTHZ_NOT_PRIVILEGED = 0x80042003,
+    WBEMMOF_E_EXPECTED_QUALIFIER_NAME = 0x80044001,
+    WBEMMOF_E_EXPECTED_SEMI = 0x80044002,
+    WBEMMOF_E_EXPECTED_OPEN_BRACE = 0x80044003,
+    WBEMMOF_E_EXPECTED_CLOSE_BRACE = 0x80044004,
+    WBEMMOF_E_EXPECTED_CLOSE_BRACKET = 0x80044005,
+    WBEMMOF_E_EXPECTED_CLOSE_PAREN = 0x80044006,
+    WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = 0x80044007,
+    WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = 0x80044008,
+    WBEMMOF_E_EXPECTED_OPEN_PAREN = 0x80044009,
+    WBEMMOF_E_UNRECOGNIZED_TOKEN = 0x8004400a,
+    WBEMMOF_E_UNRECOGNIZED_TYPE = 0x8004400b,
+    WBEMMOF_E_EXPECTED_PROPERTY_NAME = 0x8004400c,
+    WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = 0x8004400d,
+    WBEMMOF_E_UNEXPECTED_ALIAS = 0x8004400e,
+    WBEMMOF_E_UNEXPECTED_ARRAY_INIT = 0x8004400f,
+    WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = 0x80044010,
+    WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = 0x80044011,
+    WBEMMOF_E_INVALID_PRAGMA = 0x80044012,
+    WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = 0x80044013,
+    WBEMMOF_E_EXPECTED_CLASS_NAME = 0x80044014,
+    WBEMMOF_E_TYPE_MISMATCH = 0x80044015,
+    WBEMMOF_E_EXPECTED_ALIAS_NAME = 0x80044016,
+    WBEMMOF_E_INVALID_CLASS_DECLARATION = 0x80044017,
+    WBEMMOF_E_INVALID_INSTANCE_DECLARATION = 0x80044018,
+    WBEMMOF_E_EXPECTED_DOLLAR = 0x80044019,
+    WBEMMOF_E_CIMTYPE_QUALIFIER = 0x8004401a,
+    WBEMMOF_E_DUPLICATE_PROPERTY = 0x8004401b,
+    WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = 0x8004401c,
+    WBEMMOF_E_OUT_OF_RANGE = 0x8004401d,
+    WBEMMOF_E_INVALID_FILE = 0x8004401e,
+    WBEMMOF_E_ALIASES_IN_EMBEDDED = 0x8004401f,
+    WBEMMOF_E_NULL_ARRAY_ELEM = 0x80044020,
+    WBEMMOF_E_DUPLICATE_QUALIFIER = 0x80044021,
+    WBEMMOF_E_EXPECTED_FLAVOR_TYPE = 0x80044022,
+    WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = 0x80044023,
+    WBEMMOF_E_MULTIPLE_ALIASES = 0x80044024,
+    WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = 0x80044025,
+    WBEMMOF_E_NO_ARRAYS_RETURNED = 0x80044026,
+    WBEMMOF_E_MUST_BE_IN_OR_OUT = 0x80044027,
+    WBEMMOF_E_INVALID_FLAGS_SYNTAX = 0x80044028,
+    WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = 0x80044029,
+    WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = 0x8004402a,
+    WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = 0x8004402b,
+    WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = 0x8004402c,
+    WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = 0x8004402d,
+    WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = 0x8004402e,
+    WBEMMOF_E_ERROR_CREATING_TEMP_FILE = 0x8004402f,
+    WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = 0x80044030,
+    WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = 0x80044031
+} WBEMSTATUS;
+typedef enum tag_WMI_OBJ_TEXT {
+    WMI_OBJ_TEXT_CIM_DTD_2_0 = 1,
+    WMI_OBJ_TEXT_WMI_DTD_2_0 = 2,
+    WMI_OBJ_TEXT_WMI_EXT1 = 3,
+    WMI_OBJ_TEXT_WMI_EXT2 = 4,
+    WMI_OBJ_TEXT_WMI_EXT3 = 5,
+    WMI_OBJ_TEXT_WMI_EXT4 = 6,
+    WMI_OBJ_TEXT_WMI_EXT5 = 7,
+    WMI_OBJ_TEXT_WMI_EXT6 = 8,
+    WMI_OBJ_TEXT_WMI_EXT7 = 9,
+    WMI_OBJ_TEXT_WMI_EXT8 = 10,
+    WMI_OBJ_TEXT_WMI_EXT9 = 11,
+    WMI_OBJ_TEXT_WMI_EXT10 = 12,
+    WMI_OBJ_TEXT_LAST = 13
+} WMI_OBJ_TEXT;
+typedef enum tag_WBEM_COMPILER_OPTIONS {
+    WBEM_FLAG_CHECK_ONLY = 0x1,
+    WBEM_FLAG_AUTORECOVER = 0x2,
+    WBEM_FLAG_WMI_CHECK = 0x4,
+    WBEM_FLAG_CONSOLE_PRINT = 0x8,
+    WBEM_FLAG_DONT_ADD_TO_LIST = 0x10,
+    WBEM_FLAG_SPLIT_FILES = 0x20,
+    WBEM_FLAG_STORE_FILE = 0x100
+} WBEM_COMPILER_OPTIONS;
+typedef enum tag_WBEM_CONNECT_OPTIONS {
+    WBEM_FLAG_CONNECT_REPOSITORY_ONLY = 0x40,
+    WBEM_FLAG_CONNECT_USE_MAX_WAIT = 0x80,
+    WBEM_FLAG_CONNECT_PROVIDERS = 0x100
+} WBEM_CONNECT_OPTIONS;
+typedef enum tag_WBEM_UNSECAPP_FLAG_TYPE {
+    WBEM_FLAG_UNSECAPP_DEFAULT_CHECK_ACCESS = 0,
+    WBEM_FLAG_UNSECAPP_CHECK_ACCESS = 1,
+    WBEM_FLAG_UNSECAPP_DONT_CHECK_ACCESS = 2
+} WBEM_UNSECAPP_FLAG_TYPE;
+typedef enum tag_WBEM_INFORMATION_FLAG_TYPE {
+    WBEM_FLAG_SHORT_NAME = 0x1,
+    WBEM_FLAG_LONG_NAME = 0x2
+} WBEM_INFORMATION_FLAG_TYPE;
+typedef struct tag_CompileStatusInfo {
+    LONG lPhaseError;
+    HRESULT hRes;
+    LONG ObjectNum;
+    LONG FirstLine;
+    LONG LastLine;
+    DWORD dwOutFlags;
+} WBEM_COMPILE_STATUS_INFO;
+typedef LONG CIMTYPE;
+/*****************************************************************************
+ * WbemBackupRestore coclass
+ */
 
-  typedef enum tag_CIMTYPE_ENUMERATION {
-    CIM_ILLEGAL = 0xfff,CIM_EMPTY = 0,CIM_SINT8 = 16,CIM_UINT8 = 17,CIM_SINT16 = 2,CIM_UINT16 = 18,CIM_SINT32 = 3,CIM_UINT32 = 19,CIM_SINT64 = 20,
-    CIM_UINT64 = 21,CIM_REAL32 = 4,CIM_REAL64 = 5,CIM_BOOLEAN = 11,CIM_STRING = 8,CIM_DATETIME = 101,CIM_REFERENCE = 102,CIM_CHAR16 = 103,
-    CIM_OBJECT = 13,CIM_FLAG_ARRAY = 0x2000
-  } CIMTYPE_ENUMERATION;
+DEFINE_GUID(CLSID_WbemBackupRestore, 0xc49e32c6, 0xbc8b, 0x11d2, 0x85,0xd4, 0x00,0x10,0x5a,0x1f,0x83,0x04);
 
-  typedef enum tag_WBEM_BACKUP_RESTORE_FLAGS {
-    WBEM_FLAG_BACKUP_RESTORE_DEFAULT = 0,WBEM_FLAG_BACKUP_RESTORE_FORCE_SHUTDOWN = 1
-  } WBEM_BACKUP_RESTORE_FLAGS;
+#ifdef __cplusplus
+class DECLSPEC_UUID("c49e32c6-bc8b-11d2-85d4-00105a1f8304") WbemBackupRestore;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemBackupRestore, 0xc49e32c6, 0xbc8b, 0x11d2, 0x85,0xd4, 0x00,0x10,0x5a,0x1f,0x83,0x04)
+#endif
+#endif
 
-  typedef enum tag_WBEM_REFRESHER_FLAGS {
-    WBEM_FLAG_REFRESH_AUTO_RECONNECT = 0,WBEM_FLAG_REFRESH_NO_AUTO_RECONNECT = 1
-  } WBEM_REFRESHER_FLAGS;
+/*****************************************************************************
+ * WbemClassObject coclass
+ */
 
-  typedef enum tag_WBEM_SHUTDOWN_FLAGS {
-    WBEM_SHUTDOWN_UNLOAD_COMPONENT = 1,WBEM_SHUTDOWN_WMI = 2,WBEM_SHUTDOWN_OS = 3
-  } WBEM_SHUTDOWN_FLAGS;
+DEFINE_GUID(CLSID_WbemClassObject, 0x9a653086, 0x174f, 0x11d2, 0xb5,0xf9, 0x00,0x10,0x4b,0x70,0x3e,0xfd);
 
-  typedef __LONG32 CIMTYPE;
+#ifdef __cplusplus
+class DECLSPEC_UUID("9a653086-174f-11d2-b5f9-00104b703efd") WbemClassObject;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemClassObject, 0x9a653086, 0x174f, 0x11d2, 0xb5,0xf9, 0x00,0x10,0x4b,0x70,0x3e,0xfd)
+#endif
+#endif
 
-  typedef enum tag_WBEMSTATUS_FORMAT {
-    WBEMSTATUS_FORMAT_NEWLINE = 0,WBEMSTATUS_FORMAT_NO_NEWLINE = 1
-  } WBEMSTATUS_FORMAT;
+/*****************************************************************************
+ * WbemContext coclass
+ */
 
-  typedef enum tag_WBEM_LIMITS {
-    WBEM_MAX_IDENTIFIER = 0x1000,WBEM_MAX_QUERY = 0x4000,WBEM_MAX_PATH = 0x2000,WBEM_MAX_OBJECT_NESTING = 64,WBEM_MAX_USER_PROPERTIES = 1024
-  } WBEM_LIMITS;
+DEFINE_GUID(CLSID_WbemContext, 0x674b6698, 0xee92, 0x11d0, 0xad,0x71, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
 
-  typedef enum tag_WBEMSTATUS {
-    WBEM_NO_ERROR = 0,WBEM_S_NO_ERROR = 0,WBEM_S_SAME = 0,WBEM_S_FALSE = 1,WBEM_S_ALREADY_EXISTS = 0x40001,WBEM_S_RESET_TO_DEFAULT = 0x40002,
-    WBEM_S_DIFFERENT = 0x40003,WBEM_S_TIMEDOUT = 0x40004,WBEM_S_NO_MORE_DATA = 0x40005,WBEM_S_OPERATION_CANCELLED = 0x40006,WBEM_S_PENDING = 0x40007,
-    WBEM_S_DUPLICATE_OBJECTS = 0x40008,WBEM_S_ACCESS_DENIED = 0x40009,WBEM_S_PARTIAL_RESULTS = 0x40010,WBEM_S_SOURCE_NOT_AVAILABLE = 0x40017,
-    WBEM_E_FAILED = 0x80041001,WBEM_E_NOT_FOUND = 0x80041002,WBEM_E_ACCESS_DENIED = 0x80041003,WBEM_E_PROVIDER_FAILURE = 0x80041004,
-    WBEM_E_TYPE_MISMATCH = 0x80041005,WBEM_E_OUT_OF_MEMORY = 0x80041006,WBEM_E_INVALID_CONTEXT = 0x80041007,WBEM_E_INVALID_PARAMETER = 0x80041008,
-    WBEM_E_NOT_AVAILABLE = 0x80041009,WBEM_E_CRITICAL_ERROR = 0x8004100a,WBEM_E_INVALID_STREAM = 0x8004100b,WBEM_E_NOT_SUPPORTED = 0x8004100c,
-    WBEM_E_INVALID_SUPERCLASS = 0x8004100d,WBEM_E_INVALID_NAMESPACE = 0x8004100e,WBEM_E_INVALID_OBJECT = 0x8004100f,WBEM_E_INVALID_CLASS = 0x80041010,
-    WBEM_E_PROVIDER_NOT_FOUND = 0x80041011,WBEM_E_INVALID_PROVIDER_REGISTRATION = 0x80041012,WBEM_E_PROVIDER_LOAD_FAILURE = 0x80041013,
-    WBEM_E_INITIALIZATION_FAILURE = 0x80041014,WBEM_E_TRANSPORT_FAILURE = 0x80041015,WBEM_E_INVALID_OPERATION = 0x80041016,
-    WBEM_E_INVALID_QUERY = 0x80041017,WBEM_E_INVALID_QUERY_TYPE = 0x80041018,WBEM_E_ALREADY_EXISTS = 0x80041019,WBEM_E_OVERRIDE_NOT_ALLOWED = 0x8004101a,
-    WBEM_E_PROPAGATED_QUALIFIER = 0x8004101b,WBEM_E_PROPAGATED_PROPERTY = 0x8004101c,WBEM_E_UNEXPECTED = 0x8004101d,WBEM_E_ILLEGAL_OPERATION = 0x8004101e,
-    WBEM_E_CANNOT_BE_KEY = 0x8004101f,WBEM_E_INCOMPLETE_CLASS = 0x80041020,WBEM_E_INVALID_SYNTAX = 0x80041021,WBEM_E_NONDECORATED_OBJECT = 0x80041022,
-    WBEM_E_READ_ONLY = 0x80041023,WBEM_E_PROVIDER_NOT_CAPABLE = 0x80041024,WBEM_E_CLASS_HAS_CHILDREN = 0x80041025,
-    WBEM_E_CLASS_HAS_INSTANCES = 0x80041026,WBEM_E_QUERY_NOT_IMPLEMENTED = 0x80041027,WBEM_E_ILLEGAL_NULL = 0x80041028,
-    WBEM_E_INVALID_QUALIFIER_TYPE = 0x80041029,WBEM_E_INVALID_PROPERTY_TYPE = 0x8004102a,WBEM_E_VALUE_OUT_OF_RANGE = 0x8004102b,
-    WBEM_E_CANNOT_BE_SINGLETON = 0x8004102c,WBEM_E_INVALID_CIM_TYPE = 0x8004102d,WBEM_E_INVALID_METHOD = 0x8004102e,
-    WBEM_E_INVALID_METHOD_PARAMETERS = 0x8004102f,WBEM_E_SYSTEM_PROPERTY = 0x80041030,WBEM_E_INVALID_PROPERTY = 0x80041031,
-    WBEM_E_CALL_CANCELLED = 0x80041032,WBEM_E_SHUTTING_DOWN = 0x80041033,WBEM_E_PROPAGATED_METHOD = 0x80041034,
-    WBEM_E_UNSUPPORTED_PARAMETER = 0x80041035,WBEM_E_MISSING_PARAMETER_ID = 0x80041036,WBEM_E_INVALID_PARAMETER_ID = 0x80041037,
-    WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = 0x80041038,WBEM_E_PARAMETER_ID_ON_RETVAL = 0x80041039,WBEM_E_INVALID_OBJECT_PATH = 0x8004103a,
-    WBEM_E_OUT_OF_DISK_SPACE = 0x8004103b,WBEM_E_BUFFER_TOO_SMALL = 0x8004103c,WBEM_E_UNSUPPORTED_PUT_EXTENSION = 0x8004103d,
-    WBEM_E_UNKNOWN_OBJECT_TYPE = 0x8004103e,WBEM_E_UNKNOWN_PACKET_TYPE = 0x8004103f,WBEM_E_MARSHAL_VERSION_MISMATCH = 0x80041040,
-    WBEM_E_MARSHAL_INVALID_SIGNATURE = 0x80041041,WBEM_E_INVALID_QUALIFIER = 0x80041042,WBEM_E_INVALID_DUPLICATE_PARAMETER = 0x80041043,
-    WBEM_E_TOO_MUCH_DATA = 0x80041044,WBEM_E_SERVER_TOO_BUSY = 0x80041045,WBEM_E_INVALID_FLAVOR = 0x80041046,WBEM_E_CIRCULAR_REFERENCE = 0x80041047,
-    WBEM_E_UNSUPPORTED_CLASS_UPDATE = 0x80041048,WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = 0x80041049,WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = 0x80041050,
-    WBEM_E_TOO_MANY_PROPERTIES = 0x80041051,WBEM_E_UPDATE_TYPE_MISMATCH = 0x80041052,WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = 0x80041053,
-    WBEM_E_UPDATE_PROPAGATED_METHOD = 0x80041054,WBEM_E_METHOD_NOT_IMPLEMENTED = 0x80041055,WBEM_E_METHOD_DISABLED = 0x80041056,
-    WBEM_E_REFRESHER_BUSY = 0x80041057,WBEM_E_UNPARSABLE_QUERY = 0x80041058,WBEM_E_NOT_EVENT_CLASS = 0x80041059,WBEM_E_MISSING_GROUP_WITHIN = 0x8004105a,
-    WBEM_E_MISSING_AGGREGATION_LIST = 0x8004105b,WBEM_E_PROPERTY_NOT_AN_OBJECT = 0x8004105c,WBEM_E_AGGREGATING_BY_OBJECT = 0x8004105d,
-    WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = 0x8004105f,WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = 0x80041060,WBEM_E_QUEUE_OVERFLOW = 0x80041061,
-    WBEM_E_PRIVILEGE_NOT_HELD = 0x80041062,WBEM_E_INVALID_OPERATOR = 0x80041063,WBEM_E_LOCAL_CREDENTIALS = 0x80041064,
-    WBEM_E_CANNOT_BE_ABSTRACT = 0x80041065,WBEM_E_AMENDED_OBJECT = 0x80041066,WBEM_E_CLIENT_TOO_SLOW = 0x80041067,
-    WBEM_E_NULL_SECURITY_DESCRIPTOR = 0x80041068,WBEM_E_TIMED_OUT = 0x80041069,WBEM_E_INVALID_ASSOCIATION = 0x8004106a,
-    WBEM_E_AMBIGUOUS_OPERATION = 0x8004106b,WBEM_E_QUOTA_VIOLATION = 0x8004106c,WBEM_E_RESERVED_001 = 0x8004106d,WBEM_E_RESERVED_002 = 0x8004106e,
-    WBEM_E_UNSUPPORTED_LOCALE = 0x8004106f,WBEM_E_HANDLE_OUT_OF_DATE = 0x80041070,WBEM_E_CONNECTION_FAILED = 0x80041071,
-    WBEM_E_INVALID_HANDLE_REQUEST = 0x80041072,WBEM_E_PROPERTY_NAME_TOO_WIDE = 0x80041073,WBEM_E_CLASS_NAME_TOO_WIDE = 0x80041074,
-    WBEM_E_METHOD_NAME_TOO_WIDE = 0x80041075,WBEM_E_QUALIFIER_NAME_TOO_WIDE = 0x80041076,WBEM_E_RERUN_COMMAND = 0x80041077,
-    WBEM_E_DATABASE_VER_MISMATCH = 0x80041078,WBEM_E_VETO_DELETE = 0x80041079,WBEM_E_VETO_PUT = 0x8004107a,WBEM_E_INVALID_LOCALE = 0x80041080,
-    WBEM_E_PROVIDER_SUSPENDED = 0x80041081,WBEM_E_SYNCHRONIZATION_REQUIRED = 0x80041082,WBEM_E_NO_SCHEMA = 0x80041083,
-    WBEM_E_PROVIDER_ALREADY_REGISTERED = 0x80041084,WBEM_E_PROVIDER_NOT_REGISTERED = 0x80041085,WBEM_E_FATAL_TRANSPORT_ERROR = 0x80041086,
-    WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = 0x80041087,WBEM_E_PROVIDER_TIMED_OUT = 0x80041088,WBEM_E_NO_KEY = 0x80041089,
-    WBEM_E_PROVIDER_DISABLED = 0x8004108a,WBEMESS_E_REGISTRATION_TOO_BROAD = 0x80042001,WBEMESS_E_REGISTRATION_TOO_PRECISE = 0x80042002,
-    WBEMESS_E_AUTHZ_NOT_PRIVILEGED = 0x80042003,WBEMMOF_E_EXPECTED_QUALIFIER_NAME = 0x80044001,WBEMMOF_E_EXPECTED_SEMI = 0x80044002,
-    WBEMMOF_E_EXPECTED_OPEN_BRACE = 0x80044003,WBEMMOF_E_EXPECTED_CLOSE_BRACE = 0x80044004,WBEMMOF_E_EXPECTED_CLOSE_BRACKET = 0x80044005,
-    WBEMMOF_E_EXPECTED_CLOSE_PAREN = 0x80044006,WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = 0x80044007,WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = 0x80044008,
-    WBEMMOF_E_EXPECTED_OPEN_PAREN = 0x80044009,WBEMMOF_E_UNRECOGNIZED_TOKEN = 0x8004400a,WBEMMOF_E_UNRECOGNIZED_TYPE = 0x8004400b,
-    WBEMMOF_E_EXPECTED_PROPERTY_NAME = 0x8004400c,WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = 0x8004400d,WBEMMOF_E_UNEXPECTED_ALIAS = 0x8004400e,
-    WBEMMOF_E_UNEXPECTED_ARRAY_INIT = 0x8004400f,WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = 0x80044010,WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = 0x80044011,
-    WBEMMOF_E_INVALID_PRAGMA = 0x80044012,WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = 0x80044013,WBEMMOF_E_EXPECTED_CLASS_NAME = 0x80044014,
-    WBEMMOF_E_TYPE_MISMATCH = 0x80044015,WBEMMOF_E_EXPECTED_ALIAS_NAME = 0x80044016,WBEMMOF_E_INVALID_CLASS_DECLARATION = 0x80044017,
-    WBEMMOF_E_INVALID_INSTANCE_DECLARATION = 0x80044018,WBEMMOF_E_EXPECTED_DOLLAR = 0x80044019,WBEMMOF_E_CIMTYPE_QUALIFIER = 0x8004401a,
-    WBEMMOF_E_DUPLICATE_PROPERTY = 0x8004401b,WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = 0x8004401c,WBEMMOF_E_OUT_OF_RANGE = 0x8004401d,
-    WBEMMOF_E_INVALID_FILE = 0x8004401e,WBEMMOF_E_ALIASES_IN_EMBEDDED = 0x8004401f,WBEMMOF_E_NULL_ARRAY_ELEM = 0x80044020,
-    WBEMMOF_E_DUPLICATE_QUALIFIER = 0x80044021,WBEMMOF_E_EXPECTED_FLAVOR_TYPE = 0x80044022,WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = 0x80044023,
-    WBEMMOF_E_MULTIPLE_ALIASES = 0x80044024,WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = 0x80044025,WBEMMOF_E_NO_ARRAYS_RETURNED = 0x80044026,
-    WBEMMOF_E_MUST_BE_IN_OR_OUT = 0x80044027,WBEMMOF_E_INVALID_FLAGS_SYNTAX = 0x80044028,WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = 0x80044029,
-    WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = 0x8004402a,WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = 0x8004402b,
-    WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = 0x8004402c,WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = 0x8004402d,
-    WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = 0x8004402e,WBEMMOF_E_ERROR_CREATING_TEMP_FILE = 0x8004402f,
-    WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = 0x80044030,WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = 0x80044031
-  } WBEMSTATUS;
+#ifdef __cplusplus
+class DECLSPEC_UUID("674b6698-ee92-11d0-ad71-00c04fd8fdff") WbemContext;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemContext, 0x674b6698, 0xee92, 0x11d0, 0xad,0x71, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
+#endif
 
-  EXTERN_C const IID LIBID_WbemClient_v1;
+/*****************************************************************************
+ * WbemLocator coclass
+ */
+
+DEFINE_GUID(CLSID_WbemLocator, 0x4590f811, 0x1d3a, 0x11d0, 0x89,0x1f, 0x00,0xaa,0x00,0x4b,0x2e,0x24);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("4590f811-1d3a-11d0-891f-00aa004b2e24") WbemLocator;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemLocator, 0x4590f811, 0x1d3a, 0x11d0, 0x89,0x1f, 0x00,0xaa,0x00,0x4b,0x2e,0x24)
+#endif
+#endif
+
+/*****************************************************************************
+ * WbemStatusCodeText coclass
+ */
+
+DEFINE_GUID(CLSID_WbemStatusCodeText, 0xeb87e1bd, 0x3233, 0x11d2, 0xae,0xc9, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("eb87e1bd-3233-11d2-aec9-00c04fb68820") WbemStatusCodeText;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemStatusCodeText, 0xeb87e1bd, 0x3233, 0x11d2, 0xae,0xc9, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
+#endif
+
+/*****************************************************************************
+ * UnsecuredApartment coclass
+ */
+
+DEFINE_GUID(CLSID_UnsecuredApartment, 0x49bd2028, 0x1523, 0x11d1, 0xad,0x79, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("49bd2028-1523-11d1-ad79-00c04fd8fdff") UnsecuredApartment;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(UnsecuredApartment, 0x49bd2028, 0x1523, 0x11d1, 0xad,0x79, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
+#endif
+
+/*****************************************************************************
+ * MofCompiler coclass
+ */
+
+DEFINE_GUID(CLSID_MofCompiler, 0x6daf9757, 0x2e37, 0x11d2, 0xae,0xc9, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("6daf9757-2e37-11d2-aec9-00c04fb68820") MofCompiler;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(MofCompiler, 0x6daf9757, 0x2e37, 0x11d2, 0xae,0xc9, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
+#endif
+
+/*****************************************************************************
+ * WbemObjectTextSrc coclass
+ */
+
+DEFINE_GUID(CLSID_WbemObjectTextSrc, 0x8d1c559d, 0x84f0, 0x4bb3, 0xa7,0xd5, 0x56,0xa7,0x43,0x5a,0x9b,0xa6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("8d1c559d-84f0-4bb3-a7d5-56a7435a9ba6") WbemObjectTextSrc;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemObjectTextSrc, 0x8d1c559d, 0x84f0, 0x4bb3, 0xa7,0xd5, 0x56,0xa7,0x43,0x5a,0x9b,0xa6)
+#endif
+#endif
+
+/*****************************************************************************
+ * WbemRefresher coclass
+ */
+
+DEFINE_GUID(CLSID_WbemRefresher, 0xc71566f2, 0x561e, 0x11d1, 0xad,0x87, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("c71566f2-561e-11d1-ad87-00c04fd8fdff") WbemRefresher;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemRefresher, 0xc71566f2, 0x561e, 0x11d1, 0xad,0x87, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
+#endif
+
+/*****************************************************************************
+ * IWbemClassObject interface
+ */
 #ifndef __IWbemClassObject_INTERFACE_DEFINED__
 #define __IWbemClassObject_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemClassObject;
+
+DEFINE_GUID(IID_IWbemClassObject, 0xdc12a681, 0x737f, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemClassObject : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetQualifierSet(IWbemQualifierSet **ppQualSet) = 0;
-    virtual HRESULT WINAPI Get(LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,CIMTYPE *pType,__LONG32 *plFlavor) = 0;
-    virtual HRESULT WINAPI Put(LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,CIMTYPE Type) = 0;
-    virtual HRESULT WINAPI Delete(LPCWSTR wszName) = 0;
-    virtual HRESULT WINAPI GetNames(LPCWSTR wszQualifierName,__LONG32 lFlags,VARIANT *pQualifierVal,SAFEARRAY **pNames) = 0;
-    virtual HRESULT WINAPI BeginEnumeration(__LONG32 lEnumFlags) = 0;
-    virtual HRESULT WINAPI Next(__LONG32 lFlags,BSTR *strName,VARIANT *pVal,CIMTYPE *pType,__LONG32 *plFlavor) = 0;
-    virtual HRESULT WINAPI EndEnumeration(void) = 0;
-    virtual HRESULT WINAPI GetPropertyQualifierSet(LPCWSTR wszProperty,IWbemQualifierSet **ppQualSet) = 0;
-    virtual HRESULT WINAPI Clone(IWbemClassObject **ppCopy) = 0;
-    virtual HRESULT WINAPI GetObjectText(__LONG32 lFlags,BSTR *pstrObjectText) = 0;
-    virtual HRESULT WINAPI SpawnDerivedClass(__LONG32 lFlags,IWbemClassObject **ppNewClass) = 0;
-    virtual HRESULT WINAPI SpawnInstance(__LONG32 lFlags,IWbemClassObject **ppNewInstance) = 0;
-    virtual HRESULT WINAPI CompareTo(__LONG32 lFlags,IWbemClassObject *pCompareTo) = 0;
-    virtual HRESULT WINAPI GetPropertyOrigin(LPCWSTR wszName,BSTR *pstrClassName) = 0;
-    virtual HRESULT WINAPI InheritsFrom(LPCWSTR strAncestor) = 0;
-    virtual HRESULT WINAPI GetMethod(LPCWSTR wszName,__LONG32 lFlags,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) = 0;
-    virtual HRESULT WINAPI PutMethod(LPCWSTR wszName,__LONG32 lFlags,IWbemClassObject *pInSignature,IWbemClassObject *pOutSignature) = 0;
-    virtual HRESULT WINAPI DeleteMethod(LPCWSTR wszName) = 0;
-    virtual HRESULT WINAPI BeginMethodEnumeration(__LONG32 lEnumFlags) = 0;
-    virtual HRESULT WINAPI NextMethod(__LONG32 lFlags,BSTR *pstrName,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) = 0;
-    virtual HRESULT WINAPI EndMethodEnumeration(void) = 0;
-    virtual HRESULT WINAPI GetMethodQualifierSet(LPCWSTR wszMethod,IWbemQualifierSet **ppQualSet) = 0;
-    virtual HRESULT WINAPI GetMethodOrigin(LPCWSTR wszMethodName,BSTR *pstrClassName) = 0;
-  };
+MIDL_INTERFACE("dc12a681-737f-11cf-884d-00aa004b2e24")
+IWbemClassObject : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetQualifierSet(
+        IWbemQualifierSet **ppQualSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Get(
+        LPCWSTR wszName,
+        LONG lFlags,
+        VARIANT *pVal,
+        CIMTYPE *pType,
+        LONG *plFlavor) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Put(
+        LPCWSTR wszName,
+        LONG lFlags,
+        VARIANT *pVal,
+        CIMTYPE Type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Delete(
+        LPCWSTR wszName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNames(
+        LPCWSTR wszQualifierName,
+        LONG lFlags,
+        VARIANT *pQualifierVal,
+        SAFEARRAY **pNames) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginEnumeration(
+        LONG lEnumFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        LONG lFlags,
+        BSTR *strName,
+        VARIANT *pVal,
+        CIMTYPE *pType,
+        LONG *plFlavor) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndEnumeration(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPropertyQualifierSet(
+        LPCWSTR wszProperty,
+        IWbemQualifierSet **ppQualSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IWbemClassObject **ppCopy) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetObjectText(
+        LONG lFlags,
+        BSTR *pstrObjectText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SpawnDerivedClass(
+        LONG lFlags,
+        IWbemClassObject **ppNewClass) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SpawnInstance(
+        LONG lFlags,
+        IWbemClassObject **ppNewInstance) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CompareTo(
+        LONG lFlags,
+        IWbemClassObject *pCompareTo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPropertyOrigin(
+        LPCWSTR wszName,
+        BSTR *pstrClassName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InheritsFrom(
+        LPCWSTR strAncestor) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMethod(
+        LPCWSTR wszName,
+        LONG lFlags,
+        IWbemClassObject **ppInSignature,
+        IWbemClassObject **ppOutSignature) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PutMethod(
+        LPCWSTR wszName,
+        LONG lFlags,
+        IWbemClassObject *pInSignature,
+        IWbemClassObject *pOutSignature) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteMethod(
+        LPCWSTR wszName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginMethodEnumeration(
+        LONG lEnumFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NextMethod(
+        LONG lFlags,
+        BSTR *pstrName,
+        IWbemClassObject **ppInSignature,
+        IWbemClassObject **ppOutSignature) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndMethodEnumeration(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMethodQualifierSet(
+        LPCWSTR wszMethod,
+        IWbemQualifierSet **ppQualSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMethodOrigin(
+        LPCWSTR wszMethodName,
+        BSTR *pstrClassName) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemClassObject, 0xdc12a681, 0x737f, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24)
+#endif
 #else
-  typedef struct IWbemClassObjectVtbl {
+typedef struct IWbemClassObjectVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemClassObject *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemClassObject *This);
-      ULONG (WINAPI *Release)(IWbemClassObject *This);
-      HRESULT (WINAPI *GetQualifierSet)(IWbemClassObject *This,IWbemQualifierSet **ppQualSet);
-      HRESULT (WINAPI *Get)(IWbemClassObject *This,LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,CIMTYPE *pType,__LONG32 *plFlavor);
-      HRESULT (WINAPI *Put)(IWbemClassObject *This,LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,CIMTYPE Type);
-      HRESULT (WINAPI *Delete)(IWbemClassObject *This,LPCWSTR wszName);
-      HRESULT (WINAPI *GetNames)(IWbemClassObject *This,LPCWSTR wszQualifierName,__LONG32 lFlags,VARIANT *pQualifierVal,SAFEARRAY **pNames);
-      HRESULT (WINAPI *BeginEnumeration)(IWbemClassObject *This,__LONG32 lEnumFlags);
-      HRESULT (WINAPI *Next)(IWbemClassObject *This,__LONG32 lFlags,BSTR *strName,VARIANT *pVal,CIMTYPE *pType,__LONG32 *plFlavor);
-      HRESULT (WINAPI *EndEnumeration)(IWbemClassObject *This);
-      HRESULT (WINAPI *GetPropertyQualifierSet)(IWbemClassObject *This,LPCWSTR wszProperty,IWbemQualifierSet **ppQualSet);
-      HRESULT (WINAPI *Clone)(IWbemClassObject *This,IWbemClassObject **ppCopy);
-      HRESULT (WINAPI *GetObjectText)(IWbemClassObject *This,__LONG32 lFlags,BSTR *pstrObjectText);
-      HRESULT (WINAPI *SpawnDerivedClass)(IWbemClassObject *This,__LONG32 lFlags,IWbemClassObject **ppNewClass);
-      HRESULT (WINAPI *SpawnInstance)(IWbemClassObject *This,__LONG32 lFlags,IWbemClassObject **ppNewInstance);
-      HRESULT (WINAPI *CompareTo)(IWbemClassObject *This,__LONG32 lFlags,IWbemClassObject *pCompareTo);
-      HRESULT (WINAPI *GetPropertyOrigin)(IWbemClassObject *This,LPCWSTR wszName,BSTR *pstrClassName);
-      HRESULT (WINAPI *InheritsFrom)(IWbemClassObject *This,LPCWSTR strAncestor);
-      HRESULT (WINAPI *GetMethod)(IWbemClassObject *This,LPCWSTR wszName,__LONG32 lFlags,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature);
-      HRESULT (WINAPI *PutMethod)(IWbemClassObject *This,LPCWSTR wszName,__LONG32 lFlags,IWbemClassObject *pInSignature,IWbemClassObject *pOutSignature);
-      HRESULT (WINAPI *DeleteMethod)(IWbemClassObject *This,LPCWSTR wszName);
-      HRESULT (WINAPI *BeginMethodEnumeration)(IWbemClassObject *This,__LONG32 lEnumFlags);
-      HRESULT (WINAPI *NextMethod)(IWbemClassObject *This,__LONG32 lFlags,BSTR *pstrName,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature);
-      HRESULT (WINAPI *EndMethodEnumeration)(IWbemClassObject *This);
-      HRESULT (WINAPI *GetMethodQualifierSet)(IWbemClassObject *This,LPCWSTR wszMethod,IWbemQualifierSet **ppQualSet);
-      HRESULT (WINAPI *GetMethodOrigin)(IWbemClassObject *This,LPCWSTR wszMethodName,BSTR *pstrClassName);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemClassObject* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemClassObject* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemClassObject* This);
+
+    /*** IWbemClassObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetQualifierSet)(
+        IWbemClassObject* This,
+        IWbemQualifierSet **ppQualSet);
+
+    HRESULT (STDMETHODCALLTYPE *Get)(
+        IWbemClassObject* This,
+        LPCWSTR wszName,
+        LONG lFlags,
+        VARIANT *pVal,
+        CIMTYPE *pType,
+        LONG *plFlavor);
+
+    HRESULT (STDMETHODCALLTYPE *Put)(
+        IWbemClassObject* This,
+        LPCWSTR wszName,
+        LONG lFlags,
+        VARIANT *pVal,
+        CIMTYPE Type);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IWbemClassObject* This,
+        LPCWSTR wszName);
+
+    HRESULT (STDMETHODCALLTYPE *GetNames)(
+        IWbemClassObject* This,
+        LPCWSTR wszQualifierName,
+        LONG lFlags,
+        VARIANT *pQualifierVal,
+        SAFEARRAY **pNames);
+
+    HRESULT (STDMETHODCALLTYPE *BeginEnumeration)(
+        IWbemClassObject* This,
+        LONG lEnumFlags);
+
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IWbemClassObject* This,
+        LONG lFlags,
+        BSTR *strName,
+        VARIANT *pVal,
+        CIMTYPE *pType,
+        LONG *plFlavor);
+
+    HRESULT (STDMETHODCALLTYPE *EndEnumeration)(
+        IWbemClassObject* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetPropertyQualifierSet)(
+        IWbemClassObject* This,
+        LPCWSTR wszProperty,
+        IWbemQualifierSet **ppQualSet);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IWbemClassObject* This,
+        IWbemClassObject **ppCopy);
+
+    HRESULT (STDMETHODCALLTYPE *GetObjectText)(
+        IWbemClassObject* This,
+        LONG lFlags,
+        BSTR *pstrObjectText);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnDerivedClass)(
+        IWbemClassObject* This,
+        LONG lFlags,
+        IWbemClassObject **ppNewClass);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnInstance)(
+        IWbemClassObject* This,
+        LONG lFlags,
+        IWbemClassObject **ppNewInstance);
+
+    HRESULT (STDMETHODCALLTYPE *CompareTo)(
+        IWbemClassObject* This,
+        LONG lFlags,
+        IWbemClassObject *pCompareTo);
+
+    HRESULT (STDMETHODCALLTYPE *GetPropertyOrigin)(
+        IWbemClassObject* This,
+        LPCWSTR wszName,
+        BSTR *pstrClassName);
+
+    HRESULT (STDMETHODCALLTYPE *InheritsFrom)(
+        IWbemClassObject* This,
+        LPCWSTR strAncestor);
+
+    HRESULT (STDMETHODCALLTYPE *GetMethod)(
+        IWbemClassObject* This,
+        LPCWSTR wszName,
+        LONG lFlags,
+        IWbemClassObject **ppInSignature,
+        IWbemClassObject **ppOutSignature);
+
+    HRESULT (STDMETHODCALLTYPE *PutMethod)(
+        IWbemClassObject* This,
+        LPCWSTR wszName,
+        LONG lFlags,
+        IWbemClassObject *pInSignature,
+        IWbemClassObject *pOutSignature);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteMethod)(
+        IWbemClassObject* This,
+        LPCWSTR wszName);
+
+    HRESULT (STDMETHODCALLTYPE *BeginMethodEnumeration)(
+        IWbemClassObject* This,
+        LONG lEnumFlags);
+
+    HRESULT (STDMETHODCALLTYPE *NextMethod)(
+        IWbemClassObject* This,
+        LONG lFlags,
+        BSTR *pstrName,
+        IWbemClassObject **ppInSignature,
+        IWbemClassObject **ppOutSignature);
+
+    HRESULT (STDMETHODCALLTYPE *EndMethodEnumeration)(
+        IWbemClassObject* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetMethodQualifierSet)(
+        IWbemClassObject* This,
+        LPCWSTR wszMethod,
+        IWbemQualifierSet **ppQualSet);
+
+    HRESULT (STDMETHODCALLTYPE *GetMethodOrigin)(
+        IWbemClassObject* This,
+        LPCWSTR wszMethodName,
+        BSTR *pstrClassName);
+
     END_INTERFACE
-  } IWbemClassObjectVtbl;
-  struct IWbemClassObject {
-    CONST_VTBL struct IWbemClassObjectVtbl *lpVtbl;
-  };
+} IWbemClassObjectVtbl;
+interface IWbemClassObject {
+    CONST_VTBL IWbemClassObjectVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemClassObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemClassObject_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemClassObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemClassObject methods ***/
 #define IWbemClassObject_GetQualifierSet(This,ppQualSet) (This)->lpVtbl->GetQualifierSet(This,ppQualSet)
 #define IWbemClassObject_Get(This,wszName,lFlags,pVal,pType,plFlavor) (This)->lpVtbl->Get(This,wszName,lFlags,pVal,pType,plFlavor)
 #define IWbemClassObject_Put(This,wszName,lFlags,pVal,Type) (This)->lpVtbl->Put(This,wszName,lFlags,pVal,Type)
@@ -555,218 +1139,430 @@
 #define IWbemClassObject_EndMethodEnumeration(This) (This)->lpVtbl->EndMethodEnumeration(This)
 #define IWbemClassObject_GetMethodQualifierSet(This,wszMethod,ppQualSet) (This)->lpVtbl->GetMethodQualifierSet(This,wszMethod,ppQualSet)
 #define IWbemClassObject_GetMethodOrigin(This,wszMethodName,pstrClassName) (This)->lpVtbl->GetMethodOrigin(This,wszMethodName,pstrClassName)
-#endif
-#endif
-  HRESULT WINAPI IWbemClassObject_GetQualifierSet_Proxy(IWbemClassObject *This,IWbemQualifierSet **ppQualSet);
-  void __RPC_STUB IWbemClassObject_GetQualifierSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_Get_Proxy(IWbemClassObject *This,LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,CIMTYPE *pType,__LONG32 *plFlavor);
-  void __RPC_STUB IWbemClassObject_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_Put_Proxy(IWbemClassObject *This,LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,CIMTYPE Type);
-  void __RPC_STUB IWbemClassObject_Put_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_Delete_Proxy(IWbemClassObject *This,LPCWSTR wszName);
-  void __RPC_STUB IWbemClassObject_Delete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_GetNames_Proxy(IWbemClassObject *This,LPCWSTR wszQualifierName,__LONG32 lFlags,VARIANT *pQualifierVal,SAFEARRAY **pNames);
-  void __RPC_STUB IWbemClassObject_GetNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_BeginEnumeration_Proxy(IWbemClassObject *This,__LONG32 lEnumFlags);
-  void __RPC_STUB IWbemClassObject_BeginEnumeration_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_Next_Proxy(IWbemClassObject *This,__LONG32 lFlags,BSTR *strName,VARIANT *pVal,CIMTYPE *pType,__LONG32 *plFlavor);
-  void __RPC_STUB IWbemClassObject_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_EndEnumeration_Proxy(IWbemClassObject *This);
-  void __RPC_STUB IWbemClassObject_EndEnumeration_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_GetPropertyQualifierSet_Proxy(IWbemClassObject *This,LPCWSTR wszProperty,IWbemQualifierSet **ppQualSet);
-  void __RPC_STUB IWbemClassObject_GetPropertyQualifierSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_Clone_Proxy(IWbemClassObject *This,IWbemClassObject **ppCopy);
-  void __RPC_STUB IWbemClassObject_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_GetObjectText_Proxy(IWbemClassObject *This,__LONG32 lFlags,BSTR *pstrObjectText);
-  void __RPC_STUB IWbemClassObject_GetObjectText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_SpawnDerivedClass_Proxy(IWbemClassObject *This,__LONG32 lFlags,IWbemClassObject **ppNewClass);
-  void __RPC_STUB IWbemClassObject_SpawnDerivedClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_SpawnInstance_Proxy(IWbemClassObject *This,__LONG32 lFlags,IWbemClassObject **ppNewInstance);
-  void __RPC_STUB IWbemClassObject_SpawnInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_CompareTo_Proxy(IWbemClassObject *This,__LONG32 lFlags,IWbemClassObject *pCompareTo);
-  void __RPC_STUB IWbemClassObject_CompareTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_GetPropertyOrigin_Proxy(IWbemClassObject *This,LPCWSTR wszName,BSTR *pstrClassName);
-  void __RPC_STUB IWbemClassObject_GetPropertyOrigin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_InheritsFrom_Proxy(IWbemClassObject *This,LPCWSTR strAncestor);
-  void __RPC_STUB IWbemClassObject_InheritsFrom_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_GetMethod_Proxy(IWbemClassObject *This,LPCWSTR wszName,__LONG32 lFlags,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature);
-  void __RPC_STUB IWbemClassObject_GetMethod_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_PutMethod_Proxy(IWbemClassObject *This,LPCWSTR wszName,__LONG32 lFlags,IWbemClassObject *pInSignature,IWbemClassObject *pOutSignature);
-  void __RPC_STUB IWbemClassObject_PutMethod_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_DeleteMethod_Proxy(IWbemClassObject *This,LPCWSTR wszName);
-  void __RPC_STUB IWbemClassObject_DeleteMethod_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_BeginMethodEnumeration_Proxy(IWbemClassObject *This,__LONG32 lEnumFlags);
-  void __RPC_STUB IWbemClassObject_BeginMethodEnumeration_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_NextMethod_Proxy(IWbemClassObject *This,__LONG32 lFlags,BSTR *pstrName,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature);
-  void __RPC_STUB IWbemClassObject_NextMethod_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_EndMethodEnumeration_Proxy(IWbemClassObject *This);
-  void __RPC_STUB IWbemClassObject_EndMethodEnumeration_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_GetMethodQualifierSet_Proxy(IWbemClassObject *This,LPCWSTR wszMethod,IWbemQualifierSet **ppQualSet);
-  void __RPC_STUB IWbemClassObject_GetMethodQualifierSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClassObject_GetMethodOrigin_Proxy(IWbemClassObject *This,LPCWSTR wszMethodName,BSTR *pstrClassName);
-  void __RPC_STUB IWbemClassObject_GetMethodOrigin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IWbemObjectAccess_INTERFACE_DEFINED__
-#define __IWbemObjectAccess_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemObjectAccess;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemObjectAccess : public IWbemClassObject {
-  public:
-    virtual HRESULT WINAPI GetPropertyHandle(LPCWSTR wszPropertyName,CIMTYPE *pType,__LONG32 *plHandle) = 0;
-    virtual HRESULT WINAPI WritePropertyValue(__LONG32 lHandle,__LONG32 lNumBytes,const byte *aData) = 0;
-    virtual HRESULT WINAPI ReadPropertyValue(__LONG32 lHandle,__LONG32 lBufferSize,__LONG32 *plNumBytes,byte *aData) = 0;
-    virtual HRESULT WINAPI ReadDWORD(__LONG32 lHandle,DWORD *pdw) = 0;
-    virtual HRESULT WINAPI WriteDWORD(__LONG32 lHandle,DWORD dw) = 0;
-    __MINGW_EXTENSION virtual HRESULT WINAPI ReadQWORD(__LONG32 lHandle,unsigned __int64 *pqw) = 0;
-    __MINGW_EXTENSION virtual HRESULT WINAPI WriteQWORD(__LONG32 lHandle,unsigned __int64 pw) = 0;
-    virtual HRESULT WINAPI GetPropertyInfoByHandle(__LONG32 lHandle,BSTR *pstrName,CIMTYPE *pType) = 0;
-    virtual HRESULT WINAPI Lock(__LONG32 lFlags) = 0;
-    virtual HRESULT WINAPI Unlock(__LONG32 lFlags) = 0;
-  };
 #else
-  typedef struct IWbemObjectAccessVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemObjectAccess *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemObjectAccess *This);
-      ULONG (WINAPI *Release)(IWbemObjectAccess *This);
-      HRESULT (WINAPI *GetQualifierSet)(IWbemObjectAccess *This,IWbemQualifierSet **ppQualSet);
-      HRESULT (WINAPI *Get)(IWbemObjectAccess *This,LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,CIMTYPE *pType,__LONG32 *plFlavor);
-      HRESULT (WINAPI *Put)(IWbemObjectAccess *This,LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,CIMTYPE Type);
-      HRESULT (WINAPI *Delete)(IWbemObjectAccess *This,LPCWSTR wszName);
-      HRESULT (WINAPI *GetNames)(IWbemObjectAccess *This,LPCWSTR wszQualifierName,__LONG32 lFlags,VARIANT *pQualifierVal,SAFEARRAY **pNames);
-      HRESULT (WINAPI *BeginEnumeration)(IWbemObjectAccess *This,__LONG32 lEnumFlags);
-      HRESULT (WINAPI *Next)(IWbemObjectAccess *This,__LONG32 lFlags,BSTR *strName,VARIANT *pVal,CIMTYPE *pType,__LONG32 *plFlavor);
-      HRESULT (WINAPI *EndEnumeration)(IWbemObjectAccess *This);
-      HRESULT (WINAPI *GetPropertyQualifierSet)(IWbemObjectAccess *This,LPCWSTR wszProperty,IWbemQualifierSet **ppQualSet);
-      HRESULT (WINAPI *Clone)(IWbemObjectAccess *This,IWbemClassObject **ppCopy);
-      HRESULT (WINAPI *GetObjectText)(IWbemObjectAccess *This,__LONG32 lFlags,BSTR *pstrObjectText);
-      HRESULT (WINAPI *SpawnDerivedClass)(IWbemObjectAccess *This,__LONG32 lFlags,IWbemClassObject **ppNewClass);
-      HRESULT (WINAPI *SpawnInstance)(IWbemObjectAccess *This,__LONG32 lFlags,IWbemClassObject **ppNewInstance);
-      HRESULT (WINAPI *CompareTo)(IWbemObjectAccess *This,__LONG32 lFlags,IWbemClassObject *pCompareTo);
-      HRESULT (WINAPI *GetPropertyOrigin)(IWbemObjectAccess *This,LPCWSTR wszName,BSTR *pstrClassName);
-      HRESULT (WINAPI *InheritsFrom)(IWbemObjectAccess *This,LPCWSTR strAncestor);
-      HRESULT (WINAPI *GetMethod)(IWbemObjectAccess *This,LPCWSTR wszName,__LONG32 lFlags,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature);
-      HRESULT (WINAPI *PutMethod)(IWbemObjectAccess *This,LPCWSTR wszName,__LONG32 lFlags,IWbemClassObject *pInSignature,IWbemClassObject *pOutSignature);
-      HRESULT (WINAPI *DeleteMethod)(IWbemObjectAccess *This,LPCWSTR wszName);
-      HRESULT (WINAPI *BeginMethodEnumeration)(IWbemObjectAccess *This,__LONG32 lEnumFlags);
-      HRESULT (WINAPI *NextMethod)(IWbemObjectAccess *This,__LONG32 lFlags,BSTR *pstrName,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature);
-      HRESULT (WINAPI *EndMethodEnumeration)(IWbemObjectAccess *This);
-      HRESULT (WINAPI *GetMethodQualifierSet)(IWbemObjectAccess *This,LPCWSTR wszMethod,IWbemQualifierSet **ppQualSet);
-      HRESULT (WINAPI *GetMethodOrigin)(IWbemObjectAccess *This,LPCWSTR wszMethodName,BSTR *pstrClassName);
-      HRESULT (WINAPI *GetPropertyHandle)(IWbemObjectAccess *This,LPCWSTR wszPropertyName,CIMTYPE *pType,__LONG32 *plHandle);
-      HRESULT (WINAPI *WritePropertyValue)(IWbemObjectAccess *This,__LONG32 lHandle,__LONG32 lNumBytes,const byte *aData);
-      HRESULT (WINAPI *ReadPropertyValue)(IWbemObjectAccess *This,__LONG32 lHandle,__LONG32 lBufferSize,__LONG32 *plNumBytes,byte *aData);
-      HRESULT (WINAPI *ReadDWORD)(IWbemObjectAccess *This,__LONG32 lHandle,DWORD *pdw);
-      HRESULT (WINAPI *WriteDWORD)(IWbemObjectAccess *This,__LONG32 lHandle,DWORD dw);
-      __MINGW_EXTENSION HRESULT (WINAPI *ReadQWORD)(IWbemObjectAccess *This,__LONG32 lHandle,unsigned __int64 *pqw);
-      __MINGW_EXTENSION HRESULT (WINAPI *WriteQWORD)(IWbemObjectAccess *This,__LONG32 lHandle,unsigned __int64 pw);
-      HRESULT (WINAPI *GetPropertyInfoByHandle)(IWbemObjectAccess *This,__LONG32 lHandle,BSTR *pstrName,CIMTYPE *pType);
-      HRESULT (WINAPI *Lock)(IWbemObjectAccess *This,__LONG32 lFlags);
-      HRESULT (WINAPI *Unlock)(IWbemObjectAccess *This,__LONG32 lFlags);
-    END_INTERFACE
-  } IWbemObjectAccessVtbl;
-  struct IWbemObjectAccess {
-    CONST_VTBL struct IWbemObjectAccessVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemObjectAccess_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemObjectAccess_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemObjectAccess_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemObjectAccess_GetQualifierSet(This,ppQualSet) (This)->lpVtbl->GetQualifierSet(This,ppQualSet)
-#define IWbemObjectAccess_Get(This,wszName,lFlags,pVal,pType,plFlavor) (This)->lpVtbl->Get(This,wszName,lFlags,pVal,pType,plFlavor)
-#define IWbemObjectAccess_Put(This,wszName,lFlags,pVal,Type) (This)->lpVtbl->Put(This,wszName,lFlags,pVal,Type)
-#define IWbemObjectAccess_Delete(This,wszName) (This)->lpVtbl->Delete(This,wszName)
-#define IWbemObjectAccess_GetNames(This,wszQualifierName,lFlags,pQualifierVal,pNames) (This)->lpVtbl->GetNames(This,wszQualifierName,lFlags,pQualifierVal,pNames)
-#define IWbemObjectAccess_BeginEnumeration(This,lEnumFlags) (This)->lpVtbl->BeginEnumeration(This,lEnumFlags)
-#define IWbemObjectAccess_Next(This,lFlags,strName,pVal,pType,plFlavor) (This)->lpVtbl->Next(This,lFlags,strName,pVal,pType,plFlavor)
-#define IWbemObjectAccess_EndEnumeration(This) (This)->lpVtbl->EndEnumeration(This)
-#define IWbemObjectAccess_GetPropertyQualifierSet(This,wszProperty,ppQualSet) (This)->lpVtbl->GetPropertyQualifierSet(This,wszProperty,ppQualSet)
-#define IWbemObjectAccess_Clone(This,ppCopy) (This)->lpVtbl->Clone(This,ppCopy)
-#define IWbemObjectAccess_GetObjectText(This,lFlags,pstrObjectText) (This)->lpVtbl->GetObjectText(This,lFlags,pstrObjectText)
-#define IWbemObjectAccess_SpawnDerivedClass(This,lFlags,ppNewClass) (This)->lpVtbl->SpawnDerivedClass(This,lFlags,ppNewClass)
-#define IWbemObjectAccess_SpawnInstance(This,lFlags,ppNewInstance) (This)->lpVtbl->SpawnInstance(This,lFlags,ppNewInstance)
-#define IWbemObjectAccess_CompareTo(This,lFlags,pCompareTo) (This)->lpVtbl->CompareTo(This,lFlags,pCompareTo)
-#define IWbemObjectAccess_GetPropertyOrigin(This,wszName,pstrClassName) (This)->lpVtbl->GetPropertyOrigin(This,wszName,pstrClassName)
-#define IWbemObjectAccess_InheritsFrom(This,strAncestor) (This)->lpVtbl->InheritsFrom(This,strAncestor)
-#define IWbemObjectAccess_GetMethod(This,wszName,lFlags,ppInSignature,ppOutSignature) (This)->lpVtbl->GetMethod(This,wszName,lFlags,ppInSignature,ppOutSignature)
-#define IWbemObjectAccess_PutMethod(This,wszName,lFlags,pInSignature,pOutSignature) (This)->lpVtbl->PutMethod(This,wszName,lFlags,pInSignature,pOutSignature)
-#define IWbemObjectAccess_DeleteMethod(This,wszName) (This)->lpVtbl->DeleteMethod(This,wszName)
-#define IWbemObjectAccess_BeginMethodEnumeration(This,lEnumFlags) (This)->lpVtbl->BeginMethodEnumeration(This,lEnumFlags)
-#define IWbemObjectAccess_NextMethod(This,lFlags,pstrName,ppInSignature,ppOutSignature) (This)->lpVtbl->NextMethod(This,lFlags,pstrName,ppInSignature,ppOutSignature)
-#define IWbemObjectAccess_EndMethodEnumeration(This) (This)->lpVtbl->EndMethodEnumeration(This)
-#define IWbemObjectAccess_GetMethodQualifierSet(This,wszMethod,ppQualSet) (This)->lpVtbl->GetMethodQualifierSet(This,wszMethod,ppQualSet)
-#define IWbemObjectAccess_GetMethodOrigin(This,wszMethodName,pstrClassName) (This)->lpVtbl->GetMethodOrigin(This,wszMethodName,pstrClassName)
-#define IWbemObjectAccess_GetPropertyHandle(This,wszPropertyName,pType,plHandle) (This)->lpVtbl->GetPropertyHandle(This,wszPropertyName,pType,plHandle)
-#define IWbemObjectAccess_WritePropertyValue(This,lHandle,lNumBytes,aData) (This)->lpVtbl->WritePropertyValue(This,lHandle,lNumBytes,aData)
-#define IWbemObjectAccess_ReadPropertyValue(This,lHandle,lBufferSize,plNumBytes,aData) (This)->lpVtbl->ReadPropertyValue(This,lHandle,lBufferSize,plNumBytes,aData)
-#define IWbemObjectAccess_ReadDWORD(This,lHandle,pdw) (This)->lpVtbl->ReadDWORD(This,lHandle,pdw)
-#define IWbemObjectAccess_WriteDWORD(This,lHandle,dw) (This)->lpVtbl->WriteDWORD(This,lHandle,dw)
-#define IWbemObjectAccess_ReadQWORD(This,lHandle,pqw) (This)->lpVtbl->ReadQWORD(This,lHandle,pqw)
-#define IWbemObjectAccess_WriteQWORD(This,lHandle,pw) (This)->lpVtbl->WriteQWORD(This,lHandle,pw)
-#define IWbemObjectAccess_GetPropertyInfoByHandle(This,lHandle,pstrName,pType) (This)->lpVtbl->GetPropertyInfoByHandle(This,lHandle,pstrName,pType)
-#define IWbemObjectAccess_Lock(This,lFlags) (This)->lpVtbl->Lock(This,lFlags)
-#define IWbemObjectAccess_Unlock(This,lFlags) (This)->lpVtbl->Unlock(This,lFlags)
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemClassObject_QueryInterface(IWbemClassObject* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemClassObject_AddRef(IWbemClassObject* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemClassObject_Release(IWbemClassObject* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemClassObject methods ***/
+static FORCEINLINE HRESULT IWbemClassObject_GetQualifierSet(IWbemClassObject* This,IWbemQualifierSet **ppQualSet) {
+    return This->lpVtbl->GetQualifierSet(This,ppQualSet);
+}
+static FORCEINLINE HRESULT IWbemClassObject_Get(IWbemClassObject* This,LPCWSTR wszName,LONG lFlags,VARIANT *pVal,CIMTYPE *pType,LONG *plFlavor) {
+    return This->lpVtbl->Get(This,wszName,lFlags,pVal,pType,plFlavor);
+}
+static FORCEINLINE HRESULT IWbemClassObject_Put(IWbemClassObject* This,LPCWSTR wszName,LONG lFlags,VARIANT *pVal,CIMTYPE Type) {
+    return This->lpVtbl->Put(This,wszName,lFlags,pVal,Type);
+}
+static FORCEINLINE HRESULT IWbemClassObject_Delete(IWbemClassObject* This,LPCWSTR wszName) {
+    return This->lpVtbl->Delete(This,wszName);
+}
+static FORCEINLINE HRESULT IWbemClassObject_GetNames(IWbemClassObject* This,LPCWSTR wszQualifierName,LONG lFlags,VARIANT *pQualifierVal,SAFEARRAY **pNames) {
+    return This->lpVtbl->GetNames(This,wszQualifierName,lFlags,pQualifierVal,pNames);
+}
+static FORCEINLINE HRESULT IWbemClassObject_BeginEnumeration(IWbemClassObject* This,LONG lEnumFlags) {
+    return This->lpVtbl->BeginEnumeration(This,lEnumFlags);
+}
+static FORCEINLINE HRESULT IWbemClassObject_Next(IWbemClassObject* This,LONG lFlags,BSTR *strName,VARIANT *pVal,CIMTYPE *pType,LONG *plFlavor) {
+    return This->lpVtbl->Next(This,lFlags,strName,pVal,pType,plFlavor);
+}
+static FORCEINLINE HRESULT IWbemClassObject_EndEnumeration(IWbemClassObject* This) {
+    return This->lpVtbl->EndEnumeration(This);
+}
+static FORCEINLINE HRESULT IWbemClassObject_GetPropertyQualifierSet(IWbemClassObject* This,LPCWSTR wszProperty,IWbemQualifierSet **ppQualSet) {
+    return This->lpVtbl->GetPropertyQualifierSet(This,wszProperty,ppQualSet);
+}
+static FORCEINLINE HRESULT IWbemClassObject_Clone(IWbemClassObject* This,IWbemClassObject **ppCopy) {
+    return This->lpVtbl->Clone(This,ppCopy);
+}
+static FORCEINLINE HRESULT IWbemClassObject_GetObjectText(IWbemClassObject* This,LONG lFlags,BSTR *pstrObjectText) {
+    return This->lpVtbl->GetObjectText(This,lFlags,pstrObjectText);
+}
+static FORCEINLINE HRESULT IWbemClassObject_SpawnDerivedClass(IWbemClassObject* This,LONG lFlags,IWbemClassObject **ppNewClass) {
+    return This->lpVtbl->SpawnDerivedClass(This,lFlags,ppNewClass);
+}
+static FORCEINLINE HRESULT IWbemClassObject_SpawnInstance(IWbemClassObject* This,LONG lFlags,IWbemClassObject **ppNewInstance) {
+    return This->lpVtbl->SpawnInstance(This,lFlags,ppNewInstance);
+}
+static FORCEINLINE HRESULT IWbemClassObject_CompareTo(IWbemClassObject* This,LONG lFlags,IWbemClassObject *pCompareTo) {
+    return This->lpVtbl->CompareTo(This,lFlags,pCompareTo);
+}
+static FORCEINLINE HRESULT IWbemClassObject_GetPropertyOrigin(IWbemClassObject* This,LPCWSTR wszName,BSTR *pstrClassName) {
+    return This->lpVtbl->GetPropertyOrigin(This,wszName,pstrClassName);
+}
+static FORCEINLINE HRESULT IWbemClassObject_InheritsFrom(IWbemClassObject* This,LPCWSTR strAncestor) {
+    return This->lpVtbl->InheritsFrom(This,strAncestor);
+}
+static FORCEINLINE HRESULT IWbemClassObject_GetMethod(IWbemClassObject* This,LPCWSTR wszName,LONG lFlags,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) {
+    return This->lpVtbl->GetMethod(This,wszName,lFlags,ppInSignature,ppOutSignature);
+}
+static FORCEINLINE HRESULT IWbemClassObject_PutMethod(IWbemClassObject* This,LPCWSTR wszName,LONG lFlags,IWbemClassObject *pInSignature,IWbemClassObject *pOutSignature) {
+    return This->lpVtbl->PutMethod(This,wszName,lFlags,pInSignature,pOutSignature);
+}
+static FORCEINLINE HRESULT IWbemClassObject_DeleteMethod(IWbemClassObject* This,LPCWSTR wszName) {
+    return This->lpVtbl->DeleteMethod(This,wszName);
+}
+static FORCEINLINE HRESULT IWbemClassObject_BeginMethodEnumeration(IWbemClassObject* This,LONG lEnumFlags) {
+    return This->lpVtbl->BeginMethodEnumeration(This,lEnumFlags);
+}
+static FORCEINLINE HRESULT IWbemClassObject_NextMethod(IWbemClassObject* This,LONG lFlags,BSTR *pstrName,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) {
+    return This->lpVtbl->NextMethod(This,lFlags,pstrName,ppInSignature,ppOutSignature);
+}
+static FORCEINLINE HRESULT IWbemClassObject_EndMethodEnumeration(IWbemClassObject* This) {
+    return This->lpVtbl->EndMethodEnumeration(This);
+}
+static FORCEINLINE HRESULT IWbemClassObject_GetMethodQualifierSet(IWbemClassObject* This,LPCWSTR wszMethod,IWbemQualifierSet **ppQualSet) {
+    return This->lpVtbl->GetMethodQualifierSet(This,wszMethod,ppQualSet);
+}
+static FORCEINLINE HRESULT IWbemClassObject_GetMethodOrigin(IWbemClassObject* This,LPCWSTR wszMethodName,BSTR *pstrClassName) {
+    return This->lpVtbl->GetMethodOrigin(This,wszMethodName,pstrClassName);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemObjectAccess_GetPropertyHandle_Proxy(IWbemObjectAccess *This,LPCWSTR wszPropertyName,CIMTYPE *pType,__LONG32 *plHandle);
-  void __RPC_STUB IWbemObjectAccess_GetPropertyHandle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemObjectAccess_WritePropertyValue_Proxy(IWbemObjectAccess *This,__LONG32 lHandle,__LONG32 lNumBytes,const byte *aData);
-  void __RPC_STUB IWbemObjectAccess_WritePropertyValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemObjectAccess_ReadPropertyValue_Proxy(IWbemObjectAccess *This,__LONG32 lHandle,__LONG32 lBufferSize,__LONG32 *plNumBytes,byte *aData);
-  void __RPC_STUB IWbemObjectAccess_ReadPropertyValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemObjectAccess_ReadDWORD_Proxy(IWbemObjectAccess *This,__LONG32 lHandle,DWORD *pdw);
-  void __RPC_STUB IWbemObjectAccess_ReadDWORD_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemObjectAccess_WriteDWORD_Proxy(IWbemObjectAccess *This,__LONG32 lHandle,DWORD dw);
-  void __RPC_STUB IWbemObjectAccess_WriteDWORD_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  __MINGW_EXTENSION HRESULT WINAPI IWbemObjectAccess_ReadQWORD_Proxy(IWbemObjectAccess *This,__LONG32 lHandle,unsigned __int64 *pqw);
-  void __RPC_STUB IWbemObjectAccess_ReadQWORD_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  __MINGW_EXTENSION HRESULT WINAPI IWbemObjectAccess_WriteQWORD_Proxy(IWbemObjectAccess *This,__LONG32 lHandle,unsigned __int64 pw);
-  void __RPC_STUB IWbemObjectAccess_WriteQWORD_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemObjectAccess_GetPropertyInfoByHandle_Proxy(IWbemObjectAccess *This,__LONG32 lHandle,BSTR *pstrName,CIMTYPE *pType);
-  void __RPC_STUB IWbemObjectAccess_GetPropertyInfoByHandle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemObjectAccess_Lock_Proxy(IWbemObjectAccess *This,__LONG32 lFlags);
-  void __RPC_STUB IWbemObjectAccess_Lock_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemObjectAccess_Unlock_Proxy(IWbemObjectAccess *This,__LONG32 lFlags);
-  void __RPC_STUB IWbemObjectAccess_Unlock_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemClassObject_GetQualifierSet_Proxy(
+    IWbemClassObject* This,
+    IWbemQualifierSet **ppQualSet);
+void __RPC_STUB IWbemClassObject_GetQualifierSet_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_Get_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszName,
+    LONG lFlags,
+    VARIANT *pVal,
+    CIMTYPE *pType,
+    LONG *plFlavor);
+void __RPC_STUB IWbemClassObject_Get_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_Put_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszName,
+    LONG lFlags,
+    VARIANT *pVal,
+    CIMTYPE Type);
+void __RPC_STUB IWbemClassObject_Put_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_Delete_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszName);
+void __RPC_STUB IWbemClassObject_Delete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_GetNames_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszQualifierName,
+    LONG lFlags,
+    VARIANT *pQualifierVal,
+    SAFEARRAY **pNames);
+void __RPC_STUB IWbemClassObject_GetNames_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_BeginEnumeration_Proxy(
+    IWbemClassObject* This,
+    LONG lEnumFlags);
+void __RPC_STUB IWbemClassObject_BeginEnumeration_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_Next_Proxy(
+    IWbemClassObject* This,
+    LONG lFlags,
+    BSTR *strName,
+    VARIANT *pVal,
+    CIMTYPE *pType,
+    LONG *plFlavor);
+void __RPC_STUB IWbemClassObject_Next_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_EndEnumeration_Proxy(
+    IWbemClassObject* This);
+void __RPC_STUB IWbemClassObject_EndEnumeration_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_GetPropertyQualifierSet_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszProperty,
+    IWbemQualifierSet **ppQualSet);
+void __RPC_STUB IWbemClassObject_GetPropertyQualifierSet_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_Clone_Proxy(
+    IWbemClassObject* This,
+    IWbemClassObject **ppCopy);
+void __RPC_STUB IWbemClassObject_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_GetObjectText_Proxy(
+    IWbemClassObject* This,
+    LONG lFlags,
+    BSTR *pstrObjectText);
+void __RPC_STUB IWbemClassObject_GetObjectText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_SpawnDerivedClass_Proxy(
+    IWbemClassObject* This,
+    LONG lFlags,
+    IWbemClassObject **ppNewClass);
+void __RPC_STUB IWbemClassObject_SpawnDerivedClass_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_SpawnInstance_Proxy(
+    IWbemClassObject* This,
+    LONG lFlags,
+    IWbemClassObject **ppNewInstance);
+void __RPC_STUB IWbemClassObject_SpawnInstance_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_CompareTo_Proxy(
+    IWbemClassObject* This,
+    LONG lFlags,
+    IWbemClassObject *pCompareTo);
+void __RPC_STUB IWbemClassObject_CompareTo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_GetPropertyOrigin_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszName,
+    BSTR *pstrClassName);
+void __RPC_STUB IWbemClassObject_GetPropertyOrigin_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_InheritsFrom_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR strAncestor);
+void __RPC_STUB IWbemClassObject_InheritsFrom_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_GetMethod_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszName,
+    LONG lFlags,
+    IWbemClassObject **ppInSignature,
+    IWbemClassObject **ppOutSignature);
+void __RPC_STUB IWbemClassObject_GetMethod_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_PutMethod_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszName,
+    LONG lFlags,
+    IWbemClassObject *pInSignature,
+    IWbemClassObject *pOutSignature);
+void __RPC_STUB IWbemClassObject_PutMethod_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_DeleteMethod_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszName);
+void __RPC_STUB IWbemClassObject_DeleteMethod_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_BeginMethodEnumeration_Proxy(
+    IWbemClassObject* This,
+    LONG lEnumFlags);
+void __RPC_STUB IWbemClassObject_BeginMethodEnumeration_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_NextMethod_Proxy(
+    IWbemClassObject* This,
+    LONG lFlags,
+    BSTR *pstrName,
+    IWbemClassObject **ppInSignature,
+    IWbemClassObject **ppOutSignature);
+void __RPC_STUB IWbemClassObject_NextMethod_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_EndMethodEnumeration_Proxy(
+    IWbemClassObject* This);
+void __RPC_STUB IWbemClassObject_EndMethodEnumeration_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_GetMethodQualifierSet_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszMethod,
+    IWbemQualifierSet **ppQualSet);
+void __RPC_STUB IWbemClassObject_GetMethodQualifierSet_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClassObject_GetMethodOrigin_Proxy(
+    IWbemClassObject* This,
+    LPCWSTR wszMethodName,
+    BSTR *pstrClassName);
+void __RPC_STUB IWbemClassObject_GetMethodOrigin_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemClassObject_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemQualifierSet interface
+ */
 #ifndef __IWbemQualifierSet_INTERFACE_DEFINED__
 #define __IWbemQualifierSet_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemQualifierSet;
+
+DEFINE_GUID(IID_IWbemQualifierSet, 0xdc12a680, 0x737f, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemQualifierSet : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Get(LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,__LONG32 *plFlavor) = 0;
-    virtual HRESULT WINAPI Put(LPCWSTR wszName,VARIANT *pVal,__LONG32 lFlavor) = 0;
-    virtual HRESULT WINAPI Delete(LPCWSTR wszName) = 0;
-    virtual HRESULT WINAPI GetNames(__LONG32 lFlags,SAFEARRAY **pNames) = 0;
-    virtual HRESULT WINAPI BeginEnumeration(__LONG32 lFlags) = 0;
-    virtual HRESULT WINAPI Next(__LONG32 lFlags,BSTR *pstrName,VARIANT *pVal,__LONG32 *plFlavor) = 0;
-    virtual HRESULT WINAPI EndEnumeration(void) = 0;
-  };
+MIDL_INTERFACE("dc12a680-737f-11cf-884d-00aa004b2e24")
+IWbemQualifierSet : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Get(
+        LPCWSTR wszName,
+        LONG lFlags,
+        VARIANT *pVal,
+        LONG *plFlavor) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Put(
+        LPCWSTR wszName,
+        VARIANT *pVal,
+        LONG lFlavor) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Delete(
+        LPCWSTR wszName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNames(
+        LONG lFlags,
+        SAFEARRAY **pNames) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginEnumeration(
+        LONG lFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        LONG lFlags,
+        BSTR *pstrName,
+        VARIANT *pVal,
+        LONG *plFlavor) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndEnumeration(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemQualifierSet, 0xdc12a680, 0x737f, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24)
+#endif
 #else
-  typedef struct IWbemQualifierSetVtbl {
+typedef struct IWbemQualifierSetVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemQualifierSet *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemQualifierSet *This);
-      ULONG (WINAPI *Release)(IWbemQualifierSet *This);
-      HRESULT (WINAPI *Get)(IWbemQualifierSet *This,LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,__LONG32 *plFlavor);
-      HRESULT (WINAPI *Put)(IWbemQualifierSet *This,LPCWSTR wszName,VARIANT *pVal,__LONG32 lFlavor);
-      HRESULT (WINAPI *Delete)(IWbemQualifierSet *This,LPCWSTR wszName);
-      HRESULT (WINAPI *GetNames)(IWbemQualifierSet *This,__LONG32 lFlags,SAFEARRAY **pNames);
-      HRESULT (WINAPI *BeginEnumeration)(IWbemQualifierSet *This,__LONG32 lFlags);
-      HRESULT (WINAPI *Next)(IWbemQualifierSet *This,__LONG32 lFlags,BSTR *pstrName,VARIANT *pVal,__LONG32 *plFlavor);
-      HRESULT (WINAPI *EndEnumeration)(IWbemQualifierSet *This);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemQualifierSet* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemQualifierSet* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemQualifierSet* This);
+
+    /*** IWbemQualifierSet methods ***/
+    HRESULT (STDMETHODCALLTYPE *Get)(
+        IWbemQualifierSet* This,
+        LPCWSTR wszName,
+        LONG lFlags,
+        VARIANT *pVal,
+        LONG *plFlavor);
+
+    HRESULT (STDMETHODCALLTYPE *Put)(
+        IWbemQualifierSet* This,
+        LPCWSTR wszName,
+        VARIANT *pVal,
+        LONG lFlavor);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IWbemQualifierSet* This,
+        LPCWSTR wszName);
+
+    HRESULT (STDMETHODCALLTYPE *GetNames)(
+        IWbemQualifierSet* This,
+        LONG lFlags,
+        SAFEARRAY **pNames);
+
+    HRESULT (STDMETHODCALLTYPE *BeginEnumeration)(
+        IWbemQualifierSet* This,
+        LONG lFlags);
+
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IWbemQualifierSet* This,
+        LONG lFlags,
+        BSTR *pstrName,
+        VARIANT *pVal,
+        LONG *plFlavor);
+
+    HRESULT (STDMETHODCALLTYPE *EndEnumeration)(
+        IWbemQualifierSet* This);
+
     END_INTERFACE
-  } IWbemQualifierSetVtbl;
-  struct IWbemQualifierSet {
-    CONST_VTBL struct IWbemQualifierSetVtbl *lpVtbl;
-  };
+} IWbemQualifierSetVtbl;
+interface IWbemQualifierSet {
+    CONST_VTBL IWbemQualifierSetVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemQualifierSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemQualifierSet_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemQualifierSet_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemQualifierSet methods ***/
 #define IWbemQualifierSet_Get(This,wszName,lFlags,pVal,plFlavor) (This)->lpVtbl->Get(This,wszName,lFlags,pVal,plFlavor)
 #define IWbemQualifierSet_Put(This,wszName,pVal,lFlavor) (This)->lpVtbl->Put(This,wszName,pVal,lFlavor)
 #define IWbemQualifierSet_Delete(This,wszName) (This)->lpVtbl->Delete(This,wszName)
@@ -774,164 +1570,720 @@
 #define IWbemQualifierSet_BeginEnumeration(This,lFlags) (This)->lpVtbl->BeginEnumeration(This,lFlags)
 #define IWbemQualifierSet_Next(This,lFlags,pstrName,pVal,plFlavor) (This)->lpVtbl->Next(This,lFlags,pstrName,pVal,plFlavor)
 #define IWbemQualifierSet_EndEnumeration(This) (This)->lpVtbl->EndEnumeration(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemQualifierSet_QueryInterface(IWbemQualifierSet* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemQualifierSet_AddRef(IWbemQualifierSet* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemQualifierSet_Release(IWbemQualifierSet* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemQualifierSet methods ***/
+static FORCEINLINE HRESULT IWbemQualifierSet_Get(IWbemQualifierSet* This,LPCWSTR wszName,LONG lFlags,VARIANT *pVal,LONG *plFlavor) {
+    return This->lpVtbl->Get(This,wszName,lFlags,pVal,plFlavor);
+}
+static FORCEINLINE HRESULT IWbemQualifierSet_Put(IWbemQualifierSet* This,LPCWSTR wszName,VARIANT *pVal,LONG lFlavor) {
+    return This->lpVtbl->Put(This,wszName,pVal,lFlavor);
+}
+static FORCEINLINE HRESULT IWbemQualifierSet_Delete(IWbemQualifierSet* This,LPCWSTR wszName) {
+    return This->lpVtbl->Delete(This,wszName);
+}
+static FORCEINLINE HRESULT IWbemQualifierSet_GetNames(IWbemQualifierSet* This,LONG lFlags,SAFEARRAY **pNames) {
+    return This->lpVtbl->GetNames(This,lFlags,pNames);
+}
+static FORCEINLINE HRESULT IWbemQualifierSet_BeginEnumeration(IWbemQualifierSet* This,LONG lFlags) {
+    return This->lpVtbl->BeginEnumeration(This,lFlags);
+}
+static FORCEINLINE HRESULT IWbemQualifierSet_Next(IWbemQualifierSet* This,LONG lFlags,BSTR *pstrName,VARIANT *pVal,LONG *plFlavor) {
+    return This->lpVtbl->Next(This,lFlags,pstrName,pVal,plFlavor);
+}
+static FORCEINLINE HRESULT IWbemQualifierSet_EndEnumeration(IWbemQualifierSet* This) {
+    return This->lpVtbl->EndEnumeration(This);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemQualifierSet_Get_Proxy(IWbemQualifierSet *This,LPCWSTR wszName,__LONG32 lFlags,VARIANT *pVal,__LONG32 *plFlavor);
-  void __RPC_STUB IWbemQualifierSet_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemQualifierSet_Put_Proxy(IWbemQualifierSet *This,LPCWSTR wszName,VARIANT *pVal,__LONG32 lFlavor);
-  void __RPC_STUB IWbemQualifierSet_Put_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemQualifierSet_Delete_Proxy(IWbemQualifierSet *This,LPCWSTR wszName);
-  void __RPC_STUB IWbemQualifierSet_Delete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemQualifierSet_GetNames_Proxy(IWbemQualifierSet *This,__LONG32 lFlags,SAFEARRAY **pNames);
-  void __RPC_STUB IWbemQualifierSet_GetNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemQualifierSet_BeginEnumeration_Proxy(IWbemQualifierSet *This,__LONG32 lFlags);
-  void __RPC_STUB IWbemQualifierSet_BeginEnumeration_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemQualifierSet_Next_Proxy(IWbemQualifierSet *This,__LONG32 lFlags,BSTR *pstrName,VARIANT *pVal,__LONG32 *plFlavor);
-  void __RPC_STUB IWbemQualifierSet_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemQualifierSet_EndEnumeration_Proxy(IWbemQualifierSet *This);
-  void __RPC_STUB IWbemQualifierSet_EndEnumeration_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-#ifndef __IWbemServices_INTERFACE_DEFINED__
-#define __IWbemServices_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemServices;
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemQualifierSet_Get_Proxy(
+    IWbemQualifierSet* This,
+    LPCWSTR wszName,
+    LONG lFlags,
+    VARIANT *pVal,
+    LONG *plFlavor);
+void __RPC_STUB IWbemQualifierSet_Get_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemQualifierSet_Put_Proxy(
+    IWbemQualifierSet* This,
+    LPCWSTR wszName,
+    VARIANT *pVal,
+    LONG lFlavor);
+void __RPC_STUB IWbemQualifierSet_Put_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemQualifierSet_Delete_Proxy(
+    IWbemQualifierSet* This,
+    LPCWSTR wszName);
+void __RPC_STUB IWbemQualifierSet_Delete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemQualifierSet_GetNames_Proxy(
+    IWbemQualifierSet* This,
+    LONG lFlags,
+    SAFEARRAY **pNames);
+void __RPC_STUB IWbemQualifierSet_GetNames_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemQualifierSet_BeginEnumeration_Proxy(
+    IWbemQualifierSet* This,
+    LONG lFlags);
+void __RPC_STUB IWbemQualifierSet_BeginEnumeration_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemQualifierSet_Next_Proxy(
+    IWbemQualifierSet* This,
+    LONG lFlags,
+    BSTR *pstrName,
+    VARIANT *pVal,
+    LONG *plFlavor);
+void __RPC_STUB IWbemQualifierSet_Next_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemQualifierSet_EndEnumeration_Proxy(
+    IWbemQualifierSet* This);
+void __RPC_STUB IWbemQualifierSet_EndEnumeration_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemQualifierSet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemLocator interface
+ */
+#ifndef __IWbemLocator_INTERFACE_DEFINED__
+#define __IWbemLocator_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemLocator, 0xdc12a687, 0x737f, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemServices : public IUnknown {
-  public:
-    virtual HRESULT WINAPI OpenNamespace(const BSTR strNamespace,__LONG32 lFlags,IWbemContext *pCtx,IWbemServices **ppWorkingNamespace,IWbemCallResult **ppResult) = 0;
-    virtual HRESULT WINAPI CancelAsyncCall(IWbemObjectSink *pSink) = 0;
-    virtual HRESULT WINAPI QueryObjectSink(__LONG32 lFlags,IWbemObjectSink **ppResponseHandler) = 0;
-    virtual HRESULT WINAPI GetObject(const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemClassObject **ppObject,IWbemCallResult **ppCallResult) = 0;
-    virtual HRESULT WINAPI GetObjectAsync(const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI PutClass(IWbemClassObject *pObject,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0;
-    virtual HRESULT WINAPI PutClassAsync(IWbemClassObject *pObject,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI DeleteClass(const BSTR strClass,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0;
-    virtual HRESULT WINAPI DeleteClassAsync(const BSTR strClass,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI CreateClassEnum(const BSTR strSuperclass,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0;
-    virtual HRESULT WINAPI CreateClassEnumAsync(const BSTR strSuperclass,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI PutInstance(IWbemClassObject *pInst,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0;
-    virtual HRESULT WINAPI PutInstanceAsync(IWbemClassObject *pInst,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI DeleteInstance(const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0;
-    virtual HRESULT WINAPI DeleteInstanceAsync(const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI CreateInstanceEnum(const BSTR strFilter,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0;
-    virtual HRESULT WINAPI CreateInstanceEnumAsync(const BSTR strFilter,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI ExecQuery(const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0;
-    virtual HRESULT WINAPI ExecQueryAsync(const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI ExecNotificationQuery(const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0;
-    virtual HRESULT WINAPI ExecNotificationQueryAsync(const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI ExecMethod(const BSTR strObjectPath,const BSTR strMethodName,__LONG32 lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemClassObject **ppOutParams,IWbemCallResult **ppCallResult) = 0;
-    virtual HRESULT WINAPI ExecMethodAsync(const BSTR strObjectPath,const BSTR strMethodName,__LONG32 lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemObjectSink *pResponseHandler) = 0;
-  };
+MIDL_INTERFACE("dc12a687-737f-11cf-884d-00aa004b2e24")
+IWbemLocator : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ConnectServer(
+        const BSTR strNetworkResource,
+        const BSTR strUser,
+        const BSTR strPassword,
+        const BSTR strLocale,
+        LONG lSecurityFlags,
+        const BSTR strAuthority,
+        IWbemContext *pCtx,
+        IWbemServices **ppNamespace) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemLocator, 0xdc12a687, 0x737f, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24)
+#endif
 #else
-  typedef struct IWbemServicesVtbl {
+typedef struct IWbemLocatorVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemServices *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemServices *This);
-      ULONG (WINAPI *Release)(IWbemServices *This);
-      HRESULT (WINAPI *OpenNamespace)(IWbemServices *This,const BSTR strNamespace,__LONG32 lFlags,IWbemContext *pCtx,IWbemServices **ppWorkingNamespace,IWbemCallResult **ppResult);
-      HRESULT (WINAPI *CancelAsyncCall)(IWbemServices *This,IWbemObjectSink *pSink);
-      HRESULT (WINAPI *QueryObjectSink)(IWbemServices *This,__LONG32 lFlags,IWbemObjectSink **ppResponseHandler);
-      HRESULT (WINAPI *GetObject)(IWbemServices *This,const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemClassObject **ppObject,IWbemCallResult **ppCallResult);
-      HRESULT (WINAPI *GetObjectAsync)(IWbemServices *This,const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *PutClass)(IWbemServices *This,IWbemClassObject *pObject,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult);
-      HRESULT (WINAPI *PutClassAsync)(IWbemServices *This,IWbemClassObject *pObject,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *DeleteClass)(IWbemServices *This,const BSTR strClass,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult);
-      HRESULT (WINAPI *DeleteClassAsync)(IWbemServices *This,const BSTR strClass,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *CreateClassEnum)(IWbemServices *This,const BSTR strSuperclass,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum);
-      HRESULT (WINAPI *CreateClassEnumAsync)(IWbemServices *This,const BSTR strSuperclass,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *PutInstance)(IWbemServices *This,IWbemClassObject *pInst,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult);
-      HRESULT (WINAPI *PutInstanceAsync)(IWbemServices *This,IWbemClassObject *pInst,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *DeleteInstance)(IWbemServices *This,const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult);
-      HRESULT (WINAPI *DeleteInstanceAsync)(IWbemServices *This,const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *CreateInstanceEnum)(IWbemServices *This,const BSTR strFilter,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum);
-      HRESULT (WINAPI *CreateInstanceEnumAsync)(IWbemServices *This,const BSTR strFilter,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *ExecQuery)(IWbemServices *This,const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum);
-      HRESULT (WINAPI *ExecQueryAsync)(IWbemServices *This,const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *ExecNotificationQuery)(IWbemServices *This,const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum);
-      HRESULT (WINAPI *ExecNotificationQueryAsync)(IWbemServices *This,const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *ExecMethod)(IWbemServices *This,const BSTR strObjectPath,const BSTR strMethodName,__LONG32 lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemClassObject **ppOutParams,IWbemCallResult **ppCallResult);
-      HRESULT (WINAPI *ExecMethodAsync)(IWbemServices *This,const BSTR strObjectPath,const BSTR strMethodName,__LONG32 lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemObjectSink *pResponseHandler);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemLocator* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemLocator* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemLocator* This);
+
+    /*** IWbemLocator methods ***/
+    HRESULT (STDMETHODCALLTYPE *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
-  } IWbemServicesVtbl;
-  struct IWbemServices {
-    CONST_VTBL struct IWbemServicesVtbl *lpVtbl;
-  };
+} IWbemLocatorVtbl;
+interface IWbemLocator {
+    CONST_VTBL IWbemLocatorVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
-#define IWbemServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemServices_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemServices_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemServices_OpenNamespace(This,strNamespace,lFlags,pCtx,ppWorkingNamespace,ppResult) (This)->lpVtbl->OpenNamespace(This,strNamespace,lFlags,pCtx,ppWorkingNamespace,ppResult)
-#define IWbemServices_CancelAsyncCall(This,pSink) (This)->lpVtbl->CancelAsyncCall(This,pSink)
-#define IWbemServices_QueryObjectSink(This,lFlags,ppResponseHandler) (This)->lpVtbl->QueryObjectSink(This,lFlags,ppResponseHandler)
-#define IWbemServices_GetObject(This,strObjectPath,lFlags,pCtx,ppObject,ppCallResult) (This)->lpVtbl->GetObject(This,strObjectPath,lFlags,pCtx,ppObject,ppCallResult)
-#define IWbemServices_GetObjectAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->GetObjectAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler)
-#define IWbemServices_PutClass(This,pObject,lFlags,pCtx,ppCallResult) (This)->lpVtbl->PutClass(This,pObject,lFlags,pCtx,ppCallResult)
-#define IWbemServices_PutClassAsync(This,pObject,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->PutClassAsync(This,pObject,lFlags,pCtx,pResponseHandler)
-#define IWbemServices_DeleteClass(This,strClass,lFlags,pCtx,ppCallResult) (This)->lpVtbl->DeleteClass(This,strClass,lFlags,pCtx,ppCallResult)
-#define IWbemServices_DeleteClassAsync(This,strClass,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->DeleteClassAsync(This,strClass,lFlags,pCtx,pResponseHandler)
-#define IWbemServices_CreateClassEnum(This,strSuperclass,lFlags,pCtx,ppEnum) (This)->lpVtbl->CreateClassEnum(This,strSuperclass,lFlags,pCtx,ppEnum)
-#define IWbemServices_CreateClassEnumAsync(This,strSuperclass,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->CreateClassEnumAsync(This,strSuperclass,lFlags,pCtx,pResponseHandler)
-#define IWbemServices_PutInstance(This,pInst,lFlags,pCtx,ppCallResult) (This)->lpVtbl->PutInstance(This,pInst,lFlags,pCtx,ppCallResult)
-#define IWbemServices_PutInstanceAsync(This,pInst,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->PutInstanceAsync(This,pInst,lFlags,pCtx,pResponseHandler)
-#define IWbemServices_DeleteInstance(This,strObjectPath,lFlags,pCtx,ppCallResult) (This)->lpVtbl->DeleteInstance(This,strObjectPath,lFlags,pCtx,ppCallResult)
-#define IWbemServices_DeleteInstanceAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->DeleteInstanceAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler)
-#define IWbemServices_CreateInstanceEnum(This,strFilter,lFlags,pCtx,ppEnum) (This)->lpVtbl->CreateInstanceEnum(This,strFilter,lFlags,pCtx,ppEnum)
-#define IWbemServices_CreateInstanceEnumAsync(This,strFilter,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->CreateInstanceEnumAsync(This,strFilter,lFlags,pCtx,pResponseHandler)
-#define IWbemServices_ExecQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum) (This)->lpVtbl->ExecQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum)
-#define IWbemServices_ExecQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->ExecQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler)
-#define IWbemServices_ExecNotificationQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum) (This)->lpVtbl->ExecNotificationQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum)
-#define IWbemServices_ExecNotificationQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->ExecNotificationQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler)
-#define IWbemServices_ExecMethod(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,ppOutParams,ppCallResult) (This)->lpVtbl->ExecMethod(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,ppOutParams,ppCallResult)
-#define IWbemServices_ExecMethodAsync(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,pResponseHandler) (This)->lpVtbl->ExecMethodAsync(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,pResponseHandler)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemLocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemLocator_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemLocator_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemLocator methods ***/
+#define IWbemLocator_ConnectServer(This,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace) (This)->lpVtbl->ConnectServer(This,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemLocator_QueryInterface(IWbemLocator* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemLocator_AddRef(IWbemLocator* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemLocator_Release(IWbemLocator* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemLocator methods ***/
+static FORCEINLINE HRESULT IWbemLocator_ConnectServer(IWbemLocator* This,const BSTR strNetworkResource,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,LONG lSecurityFlags,const BSTR strAuthority,IWbemContext *pCtx,IWbemServices **ppNamespace) {
+    return This->lpVtbl->ConnectServer(This,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemServices_OpenNamespace_Proxy(IWbemServices *This,const BSTR strNamespace,__LONG32 lFlags,IWbemContext *pCtx,IWbemServices **ppWorkingNamespace,IWbemCallResult **ppResult);
-  void __RPC_STUB IWbemServices_OpenNamespace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_CancelAsyncCall_Proxy(IWbemServices *This,IWbemObjectSink *pSink);
-  void __RPC_STUB IWbemServices_CancelAsyncCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_QueryObjectSink_Proxy(IWbemServices *This,__LONG32 lFlags,IWbemObjectSink **ppResponseHandler);
-  void __RPC_STUB IWbemServices_QueryObjectSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_GetObject_Proxy(IWbemServices *This,const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemClassObject **ppObject,IWbemCallResult **ppCallResult);
-  void __RPC_STUB IWbemServices_GetObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_GetObjectAsync_Proxy(IWbemServices *This,const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_GetObjectAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_PutClass_Proxy(IWbemServices *This,IWbemClassObject *pObject,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult);
-  void __RPC_STUB IWbemServices_PutClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_PutClassAsync_Proxy(IWbemServices *This,IWbemClassObject *pObject,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_PutClassAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_DeleteClass_Proxy(IWbemServices *This,const BSTR strClass,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult);
-  void __RPC_STUB IWbemServices_DeleteClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_DeleteClassAsync_Proxy(IWbemServices *This,const BSTR strClass,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_DeleteClassAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_CreateClassEnum_Proxy(IWbemServices *This,const BSTR strSuperclass,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum);
-  void __RPC_STUB IWbemServices_CreateClassEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_CreateClassEnumAsync_Proxy(IWbemServices *This,const BSTR strSuperclass,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_CreateClassEnumAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_PutInstance_Proxy(IWbemServices *This,IWbemClassObject *pInst,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult);
-  void __RPC_STUB IWbemServices_PutInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_PutInstanceAsync_Proxy(IWbemServices *This,IWbemClassObject *pInst,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_PutInstanceAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_DeleteInstance_Proxy(IWbemServices *This,const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult);
-  void __RPC_STUB IWbemServices_DeleteInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_DeleteInstanceAsync_Proxy(IWbemServices *This,const BSTR strObjectPath,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_DeleteInstanceAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_CreateInstanceEnum_Proxy(IWbemServices *This,const BSTR strFilter,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum);
-  void __RPC_STUB IWbemServices_CreateInstanceEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_CreateInstanceEnumAsync_Proxy(IWbemServices *This,const BSTR strFilter,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_CreateInstanceEnumAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_ExecQuery_Proxy(IWbemServices *This,const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum);
-  void __RPC_STUB IWbemServices_ExecQuery_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_ExecQueryAsync_Proxy(IWbemServices *This,const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_ExecQueryAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_ExecNotificationQuery_Proxy(IWbemServices *This,const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum);
-  void __RPC_STUB IWbemServices_ExecNotificationQuery_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_ExecNotificationQueryAsync_Proxy(IWbemServices *This,const BSTR strQueryLanguage,const BSTR strQuery,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_ExecNotificationQueryAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_ExecMethod_Proxy(IWbemServices *This,const BSTR strObjectPath,const BSTR strMethodName,__LONG32 lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemClassObject **ppOutParams,IWbemCallResult **ppCallResult);
-  void __RPC_STUB IWbemServices_ExecMethod_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemServices_ExecMethodAsync_Proxy(IWbemServices *This,const BSTR strObjectPath,const BSTR strMethodName,__LONG32 lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemServices_ExecMethodAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
 #endif
+
+HRESULT STDMETHODCALLTYPE IWbemLocator_ConnectServer_Proxy(
+    IWbemLocator* This,
+    const BSTR strNetworkResource,
+    const BSTR strUser,
+    const BSTR strPassword,
+    const BSTR strLocale,
+    LONG lSecurityFlags,
+    const BSTR strAuthority,
+    IWbemContext *pCtx,
+    IWbemServices **ppNamespace);
+void __RPC_STUB IWbemLocator_ConnectServer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemLocator_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemObjectSink interface
+ */
+#ifndef __IWbemObjectSink_INTERFACE_DEFINED__
+#define __IWbemObjectSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemObjectSink, 0x7c857801, 0x7381, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7c857801-7381-11cf-884d-00aa004b2e24")
+IWbemObjectSink : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Indicate(
+        LONG lObjectCount,
+        IWbemClassObject **apObjArray) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetStatus(
+        LONG lFlags,
+        HRESULT hResult,
+        BSTR strParam,
+        IWbemClassObject *pObjParam) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemObjectSink, 0x7c857801, 0x7381, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24)
+#endif
+#else
+typedef struct IWbemObjectSinkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemObjectSink* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemObjectSink* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemObjectSink* This);
+
+    /*** IWbemObjectSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *Indicate)(
+        IWbemObjectSink* This,
+        LONG lObjectCount,
+        IWbemClassObject **apObjArray);
+
+    HRESULT (STDMETHODCALLTYPE *SetStatus)(
+        IWbemObjectSink* This,
+        LONG lFlags,
+        HRESULT hResult,
+        BSTR strParam,
+        IWbemClassObject *pObjParam);
+
+    END_INTERFACE
+} IWbemObjectSinkVtbl;
+interface IWbemObjectSink {
+    CONST_VTBL IWbemObjectSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemObjectSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemObjectSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemObjectSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemObjectSink methods ***/
+#define IWbemObjectSink_Indicate(This,lObjectCount,apObjArray) (This)->lpVtbl->Indicate(This,lObjectCount,apObjArray)
+#define IWbemObjectSink_SetStatus(This,lFlags,hResult,strParam,pObjParam) (This)->lpVtbl->SetStatus(This,lFlags,hResult,strParam,pObjParam)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemObjectSink_QueryInterface(IWbemObjectSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemObjectSink_AddRef(IWbemObjectSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemObjectSink_Release(IWbemObjectSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemObjectSink methods ***/
+static FORCEINLINE HRESULT IWbemObjectSink_Indicate(IWbemObjectSink* This,LONG lObjectCount,IWbemClassObject **apObjArray) {
+    return This->lpVtbl->Indicate(This,lObjectCount,apObjArray);
+}
+static FORCEINLINE HRESULT IWbemObjectSink_SetStatus(IWbemObjectSink* This,LONG lFlags,HRESULT hResult,BSTR strParam,IWbemClassObject *pObjParam) {
+    return This->lpVtbl->SetStatus(This,lFlags,hResult,strParam,pObjParam);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemObjectSink_Indicate_Proxy(
+    IWbemObjectSink* This,
+    LONG lObjectCount,
+    IWbemClassObject **apObjArray);
+void __RPC_STUB IWbemObjectSink_Indicate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectSink_SetStatus_Proxy(
+    IWbemObjectSink* This,
+    LONG lFlags,
+    HRESULT hResult,
+    BSTR strParam,
+    IWbemClassObject *pObjParam);
+void __RPC_STUB IWbemObjectSink_SetStatus_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemObjectSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemObjectSinkEx interface
+ */
+#ifndef __IWbemObjectSinkEx_INTERFACE_DEFINED__
+#define __IWbemObjectSinkEx_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemObjectSinkEx, 0xe7d35cfa, 0x348b, 0x485e, 0xb5,0x24, 0x25,0x27,0x25,0xd6,0x97,0xca);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e7d35cfa-348b-485e-b524-252725d697ca")
+IWbemObjectSinkEx : public IWbemObjectSink
+{
+    virtual HRESULT STDMETHODCALLTYPE WriteMessage(
+        ULONG uChannel,
+        const BSTR strMessage) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WriteError(
+        IWbemClassObject *pObjError,
+        unsigned char *puReturned) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PromptUser(
+        const BSTR strMessage,
+        unsigned char uPromptType,
+        unsigned char *puReturned) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WriteProgress(
+        const BSTR strActivity,
+        const BSTR strCurrentOperation,
+        const BSTR strStatusDescription,
+        ULONG uPercentComplete,
+        ULONG uSecondsRemaining) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WriteStreamParameter(
+        const BSTR strName,
+        VARIANT *vtValue,
+        ULONG ulType,
+        ULONG ulFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemObjectSinkEx, 0xe7d35cfa, 0x348b, 0x485e, 0xb5,0x24, 0x25,0x27,0x25,0xd6,0x97,0xca)
+#endif
+#else
+typedef struct IWbemObjectSinkExVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemObjectSinkEx* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemObjectSinkEx* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemObjectSinkEx* This);
+
+    /*** IWbemObjectSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *Indicate)(
+        IWbemObjectSinkEx* This,
+        LONG lObjectCount,
+        IWbemClassObject **apObjArray);
+
+    HRESULT (STDMETHODCALLTYPE *SetStatus)(
+        IWbemObjectSinkEx* This,
+        LONG lFlags,
+        HRESULT hResult,
+        BSTR strParam,
+        IWbemClassObject *pObjParam);
+
+    /*** IWbemObjectSinkEx methods ***/
+    HRESULT (STDMETHODCALLTYPE *WriteMessage)(
+        IWbemObjectSinkEx* This,
+        ULONG uChannel,
+        const BSTR strMessage);
+
+    HRESULT (STDMETHODCALLTYPE *WriteError)(
+        IWbemObjectSinkEx* This,
+        IWbemClassObject *pObjError,
+        unsigned char *puReturned);
+
+    HRESULT (STDMETHODCALLTYPE *PromptUser)(
+        IWbemObjectSinkEx* This,
+        const BSTR strMessage,
+        unsigned char uPromptType,
+        unsigned char *puReturned);
+
+    HRESULT (STDMETHODCALLTYPE *WriteProgress)(
+        IWbemObjectSinkEx* This,
+        const BSTR strActivity,
+        const BSTR strCurrentOperation,
+        const BSTR strStatusDescription,
+        ULONG uPercentComplete,
+        ULONG uSecondsRemaining);
+
+    HRESULT (STDMETHODCALLTYPE *WriteStreamParameter)(
+        IWbemObjectSinkEx* This,
+        const BSTR strName,
+        VARIANT *vtValue,
+        ULONG ulType,
+        ULONG ulFlags);
+
+    END_INTERFACE
+} IWbemObjectSinkExVtbl;
+interface IWbemObjectSinkEx {
+    CONST_VTBL IWbemObjectSinkExVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemObjectSinkEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemObjectSinkEx_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemObjectSinkEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemObjectSink methods ***/
+#define IWbemObjectSinkEx_Indicate(This,lObjectCount,apObjArray) (This)->lpVtbl->Indicate(This,lObjectCount,apObjArray)
+#define IWbemObjectSinkEx_SetStatus(This,lFlags,hResult,strParam,pObjParam) (This)->lpVtbl->SetStatus(This,lFlags,hResult,strParam,pObjParam)
+/*** IWbemObjectSinkEx methods ***/
+#define IWbemObjectSinkEx_WriteMessage(This,uChannel,strMessage) (This)->lpVtbl->WriteMessage(This,uChannel,strMessage)
+#define IWbemObjectSinkEx_WriteError(This,pObjError,puReturned) (This)->lpVtbl->WriteError(This,pObjError,puReturned)
+#define IWbemObjectSinkEx_PromptUser(This,strMessage,uPromptType,puReturned) (This)->lpVtbl->PromptUser(This,strMessage,uPromptType,puReturned)
+#define IWbemObjectSinkEx_WriteProgress(This,strActivity,strCurrentOperation,strStatusDescription,uPercentComplete,uSecondsRemaining) (This)->lpVtbl->WriteProgress(This,strActivity,strCurrentOperation,strStatusDescription,uPercentComplete,uSecondsRemaining)
+#define IWbemObjectSinkEx_WriteStreamParameter(This,strName,vtValue,ulType,ulFlags) (This)->lpVtbl->WriteStreamParameter(This,strName,vtValue,ulType,ulFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemObjectSinkEx_QueryInterface(IWbemObjectSinkEx* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemObjectSinkEx_AddRef(IWbemObjectSinkEx* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemObjectSinkEx_Release(IWbemObjectSinkEx* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemObjectSink methods ***/
+static FORCEINLINE HRESULT IWbemObjectSinkEx_Indicate(IWbemObjectSinkEx* This,LONG lObjectCount,IWbemClassObject **apObjArray) {
+    return This->lpVtbl->Indicate(This,lObjectCount,apObjArray);
+}
+static FORCEINLINE HRESULT IWbemObjectSinkEx_SetStatus(IWbemObjectSinkEx* This,LONG lFlags,HRESULT hResult,BSTR strParam,IWbemClassObject *pObjParam) {
+    return This->lpVtbl->SetStatus(This,lFlags,hResult,strParam,pObjParam);
+}
+/*** IWbemObjectSinkEx methods ***/
+static FORCEINLINE HRESULT IWbemObjectSinkEx_WriteMessage(IWbemObjectSinkEx* This,ULONG uChannel,const BSTR strMessage) {
+    return This->lpVtbl->WriteMessage(This,uChannel,strMessage);
+}
+static FORCEINLINE HRESULT IWbemObjectSinkEx_WriteError(IWbemObjectSinkEx* This,IWbemClassObject *pObjError,unsigned char *puReturned) {
+    return This->lpVtbl->WriteError(This,pObjError,puReturned);
+}
+static FORCEINLINE HRESULT IWbemObjectSinkEx_PromptUser(IWbemObjectSinkEx* This,const BSTR strMessage,unsigned char uPromptType,unsigned char *puReturned) {
+    return This->lpVtbl->PromptUser(This,strMessage,uPromptType,puReturned);
+}
+static FORCEINLINE HRESULT IWbemObjectSinkEx_WriteProgress(IWbemObjectSinkEx* This,const BSTR strActivity,const BSTR strCurrentOperation,const BSTR strStatusDescription,ULONG uPercentComplete,ULONG uSecondsRemaining) {
+    return This->lpVtbl->WriteProgress(This,strActivity,strCurrentOperation,strStatusDescription,uPercentComplete,uSecondsRemaining);
+}
+static FORCEINLINE HRESULT IWbemObjectSinkEx_WriteStreamParameter(IWbemObjectSinkEx* This,const BSTR strName,VARIANT *vtValue,ULONG ulType,ULONG ulFlags) {
+    return This->lpVtbl->WriteStreamParameter(This,strName,vtValue,ulType,ulFlags);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemObjectSinkEx_WriteMessage_Proxy(
+    IWbemObjectSinkEx* This,
+    ULONG uChannel,
+    const BSTR strMessage);
+void __RPC_STUB IWbemObjectSinkEx_WriteMessage_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectSinkEx_WriteError_Proxy(
+    IWbemObjectSinkEx* This,
+    IWbemClassObject *pObjError,
+    unsigned char *puReturned);
+void __RPC_STUB IWbemObjectSinkEx_WriteError_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectSinkEx_PromptUser_Proxy(
+    IWbemObjectSinkEx* This,
+    const BSTR strMessage,
+    unsigned char uPromptType,
+    unsigned char *puReturned);
+void __RPC_STUB IWbemObjectSinkEx_PromptUser_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectSinkEx_WriteProgress_Proxy(
+    IWbemObjectSinkEx* This,
+    const BSTR strActivity,
+    const BSTR strCurrentOperation,
+    const BSTR strStatusDescription,
+    ULONG uPercentComplete,
+    ULONG uSecondsRemaining);
+void __RPC_STUB IWbemObjectSinkEx_WriteProgress_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectSinkEx_WriteStreamParameter_Proxy(
+    IWbemObjectSinkEx* This,
+    const BSTR strName,
+    VARIANT *vtValue,
+    ULONG ulType,
+    ULONG ulFlags);
+void __RPC_STUB IWbemObjectSinkEx_WriteStreamParameter_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemObjectSinkEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumWbemClassObject interface
+ */
+#ifndef __IEnumWbemClassObject_INTERFACE_DEFINED__
+#define __IEnumWbemClassObject_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumWbemClassObject, 0x027947e1, 0xd731, 0x11ce, 0xa3,0x57, 0x00,0x00,0x00,0x00,0x00,0x01);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("027947e1-d731-11ce-a357-000000000001")
+IEnumWbemClassObject : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        LONG lTimeout,
+        ULONG uCount,
+        IWbemClassObject **apObjects,
+        ULONG *puReturned) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NextAsync(
+        ULONG uCount,
+        IWbemObjectSink *pSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumWbemClassObject **ppEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        LONG lTimeout,
+        ULONG nCount) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumWbemClassObject, 0x027947e1, 0xd731, 0x11ce, 0xa3,0x57, 0x00,0x00,0x00,0x00,0x00,0x01)
+#endif
+#else
+typedef struct IEnumWbemClassObjectVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumWbemClassObject* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumWbemClassObject* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumWbemClassObject* This);
+
+    /*** IEnumWbemClassObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumWbemClassObject* This);
+
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumWbemClassObject* This,
+        LONG lTimeout,
+        ULONG uCount,
+        IWbemClassObject **apObjects,
+        ULONG *puReturned);
+
+    HRESULT (STDMETHODCALLTYPE *NextAsync)(
+        IEnumWbemClassObject* This,
+        ULONG uCount,
+        IWbemObjectSink *pSink);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumWbemClassObject* This,
+        IEnumWbemClassObject **ppEnum);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumWbemClassObject* This,
+        LONG lTimeout,
+        ULONG nCount);
+
+    END_INTERFACE
+} IEnumWbemClassObjectVtbl;
+interface IEnumWbemClassObject {
+    CONST_VTBL IEnumWbemClassObjectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumWbemClassObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumWbemClassObject_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumWbemClassObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumWbemClassObject methods ***/
+#define IEnumWbemClassObject_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumWbemClassObject_Next(This,lTimeout,uCount,apObjects,puReturned) (This)->lpVtbl->Next(This,lTimeout,uCount,apObjects,puReturned)
+#define IEnumWbemClassObject_NextAsync(This,uCount,pSink) (This)->lpVtbl->NextAsync(This,uCount,pSink)
+#define IEnumWbemClassObject_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
+#define IEnumWbemClassObject_Skip(This,lTimeout,nCount) (This)->lpVtbl->Skip(This,lTimeout,nCount)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumWbemClassObject_QueryInterface(IEnumWbemClassObject* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumWbemClassObject_AddRef(IEnumWbemClassObject* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumWbemClassObject_Release(IEnumWbemClassObject* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumWbemClassObject methods ***/
+static FORCEINLINE HRESULT IEnumWbemClassObject_Reset(IEnumWbemClassObject* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumWbemClassObject_Next(IEnumWbemClassObject* This,LONG lTimeout,ULONG uCount,IWbemClassObject **apObjects,ULONG *puReturned) {
+    return This->lpVtbl->Next(This,lTimeout,uCount,apObjects,puReturned);
+}
+static FORCEINLINE HRESULT IEnumWbemClassObject_NextAsync(IEnumWbemClassObject* This,ULONG uCount,IWbemObjectSink *pSink) {
+    return This->lpVtbl->NextAsync(This,uCount,pSink);
+}
+static FORCEINLINE HRESULT IEnumWbemClassObject_Clone(IEnumWbemClassObject* This,IEnumWbemClassObject **ppEnum) {
+    return This->lpVtbl->Clone(This,ppEnum);
+}
+static FORCEINLINE HRESULT IEnumWbemClassObject_Skip(IEnumWbemClassObject* This,LONG lTimeout,ULONG nCount) {
+    return This->lpVtbl->Skip(This,lTimeout,nCount);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IEnumWbemClassObject_Reset_Proxy(
+    IEnumWbemClassObject* This);
+void __RPC_STUB IEnumWbemClassObject_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumWbemClassObject_Next_Proxy(
+    IEnumWbemClassObject* This,
+    LONG lTimeout,
+    ULONG uCount,
+    IWbemClassObject **apObjects,
+    ULONG *puReturned);
+void __RPC_STUB IEnumWbemClassObject_Next_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumWbemClassObject_NextAsync_Proxy(
+    IEnumWbemClassObject* This,
+    ULONG uCount,
+    IWbemObjectSink *pSink);
+void __RPC_STUB IEnumWbemClassObject_NextAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumWbemClassObject_Clone_Proxy(
+    IEnumWbemClassObject* This,
+    IEnumWbemClassObject **ppEnum);
+void __RPC_STUB IEnumWbemClassObject_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumWbemClassObject_Skip_Proxy(
+    IEnumWbemClassObject* This,
+    LONG lTimeout,
+    ULONG nCount);
+void __RPC_STUB IEnumWbemClassObject_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IEnumWbemClassObject_INTERFACE_DEFINED__ */
+
 /*****************************************************************************
  * IWbemContext interface
  */
@@ -1188,760 +2540,2828 @@
 
 #endif  /* __IWbemContext_INTERFACE_DEFINED__ */
 
-#ifndef __IWbemServices_FWD_DEFINED__
-#define __IWbemServices_FWD_DEFINED__
-typedef interface IWbemServices IWbemServices;
-#endif
-
 /*****************************************************************************
- * IWbemLocator interface
+ * IWbemCallResult interface
  */
-#ifndef __IWbemLocator_INTERFACE_DEFINED__
-#define __IWbemLocator_INTERFACE_DEFINED__
+#ifndef __IWbemCallResult_INTERFACE_DEFINED__
+#define __IWbemCallResult_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IWbemLocator, 0xdc12a687, 0x737f, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24);
+DEFINE_GUID(IID_IWbemCallResult, 0x44aca675, 0xe8fc, 0x11d0, 0xa0,0x7c, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("dc12a687-737f-11cf-884d-00aa004b2e24")
-IWbemLocator : public IUnknown
+MIDL_INTERFACE("44aca675-e8fc-11d0-a07c-00c04fb68820")
+IWbemCallResult : public IUnknown
 {
-    virtual HRESULT STDMETHODCALLTYPE ConnectServer(
-        const BSTR strNetworkResource,
-        const BSTR strUser,
-        const BSTR strPassword,
-        const BSTR strLocale,
-        LONG lSecurityFlags,
-        const BSTR strAuthority,
-        IWbemContext *pCtx,
-        IWbemServices **ppNamespace) = 0;
+    virtual HRESULT STDMETHODCALLTYPE GetResultObject(
+        LONG lTimeout,
+        IWbemClassObject **ppResultObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetResultString(
+        LONG lTimeout,
+        BSTR *pstrResultString) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetResultServices(
+        LONG lTimeout,
+        IWbemServices **ppServices) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCallStatus(
+        LONG lTimeout,
+        LONG *plStatus) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IWbemLocator, 0xdc12a687, 0x737f, 0x11cf, 0x88,0x4d, 0x00,0xaa,0x00,0x4b,0x2e,0x24)
+__CRT_UUID_DECL(IWbemCallResult, 0x44aca675, 0xe8fc, 0x11d0, 0xa0,0x7c, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
 #endif
 #else
-typedef struct IWbemLocatorVtbl {
+typedef struct IWbemCallResultVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IWbemLocator* This,
+        IWbemCallResult* This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IWbemLocator* This);
+        IWbemCallResult* This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IWbemLocator* This);
+        IWbemCallResult* This);
 
-    /*** IWbemLocator methods ***/
-    HRESULT (STDMETHODCALLTYPE *ConnectServer)(
-        IWbemLocator* This,
-        const BSTR strNetworkResource,
-        const BSTR strUser,
-        const BSTR strPassword,
-        const BSTR strLocale,
-        LONG lSecurityFlags,
-        const BSTR strAuthority,
-        IWbemContext *pCtx,
-        IWbemServices **ppNamespace);
+    /*** IWbemCallResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetResultObject)(
+        IWbemCallResult* This,
+        LONG lTimeout,
+        IWbemClassObject **ppResultObject);
+
+    HRESULT (STDMETHODCALLTYPE *GetResultString)(
+        IWbemCallResult* This,
+        LONG lTimeout,
+        BSTR *pstrResultString);
+
+    HRESULT (STDMETHODCALLTYPE *GetResultServices)(
+        IWbemCallResult* This,
+        LONG lTimeout,
+        IWbemServices **ppServices);
+
+    HRESULT (STDMETHODCALLTYPE *GetCallStatus)(
+        IWbemCallResult* This,
+        LONG lTimeout,
+        LONG *plStatus);
 
     END_INTERFACE
-} IWbemLocatorVtbl;
-interface IWbemLocator {
-    CONST_VTBL IWbemLocatorVtbl* lpVtbl;
+} IWbemCallResultVtbl;
+interface IWbemCallResult {
+    CONST_VTBL IWbemCallResultVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IWbemLocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemLocator_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemLocator_Release(This) (This)->lpVtbl->Release(This)
-/*** IWbemLocator methods ***/
-#define IWbemLocator_ConnectServer(This,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace) (This)->lpVtbl->ConnectServer(This,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace)
+#define IWbemCallResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemCallResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemCallResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemCallResult methods ***/
+#define IWbemCallResult_GetResultObject(This,lTimeout,ppResultObject) (This)->lpVtbl->GetResultObject(This,lTimeout,ppResultObject)
+#define IWbemCallResult_GetResultString(This,lTimeout,pstrResultString) (This)->lpVtbl->GetResultString(This,lTimeout,pstrResultString)
+#define IWbemCallResult_GetResultServices(This,lTimeout,ppServices) (This)->lpVtbl->GetResultServices(This,lTimeout,ppServices)
+#define IWbemCallResult_GetCallStatus(This,lTimeout,plStatus) (This)->lpVtbl->GetCallStatus(This,lTimeout,plStatus)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IWbemLocator_QueryInterface(IWbemLocator* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT IWbemCallResult_QueryInterface(IWbemCallResult* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IWbemLocator_AddRef(IWbemLocator* This) {
+static FORCEINLINE ULONG IWbemCallResult_AddRef(IWbemCallResult* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IWbemLocator_Release(IWbemLocator* This) {
+static FORCEINLINE ULONG IWbemCallResult_Release(IWbemCallResult* This) {
     return This->lpVtbl->Release(This);
 }
-/*** IWbemLocator methods ***/
-static FORCEINLINE HRESULT IWbemLocator_ConnectServer(IWbemLocator* This,const BSTR strNetworkResource,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,LONG lSecurityFlags,const BSTR strAuthority,IWbemContext *pCtx,IWbemServices **ppNamespace) {
-    return This->lpVtbl->ConnectServer(This,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace);
+/*** IWbemCallResult methods ***/
+static FORCEINLINE HRESULT IWbemCallResult_GetResultObject(IWbemCallResult* This,LONG lTimeout,IWbemClassObject **ppResultObject) {
+    return This->lpVtbl->GetResultObject(This,lTimeout,ppResultObject);
+}
+static FORCEINLINE HRESULT IWbemCallResult_GetResultString(IWbemCallResult* This,LONG lTimeout,BSTR *pstrResultString) {
+    return This->lpVtbl->GetResultString(This,lTimeout,pstrResultString);
+}
+static FORCEINLINE HRESULT IWbemCallResult_GetResultServices(IWbemCallResult* This,LONG lTimeout,IWbemServices **ppServices) {
+    return This->lpVtbl->GetResultServices(This,lTimeout,ppServices);
+}
+static FORCEINLINE HRESULT IWbemCallResult_GetCallStatus(IWbemCallResult* This,LONG lTimeout,LONG *plStatus) {
+    return This->lpVtbl->GetCallStatus(This,lTimeout,plStatus);
 }
 #endif
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IWbemLocator_ConnectServer_Proxy(
-    IWbemLocator* This,
-    const BSTR strNetworkResource,
-    const BSTR strUser,
-    const BSTR strPassword,
-    const BSTR strLocale,
-    LONG lSecurityFlags,
-    const BSTR strAuthority,
-    IWbemContext *pCtx,
-    IWbemServices **ppNamespace);
-void __RPC_STUB IWbemLocator_ConnectServer_Stub(
+HRESULT STDMETHODCALLTYPE IWbemCallResult_GetResultObject_Proxy(
+    IWbemCallResult* This,
+    LONG lTimeout,
+    IWbemClassObject **ppResultObject);
+void __RPC_STUB IWbemCallResult_GetResultObject_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemCallResult_GetResultString_Proxy(
+    IWbemCallResult* This,
+    LONG lTimeout,
+    BSTR *pstrResultString);
+void __RPC_STUB IWbemCallResult_GetResultString_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemCallResult_GetResultServices_Proxy(
+    IWbemCallResult* This,
+    LONG lTimeout,
+    IWbemServices **ppServices);
+void __RPC_STUB IWbemCallResult_GetResultServices_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemCallResult_GetCallStatus_Proxy(
+    IWbemCallResult* This,
+    LONG lTimeout,
+    LONG *plStatus);
+void __RPC_STUB IWbemCallResult_GetCallStatus_Stub(
     IRpcStubBuffer* This,
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
 
-#endif  /* __IWbemLocator_INTERFACE_DEFINED__ */
+#endif  /* __IWbemCallResult_INTERFACE_DEFINED__ */
 
-#ifndef __IWbemObjectSink_INTERFACE_DEFINED__
-#define __IWbemObjectSink_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemObjectSink;
+/*****************************************************************************
+ * IWbemServices interface
+ */
+#ifndef __IWbemServices_INTERFACE_DEFINED__
+#define __IWbemServices_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemServices, 0x9556dc99, 0x828c, 0x11cf, 0xa3,0x7e, 0x00,0xaa,0x00,0x32,0x40,0xc7);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemObjectSink : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Indicate(__LONG32 lObjectCount,IWbemClassObject **apObjArray) = 0;
-    virtual HRESULT WINAPI SetStatus(__LONG32 lFlags,HRESULT hResult,BSTR strParam,IWbemClassObject *pObjParam) = 0;
-  };
+MIDL_INTERFACE("9556dc99-828c-11cf-a37e-00aa003240c7")
+IWbemServices : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OpenNamespace(
+        const BSTR strNamespace,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemServices **ppWorkingNamespace,
+        IWbemCallResult **ppResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CancelAsyncCall(
+        IWbemObjectSink *pSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryObjectSink(
+        LONG lFlags,
+        IWbemObjectSink **ppResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetObject(
+        const BSTR strObjectPath,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemClassObject **ppObject,
+        IWbemCallResult **ppCallResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetObjectAsync(
+        const BSTR strObjectPath,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PutClass(
+        IWbemClassObject *pObject,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemCallResult **ppCallResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PutClassAsync(
+        IWbemClassObject *pObject,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteClass(
+        const BSTR strClass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemCallResult **ppCallResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteClassAsync(
+        const BSTR strClass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateClassEnum(
+        const BSTR strSuperclass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IEnumWbemClassObject **ppEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateClassEnumAsync(
+        const BSTR strSuperclass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PutInstance(
+        IWbemClassObject *pInst,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemCallResult **ppCallResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PutInstanceAsync(
+        IWbemClassObject *pInst,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteInstance(
+        const BSTR strObjectPath,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemCallResult **ppCallResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteInstanceAsync(
+        const BSTR strObjectPath,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateInstanceEnum(
+        const BSTR strFilter,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IEnumWbemClassObject **ppEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateInstanceEnumAsync(
+        const BSTR strFilter,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecQuery(
+        const BSTR strQueryLanguage,
+        const BSTR strQuery,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IEnumWbemClassObject **ppEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecQueryAsync(
+        const BSTR strQueryLanguage,
+        const BSTR strQuery,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecNotificationQuery(
+        const BSTR strQueryLanguage,
+        const BSTR strQuery,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IEnumWbemClassObject **ppEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecNotificationQueryAsync(
+        const BSTR strQueryLanguage,
+        const BSTR strQuery,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecMethod(
+        const BSTR strObjectPath,
+        const BSTR strMethodName,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemClassObject *pInParams,
+        IWbemClassObject **ppOutParams,
+        IWbemCallResult **ppCallResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecMethodAsync(
+        const BSTR strObjectPath,
+        const BSTR strMethodName,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemClassObject *pInParams,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemServices, 0x9556dc99, 0x828c, 0x11cf, 0xa3,0x7e, 0x00,0xaa,0x00,0x32,0x40,0xc7)
+#endif
 #else
-  typedef struct IWbemObjectSinkVtbl {
+typedef struct IWbemServicesVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemObjectSink *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemObjectSink *This);
-      ULONG (WINAPI *Release)(IWbemObjectSink *This);
-      HRESULT (WINAPI *Indicate)(IWbemObjectSink *This,__LONG32 lObjectCount,IWbemClassObject **apObjArray);
-      HRESULT (WINAPI *SetStatus)(IWbemObjectSink *This,__LONG32 lFlags,HRESULT hResult,BSTR strParam,IWbemClassObject *pObjParam);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemServices* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemServices* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemServices* This);
+
+    /*** IWbemServices methods ***/
+    HRESULT (STDMETHODCALLTYPE *OpenNamespace)(
+        IWbemServices* This,
+        const BSTR strNamespace,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemServices **ppWorkingNamespace,
+        IWbemCallResult **ppResult);
+
+    HRESULT (STDMETHODCALLTYPE *CancelAsyncCall)(
+        IWbemServices* This,
+        IWbemObjectSink *pSink);
+
+    HRESULT (STDMETHODCALLTYPE *QueryObjectSink)(
+        IWbemServices* This,
+        LONG lFlags,
+        IWbemObjectSink **ppResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *GetObject)(
+        IWbemServices* This,
+        const BSTR strObjectPath,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemClassObject **ppObject,
+        IWbemCallResult **ppCallResult);
+
+    HRESULT (STDMETHODCALLTYPE *GetObjectAsync)(
+        IWbemServices* This,
+        const BSTR strObjectPath,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *PutClass)(
+        IWbemServices* This,
+        IWbemClassObject *pObject,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemCallResult **ppCallResult);
+
+    HRESULT (STDMETHODCALLTYPE *PutClassAsync)(
+        IWbemServices* This,
+        IWbemClassObject *pObject,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteClass)(
+        IWbemServices* This,
+        const BSTR strClass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemCallResult **ppCallResult);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteClassAsync)(
+        IWbemServices* This,
+        const BSTR strClass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *CreateClassEnum)(
+        IWbemServices* This,
+        const BSTR strSuperclass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IEnumWbemClassObject **ppEnum);
+
+    HRESULT (STDMETHODCALLTYPE *CreateClassEnumAsync)(
+        IWbemServices* This,
+        const BSTR strSuperclass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *PutInstance)(
+        IWbemServices* This,
+        IWbemClassObject *pInst,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemCallResult **ppCallResult);
+
+    HRESULT (STDMETHODCALLTYPE *PutInstanceAsync)(
+        IWbemServices* This,
+        IWbemClassObject *pInst,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteInstance)(
+        IWbemServices* This,
+        const BSTR strObjectPath,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemCallResult **ppCallResult);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteInstanceAsync)(
+        IWbemServices* This,
+        const BSTR strObjectPath,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInstanceEnum)(
+        IWbemServices* This,
+        const BSTR strFilter,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IEnumWbemClassObject **ppEnum);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInstanceEnumAsync)(
+        IWbemServices* This,
+        const BSTR strFilter,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *ExecQuery)(
+        IWbemServices* This,
+        const BSTR strQueryLanguage,
+        const BSTR strQuery,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IEnumWbemClassObject **ppEnum);
+
+    HRESULT (STDMETHODCALLTYPE *ExecQueryAsync)(
+        IWbemServices* This,
+        const BSTR strQueryLanguage,
+        const BSTR strQuery,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *ExecNotificationQuery)(
+        IWbemServices* This,
+        const BSTR strQueryLanguage,
+        const BSTR strQuery,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IEnumWbemClassObject **ppEnum);
+
+    HRESULT (STDMETHODCALLTYPE *ExecNotificationQueryAsync)(
+        IWbemServices* This,
+        const BSTR strQueryLanguage,
+        const BSTR strQuery,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethod)(
+        IWbemServices* This,
+        const BSTR strObjectPath,
+        const BSTR strMethodName,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemClassObject *pInParams,
+        IWbemClassObject **ppOutParams,
+        IWbemCallResult **ppCallResult);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethodAsync)(
+        IWbemServices* This,
+        const BSTR strObjectPath,
+        const BSTR strMethodName,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemClassObject *pInParams,
+        IWbemObjectSink *pResponseHandler);
+
     END_INTERFACE
-  } IWbemObjectSinkVtbl;
-  struct IWbemObjectSink {
-    CONST_VTBL struct IWbemObjectSinkVtbl *lpVtbl;
-  };
+} IWbemServicesVtbl;
+interface IWbemServices {
+    CONST_VTBL IWbemServicesVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
-#define IWbemObjectSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemObjectSink_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemObjectSink_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemObjectSink_Indicate(This,lObjectCount,apObjArray) (This)->lpVtbl->Indicate(This,lObjectCount,apObjArray)
-#define IWbemObjectSink_SetStatus(This,lFlags,hResult,strParam,pObjParam) (This)->lpVtbl->SetStatus(This,lFlags,hResult,strParam,pObjParam)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemServices_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemServices_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemServices methods ***/
+#define IWbemServices_OpenNamespace(This,strNamespace,lFlags,pCtx,ppWorkingNamespace,ppResult) (This)->lpVtbl->OpenNamespace(This,strNamespace,lFlags,pCtx,ppWorkingNamespace,ppResult)
+#define IWbemServices_CancelAsyncCall(This,pSink) (This)->lpVtbl->CancelAsyncCall(This,pSink)
+#define IWbemServices_QueryObjectSink(This,lFlags,ppResponseHandler) (This)->lpVtbl->QueryObjectSink(This,lFlags,ppResponseHandler)
+#define IWbemServices_GetObject(This,strObjectPath,lFlags,pCtx,ppObject,ppCallResult) (This)->lpVtbl->GetObject(This,strObjectPath,lFlags,pCtx,ppObject,ppCallResult)
+#define IWbemServices_GetObjectAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->GetObjectAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler)
+#define IWbemServices_PutClass(This,pObject,lFlags,pCtx,ppCallResult) (This)->lpVtbl->PutClass(This,pObject,lFlags,pCtx,ppCallResult)
+#define IWbemServices_PutClassAsync(This,pObject,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->PutClassAsync(This,pObject,lFlags,pCtx,pResponseHandler)
+#define IWbemServices_DeleteClass(This,strClass,lFlags,pCtx,ppCallResult) (This)->lpVtbl->DeleteClass(This,strClass,lFlags,pCtx,ppCallResult)
+#define IWbemServices_DeleteClassAsync(This,strClass,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->DeleteClassAsync(This,strClass,lFlags,pCtx,pResponseHandler)
+#define IWbemServices_CreateClassEnum(This,strSuperclass,lFlags,pCtx,ppEnum) (This)->lpVtbl->CreateClassEnum(This,strSuperclass,lFlags,pCtx,ppEnum)
+#define IWbemServices_CreateClassEnumAsync(This,strSuperclass,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->CreateClassEnumAsync(This,strSuperclass,lFlags,pCtx,pResponseHandler)
+#define IWbemServices_PutInstance(This,pInst,lFlags,pCtx,ppCallResult) (This)->lpVtbl->PutInstance(This,pInst,lFlags,pCtx,ppCallResult)
+#define IWbemServices_PutInstanceAsync(This,pInst,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->PutInstanceAsync(This,pInst,lFlags,pCtx,pResponseHandler)
+#define IWbemServices_DeleteInstance(This,strObjectPath,lFlags,pCtx,ppCallResult) (This)->lpVtbl->DeleteInstance(This,strObjectPath,lFlags,pCtx,ppCallResult)
+#define IWbemServices_DeleteInstanceAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->DeleteInstanceAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler)
+#define IWbemServices_CreateInstanceEnum(This,strFilter,lFlags,pCtx,ppEnum) (This)->lpVtbl->CreateInstanceEnum(This,strFilter,lFlags,pCtx,ppEnum)
+#define IWbemServices_CreateInstanceEnumAsync(This,strFilter,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->CreateInstanceEnumAsync(This,strFilter,lFlags,pCtx,pResponseHandler)
+#define IWbemServices_ExecQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum) (This)->lpVtbl->ExecQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum)
+#define IWbemServices_ExecQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->ExecQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler)
+#define IWbemServices_ExecNotificationQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum) (This)->lpVtbl->ExecNotificationQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum)
+#define IWbemServices_ExecNotificationQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler) (This)->lpVtbl->ExecNotificationQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler)
+#define IWbemServices_ExecMethod(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,ppOutParams,ppCallResult) (This)->lpVtbl->ExecMethod(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,ppOutParams,ppCallResult)
+#define IWbemServices_ExecMethodAsync(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,pResponseHandler) (This)->lpVtbl->ExecMethodAsync(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,pResponseHandler)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemServices_QueryInterface(IWbemServices* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemServices_AddRef(IWbemServices* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemServices_Release(IWbemServices* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemServices methods ***/
+static FORCEINLINE HRESULT IWbemServices_OpenNamespace(IWbemServices* This,const BSTR strNamespace,LONG lFlags,IWbemContext *pCtx,IWbemServices **ppWorkingNamespace,IWbemCallResult **ppResult) {
+    return This->lpVtbl->OpenNamespace(This,strNamespace,lFlags,pCtx,ppWorkingNamespace,ppResult);
+}
+static FORCEINLINE HRESULT IWbemServices_CancelAsyncCall(IWbemServices* This,IWbemObjectSink *pSink) {
+    return This->lpVtbl->CancelAsyncCall(This,pSink);
+}
+static FORCEINLINE HRESULT IWbemServices_QueryObjectSink(IWbemServices* This,LONG lFlags,IWbemObjectSink **ppResponseHandler) {
+    return This->lpVtbl->QueryObjectSink(This,lFlags,ppResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_GetObject(IWbemServices* This,const BSTR strObjectPath,LONG lFlags,IWbemContext *pCtx,IWbemClassObject **ppObject,IWbemCallResult **ppCallResult) {
+    return This->lpVtbl->GetObject(This,strObjectPath,lFlags,pCtx,ppObject,ppCallResult);
+}
+static FORCEINLINE HRESULT IWbemServices_GetObjectAsync(IWbemServices* This,const BSTR strObjectPath,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->GetObjectAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_PutClass(IWbemServices* This,IWbemClassObject *pObject,LONG lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) {
+    return This->lpVtbl->PutClass(This,pObject,lFlags,pCtx,ppCallResult);
+}
+static FORCEINLINE HRESULT IWbemServices_PutClassAsync(IWbemServices* This,IWbemClassObject *pObject,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->PutClassAsync(This,pObject,lFlags,pCtx,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_DeleteClass(IWbemServices* This,const BSTR strClass,LONG lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) {
+    return This->lpVtbl->DeleteClass(This,strClass,lFlags,pCtx,ppCallResult);
+}
+static FORCEINLINE HRESULT IWbemServices_DeleteClassAsync(IWbemServices* This,const BSTR strClass,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->DeleteClassAsync(This,strClass,lFlags,pCtx,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_CreateClassEnum(IWbemServices* This,const BSTR strSuperclass,LONG lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) {
+    return This->lpVtbl->CreateClassEnum(This,strSuperclass,lFlags,pCtx,ppEnum);
+}
+static FORCEINLINE HRESULT IWbemServices_CreateClassEnumAsync(IWbemServices* This,const BSTR strSuperclass,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->CreateClassEnumAsync(This,strSuperclass,lFlags,pCtx,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_PutInstance(IWbemServices* This,IWbemClassObject *pInst,LONG lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) {
+    return This->lpVtbl->PutInstance(This,pInst,lFlags,pCtx,ppCallResult);
+}
+static FORCEINLINE HRESULT IWbemServices_PutInstanceAsync(IWbemServices* This,IWbemClassObject *pInst,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->PutInstanceAsync(This,pInst,lFlags,pCtx,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_DeleteInstance(IWbemServices* This,const BSTR strObjectPath,LONG lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) {
+    return This->lpVtbl->DeleteInstance(This,strObjectPath,lFlags,pCtx,ppCallResult);
+}
+static FORCEINLINE HRESULT IWbemServices_DeleteInstanceAsync(IWbemServices* This,const BSTR strObjectPath,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->DeleteInstanceAsync(This,strObjectPath,lFlags,pCtx,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_CreateInstanceEnum(IWbemServices* This,const BSTR strFilter,LONG lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) {
+    return This->lpVtbl->CreateInstanceEnum(This,strFilter,lFlags,pCtx,ppEnum);
+}
+static FORCEINLINE HRESULT IWbemServices_CreateInstanceEnumAsync(IWbemServices* This,const BSTR strFilter,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->CreateInstanceEnumAsync(This,strFilter,lFlags,pCtx,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_ExecQuery(IWbemServices* This,const BSTR strQueryLanguage,const BSTR strQuery,LONG lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) {
+    return This->lpVtbl->ExecQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum);
+}
+static FORCEINLINE HRESULT IWbemServices_ExecQueryAsync(IWbemServices* This,const BSTR strQueryLanguage,const BSTR strQuery,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->ExecQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_ExecNotificationQuery(IWbemServices* This,const BSTR strQueryLanguage,const BSTR strQuery,LONG lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) {
+    return This->lpVtbl->ExecNotificationQuery(This,strQueryLanguage,strQuery,lFlags,pCtx,ppEnum);
+}
+static FORCEINLINE HRESULT IWbemServices_ExecNotificationQueryAsync(IWbemServices* This,const BSTR strQueryLanguage,const BSTR strQuery,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->ExecNotificationQueryAsync(This,strQueryLanguage,strQuery,lFlags,pCtx,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemServices_ExecMethod(IWbemServices* This,const BSTR strObjectPath,const BSTR strMethodName,LONG lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemClassObject **ppOutParams,IWbemCallResult **ppCallResult) {
+    return This->lpVtbl->ExecMethod(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,ppOutParams,ppCallResult);
+}
+static FORCEINLINE HRESULT IWbemServices_ExecMethodAsync(IWbemServices* This,const BSTR strObjectPath,const BSTR strMethodName,LONG lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->ExecMethodAsync(This,strObjectPath,strMethodName,lFlags,pCtx,pInParams,pResponseHandler);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemObjectSink_Indicate_Proxy(IWbemObjectSink *This,__LONG32 lObjectCount,IWbemClassObject **apObjArray);
-  void __RPC_STUB IWbemObjectSink_Indicate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemObjectSink_SetStatus_Proxy(IWbemObjectSink *This,__LONG32 lFlags,HRESULT hResult,BSTR strParam,IWbemClassObject *pObjParam);
-  void __RPC_STUB IWbemObjectSink_SetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-#ifndef __IEnumWbemClassObject_INTERFACE_DEFINED__
-#define __IEnumWbemClassObject_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumWbemClassObject;
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemServices_OpenNamespace_Proxy(
+    IWbemServices* This,
+    const BSTR strNamespace,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemServices **ppWorkingNamespace,
+    IWbemCallResult **ppResult);
+void __RPC_STUB IWbemServices_OpenNamespace_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_CancelAsyncCall_Proxy(
+    IWbemServices* This,
+    IWbemObjectSink *pSink);
+void __RPC_STUB IWbemServices_CancelAsyncCall_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_QueryObjectSink_Proxy(
+    IWbemServices* This,
+    LONG lFlags,
+    IWbemObjectSink **ppResponseHandler);
+void __RPC_STUB IWbemServices_QueryObjectSink_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_GetObject_Proxy(
+    IWbemServices* This,
+    const BSTR strObjectPath,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemClassObject **ppObject,
+    IWbemCallResult **ppCallResult);
+void __RPC_STUB IWbemServices_GetObject_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_GetObjectAsync_Proxy(
+    IWbemServices* This,
+    const BSTR strObjectPath,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_GetObjectAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_PutClass_Proxy(
+    IWbemServices* This,
+    IWbemClassObject *pObject,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemCallResult **ppCallResult);
+void __RPC_STUB IWbemServices_PutClass_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_PutClassAsync_Proxy(
+    IWbemServices* This,
+    IWbemClassObject *pObject,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_PutClassAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_DeleteClass_Proxy(
+    IWbemServices* This,
+    const BSTR strClass,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemCallResult **ppCallResult);
+void __RPC_STUB IWbemServices_DeleteClass_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_DeleteClassAsync_Proxy(
+    IWbemServices* This,
+    const BSTR strClass,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_DeleteClassAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_CreateClassEnum_Proxy(
+    IWbemServices* This,
+    const BSTR strSuperclass,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IEnumWbemClassObject **ppEnum);
+void __RPC_STUB IWbemServices_CreateClassEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_CreateClassEnumAsync_Proxy(
+    IWbemServices* This,
+    const BSTR strSuperclass,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_CreateClassEnumAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_PutInstance_Proxy(
+    IWbemServices* This,
+    IWbemClassObject *pInst,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemCallResult **ppCallResult);
+void __RPC_STUB IWbemServices_PutInstance_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_PutInstanceAsync_Proxy(
+    IWbemServices* This,
+    IWbemClassObject *pInst,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_PutInstanceAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_DeleteInstance_Proxy(
+    IWbemServices* This,
+    const BSTR strObjectPath,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemCallResult **ppCallResult);
+void __RPC_STUB IWbemServices_DeleteInstance_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_DeleteInstanceAsync_Proxy(
+    IWbemServices* This,
+    const BSTR strObjectPath,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_DeleteInstanceAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_CreateInstanceEnum_Proxy(
+    IWbemServices* This,
+    const BSTR strFilter,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IEnumWbemClassObject **ppEnum);
+void __RPC_STUB IWbemServices_CreateInstanceEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_CreateInstanceEnumAsync_Proxy(
+    IWbemServices* This,
+    const BSTR strFilter,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_CreateInstanceEnumAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_ExecQuery_Proxy(
+    IWbemServices* This,
+    const BSTR strQueryLanguage,
+    const BSTR strQuery,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IEnumWbemClassObject **ppEnum);
+void __RPC_STUB IWbemServices_ExecQuery_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_ExecQueryAsync_Proxy(
+    IWbemServices* This,
+    const BSTR strQueryLanguage,
+    const BSTR strQuery,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_ExecQueryAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_ExecNotificationQuery_Proxy(
+    IWbemServices* This,
+    const BSTR strQueryLanguage,
+    const BSTR strQuery,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IEnumWbemClassObject **ppEnum);
+void __RPC_STUB IWbemServices_ExecNotificationQuery_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_ExecNotificationQueryAsync_Proxy(
+    IWbemServices* This,
+    const BSTR strQueryLanguage,
+    const BSTR strQuery,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_ExecNotificationQueryAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_ExecMethod_Proxy(
+    IWbemServices* This,
+    const BSTR strObjectPath,
+    const BSTR strMethodName,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemClassObject *pInParams,
+    IWbemClassObject **ppOutParams,
+    IWbemCallResult **ppCallResult);
+void __RPC_STUB IWbemServices_ExecMethod_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemServices_ExecMethodAsync_Proxy(
+    IWbemServices* This,
+    const BSTR strObjectPath,
+    const BSTR strMethodName,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemClassObject *pInParams,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemServices_ExecMethodAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemServices_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemShutdown interface
+ */
+#ifndef __IWbemShutdown_INTERFACE_DEFINED__
+#define __IWbemShutdown_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemShutdown, 0xb7b31df9, 0xd515, 0x11d3, 0xa1,0x1c, 0x00,0x10,0x5a,0x1f,0x51,0x5a);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumWbemClassObject : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Next(__LONG32 lTimeout,ULONG uCount,IWbemClassObject **apObjects,ULONG *puReturned) = 0;
-    virtual HRESULT WINAPI NextAsync(ULONG uCount,IWbemObjectSink *pSink) = 0;
-    virtual HRESULT WINAPI Clone(IEnumWbemClassObject **ppEnum) = 0;
-    virtual HRESULT WINAPI Skip(__LONG32 lTimeout,ULONG nCount) = 0;
-  };
+MIDL_INTERFACE("b7b31df9-d515-11d3-a11c-00105a1f515a")
+IWbemShutdown : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Shutdown(
+        LONG uReason,
+        ULONG uMaxMilliseconds,
+        IWbemContext *pCtx) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemShutdown, 0xb7b31df9, 0xd515, 0x11d3, 0xa1,0x1c, 0x00,0x10,0x5a,0x1f,0x51,0x5a)
+#endif
 #else
-  typedef struct IEnumWbemClassObjectVtbl {
+typedef struct IWbemShutdownVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumWbemClassObject *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumWbemClassObject *This);
-      ULONG (WINAPI *Release)(IEnumWbemClassObject *This);
-      HRESULT (WINAPI *Reset)(IEnumWbemClassObject *This);
-      HRESULT (WINAPI *Next)(IEnumWbemClassObject *This,__LONG32 lTimeout,ULONG uCount,IWbemClassObject **apObjects,ULONG *puReturned);
-      HRESULT (WINAPI *NextAsync)(IEnumWbemClassObject *This,ULONG uCount,IWbemObjectSink *pSink);
-      HRESULT (WINAPI *Clone)(IEnumWbemClassObject *This,IEnumWbemClassObject **ppEnum);
-      HRESULT (WINAPI *Skip)(IEnumWbemClassObject *This,__LONG32 lTimeout,ULONG nCount);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemShutdown* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemShutdown* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemShutdown* This);
+
+    /*** IWbemShutdown methods ***/
+    HRESULT (STDMETHODCALLTYPE *Shutdown)(
+        IWbemShutdown* This,
+        LONG uReason,
+        ULONG uMaxMilliseconds,
+        IWbemContext *pCtx);
+
     END_INTERFACE
-  } IEnumWbemClassObjectVtbl;
-  struct IEnumWbemClassObject {
-    CONST_VTBL struct IEnumWbemClassObjectVtbl *lpVtbl;
-  };
+} IWbemShutdownVtbl;
+interface IWbemShutdown {
+    CONST_VTBL IWbemShutdownVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
-#define IEnumWbemClassObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumWbemClassObject_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumWbemClassObject_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumWbemClassObject_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumWbemClassObject_Next(This,lTimeout,uCount,apObjects,puReturned) (This)->lpVtbl->Next(This,lTimeout,uCount,apObjects,puReturned)
-#define IEnumWbemClassObject_NextAsync(This,uCount,pSink) (This)->lpVtbl->NextAsync(This,uCount,pSink)
-#define IEnumWbemClassObject_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
-#define IEnumWbemClassObject_Skip(This,lTimeout,nCount) (This)->lpVtbl->Skip(This,lTimeout,nCount)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemShutdown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemShutdown_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemShutdown_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemShutdown methods ***/
+#define IWbemShutdown_Shutdown(This,uReason,uMaxMilliseconds,pCtx) (This)->lpVtbl->Shutdown(This,uReason,uMaxMilliseconds,pCtx)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemShutdown_QueryInterface(IWbemShutdown* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemShutdown_AddRef(IWbemShutdown* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemShutdown_Release(IWbemShutdown* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemShutdown methods ***/
+static FORCEINLINE HRESULT IWbemShutdown_Shutdown(IWbemShutdown* This,LONG uReason,ULONG uMaxMilliseconds,IWbemContext *pCtx) {
+    return This->lpVtbl->Shutdown(This,uReason,uMaxMilliseconds,pCtx);
+}
 #endif
 #endif
-  HRESULT WINAPI IEnumWbemClassObject_Reset_Proxy(IEnumWbemClassObject *This);
-  void __RPC_STUB IEnumWbemClassObject_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWbemClassObject_Next_Proxy(IEnumWbemClassObject *This,__LONG32 lTimeout,ULONG uCount,IWbemClassObject **apObjects,ULONG *puReturned);
-  void __RPC_STUB IEnumWbemClassObject_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWbemClassObject_NextAsync_Proxy(IEnumWbemClassObject *This,ULONG uCount,IWbemObjectSink *pSink);
-  void __RPC_STUB IEnumWbemClassObject_NextAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWbemClassObject_Clone_Proxy(IEnumWbemClassObject *This,IEnumWbemClassObject **ppEnum);
-  void __RPC_STUB IEnumWbemClassObject_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWbemClassObject_Skip_Proxy(IEnumWbemClassObject *This,__LONG32 lTimeout,ULONG nCount);
-  void __RPC_STUB IEnumWbemClassObject_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-#ifndef __IWbemCallResult_INTERFACE_DEFINED__
-#define __IWbemCallResult_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemCallResult;
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemShutdown_Shutdown_Proxy(
+    IWbemShutdown* This,
+    LONG uReason,
+    ULONG uMaxMilliseconds,
+    IWbemContext *pCtx);
+void __RPC_STUB IWbemShutdown_Shutdown_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemShutdown_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemObjectTextSrc interface
+ */
+#ifndef __IWbemObjectTextSrc_INTERFACE_DEFINED__
+#define __IWbemObjectTextSrc_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemObjectTextSrc, 0xbfbf883a, 0xcad7, 0x11d3, 0xa1,0x1b, 0x00,0x10,0x5a,0x1f,0x51,0x5a);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemCallResult : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetResultObject(__LONG32 lTimeout,IWbemClassObject **ppResultObject) = 0;
-    virtual HRESULT WINAPI GetResultString(__LONG32 lTimeout,BSTR *pstrResultString) = 0;
-    virtual HRESULT WINAPI GetResultServices(__LONG32 lTimeout,IWbemServices **ppServices) = 0;
-    virtual HRESULT WINAPI GetCallStatus(__LONG32 lTimeout,__LONG32 *plStatus) = 0;
-  };
+MIDL_INTERFACE("bfbf883a-cad7-11d3-a11b-00105a1f515a")
+IWbemObjectTextSrc : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetText(
+        LONG lFlags,
+        IWbemClassObject *pObj,
+        ULONG uObjTextFormat,
+        IWbemContext *pCtx,
+        BSTR *strText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateFromText(
+        LONG lFlags,
+        BSTR strText,
+        ULONG uObjTextFormat,
+        IWbemContext *pCtx,
+        IWbemClassObject **pNewObj) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemObjectTextSrc, 0xbfbf883a, 0xcad7, 0x11d3, 0xa1,0x1b, 0x00,0x10,0x5a,0x1f,0x51,0x5a)
+#endif
 #else
-  typedef struct IWbemCallResultVtbl {
+typedef struct IWbemObjectTextSrcVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemCallResult *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemCallResult *This);
-      ULONG (WINAPI *Release)(IWbemCallResult *This);
-      HRESULT (WINAPI *GetResultObject)(IWbemCallResult *This,__LONG32 lTimeout,IWbemClassObject **ppResultObject);
-      HRESULT (WINAPI *GetResultString)(IWbemCallResult *This,__LONG32 lTimeout,BSTR *pstrResultString);
-      HRESULT (WINAPI *GetResultServices)(IWbemCallResult *This,__LONG32 lTimeout,IWbemServices **ppServices);
-      HRESULT (WINAPI *GetCallStatus)(IWbemCallResult *This,__LONG32 lTimeout,__LONG32 *plStatus);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemObjectTextSrc* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemObjectTextSrc* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemObjectTextSrc* This);
+
+    /*** IWbemObjectTextSrc methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetText)(
+        IWbemObjectTextSrc* This,
+        LONG lFlags,
+        IWbemClassObject *pObj,
+        ULONG uObjTextFormat,
+        IWbemContext *pCtx,
+        BSTR *strText);
+
+    HRESULT (STDMETHODCALLTYPE *CreateFromText)(
+        IWbemObjectTextSrc* This,
+        LONG lFlags,
+        BSTR strText,
+        ULONG uObjTextFormat,
+        IWbemContext *pCtx,
+        IWbemClassObject **pNewObj);
+
     END_INTERFACE
-  } IWbemCallResultVtbl;
-  struct IWbemCallResult {
-    CONST_VTBL struct IWbemCallResultVtbl *lpVtbl;
-  };
+} IWbemObjectTextSrcVtbl;
+interface IWbemObjectTextSrc {
+    CONST_VTBL IWbemObjectTextSrcVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
-#define IWbemCallResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemCallResult_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemCallResult_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemCallResult_GetResultObject(This,lTimeout,ppResultObject) (This)->lpVtbl->GetResultObject(This,lTimeout,ppResultObject)
-#define IWbemCallResult_GetResultString(This,lTimeout,pstrResultString) (This)->lpVtbl->GetResultString(This,lTimeout,pstrResultString)
-#define IWbemCallResult_GetResultServices(This,lTimeout,ppServices) (This)->lpVtbl->GetResultServices(This,lTimeout,ppServices)
-#define IWbemCallResult_GetCallStatus(This,lTimeout,plStatus) (This)->lpVtbl->GetCallStatus(This,lTimeout,plStatus)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemObjectTextSrc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemObjectTextSrc_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemObjectTextSrc_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemObjectTextSrc methods ***/
+#define IWbemObjectTextSrc_GetText(This,lFlags,pObj,uObjTextFormat,pCtx,strText) (This)->lpVtbl->GetText(This,lFlags,pObj,uObjTextFormat,pCtx,strText)
+#define IWbemObjectTextSrc_CreateFromText(This,lFlags,strText,uObjTextFormat,pCtx,pNewObj) (This)->lpVtbl->CreateFromText(This,lFlags,strText,uObjTextFormat,pCtx,pNewObj)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemObjectTextSrc_QueryInterface(IWbemObjectTextSrc* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemObjectTextSrc_AddRef(IWbemObjectTextSrc* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemObjectTextSrc_Release(IWbemObjectTextSrc* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemObjectTextSrc methods ***/
+static FORCEINLINE HRESULT IWbemObjectTextSrc_GetText(IWbemObjectTextSrc* This,LONG lFlags,IWbemClassObject *pObj,ULONG uObjTextFormat,IWbemContext *pCtx,BSTR *strText) {
+    return This->lpVtbl->GetText(This,lFlags,pObj,uObjTextFormat,pCtx,strText);
+}
+static FORCEINLINE HRESULT IWbemObjectTextSrc_CreateFromText(IWbemObjectTextSrc* This,LONG lFlags,BSTR strText,ULONG uObjTextFormat,IWbemContext *pCtx,IWbemClassObject **pNewObj) {
+    return This->lpVtbl->CreateFromText(This,lFlags,strText,uObjTextFormat,pCtx,pNewObj);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemCallResult_GetResultObject_Proxy(IWbemCallResult *This,__LONG32 lTimeout,IWbemClassObject **ppResultObject);
-  void __RPC_STUB IWbemCallResult_GetResultObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemCallResult_GetResultString_Proxy(IWbemCallResult *This,__LONG32 lTimeout,BSTR *pstrResultString);
-  void __RPC_STUB IWbemCallResult_GetResultString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemCallResult_GetResultServices_Proxy(IWbemCallResult *This,__LONG32 lTimeout,IWbemServices **ppServices);
-  void __RPC_STUB IWbemCallResult_GetResultServices_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemCallResult_GetCallStatus_Proxy(IWbemCallResult *This,__LONG32 lTimeout,__LONG32 *plStatus);
-  void __RPC_STUB IWbemCallResult_GetCallStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemObjectTextSrc_GetText_Proxy(
+    IWbemObjectTextSrc* This,
+    LONG lFlags,
+    IWbemClassObject *pObj,
+    ULONG uObjTextFormat,
+    IWbemContext *pCtx,
+    BSTR *strText);
+void __RPC_STUB IWbemObjectTextSrc_GetText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectTextSrc_CreateFromText_Proxy(
+    IWbemObjectTextSrc* This,
+    LONG lFlags,
+    BSTR strText,
+    ULONG uObjTextFormat,
+    IWbemContext *pCtx,
+    IWbemClassObject **pNewObj);
+void __RPC_STUB IWbemObjectTextSrc_CreateFromText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemObjectTextSrc_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemObjectAccess interface
+ */
+#ifndef __IWbemObjectAccess_INTERFACE_DEFINED__
+#define __IWbemObjectAccess_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemObjectAccess, 0x49353c9a, 0x516b, 0x11d1, 0xae,0xa6, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("49353c9a-516b-11d1-aea6-00c04fb68820")
+IWbemObjectAccess : public IWbemClassObject
+{
+    virtual HRESULT STDMETHODCALLTYPE GetPropertyHandle(
+        LPCWSTR wszPropertyName,
+        CIMTYPE *pType,
+        LONG *plHandle) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WritePropertyValue(
+        LONG lHandle,
+        LONG lNumBytes,
+        const byte *aData) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReadPropertyValue(
+        LONG lHandle,
+        LONG lBufferSize,
+        LONG *plNumBytes,
+        byte *aData) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReadDWORD(
+        LONG lHandle,
+        DWORD *pdw) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WriteDWORD(
+        LONG lHandle,
+        DWORD dw) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReadQWORD(
+        LONG lHandle,
+        UINT64 *pqw) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WriteQWORD(
+        LONG lHandle,
+        UINT64 pw) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPropertyInfoByHandle(
+        LONG lHandle,
+        BSTR *pstrName,
+        CIMTYPE *pType) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Lock(
+        LONG lFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Unlock(
+        LONG lFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemObjectAccess, 0x49353c9a, 0x516b, 0x11d1, 0xae,0xa6, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
+#else
+typedef struct IWbemObjectAccessVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemObjectAccess* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemObjectAccess* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemObjectAccess* This);
+
+    /*** IWbemClassObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetQualifierSet)(
+        IWbemObjectAccess* This,
+        IWbemQualifierSet **ppQualSet);
+
+    HRESULT (STDMETHODCALLTYPE *Get)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszName,
+        LONG lFlags,
+        VARIANT *pVal,
+        CIMTYPE *pType,
+        LONG *plFlavor);
+
+    HRESULT (STDMETHODCALLTYPE *Put)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszName,
+        LONG lFlags,
+        VARIANT *pVal,
+        CIMTYPE Type);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszName);
+
+    HRESULT (STDMETHODCALLTYPE *GetNames)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszQualifierName,
+        LONG lFlags,
+        VARIANT *pQualifierVal,
+        SAFEARRAY **pNames);
+
+    HRESULT (STDMETHODCALLTYPE *BeginEnumeration)(
+        IWbemObjectAccess* This,
+        LONG lEnumFlags);
+
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IWbemObjectAccess* This,
+        LONG lFlags,
+        BSTR *strName,
+        VARIANT *pVal,
+        CIMTYPE *pType,
+        LONG *plFlavor);
+
+    HRESULT (STDMETHODCALLTYPE *EndEnumeration)(
+        IWbemObjectAccess* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetPropertyQualifierSet)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszProperty,
+        IWbemQualifierSet **ppQualSet);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IWbemObjectAccess* This,
+        IWbemClassObject **ppCopy);
+
+    HRESULT (STDMETHODCALLTYPE *GetObjectText)(
+        IWbemObjectAccess* This,
+        LONG lFlags,
+        BSTR *pstrObjectText);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnDerivedClass)(
+        IWbemObjectAccess* This,
+        LONG lFlags,
+        IWbemClassObject **ppNewClass);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnInstance)(
+        IWbemObjectAccess* This,
+        LONG lFlags,
+        IWbemClassObject **ppNewInstance);
+
+    HRESULT (STDMETHODCALLTYPE *CompareTo)(
+        IWbemObjectAccess* This,
+        LONG lFlags,
+        IWbemClassObject *pCompareTo);
+
+    HRESULT (STDMETHODCALLTYPE *GetPropertyOrigin)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszName,
+        BSTR *pstrClassName);
+
+    HRESULT (STDMETHODCALLTYPE *InheritsFrom)(
+        IWbemObjectAccess* This,
+        LPCWSTR strAncestor);
+
+    HRESULT (STDMETHODCALLTYPE *GetMethod)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszName,
+        LONG lFlags,
+        IWbemClassObject **ppInSignature,
+        IWbemClassObject **ppOutSignature);
+
+    HRESULT (STDMETHODCALLTYPE *PutMethod)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszName,
+        LONG lFlags,
+        IWbemClassObject *pInSignature,
+        IWbemClassObject *pOutSignature);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteMethod)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszName);
+
+    HRESULT (STDMETHODCALLTYPE *BeginMethodEnumeration)(
+        IWbemObjectAccess* This,
+        LONG lEnumFlags);
+
+    HRESULT (STDMETHODCALLTYPE *NextMethod)(
+        IWbemObjectAccess* This,
+        LONG lFlags,
+        BSTR *pstrName,
+        IWbemClassObject **ppInSignature,
+        IWbemClassObject **ppOutSignature);
+
+    HRESULT (STDMETHODCALLTYPE *EndMethodEnumeration)(
+        IWbemObjectAccess* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetMethodQualifierSet)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszMethod,
+        IWbemQualifierSet **ppQualSet);
+
+    HRESULT (STDMETHODCALLTYPE *GetMethodOrigin)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszMethodName,
+        BSTR *pstrClassName);
+
+    /*** IWbemObjectAccess methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPropertyHandle)(
+        IWbemObjectAccess* This,
+        LPCWSTR wszPropertyName,
+        CIMTYPE *pType,
+        LONG *plHandle);
+
+    HRESULT (STDMETHODCALLTYPE *WritePropertyValue)(
+        IWbemObjectAccess* This,
+        LONG lHandle,
+        LONG lNumBytes,
+        const byte *aData);
+
+    HRESULT (STDMETHODCALLTYPE *ReadPropertyValue)(
+        IWbemObjectAccess* This,
+        LONG lHandle,
+        LONG lBufferSize,
+        LONG *plNumBytes,
+        byte *aData);
+
+    HRESULT (STDMETHODCALLTYPE *ReadDWORD)(
+        IWbemObjectAccess* This,
+        LONG lHandle,
+        DWORD *pdw);
+
+    HRESULT (STDMETHODCALLTYPE *WriteDWORD)(
+        IWbemObjectAccess* This,
+        LONG lHandle,
+        DWORD dw);
+
+    HRESULT (STDMETHODCALLTYPE *ReadQWORD)(
+        IWbemObjectAccess* This,
+        LONG lHandle,
+        UINT64 *pqw);
+
+    HRESULT (STDMETHODCALLTYPE *WriteQWORD)(
+        IWbemObjectAccess* This,
+        LONG lHandle,
+        UINT64 pw);
+
+    HRESULT (STDMETHODCALLTYPE *GetPropertyInfoByHandle)(
+        IWbemObjectAccess* This,
+        LONG lHandle,
+        BSTR *pstrName,
+        CIMTYPE *pType);
+
+    HRESULT (STDMETHODCALLTYPE *Lock)(
+        IWbemObjectAccess* This,
+        LONG lFlags);
+
+    HRESULT (STDMETHODCALLTYPE *Unlock)(
+        IWbemObjectAccess* This,
+        LONG lFlags);
+
+    END_INTERFACE
+} IWbemObjectAccessVtbl;
+interface IWbemObjectAccess {
+    CONST_VTBL IWbemObjectAccessVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemObjectAccess_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemObjectAccess_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemObjectAccess_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemClassObject methods ***/
+#define IWbemObjectAccess_GetQualifierSet(This,ppQualSet) (This)->lpVtbl->GetQualifierSet(This,ppQualSet)
+#define IWbemObjectAccess_Get(This,wszName,lFlags,pVal,pType,plFlavor) (This)->lpVtbl->Get(This,wszName,lFlags,pVal,pType,plFlavor)
+#define IWbemObjectAccess_Put(This,wszName,lFlags,pVal,Type) (This)->lpVtbl->Put(This,wszName,lFlags,pVal,Type)
+#define IWbemObjectAccess_Delete(This,wszName) (This)->lpVtbl->Delete(This,wszName)
+#define IWbemObjectAccess_GetNames(This,wszQualifierName,lFlags,pQualifierVal,pNames) (This)->lpVtbl->GetNames(This,wszQualifierName,lFlags,pQualifierVal,pNames)
+#define IWbemObjectAccess_BeginEnumeration(This,lEnumFlags) (This)->lpVtbl->BeginEnumeration(This,lEnumFlags)
+#define IWbemObjectAccess_Next(This,lFlags,strName,pVal,pType,plFlavor) (This)->lpVtbl->Next(This,lFlags,strName,pVal,pType,plFlavor)
+#define IWbemObjectAccess_EndEnumeration(This) (This)->lpVtbl->EndEnumeration(This)
+#define IWbemObjectAccess_GetPropertyQualifierSet(This,wszProperty,ppQualSet) (This)->lpVtbl->GetPropertyQualifierSet(This,wszProperty,ppQualSet)
+#define IWbemObjectAccess_Clone(This,ppCopy) (This)->lpVtbl->Clone(This,ppCopy)
+#define IWbemObjectAccess_GetObjectText(This,lFlags,pstrObjectText) (This)->lpVtbl->GetObjectText(This,lFlags,pstrObjectText)
+#define IWbemObjectAccess_SpawnDerivedClass(This,lFlags,ppNewClass) (This)->lpVtbl->SpawnDerivedClass(This,lFlags,ppNewClass)
+#define IWbemObjectAccess_SpawnInstance(This,lFlags,ppNewInstance) (This)->lpVtbl->SpawnInstance(This,lFlags,ppNewInstance)
+#define IWbemObjectAccess_CompareTo(This,lFlags,pCompareTo) (This)->lpVtbl->CompareTo(This,lFlags,pCompareTo)
+#define IWbemObjectAccess_GetPropertyOrigin(This,wszName,pstrClassName) (This)->lpVtbl->GetPropertyOrigin(This,wszName,pstrClassName)
+#define IWbemObjectAccess_InheritsFrom(This,strAncestor) (This)->lpVtbl->InheritsFrom(This,strAncestor)
+#define IWbemObjectAccess_GetMethod(This,wszName,lFlags,ppInSignature,ppOutSignature) (This)->lpVtbl->GetMethod(This,wszName,lFlags,ppInSignature,ppOutSignature)
+#define IWbemObjectAccess_PutMethod(This,wszName,lFlags,pInSignature,pOutSignature) (This)->lpVtbl->PutMethod(This,wszName,lFlags,pInSignature,pOutSignature)
+#define IWbemObjectAccess_DeleteMethod(This,wszName) (This)->lpVtbl->DeleteMethod(This,wszName)
+#define IWbemObjectAccess_BeginMethodEnumeration(This,lEnumFlags) (This)->lpVtbl->BeginMethodEnumeration(This,lEnumFlags)
+#define IWbemObjectAccess_NextMethod(This,lFlags,pstrName,ppInSignature,ppOutSignature) (This)->lpVtbl->NextMethod(This,lFlags,pstrName,ppInSignature,ppOutSignature)
+#define IWbemObjectAccess_EndMethodEnumeration(This) (This)->lpVtbl->EndMethodEnumeration(This)
+#define IWbemObjectAccess_GetMethodQualifierSet(This,wszMethod,ppQualSet) (This)->lpVtbl->GetMethodQualifierSet(This,wszMethod,ppQualSet)
+#define IWbemObjectAccess_GetMethodOrigin(This,wszMethodName,pstrClassName) (This)->lpVtbl->GetMethodOrigin(This,wszMethodName,pstrClassName)
+/*** IWbemObjectAccess methods ***/
+#define IWbemObjectAccess_GetPropertyHandle(This,wszPropertyName,pType,plHandle) (This)->lpVtbl->GetPropertyHandle(This,wszPropertyName,pType,plHandle)
+#define IWbemObjectAccess_WritePropertyValue(This,lHandle,lNumBytes,aData) (This)->lpVtbl->WritePropertyValue(This,lHandle,lNumBytes,aData)
+#define IWbemObjectAccess_ReadPropertyValue(This,lHandle,lBufferSize,plNumBytes,aData) (This)->lpVtbl->ReadPropertyValue(This,lHandle,lBufferSize,plNumBytes,aData)
+#define IWbemObjectAccess_ReadDWORD(This,lHandle,pdw) (This)->lpVtbl->ReadDWORD(This,lHandle,pdw)
+#define IWbemObjectAccess_WriteDWORD(This,lHandle,dw) (This)->lpVtbl->WriteDWORD(This,lHandle,dw)
+#define IWbemObjectAccess_ReadQWORD(This,lHandle,pqw) (This)->lpVtbl->ReadQWORD(This,lHandle,pqw)
+#define IWbemObjectAccess_WriteQWORD(This,lHandle,pw) (This)->lpVtbl->WriteQWORD(This,lHandle,pw)
+#define IWbemObjectAccess_GetPropertyInfoByHandle(This,lHandle,pstrName,pType) (This)->lpVtbl->GetPropertyInfoByHandle(This,lHandle,pstrName,pType)
+#define IWbemObjectAccess_Lock(This,lFlags) (This)->lpVtbl->Lock(This,lFlags)
+#define IWbemObjectAccess_Unlock(This,lFlags) (This)->lpVtbl->Unlock(This,lFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemObjectAccess_QueryInterface(IWbemObjectAccess* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemObjectAccess_AddRef(IWbemObjectAccess* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemObjectAccess_Release(IWbemObjectAccess* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemClassObject methods ***/
+static FORCEINLINE HRESULT IWbemObjectAccess_GetQualifierSet(IWbemObjectAccess* This,IWbemQualifierSet **ppQualSet) {
+    return This->lpVtbl->GetQualifierSet(This,ppQualSet);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_Get(IWbemObjectAccess* This,LPCWSTR wszName,LONG lFlags,VARIANT *pVal,CIMTYPE *pType,LONG *plFlavor) {
+    return This->lpVtbl->Get(This,wszName,lFlags,pVal,pType,plFlavor);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_Put(IWbemObjectAccess* This,LPCWSTR wszName,LONG lFlags,VARIANT *pVal,CIMTYPE Type) {
+    return This->lpVtbl->Put(This,wszName,lFlags,pVal,Type);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_Delete(IWbemObjectAccess* This,LPCWSTR wszName) {
+    return This->lpVtbl->Delete(This,wszName);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_GetNames(IWbemObjectAccess* This,LPCWSTR wszQualifierName,LONG lFlags,VARIANT *pQualifierVal,SAFEARRAY **pNames) {
+    return This->lpVtbl->GetNames(This,wszQualifierName,lFlags,pQualifierVal,pNames);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_BeginEnumeration(IWbemObjectAccess* This,LONG lEnumFlags) {
+    return This->lpVtbl->BeginEnumeration(This,lEnumFlags);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_Next(IWbemObjectAccess* This,LONG lFlags,BSTR *strName,VARIANT *pVal,CIMTYPE *pType,LONG *plFlavor) {
+    return This->lpVtbl->Next(This,lFlags,strName,pVal,pType,plFlavor);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_EndEnumeration(IWbemObjectAccess* This) {
+    return This->lpVtbl->EndEnumeration(This);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_GetPropertyQualifierSet(IWbemObjectAccess* This,LPCWSTR wszProperty,IWbemQualifierSet **ppQualSet) {
+    return This->lpVtbl->GetPropertyQualifierSet(This,wszProperty,ppQualSet);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_Clone(IWbemObjectAccess* This,IWbemClassObject **ppCopy) {
+    return This->lpVtbl->Clone(This,ppCopy);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_GetObjectText(IWbemObjectAccess* This,LONG lFlags,BSTR *pstrObjectText) {
+    return This->lpVtbl->GetObjectText(This,lFlags,pstrObjectText);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_SpawnDerivedClass(IWbemObjectAccess* This,LONG lFlags,IWbemClassObject **ppNewClass) {
+    return This->lpVtbl->SpawnDerivedClass(This,lFlags,ppNewClass);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_SpawnInstance(IWbemObjectAccess* This,LONG lFlags,IWbemClassObject **ppNewInstance) {
+    return This->lpVtbl->SpawnInstance(This,lFlags,ppNewInstance);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_CompareTo(IWbemObjectAccess* This,LONG lFlags,IWbemClassObject *pCompareTo) {
+    return This->lpVtbl->CompareTo(This,lFlags,pCompareTo);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_GetPropertyOrigin(IWbemObjectAccess* This,LPCWSTR wszName,BSTR *pstrClassName) {
+    return This->lpVtbl->GetPropertyOrigin(This,wszName,pstrClassName);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_InheritsFrom(IWbemObjectAccess* This,LPCWSTR strAncestor) {
+    return This->lpVtbl->InheritsFrom(This,strAncestor);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_GetMethod(IWbemObjectAccess* This,LPCWSTR wszName,LONG lFlags,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) {
+    return This->lpVtbl->GetMethod(This,wszName,lFlags,ppInSignature,ppOutSignature);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_PutMethod(IWbemObjectAccess* This,LPCWSTR wszName,LONG lFlags,IWbemClassObject *pInSignature,IWbemClassObject *pOutSignature) {
+    return This->lpVtbl->PutMethod(This,wszName,lFlags,pInSignature,pOutSignature);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_DeleteMethod(IWbemObjectAccess* This,LPCWSTR wszName) {
+    return This->lpVtbl->DeleteMethod(This,wszName);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_BeginMethodEnumeration(IWbemObjectAccess* This,LONG lEnumFlags) {
+    return This->lpVtbl->BeginMethodEnumeration(This,lEnumFlags);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_NextMethod(IWbemObjectAccess* This,LONG lFlags,BSTR *pstrName,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) {
+    return This->lpVtbl->NextMethod(This,lFlags,pstrName,ppInSignature,ppOutSignature);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_EndMethodEnumeration(IWbemObjectAccess* This) {
+    return This->lpVtbl->EndMethodEnumeration(This);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_GetMethodQualifierSet(IWbemObjectAccess* This,LPCWSTR wszMethod,IWbemQualifierSet **ppQualSet) {
+    return This->lpVtbl->GetMethodQualifierSet(This,wszMethod,ppQualSet);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_GetMethodOrigin(IWbemObjectAccess* This,LPCWSTR wszMethodName,BSTR *pstrClassName) {
+    return This->lpVtbl->GetMethodOrigin(This,wszMethodName,pstrClassName);
+}
+/*** IWbemObjectAccess methods ***/
+static FORCEINLINE HRESULT IWbemObjectAccess_GetPropertyHandle(IWbemObjectAccess* This,LPCWSTR wszPropertyName,CIMTYPE *pType,LONG *plHandle) {
+    return This->lpVtbl->GetPropertyHandle(This,wszPropertyName,pType,plHandle);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_WritePropertyValue(IWbemObjectAccess* This,LONG lHandle,LONG lNumBytes,const byte *aData) {
+    return This->lpVtbl->WritePropertyValue(This,lHandle,lNumBytes,aData);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_ReadPropertyValue(IWbemObjectAccess* This,LONG lHandle,LONG lBufferSize,LONG *plNumBytes,byte *aData) {
+    return This->lpVtbl->ReadPropertyValue(This,lHandle,lBufferSize,plNumBytes,aData);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_ReadDWORD(IWbemObjectAccess* This,LONG lHandle,DWORD *pdw) {
+    return This->lpVtbl->ReadDWORD(This,lHandle,pdw);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_WriteDWORD(IWbemObjectAccess* This,LONG lHandle,DWORD dw) {
+    return This->lpVtbl->WriteDWORD(This,lHandle,dw);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_ReadQWORD(IWbemObjectAccess* This,LONG lHandle,UINT64 *pqw) {
+    return This->lpVtbl->ReadQWORD(This,lHandle,pqw);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_WriteQWORD(IWbemObjectAccess* This,LONG lHandle,UINT64 pw) {
+    return This->lpVtbl->WriteQWORD(This,lHandle,pw);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_GetPropertyInfoByHandle(IWbemObjectAccess* This,LONG lHandle,BSTR *pstrName,CIMTYPE *pType) {
+    return This->lpVtbl->GetPropertyInfoByHandle(This,lHandle,pstrName,pType);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_Lock(IWbemObjectAccess* This,LONG lFlags) {
+    return This->lpVtbl->Lock(This,lFlags);
+}
+static FORCEINLINE HRESULT IWbemObjectAccess_Unlock(IWbemObjectAccess* This,LONG lFlags) {
+    return This->lpVtbl->Unlock(This,lFlags);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_GetPropertyHandle_Proxy(
+    IWbemObjectAccess* This,
+    LPCWSTR wszPropertyName,
+    CIMTYPE *pType,
+    LONG *plHandle);
+void __RPC_STUB IWbemObjectAccess_GetPropertyHandle_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_WritePropertyValue_Proxy(
+    IWbemObjectAccess* This,
+    LONG lHandle,
+    LONG lNumBytes,
+    const byte *aData);
+void __RPC_STUB IWbemObjectAccess_WritePropertyValue_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_ReadPropertyValue_Proxy(
+    IWbemObjectAccess* This,
+    LONG lHandle,
+    LONG lBufferSize,
+    LONG *plNumBytes,
+    byte *aData);
+void __RPC_STUB IWbemObjectAccess_ReadPropertyValue_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_ReadDWORD_Proxy(
+    IWbemObjectAccess* This,
+    LONG lHandle,
+    DWORD *pdw);
+void __RPC_STUB IWbemObjectAccess_ReadDWORD_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_WriteDWORD_Proxy(
+    IWbemObjectAccess* This,
+    LONG lHandle,
+    DWORD dw);
+void __RPC_STUB IWbemObjectAccess_WriteDWORD_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_ReadQWORD_Proxy(
+    IWbemObjectAccess* This,
+    LONG lHandle,
+    UINT64 *pqw);
+void __RPC_STUB IWbemObjectAccess_ReadQWORD_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_WriteQWORD_Proxy(
+    IWbemObjectAccess* This,
+    LONG lHandle,
+    UINT64 pw);
+void __RPC_STUB IWbemObjectAccess_WriteQWORD_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_GetPropertyInfoByHandle_Proxy(
+    IWbemObjectAccess* This,
+    LONG lHandle,
+    BSTR *pstrName,
+    CIMTYPE *pType);
+void __RPC_STUB IWbemObjectAccess_GetPropertyInfoByHandle_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_Lock_Proxy(
+    IWbemObjectAccess* This,
+    LONG lFlags);
+void __RPC_STUB IWbemObjectAccess_Lock_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemObjectAccess_Unlock_Proxy(
+    IWbemObjectAccess* This,
+    LONG lFlags);
+void __RPC_STUB IWbemObjectAccess_Unlock_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemObjectAccess_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMofCompiler interface
+ */
+#ifndef __IMofCompiler_INTERFACE_DEFINED__
+#define __IMofCompiler_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMofCompiler, 0x6daf974e, 0x2e37, 0x11d2, 0xae,0xc9, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6daf974e-2e37-11d2-aec9-00c04fb68820")
+IMofCompiler : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CompileFile(
+        LPWSTR FileName,
+        LPWSTR ServerAndNamespace,
+        LPWSTR User,
+        LPWSTR Authority,
+        LPWSTR Password,
+        LONG lOptionFlags,
+        LONG lClassFlags,
+        LONG lInstanceFlags,
+        WBEM_COMPILE_STATUS_INFO *pInfo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CompileBuffer(
+        LONG BuffSize,
+        BYTE *pBuffer,
+        LPWSTR ServerAndNamespace,
+        LPWSTR User,
+        LPWSTR Authority,
+        LPWSTR Password,
+        LONG lOptionFlags,
+        LONG lClassFlags,
+        LONG lInstanceFlags,
+        WBEM_COMPILE_STATUS_INFO *pInfo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateBMOF(
+        LPWSTR TextFileName,
+        LPWSTR BMOFFileName,
+        LPWSTR ServerAndNamespace,
+        LONG lOptionFlags,
+        LONG lClassFlags,
+        LONG lInstanceFlags,
+        WBEM_COMPILE_STATUS_INFO *pInfo) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMofCompiler, 0x6daf974e, 0x2e37, 0x11d2, 0xae,0xc9, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
+#else
+typedef struct IMofCompilerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMofCompiler* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMofCompiler* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMofCompiler* This);
+
+    /*** IMofCompiler methods ***/
+    HRESULT (STDMETHODCALLTYPE *CompileFile)(
+        IMofCompiler* This,
+        LPWSTR FileName,
+        LPWSTR ServerAndNamespace,
+        LPWSTR User,
+        LPWSTR Authority,
+        LPWSTR Password,
+        LONG lOptionFlags,
+        LONG lClassFlags,
+        LONG lInstanceFlags,
+        WBEM_COMPILE_STATUS_INFO *pInfo);
+
+    HRESULT (STDMETHODCALLTYPE *CompileBuffer)(
+        IMofCompiler* This,
+        LONG BuffSize,
+        BYTE *pBuffer,
+        LPWSTR ServerAndNamespace,
+        LPWSTR User,
+        LPWSTR Authority,
+        LPWSTR Password,
+        LONG lOptionFlags,
+        LONG lClassFlags,
+        LONG lInstanceFlags,
+        WBEM_COMPILE_STATUS_INFO *pInfo);
+
+    HRESULT (STDMETHODCALLTYPE *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 {
+    CONST_VTBL IMofCompilerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMofCompiler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMofCompiler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMofCompiler_Release(This) (This)->lpVtbl->Release(This)
+/*** IMofCompiler methods ***/
+#define IMofCompiler_CompileFile(This,FileName,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo) (This)->lpVtbl->CompileFile(This,FileName,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo)
+#define IMofCompiler_CompileBuffer(This,BuffSize,pBuffer,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo) (This)->lpVtbl->CompileBuffer(This,BuffSize,pBuffer,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo)
+#define IMofCompiler_CreateBMOF(This,TextFileName,BMOFFileName,ServerAndNamespace,lOptionFlags,lClassFlags,lInstanceFlags,pInfo) (This)->lpVtbl->CreateBMOF(This,TextFileName,BMOFFileName,ServerAndNamespace,lOptionFlags,lClassFlags,lInstanceFlags,pInfo)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMofCompiler_QueryInterface(IMofCompiler* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMofCompiler_AddRef(IMofCompiler* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMofCompiler_Release(IMofCompiler* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMofCompiler methods ***/
+static FORCEINLINE HRESULT IMofCompiler_CompileFile(IMofCompiler* This,LPWSTR FileName,LPWSTR ServerAndNamespace,LPWSTR User,LPWSTR Authority,LPWSTR Password,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo) {
+    return This->lpVtbl->CompileFile(This,FileName,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo);
+}
+static FORCEINLINE HRESULT IMofCompiler_CompileBuffer(IMofCompiler* This,LONG BuffSize,BYTE *pBuffer,LPWSTR ServerAndNamespace,LPWSTR User,LPWSTR Authority,LPWSTR Password,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo) {
+    return This->lpVtbl->CompileBuffer(This,BuffSize,pBuffer,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo);
+}
+static FORCEINLINE HRESULT IMofCompiler_CreateBMOF(IMofCompiler* This,LPWSTR TextFileName,LPWSTR BMOFFileName,LPWSTR ServerAndNamespace,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo) {
+    return This->lpVtbl->CreateBMOF(This,TextFileName,BMOFFileName,ServerAndNamespace,lOptionFlags,lClassFlags,lInstanceFlags,pInfo);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IMofCompiler_CompileFile_Proxy(
+    IMofCompiler* This,
+    LPWSTR FileName,
+    LPWSTR ServerAndNamespace,
+    LPWSTR User,
+    LPWSTR Authority,
+    LPWSTR Password,
+    LONG lOptionFlags,
+    LONG lClassFlags,
+    LONG lInstanceFlags,
+    WBEM_COMPILE_STATUS_INFO *pInfo);
+void __RPC_STUB IMofCompiler_CompileFile_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMofCompiler_CompileBuffer_Proxy(
+    IMofCompiler* This,
+    LONG BuffSize,
+    BYTE *pBuffer,
+    LPWSTR ServerAndNamespace,
+    LPWSTR User,
+    LPWSTR Authority,
+    LPWSTR Password,
+    LONG lOptionFlags,
+    LONG lClassFlags,
+    LONG lInstanceFlags,
+    WBEM_COMPILE_STATUS_INFO *pInfo);
+void __RPC_STUB IMofCompiler_CompileBuffer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMofCompiler_CreateBMOF_Proxy(
+    IMofCompiler* This,
+    LPWSTR TextFileName,
+    LPWSTR BMOFFileName,
+    LPWSTR ServerAndNamespace,
+    LONG lOptionFlags,
+    LONG lClassFlags,
+    LONG lInstanceFlags,
+    WBEM_COMPILE_STATUS_INFO *pInfo);
+void __RPC_STUB IMofCompiler_CreateBMOF_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IMofCompiler_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUnsecuredApartment interface
+ */
 #ifndef __IUnsecuredApartment_INTERFACE_DEFINED__
 #define __IUnsecuredApartment_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IUnsecuredApartment;
+
+DEFINE_GUID(IID_IUnsecuredApartment, 0x1cfaba8c, 0x1523, 0x11d1, 0xad,0x79, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IUnsecuredApartment : public IUnknown {
-  public:
-    virtual HRESULT WINAPI CreateObjectStub(IUnknown *pObject,IUnknown **ppStub) = 0;
-  };
+MIDL_INTERFACE("1cfaba8c-1523-11d1-ad79-00c04fd8fdff")
+IUnsecuredApartment : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateObjectStub(
+        IUnknown *pObject,
+        IUnknown **ppStub) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUnsecuredApartment, 0x1cfaba8c, 0x1523, 0x11d1, 0xad,0x79, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
 #else
-  typedef struct IUnsecuredApartmentVtbl {
+typedef struct IUnsecuredApartmentVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IUnsecuredApartment *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IUnsecuredApartment *This);
-      ULONG (WINAPI *Release)(IUnsecuredApartment *This);
-      HRESULT (WINAPI *CreateObjectStub)(IUnsecuredApartment *This,IUnknown *pObject,IUnknown **ppStub);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUnsecuredApartment* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUnsecuredApartment* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUnsecuredApartment* This);
+
+    /*** IUnsecuredApartment methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateObjectStub)(
+        IUnsecuredApartment* This,
+        IUnknown *pObject,
+        IUnknown **ppStub);
+
     END_INTERFACE
-  } IUnsecuredApartmentVtbl;
-  struct IUnsecuredApartment {
-    CONST_VTBL struct IUnsecuredApartmentVtbl *lpVtbl;
-  };
+} IUnsecuredApartmentVtbl;
+interface IUnsecuredApartment {
+    CONST_VTBL IUnsecuredApartmentVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IUnsecuredApartment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IUnsecuredApartment_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IUnsecuredApartment_Release(This) (This)->lpVtbl->Release(This)
+/*** IUnsecuredApartment methods ***/
 #define IUnsecuredApartment_CreateObjectStub(This,pObject,ppStub) (This)->lpVtbl->CreateObjectStub(This,pObject,ppStub)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUnsecuredApartment_QueryInterface(IUnsecuredApartment* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUnsecuredApartment_AddRef(IUnsecuredApartment* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUnsecuredApartment_Release(IUnsecuredApartment* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IUnsecuredApartment methods ***/
+static FORCEINLINE HRESULT IUnsecuredApartment_CreateObjectStub(IUnsecuredApartment* This,IUnknown *pObject,IUnknown **ppStub) {
+    return This->lpVtbl->CreateObjectStub(This,pObject,ppStub);
+}
 #endif
 #endif
-  HRESULT WINAPI IUnsecuredApartment_CreateObjectStub_Proxy(IUnsecuredApartment *This,IUnknown *pObject,IUnknown **ppStub);
-  void __RPC_STUB IUnsecuredApartment_CreateObjectStub_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IUnsecuredApartment_CreateObjectStub_Proxy(
+    IUnsecuredApartment* This,
+    IUnknown *pObject,
+    IUnknown **ppStub);
+void __RPC_STUB IUnsecuredApartment_CreateObjectStub_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IUnsecuredApartment_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemUnsecuredApartment interface
+ */
 #ifndef __IWbemUnsecuredApartment_INTERFACE_DEFINED__
 #define __IWbemUnsecuredApartment_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemUnsecuredApartment;
+
+DEFINE_GUID(IID_IWbemUnsecuredApartment, 0x31739d04, 0x3471, 0x4cf4, 0x9a,0x7c, 0x57,0xa4,0x4a,0xe7,0x19,0x56);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemUnsecuredApartment : public IUnsecuredApartment {
-  public:
-    virtual HRESULT WINAPI CreateSinkStub(IWbemObjectSink *pSink,DWORD dwFlags,LPCWSTR wszReserved,IWbemObjectSink **ppStub) = 0;
-  };
+MIDL_INTERFACE("31739d04-3471-4cf4-9a7c-57a44ae71956")
+IWbemUnsecuredApartment : public IUnsecuredApartment
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateSinkStub(
+        IWbemObjectSink *pSink,
+        DWORD dwFlags,
+        LPCWSTR wszReserved,
+        IWbemObjectSink **ppStub) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemUnsecuredApartment, 0x31739d04, 0x3471, 0x4cf4, 0x9a,0x7c, 0x57,0xa4,0x4a,0xe7,0x19,0x56)
+#endif
 #else
-  typedef struct IWbemUnsecuredApartmentVtbl {
+typedef struct IWbemUnsecuredApartmentVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemUnsecuredApartment *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemUnsecuredApartment *This);
-      ULONG (WINAPI *Release)(IWbemUnsecuredApartment *This);
-      HRESULT (WINAPI *CreateObjectStub)(IWbemUnsecuredApartment *This,IUnknown *pObject,IUnknown **ppStub);
-      HRESULT (WINAPI *CreateSinkStub)(IWbemUnsecuredApartment *This,IWbemObjectSink *pSink,DWORD dwFlags,LPCWSTR wszReserved,IWbemObjectSink **ppStub);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemUnsecuredApartment* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemUnsecuredApartment* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemUnsecuredApartment* This);
+
+    /*** IUnsecuredApartment methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateObjectStub)(
+        IWbemUnsecuredApartment* This,
+        IUnknown *pObject,
+        IUnknown **ppStub);
+
+    /*** IWbemUnsecuredApartment methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateSinkStub)(
+        IWbemUnsecuredApartment* This,
+        IWbemObjectSink *pSink,
+        DWORD dwFlags,
+        LPCWSTR wszReserved,
+        IWbemObjectSink **ppStub);
+
     END_INTERFACE
-  } IWbemUnsecuredApartmentVtbl;
-  struct IWbemUnsecuredApartment {
-    CONST_VTBL struct IWbemUnsecuredApartmentVtbl *lpVtbl;
-  };
+} IWbemUnsecuredApartmentVtbl;
+interface IWbemUnsecuredApartment {
+    CONST_VTBL IWbemUnsecuredApartmentVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemUnsecuredApartment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemUnsecuredApartment_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemUnsecuredApartment_Release(This) (This)->lpVtbl->Release(This)
+/*** IUnsecuredApartment methods ***/
 #define IWbemUnsecuredApartment_CreateObjectStub(This,pObject,ppStub) (This)->lpVtbl->CreateObjectStub(This,pObject,ppStub)
+/*** IWbemUnsecuredApartment methods ***/
 #define IWbemUnsecuredApartment_CreateSinkStub(This,pSink,dwFlags,wszReserved,ppStub) (This)->lpVtbl->CreateSinkStub(This,pSink,dwFlags,wszReserved,ppStub)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemUnsecuredApartment_QueryInterface(IWbemUnsecuredApartment* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemUnsecuredApartment_AddRef(IWbemUnsecuredApartment* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemUnsecuredApartment_Release(IWbemUnsecuredApartment* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IUnsecuredApartment methods ***/
+static FORCEINLINE HRESULT IWbemUnsecuredApartment_CreateObjectStub(IWbemUnsecuredApartment* This,IUnknown *pObject,IUnknown **ppStub) {
+    return This->lpVtbl->CreateObjectStub(This,pObject,ppStub);
+}
+/*** IWbemUnsecuredApartment methods ***/
+static FORCEINLINE HRESULT IWbemUnsecuredApartment_CreateSinkStub(IWbemUnsecuredApartment* This,IWbemObjectSink *pSink,DWORD dwFlags,LPCWSTR wszReserved,IWbemObjectSink **ppStub) {
+    return This->lpVtbl->CreateSinkStub(This,pSink,dwFlags,wszReserved,ppStub);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemUnsecuredApartment_CreateSinkStub_Proxy(IWbemUnsecuredApartment *This,IWbemObjectSink *pSink,DWORD dwFlags,LPCWSTR wszReserved,IWbemObjectSink **ppStub);
-  void __RPC_STUB IWbemUnsecuredApartment_CreateSinkStub_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemUnsecuredApartment_CreateSinkStub_Proxy(
+    IWbemUnsecuredApartment* This,
+    IWbemObjectSink *pSink,
+    DWORD dwFlags,
+    LPCWSTR wszReserved,
+    IWbemObjectSink **ppStub);
+void __RPC_STUB IWbemUnsecuredApartment_CreateSinkStub_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemUnsecuredApartment_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemStatusCodeText interface
+ */
 #ifndef __IWbemStatusCodeText_INTERFACE_DEFINED__
 #define __IWbemStatusCodeText_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemStatusCodeText;
+
+DEFINE_GUID(IID_IWbemStatusCodeText, 0xeb87e1bc, 0x3233, 0x11d2, 0xae,0xc9, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemStatusCodeText : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetErrorCodeText(HRESULT hRes,LCID LocaleId,__LONG32 lFlags,BSTR *MessageText) = 0;
-    virtual HRESULT WINAPI GetFacilityCodeText(HRESULT hRes,LCID LocaleId,__LONG32 lFlags,BSTR *MessageText) = 0;
-  };
+MIDL_INTERFACE("eb87e1bc-3233-11d2-aec9-00c04fb68820")
+IWbemStatusCodeText : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetErrorCodeText(
+        HRESULT hRes,
+        LCID LocaleId,
+        LONG lFlags,
+        BSTR *MessageText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFacilityCodeText(
+        HRESULT hRes,
+        LCID LocaleId,
+        LONG lFlags,
+        BSTR *MessageText) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemStatusCodeText, 0xeb87e1bc, 0x3233, 0x11d2, 0xae,0xc9, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
 #else
-  typedef struct IWbemStatusCodeTextVtbl {
+typedef struct IWbemStatusCodeTextVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemStatusCodeText *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemStatusCodeText *This);
-      ULONG (WINAPI *Release)(IWbemStatusCodeText *This);
-      HRESULT (WINAPI *GetErrorCodeText)(IWbemStatusCodeText *This,HRESULT hRes,LCID LocaleId,__LONG32 lFlags,BSTR *MessageText);
-      HRESULT (WINAPI *GetFacilityCodeText)(IWbemStatusCodeText *This,HRESULT hRes,LCID LocaleId,__LONG32 lFlags,BSTR *MessageText);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemStatusCodeText* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemStatusCodeText* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemStatusCodeText* This);
+
+    /*** IWbemStatusCodeText methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetErrorCodeText)(
+        IWbemStatusCodeText* This,
+        HRESULT hRes,
+        LCID LocaleId,
+        LONG lFlags,
+        BSTR *MessageText);
+
+    HRESULT (STDMETHODCALLTYPE *GetFacilityCodeText)(
+        IWbemStatusCodeText* This,
+        HRESULT hRes,
+        LCID LocaleId,
+        LONG lFlags,
+        BSTR *MessageText);
+
     END_INTERFACE
-  } IWbemStatusCodeTextVtbl;
-  struct IWbemStatusCodeText {
-    CONST_VTBL struct IWbemStatusCodeTextVtbl *lpVtbl;
-  };
+} IWbemStatusCodeTextVtbl;
+interface IWbemStatusCodeText {
+    CONST_VTBL IWbemStatusCodeTextVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemStatusCodeText_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemStatusCodeText_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemStatusCodeText_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemStatusCodeText methods ***/
 #define IWbemStatusCodeText_GetErrorCodeText(This,hRes,LocaleId,lFlags,MessageText) (This)->lpVtbl->GetErrorCodeText(This,hRes,LocaleId,lFlags,MessageText)
 #define IWbemStatusCodeText_GetFacilityCodeText(This,hRes,LocaleId,lFlags,MessageText) (This)->lpVtbl->GetFacilityCodeText(This,hRes,LocaleId,lFlags,MessageText)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemStatusCodeText_QueryInterface(IWbemStatusCodeText* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemStatusCodeText_AddRef(IWbemStatusCodeText* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemStatusCodeText_Release(IWbemStatusCodeText* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemStatusCodeText methods ***/
+static FORCEINLINE HRESULT IWbemStatusCodeText_GetErrorCodeText(IWbemStatusCodeText* This,HRESULT hRes,LCID LocaleId,LONG lFlags,BSTR *MessageText) {
+    return This->lpVtbl->GetErrorCodeText(This,hRes,LocaleId,lFlags,MessageText);
+}
+static FORCEINLINE HRESULT IWbemStatusCodeText_GetFacilityCodeText(IWbemStatusCodeText* This,HRESULT hRes,LCID LocaleId,LONG lFlags,BSTR *MessageText) {
+    return This->lpVtbl->GetFacilityCodeText(This,hRes,LocaleId,lFlags,MessageText);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemStatusCodeText_GetErrorCodeText_Proxy(IWbemStatusCodeText *This,HRESULT hRes,LCID LocaleId,__LONG32 lFlags,BSTR *MessageText);
-  void __RPC_STUB IWbemStatusCodeText_GetErrorCodeText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemStatusCodeText_GetFacilityCodeText_Proxy(IWbemStatusCodeText *This,HRESULT hRes,LCID LocaleId,__LONG32 lFlags,BSTR *MessageText);
-  void __RPC_STUB IWbemStatusCodeText_GetFacilityCodeText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemStatusCodeText_GetErrorCodeText_Proxy(
+    IWbemStatusCodeText* This,
+    HRESULT hRes,
+    LCID LocaleId,
+    LONG lFlags,
+    BSTR *MessageText);
+void __RPC_STUB IWbemStatusCodeText_GetErrorCodeText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemStatusCodeText_GetFacilityCodeText_Proxy(
+    IWbemStatusCodeText* This,
+    HRESULT hRes,
+    LCID LocaleId,
+    LONG lFlags,
+    BSTR *MessageText);
+void __RPC_STUB IWbemStatusCodeText_GetFacilityCodeText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemStatusCodeText_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemBackupRestore interface
+ */
 #ifndef __IWbemBackupRestore_INTERFACE_DEFINED__
 #define __IWbemBackupRestore_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemBackupRestore;
+
+DEFINE_GUID(IID_IWbemBackupRestore, 0xc49e32c7, 0xbc8b, 0x11d2, 0x85,0xd4, 0x00,0x10,0x5a,0x1f,0x83,0x04);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemBackupRestore : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Backup(LPCWSTR strBackupToFile,__LONG32 lFlags) = 0;
-    virtual HRESULT WINAPI Restore(LPCWSTR strRestoreFromFile,__LONG32 lFlags) = 0;
-  };
+MIDL_INTERFACE("c49e32c7-bc8b-11d2-85d4-00105a1f8304")
+IWbemBackupRestore : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Backup(
+        LPCWSTR strBackupToFile,
+        LONG lFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Restore(
+        LPCWSTR strRestoreFromFile,
+        LONG lFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemBackupRestore, 0xc49e32c7, 0xbc8b, 0x11d2, 0x85,0xd4, 0x00,0x10,0x5a,0x1f,0x83,0x04)
+#endif
 #else
-  typedef struct IWbemBackupRestoreVtbl {
+typedef struct IWbemBackupRestoreVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemBackupRestore *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemBackupRestore *This);
-      ULONG (WINAPI *Release)(IWbemBackupRestore *This);
-      HRESULT (WINAPI *Backup)(IWbemBackupRestore *This,LPCWSTR strBackupToFile,__LONG32 lFlags);
-      HRESULT (WINAPI *Restore)(IWbemBackupRestore *This,LPCWSTR strRestoreFromFile,__LONG32 lFlags);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemBackupRestore* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemBackupRestore* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemBackupRestore* This);
+
+    /*** IWbemBackupRestore methods ***/
+    HRESULT (STDMETHODCALLTYPE *Backup)(
+        IWbemBackupRestore* This,
+        LPCWSTR strBackupToFile,
+        LONG lFlags);
+
+    HRESULT (STDMETHODCALLTYPE *Restore)(
+        IWbemBackupRestore* This,
+        LPCWSTR strRestoreFromFile,
+        LONG lFlags);
+
     END_INTERFACE
-  } IWbemBackupRestoreVtbl;
-  struct IWbemBackupRestore {
-    CONST_VTBL struct IWbemBackupRestoreVtbl *lpVtbl;
-  };
+} IWbemBackupRestoreVtbl;
+interface IWbemBackupRestore {
+    CONST_VTBL IWbemBackupRestoreVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemBackupRestore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemBackupRestore_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemBackupRestore_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemBackupRestore methods ***/
 #define IWbemBackupRestore_Backup(This,strBackupToFile,lFlags) (This)->lpVtbl->Backup(This,strBackupToFile,lFlags)
 #define IWbemBackupRestore_Restore(This,strRestoreFromFile,lFlags) (This)->lpVtbl->Restore(This,strRestoreFromFile,lFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemBackupRestore_QueryInterface(IWbemBackupRestore* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemBackupRestore_AddRef(IWbemBackupRestore* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemBackupRestore_Release(IWbemBackupRestore* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemBackupRestore methods ***/
+static FORCEINLINE HRESULT IWbemBackupRestore_Backup(IWbemBackupRestore* This,LPCWSTR strBackupToFile,LONG lFlags) {
+    return This->lpVtbl->Backup(This,strBackupToFile,lFlags);
+}
+static FORCEINLINE HRESULT IWbemBackupRestore_Restore(IWbemBackupRestore* This,LPCWSTR strRestoreFromFile,LONG lFlags) {
+    return This->lpVtbl->Restore(This,strRestoreFromFile,lFlags);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemBackupRestore_Backup_Proxy(IWbemBackupRestore *This,LPCWSTR strBackupToFile,__LONG32 lFlags);
-  void __RPC_STUB IWbemBackupRestore_Backup_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemBackupRestore_Restore_Proxy(IWbemBackupRestore *This,LPCWSTR strRestoreFromFile,__LONG32 lFlags);
-  void __RPC_STUB IWbemBackupRestore_Restore_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemBackupRestore_Backup_Proxy(
+    IWbemBackupRestore* This,
+    LPCWSTR strBackupToFile,
+    LONG lFlags);
+void __RPC_STUB IWbemBackupRestore_Backup_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemBackupRestore_Restore_Proxy(
+    IWbemBackupRestore* This,
+    LPCWSTR strRestoreFromFile,
+    LONG lFlags);
+void __RPC_STUB IWbemBackupRestore_Restore_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemBackupRestore_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemBackupRestoreEx interface
+ */
 #ifndef __IWbemBackupRestoreEx_INTERFACE_DEFINED__
 #define __IWbemBackupRestoreEx_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemBackupRestoreEx;
+
+DEFINE_GUID(IID_IWbemBackupRestoreEx, 0xa359dec5, 0xe813, 0x4834, 0x8a,0x2a, 0xba,0x7f,0x1d,0x77,0x7d,0x76);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemBackupRestoreEx : public IWbemBackupRestore {
-  public:
-    virtual HRESULT WINAPI Pause(void) = 0;
-    virtual HRESULT WINAPI Resume(void) = 0;
-  };
+MIDL_INTERFACE("a359dec5-e813-4834-8a2a-ba7f1d777d76")
+IWbemBackupRestoreEx : public IWbemBackupRestore
+{
+    virtual HRESULT STDMETHODCALLTYPE Pause(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Resume(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemBackupRestoreEx, 0xa359dec5, 0xe813, 0x4834, 0x8a,0x2a, 0xba,0x7f,0x1d,0x77,0x7d,0x76)
+#endif
 #else
-  typedef struct IWbemBackupRestoreExVtbl {
+typedef struct IWbemBackupRestoreExVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemBackupRestoreEx *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemBackupRestoreEx *This);
-      ULONG (WINAPI *Release)(IWbemBackupRestoreEx *This);
-      HRESULT (WINAPI *Backup)(IWbemBackupRestoreEx *This,LPCWSTR strBackupToFile,__LONG32 lFlags);
-      HRESULT (WINAPI *Restore)(IWbemBackupRestoreEx *This,LPCWSTR strRestoreFromFile,__LONG32 lFlags);
-      HRESULT (WINAPI *Pause)(IWbemBackupRestoreEx *This);
-      HRESULT (WINAPI *Resume)(IWbemBackupRestoreEx *This);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemBackupRestoreEx* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemBackupRestoreEx* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemBackupRestoreEx* This);
+
+    /*** IWbemBackupRestore methods ***/
+    HRESULT (STDMETHODCALLTYPE *Backup)(
+        IWbemBackupRestoreEx* This,
+        LPCWSTR strBackupToFile,
+        LONG lFlags);
+
+    HRESULT (STDMETHODCALLTYPE *Restore)(
+        IWbemBackupRestoreEx* This,
+        LPCWSTR strRestoreFromFile,
+        LONG lFlags);
+
+    /*** IWbemBackupRestoreEx methods ***/
+    HRESULT (STDMETHODCALLTYPE *Pause)(
+        IWbemBackupRestoreEx* This);
+
+    HRESULT (STDMETHODCALLTYPE *Resume)(
+        IWbemBackupRestoreEx* This);
+
     END_INTERFACE
-  } IWbemBackupRestoreExVtbl;
-  struct IWbemBackupRestoreEx {
-    CONST_VTBL struct IWbemBackupRestoreExVtbl *lpVtbl;
-  };
+} IWbemBackupRestoreExVtbl;
+interface IWbemBackupRestoreEx {
+    CONST_VTBL IWbemBackupRestoreExVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemBackupRestoreEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemBackupRestoreEx_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemBackupRestoreEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemBackupRestore methods ***/
 #define IWbemBackupRestoreEx_Backup(This,strBackupToFile,lFlags) (This)->lpVtbl->Backup(This,strBackupToFile,lFlags)
 #define IWbemBackupRestoreEx_Restore(This,strRestoreFromFile,lFlags) (This)->lpVtbl->Restore(This,strRestoreFromFile,lFlags)
+/*** IWbemBackupRestoreEx methods ***/
 #define IWbemBackupRestoreEx_Pause(This) (This)->lpVtbl->Pause(This)
 #define IWbemBackupRestoreEx_Resume(This) (This)->lpVtbl->Resume(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemBackupRestoreEx_QueryInterface(IWbemBackupRestoreEx* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemBackupRestoreEx_AddRef(IWbemBackupRestoreEx* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemBackupRestoreEx_Release(IWbemBackupRestoreEx* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemBackupRestore methods ***/
+static FORCEINLINE HRESULT IWbemBackupRestoreEx_Backup(IWbemBackupRestoreEx* This,LPCWSTR strBackupToFile,LONG lFlags) {
+    return This->lpVtbl->Backup(This,strBackupToFile,lFlags);
+}
+static FORCEINLINE HRESULT IWbemBackupRestoreEx_Restore(IWbemBackupRestoreEx* This,LPCWSTR strRestoreFromFile,LONG lFlags) {
+    return This->lpVtbl->Restore(This,strRestoreFromFile,lFlags);
+}
+/*** IWbemBackupRestoreEx methods ***/
+static FORCEINLINE HRESULT IWbemBackupRestoreEx_Pause(IWbemBackupRestoreEx* This) {
+    return This->lpVtbl->Pause(This);
+}
+static FORCEINLINE HRESULT IWbemBackupRestoreEx_Resume(IWbemBackupRestoreEx* This) {
+    return This->lpVtbl->Resume(This);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemBackupRestoreEx_Pause_Proxy(IWbemBackupRestoreEx *This);
-  void __RPC_STUB IWbemBackupRestoreEx_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemBackupRestoreEx_Resume_Proxy(IWbemBackupRestoreEx *This);
-  void __RPC_STUB IWbemBackupRestoreEx_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemBackupRestoreEx_Pause_Proxy(
+    IWbemBackupRestoreEx* This);
+void __RPC_STUB IWbemBackupRestoreEx_Pause_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemBackupRestoreEx_Resume_Proxy(
+    IWbemBackupRestoreEx* This);
+void __RPC_STUB IWbemBackupRestoreEx_Resume_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemBackupRestoreEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemRefresher interface
+ */
 #ifndef __IWbemRefresher_INTERFACE_DEFINED__
 #define __IWbemRefresher_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemRefresher;
+
+DEFINE_GUID(IID_IWbemRefresher, 0x49353c99, 0x516b, 0x11d1, 0xae,0xa6, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemRefresher : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Refresh(__LONG32 lFlags) = 0;
-  };
+MIDL_INTERFACE("49353c99-516b-11d1-aea6-00c04fb68820")
+IWbemRefresher : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Refresh(
+        LONG lFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemRefresher, 0x49353c99, 0x516b, 0x11d1, 0xae,0xa6, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
 #else
-  typedef struct IWbemRefresherVtbl {
+typedef struct IWbemRefresherVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemRefresher *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemRefresher *This);
-      ULONG (WINAPI *Release)(IWbemRefresher *This);
-      HRESULT (WINAPI *Refresh)(IWbemRefresher *This,__LONG32 lFlags);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemRefresher* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemRefresher* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemRefresher* This);
+
+    /*** IWbemRefresher methods ***/
+    HRESULT (STDMETHODCALLTYPE *Refresh)(
+        IWbemRefresher* This,
+        LONG lFlags);
+
     END_INTERFACE
-  } IWbemRefresherVtbl;
-  struct IWbemRefresher {
-    CONST_VTBL struct IWbemRefresherVtbl *lpVtbl;
-  };
+} IWbemRefresherVtbl;
+interface IWbemRefresher {
+    CONST_VTBL IWbemRefresherVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemRefresher_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemRefresher_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemRefresher_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemRefresher methods ***/
 #define IWbemRefresher_Refresh(This,lFlags) (This)->lpVtbl->Refresh(This,lFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemRefresher_QueryInterface(IWbemRefresher* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemRefresher_AddRef(IWbemRefresher* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemRefresher_Release(IWbemRefresher* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemRefresher methods ***/
+static FORCEINLINE HRESULT IWbemRefresher_Refresh(IWbemRefresher* This,LONG lFlags) {
+    return This->lpVtbl->Refresh(This,lFlags);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemRefresher_Refresh_Proxy(IWbemRefresher *This,__LONG32 lFlags);
-  void __RPC_STUB IWbemRefresher_Refresh_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemRefresher_Refresh_Proxy(
+    IWbemRefresher* This,
+    LONG lFlags);
+void __RPC_STUB IWbemRefresher_Refresh_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemRefresher_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemHiPerfEnum interface
+ */
 #ifndef __IWbemHiPerfEnum_INTERFACE_DEFINED__
 #define __IWbemHiPerfEnum_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemHiPerfEnum;
+
+DEFINE_GUID(IID_IWbemHiPerfEnum, 0x2705c288, 0x79ae, 0x11d2, 0xb3,0x48, 0x00,0x10,0x5a,0x1f,0x81,0x77);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemHiPerfEnum : public IUnknown {
-  public:
-    virtual HRESULT WINAPI AddObjects(__LONG32 lFlags,ULONG uNumObjects,__LONG32 *apIds,IWbemObjectAccess **apObj) = 0;
-    virtual HRESULT WINAPI RemoveObjects(__LONG32 lFlags,ULONG uNumObjects,__LONG32 *apIds) = 0;
-    virtual HRESULT WINAPI GetObjects(__LONG32 lFlags,ULONG uNumObjects,IWbemObjectAccess **apObj,ULONG *puReturned) = 0;
-    virtual HRESULT WINAPI RemoveAll(__LONG32 lFlags) = 0;
-  };
+MIDL_INTERFACE("2705c288-79ae-11d2-b348-00105a1f8177")
+IWbemHiPerfEnum : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AddObjects(
+        LONG lFlags,
+        ULONG uNumObjects,
+        LONG *apIds,
+        IWbemObjectAccess **apObj) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveObjects(
+        LONG lFlags,
+        ULONG uNumObjects,
+        LONG *apIds) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetObjects(
+        LONG lFlags,
+        ULONG uNumObjects,
+        IWbemObjectAccess **apObj,
+        ULONG *puReturned) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveAll(
+        LONG lFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemHiPerfEnum, 0x2705c288, 0x79ae, 0x11d2, 0xb3,0x48, 0x00,0x10,0x5a,0x1f,0x81,0x77)
+#endif
 #else
-  typedef struct IWbemHiPerfEnumVtbl {
+typedef struct IWbemHiPerfEnumVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemHiPerfEnum *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemHiPerfEnum *This);
-      ULONG (WINAPI *Release)(IWbemHiPerfEnum *This);
-      HRESULT (WINAPI *AddObjects)(IWbemHiPerfEnum *This,__LONG32 lFlags,ULONG uNumObjects,__LONG32 *apIds,IWbemObjectAccess **apObj);
-      HRESULT (WINAPI *RemoveObjects)(IWbemHiPerfEnum *This,__LONG32 lFlags,ULONG uNumObjects,__LONG32 *apIds);
-      HRESULT (WINAPI *GetObjects)(IWbemHiPerfEnum *This,__LONG32 lFlags,ULONG uNumObjects,IWbemObjectAccess **apObj,ULONG *puReturned);
-      HRESULT (WINAPI *RemoveAll)(IWbemHiPerfEnum *This,__LONG32 lFlags);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemHiPerfEnum* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemHiPerfEnum* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemHiPerfEnum* This);
+
+    /*** IWbemHiPerfEnum methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddObjects)(
+        IWbemHiPerfEnum* This,
+        LONG lFlags,
+        ULONG uNumObjects,
+        LONG *apIds,
+        IWbemObjectAccess **apObj);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveObjects)(
+        IWbemHiPerfEnum* This,
+        LONG lFlags,
+        ULONG uNumObjects,
+        LONG *apIds);
+
+    HRESULT (STDMETHODCALLTYPE *GetObjects)(
+        IWbemHiPerfEnum* This,
+        LONG lFlags,
+        ULONG uNumObjects,
+        IWbemObjectAccess **apObj,
+        ULONG *puReturned);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveAll)(
+        IWbemHiPerfEnum* This,
+        LONG lFlags);
+
     END_INTERFACE
-  } IWbemHiPerfEnumVtbl;
-  struct IWbemHiPerfEnum {
-    CONST_VTBL struct IWbemHiPerfEnumVtbl *lpVtbl;
-  };
+} IWbemHiPerfEnumVtbl;
+interface IWbemHiPerfEnum {
+    CONST_VTBL IWbemHiPerfEnumVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemHiPerfEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemHiPerfEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemHiPerfEnum_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemHiPerfEnum methods ***/
 #define IWbemHiPerfEnum_AddObjects(This,lFlags,uNumObjects,apIds,apObj) (This)->lpVtbl->AddObjects(This,lFlags,uNumObjects,apIds,apObj)
 #define IWbemHiPerfEnum_RemoveObjects(This,lFlags,uNumObjects,apIds) (This)->lpVtbl->RemoveObjects(This,lFlags,uNumObjects,apIds)
 #define IWbemHiPerfEnum_GetObjects(This,lFlags,uNumObjects,apObj,puReturned) (This)->lpVtbl->GetObjects(This,lFlags,uNumObjects,apObj,puReturned)
 #define IWbemHiPerfEnum_RemoveAll(This,lFlags) (This)->lpVtbl->RemoveAll(This,lFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemHiPerfEnum_QueryInterface(IWbemHiPerfEnum* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemHiPerfEnum_AddRef(IWbemHiPerfEnum* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemHiPerfEnum_Release(IWbemHiPerfEnum* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemHiPerfEnum methods ***/
+static FORCEINLINE HRESULT IWbemHiPerfEnum_AddObjects(IWbemHiPerfEnum* This,LONG lFlags,ULONG uNumObjects,LONG *apIds,IWbemObjectAccess **apObj) {
+    return This->lpVtbl->AddObjects(This,lFlags,uNumObjects,apIds,apObj);
+}
+static FORCEINLINE HRESULT IWbemHiPerfEnum_RemoveObjects(IWbemHiPerfEnum* This,LONG lFlags,ULONG uNumObjects,LONG *apIds) {
+    return This->lpVtbl->RemoveObjects(This,lFlags,uNumObjects,apIds);
+}
+static FORCEINLINE HRESULT IWbemHiPerfEnum_GetObjects(IWbemHiPerfEnum* This,LONG lFlags,ULONG uNumObjects,IWbemObjectAccess **apObj,ULONG *puReturned) {
+    return This->lpVtbl->GetObjects(This,lFlags,uNumObjects,apObj,puReturned);
+}
+static FORCEINLINE HRESULT IWbemHiPerfEnum_RemoveAll(IWbemHiPerfEnum* This,LONG lFlags) {
+    return This->lpVtbl->RemoveAll(This,lFlags);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemHiPerfEnum_AddObjects_Proxy(IWbemHiPerfEnum *This,__LONG32 lFlags,ULONG uNumObjects,__LONG32 *apIds,IWbemObjectAccess **apObj);
-  void __RPC_STUB IWbemHiPerfEnum_AddObjects_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemHiPerfEnum_RemoveObjects_Proxy(IWbemHiPerfEnum *This,__LONG32 lFlags,ULONG uNumObjects,__LONG32 *apIds);
-  void __RPC_STUB IWbemHiPerfEnum_RemoveObjects_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemHiPerfEnum_GetObjects_Proxy(IWbemHiPerfEnum *This,__LONG32 lFlags,ULONG uNumObjects,IWbemObjectAccess **apObj,ULONG *puReturned);
-  void __RPC_STUB IWbemHiPerfEnum_GetObjects_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemHiPerfEnum_RemoveAll_Proxy(IWbemHiPerfEnum *This,__LONG32 lFlags);
-  void __RPC_STUB IWbemHiPerfEnum_RemoveAll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemHiPerfEnum_AddObjects_Proxy(
+    IWbemHiPerfEnum* This,
+    LONG lFlags,
+    ULONG uNumObjects,
+    LONG *apIds,
+    IWbemObjectAccess **apObj);
+void __RPC_STUB IWbemHiPerfEnum_AddObjects_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemHiPerfEnum_RemoveObjects_Proxy(
+    IWbemHiPerfEnum* This,
+    LONG lFlags,
+    ULONG uNumObjects,
+    LONG *apIds);
+void __RPC_STUB IWbemHiPerfEnum_RemoveObjects_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemHiPerfEnum_GetObjects_Proxy(
+    IWbemHiPerfEnum* This,
+    LONG lFlags,
+    ULONG uNumObjects,
+    IWbemObjectAccess **apObj,
+    ULONG *puReturned);
+void __RPC_STUB IWbemHiPerfEnum_GetObjects_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemHiPerfEnum_RemoveAll_Proxy(
+    IWbemHiPerfEnum* This,
+    LONG lFlags);
+void __RPC_STUB IWbemHiPerfEnum_RemoveAll_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemHiPerfEnum_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemConfigureRefresher interface
+ */
 #ifndef __IWbemConfigureRefresher_INTERFACE_DEFINED__
 #define __IWbemConfigureRefresher_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemConfigureRefresher;
+
+DEFINE_GUID(IID_IWbemConfigureRefresher, 0x49353c92, 0x516b, 0x11d1, 0xae,0xa6, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemConfigureRefresher : public IUnknown {
-  public:
-    virtual HRESULT WINAPI AddObjectByPath(IWbemServices *pNamespace,LPCWSTR wszPath,__LONG32 lFlags,IWbemContext *pContext,IWbemClassObject **ppRefreshable,__LONG32 *plId) = 0;
-    virtual HRESULT WINAPI AddObjectByTemplate(IWbemServices *pNamespace,IWbemClassObject *pTemplate,__LONG32 lFlags,IWbemContext *pContext,IWbemClassObject **ppRefreshable,__LONG32 *plId) = 0;
-    virtual HRESULT WINAPI AddRefresher(IWbemRefresher *pRefresher,__LONG32 lFlags,__LONG32 *plId) = 0;
-    virtual HRESULT WINAPI Remove(__LONG32 lId,__LONG32 lFlags) = 0;
-    virtual HRESULT WINAPI AddEnum(IWbemServices *pNamespace,LPCWSTR wszClassName,__LONG32 lFlags,IWbemContext *pContext,IWbemHiPerfEnum **ppEnum,__LONG32 *plId) = 0;
-  };
+MIDL_INTERFACE("49353c92-516b-11d1-aea6-00c04fb68820")
+IWbemConfigureRefresher : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AddObjectByPath(
+        IWbemServices *pNamespace,
+        LPCWSTR wszPath,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemClassObject **ppRefreshable,
+        LONG *plId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddObjectByTemplate(
+        IWbemServices *pNamespace,
+        IWbemClassObject *pTemplate,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemClassObject **ppRefreshable,
+        LONG *plId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddRefresher(
+        IWbemRefresher *pRefresher,
+        LONG lFlags,
+        LONG *plId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Remove(
+        LONG lId,
+        LONG lFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddEnum(
+        IWbemServices *pNamespace,
+        LPCWSTR wszClassName,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemHiPerfEnum **ppEnum,
+        LONG *plId) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemConfigureRefresher, 0x49353c92, 0x516b, 0x11d1, 0xae,0xa6, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
 #else
-  typedef struct IWbemConfigureRefresherVtbl {
+typedef struct IWbemConfigureRefresherVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemConfigureRefresher *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemConfigureRefresher *This);
-      ULONG (WINAPI *Release)(IWbemConfigureRefresher *This);
-      HRESULT (WINAPI *AddObjectByPath)(IWbemConfigureRefresher *This,IWbemServices *pNamespace,LPCWSTR wszPath,__LONG32 lFlags,IWbemContext *pContext,IWbemClassObject **ppRefreshable,__LONG32 *plId);
-      HRESULT (WINAPI *AddObjectByTemplate)(IWbemConfigureRefresher *This,IWbemServices *pNamespace,IWbemClassObject *pTemplate,__LONG32 lFlags,IWbemContext *pContext,IWbemClassObject **ppRefreshable,__LONG32 *plId);
-      HRESULT (WINAPI *AddRefresher)(IWbemConfigureRefresher *This,IWbemRefresher *pRefresher,__LONG32 lFlags,__LONG32 *plId);
-      HRESULT (WINAPI *Remove)(IWbemConfigureRefresher *This,__LONG32 lId,__LONG32 lFlags);
-      HRESULT (WINAPI *AddEnum)(IWbemConfigureRefresher *This,IWbemServices *pNamespace,LPCWSTR wszClassName,__LONG32 lFlags,IWbemContext *pContext,IWbemHiPerfEnum **ppEnum,__LONG32 *plId);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemConfigureRefresher* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemConfigureRefresher* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemConfigureRefresher* This);
+
+    /*** IWbemConfigureRefresher methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddObjectByPath)(
+        IWbemConfigureRefresher* This,
+        IWbemServices *pNamespace,
+        LPCWSTR wszPath,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemClassObject **ppRefreshable,
+        LONG *plId);
+
+    HRESULT (STDMETHODCALLTYPE *AddObjectByTemplate)(
+        IWbemConfigureRefresher* This,
+        IWbemServices *pNamespace,
+        IWbemClassObject *pTemplate,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemClassObject **ppRefreshable,
+        LONG *plId);
+
+    HRESULT (STDMETHODCALLTYPE *AddRefresher)(
+        IWbemConfigureRefresher* This,
+        IWbemRefresher *pRefresher,
+        LONG lFlags,
+        LONG *plId);
+
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        IWbemConfigureRefresher* This,
+        LONG lId,
+        LONG lFlags);
+
+    HRESULT (STDMETHODCALLTYPE *AddEnum)(
+        IWbemConfigureRefresher* This,
+        IWbemServices *pNamespace,
+        LPCWSTR wszClassName,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemHiPerfEnum **ppEnum,
+        LONG *plId);
+
     END_INTERFACE
-  } IWbemConfigureRefresherVtbl;
-  struct IWbemConfigureRefresher {
-    CONST_VTBL struct IWbemConfigureRefresherVtbl *lpVtbl;
-  };
+} IWbemConfigureRefresherVtbl;
+interface IWbemConfigureRefresher {
+    CONST_VTBL IWbemConfigureRefresherVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemConfigureRefresher_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemConfigureRefresher_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemConfigureRefresher_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemConfigureRefresher methods ***/
 #define IWbemConfigureRefresher_AddObjectByPath(This,pNamespace,wszPath,lFlags,pContext,ppRefreshable,plId) (This)->lpVtbl->AddObjectByPath(This,pNamespace,wszPath,lFlags,pContext,ppRefreshable,plId)
 #define IWbemConfigureRefresher_AddObjectByTemplate(This,pNamespace,pTemplate,lFlags,pContext,ppRefreshable,plId) (This)->lpVtbl->AddObjectByTemplate(This,pNamespace,pTemplate,lFlags,pContext,ppRefreshable,plId)
 #define IWbemConfigureRefresher_AddRefresher(This,pRefresher,lFlags,plId) (This)->lpVtbl->AddRefresher(This,pRefresher,lFlags,plId)
 #define IWbemConfigureRefresher_Remove(This,lId,lFlags) (This)->lpVtbl->Remove(This,lId,lFlags)
 #define IWbemConfigureRefresher_AddEnum(This,pNamespace,wszClassName,lFlags,pContext,ppEnum,plId) (This)->lpVtbl->AddEnum(This,pNamespace,wszClassName,lFlags,pContext,ppEnum,plId)
-#endif
-#endif
-  HRESULT WINAPI IWbemConfigureRefresher_AddObjectByPath_Proxy(IWbemConfigureRefresher *This,IWbemServices *pNamespace,LPCWSTR wszPath,__LONG32 lFlags,IWbemContext *pContext,IWbemClassObject **ppRefreshable,__LONG32 *plId);
-  void __RPC_STUB IWbemConfigureRefresher_AddObjectByPath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemConfigureRefresher_AddObjectByTemplate_Proxy(IWbemConfigureRefresher *This,IWbemServices *pNamespace,IWbemClassObject *pTemplate,__LONG32 lFlags,IWbemContext *pContext,IWbemClassObject **ppRefreshable,__LONG32 *plId);
-  void __RPC_STUB IWbemConfigureRefresher_AddObjectByTemplate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemConfigureRefresher_AddRefresher_Proxy(IWbemConfigureRefresher *This,IWbemRefresher *pRefresher,__LONG32 lFlags,__LONG32 *plId);
-  void __RPC_STUB IWbemConfigureRefresher_AddRefresher_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemConfigureRefresher_Remove_Proxy(IWbemConfigureRefresher *This,__LONG32 lId,__LONG32 lFlags);
-  void __RPC_STUB IWbemConfigureRefresher_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemConfigureRefresher_AddEnum_Proxy(IWbemConfigureRefresher *This,IWbemServices *pNamespace,LPCWSTR wszClassName,__LONG32 lFlags,IWbemContext *pContext,IWbemHiPerfEnum **ppEnum,__LONG32 *plId);
-  void __RPC_STUB IWbemConfigureRefresher_AddEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-/*****************************************************************************
- * WbemLocator coclass
- */
-
-DEFINE_GUID(CLSID_WbemLocator, 0x4590f811, 0x1d3a, 0x11d0, 0x89,0x1f, 0x00,0xaa,0x00,0x4b,0x2e,0x24);
-
-#ifdef __cplusplus
-class DECLSPEC_UUID("4590f811-1d3a-11d0-891f-00aa004b2e24") WbemLocator;
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(WbemLocator, 0x4590f811, 0x1d3a, 0x11d0, 0x89,0x1f, 0x00,0xaa,0x00,0x4b,0x2e,0x24)
-#endif
-#endif
-
-  EXTERN_C const CLSID CLSID_WbemContext;
-#ifdef __cplusplus
-  class WbemContext;
-#endif
-  EXTERN_C const CLSID CLSID_UnsecuredApartment;
-#ifdef __cplusplus
-  class UnsecuredApartment;
-#endif
-  EXTERN_C const CLSID CLSID_WbemClassObject;
-#ifdef __cplusplus
-  class WbemClassObject;
-#endif
-  EXTERN_C const CLSID CLSID_MofCompiler;
-#ifdef __cplusplus
-  class MofCompiler;
-#endif
-  EXTERN_C const CLSID CLSID_WbemStatusCodeText;
-#ifdef __cplusplus
-  class WbemStatusCodeText;
-#endif
-  EXTERN_C const CLSID CLSID_WbemBackupRestore;
-#ifdef __cplusplus
-  class WbemBackupRestore;
-#endif
-  EXTERN_C const CLSID CLSID_WbemRefresher;
-#ifdef __cplusplus
-  class WbemRefresher;
-#endif
-  EXTERN_C const CLSID CLSID_WbemObjectTextSrc;
-#ifdef __cplusplus
-  class WbemObjectTextSrc;
-#endif
-#endif
-
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0000_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0000_v0_0_s_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0116_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0116_v0_0_s_ifspec;
-
-#ifndef __IWbemShutdown_INTERFACE_DEFINED__
-#define __IWbemShutdown_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemShutdown;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemShutdown : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Shutdown(LONG uReason,ULONG uMaxMilliseconds,IWbemContext *pCtx) = 0;
-  };
 #else
-  typedef struct IWbemShutdownVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemShutdown *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemShutdown *This);
-      ULONG (WINAPI *Release)(IWbemShutdown *This);
-      HRESULT (WINAPI *Shutdown)(IWbemShutdown *This,LONG uReason,ULONG uMaxMilliseconds,IWbemContext *pCtx);
-    END_INTERFACE
-  } IWbemShutdownVtbl;
-  struct IWbemShutdown {
-    CONST_VTBL struct IWbemShutdownVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemShutdown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemShutdown_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemShutdown_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemShutdown_Shutdown(This,uReason,uMaxMilliseconds,pCtx) (This)->lpVtbl->Shutdown(This,uReason,uMaxMilliseconds,pCtx)
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemConfigureRefresher_QueryInterface(IWbemConfigureRefresher* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemConfigureRefresher_AddRef(IWbemConfigureRefresher* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemConfigureRefresher_Release(IWbemConfigureRefresher* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemConfigureRefresher methods ***/
+static FORCEINLINE HRESULT IWbemConfigureRefresher_AddObjectByPath(IWbemConfigureRefresher* This,IWbemServices *pNamespace,LPCWSTR wszPath,LONG lFlags,IWbemContext *pContext,IWbemClassObject **ppRefreshable,LONG *plId) {
+    return This->lpVtbl->AddObjectByPath(This,pNamespace,wszPath,lFlags,pContext,ppRefreshable,plId);
+}
+static FORCEINLINE HRESULT IWbemConfigureRefresher_AddObjectByTemplate(IWbemConfigureRefresher* This,IWbemServices *pNamespace,IWbemClassObject *pTemplate,LONG lFlags,IWbemContext *pContext,IWbemClassObject **ppRefreshable,LONG *plId) {
+    return This->lpVtbl->AddObjectByTemplate(This,pNamespace,pTemplate,lFlags,pContext,ppRefreshable,plId);
+}
+static FORCEINLINE HRESULT IWbemConfigureRefresher_AddRefresher(IWbemConfigureRefresher* This,IWbemRefresher *pRefresher,LONG lFlags,LONG *plId) {
+    return This->lpVtbl->AddRefresher(This,pRefresher,lFlags,plId);
+}
+static FORCEINLINE HRESULT IWbemConfigureRefresher_Remove(IWbemConfigureRefresher* This,LONG lId,LONG lFlags) {
+    return This->lpVtbl->Remove(This,lId,lFlags);
+}
+static FORCEINLINE HRESULT IWbemConfigureRefresher_AddEnum(IWbemConfigureRefresher* This,IWbemServices *pNamespace,LPCWSTR wszClassName,LONG lFlags,IWbemContext *pContext,IWbemHiPerfEnum **ppEnum,LONG *plId) {
+    return This->lpVtbl->AddEnum(This,pNamespace,wszClassName,lFlags,pContext,ppEnum,plId);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemShutdown_Shutdown_Proxy(IWbemShutdown *This,LONG uReason,ULONG uMaxMilliseconds,IWbemContext *pCtx);
-  void __RPC_STUB IWbemShutdown_Shutdown_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
 #endif
 
-  typedef enum tag_WMI_OBJ_TEXT {
-    WMI_OBJ_TEXT_CIM_DTD_2_0 = 1,WMI_OBJ_TEXT_WMI_DTD_2_0 = 2,WMI_OBJ_TEXT_WMI_EXT1 = 3,WMI_OBJ_TEXT_WMI_EXT2 = 4,WMI_OBJ_TEXT_WMI_EXT3 = 5,
-    WMI_OBJ_TEXT_WMI_EXT4 = 6,WMI_OBJ_TEXT_WMI_EXT5 = 7,WMI_OBJ_TEXT_WMI_EXT6 = 8,WMI_OBJ_TEXT_WMI_EXT7 = 9,WMI_OBJ_TEXT_WMI_EXT8 = 10,
-    WMI_OBJ_TEXT_WMI_EXT9 = 11,WMI_OBJ_TEXT_WMI_EXT10 = 12,WMI_OBJ_TEXT_LAST = 13
-  } WMI_OBJ_TEXT;
+HRESULT STDMETHODCALLTYPE IWbemConfigureRefresher_AddObjectByPath_Proxy(
+    IWbemConfigureRefresher* This,
+    IWbemServices *pNamespace,
+    LPCWSTR wszPath,
+    LONG lFlags,
+    IWbemContext *pContext,
+    IWbemClassObject **ppRefreshable,
+    LONG *plId);
+void __RPC_STUB IWbemConfigureRefresher_AddObjectByPath_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemConfigureRefresher_AddObjectByTemplate_Proxy(
+    IWbemConfigureRefresher* This,
+    IWbemServices *pNamespace,
+    IWbemClassObject *pTemplate,
+    LONG lFlags,
+    IWbemContext *pContext,
+    IWbemClassObject **ppRefreshable,
+    LONG *plId);
+void __RPC_STUB IWbemConfigureRefresher_AddObjectByTemplate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemConfigureRefresher_AddRefresher_Proxy(
+    IWbemConfigureRefresher* This,
+    IWbemRefresher *pRefresher,
+    LONG lFlags,
+    LONG *plId);
+void __RPC_STUB IWbemConfigureRefresher_AddRefresher_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemConfigureRefresher_Remove_Proxy(
+    IWbemConfigureRefresher* This,
+    LONG lId,
+    LONG lFlags);
+void __RPC_STUB IWbemConfigureRefresher_Remove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemConfigureRefresher_AddEnum_Proxy(
+    IWbemConfigureRefresher* This,
+    IWbemServices *pNamespace,
+    LPCWSTR wszClassName,
+    LONG lFlags,
+    IWbemContext *pContext,
+    IWbemHiPerfEnum **ppEnum,
+    LONG *plId);
+void __RPC_STUB IWbemConfigureRefresher_AddEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
 
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0123_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0123_v0_0_s_ifspec;
-#ifndef __IWbemObjectTextSrc_INTERFACE_DEFINED__
-#define __IWbemObjectTextSrc_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemObjectTextSrc;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemObjectTextSrc : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetText(__LONG32 lFlags,IWbemClassObject *pObj,ULONG uObjTextFormat,IWbemContext *pCtx,BSTR *strText) = 0;
-    virtual HRESULT WINAPI CreateFromText(__LONG32 lFlags,BSTR strText,ULONG uObjTextFormat,IWbemContext *pCtx,IWbemClassObject **pNewObj) = 0;
-  };
-#else
-  typedef struct IWbemObjectTextSrcVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemObjectTextSrc *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemObjectTextSrc *This);
-      ULONG (WINAPI *Release)(IWbemObjectTextSrc *This);
-      HRESULT (WINAPI *GetText)(IWbemObjectTextSrc *This,__LONG32 lFlags,IWbemClassObject *pObj,ULONG uObjTextFormat,IWbemContext *pCtx,BSTR *strText);
-      HRESULT (WINAPI *CreateFromText)(IWbemObjectTextSrc *This,__LONG32 lFlags,BSTR strText,ULONG uObjTextFormat,IWbemContext *pCtx,IWbemClassObject **pNewObj);
-    END_INTERFACE
-  } IWbemObjectTextSrcVtbl;
-  struct IWbemObjectTextSrc {
-    CONST_VTBL struct IWbemObjectTextSrcVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemObjectTextSrc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemObjectTextSrc_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemObjectTextSrc_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemObjectTextSrc_GetText(This,lFlags,pObj,uObjTextFormat,pCtx,strText) (This)->lpVtbl->GetText(This,lFlags,pObj,uObjTextFormat,pCtx,strText)
-#define IWbemObjectTextSrc_CreateFromText(This,lFlags,strText,uObjTextFormat,pCtx,pNewObj) (This)->lpVtbl->CreateFromText(This,lFlags,strText,uObjTextFormat,pCtx,pNewObj)
+#endif  /* __IWbemConfigureRefresher_INTERFACE_DEFINED__ */
+
 #endif
-#endif
-  HRESULT WINAPI IWbemObjectTextSrc_GetText_Proxy(IWbemObjectTextSrc *This,__LONG32 lFlags,IWbemClassObject *pObj,ULONG uObjTextFormat,IWbemContext *pCtx,BSTR *strText);
-  void __RPC_STUB IWbemObjectTextSrc_GetText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemObjectTextSrc_CreateFromText_Proxy(IWbemObjectTextSrc *This,__LONG32 lFlags,BSTR strText,ULONG uObjTextFormat,IWbemContext *pCtx,IWbemClassObject **pNewObj);
-  void __RPC_STUB IWbemObjectTextSrc_CreateFromText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef struct tag_CompileStatusInfo {
-    __LONG32 lPhaseError;
-    HRESULT hRes;
-    __LONG32 ObjectNum;
-    __LONG32 FirstLine;
-    __LONG32 LastLine;
-    DWORD dwOutFlags;
-  } WBEM_COMPILE_STATUS_INFO;
-
-  typedef enum tag_WBEM_COMPILER_OPTIONS {
-    WBEM_FLAG_CHECK_ONLY = 0x1,WBEM_FLAG_AUTORECOVER = 0x2,WBEM_FLAG_WMI_CHECK = 0x4,WBEM_FLAG_CONSOLE_PRINT = 0x8,WBEM_FLAG_DONT_ADD_TO_LIST = 0x10,
-    WBEM_FLAG_SPLIT_FILES = 0x20,WBEM_FLAG_STORE_FILE = 0x100
-  } WBEM_COMPILER_OPTIONS;
-
-  typedef enum tag_WBEM_CONNECT_OPTIONS {
-    WBEM_FLAG_CONNECT_REPOSITORY_ONLY = 0x40,WBEM_FLAG_CONNECT_USE_MAX_WAIT = 0x80,WBEM_FLAG_CONNECT_PROVIDERS = 0x100
-  } WBEM_CONNECT_OPTIONS;
-
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0125_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0125_v0_0_s_ifspec;
-#ifndef __IMofCompiler_INTERFACE_DEFINED__
-#define __IMofCompiler_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IMofCompiler;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IMofCompiler : public IUnknown {
-  public:
-    virtual HRESULT WINAPI CompileFile(LPWSTR FileName,LPWSTR ServerAndNamespace,LPWSTR User,LPWSTR Authority,LPWSTR Password,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo) = 0;
-    virtual HRESULT WINAPI CompileBuffer(__LONG32 BuffSize,BYTE *pBuffer,LPWSTR ServerAndNamespace,LPWSTR User,LPWSTR Authority,LPWSTR Password,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo) = 0;
-    virtual HRESULT WINAPI CreateBMOF(LPWSTR TextFileName,LPWSTR BMOFFileName,LPWSTR ServerAndNamespace,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo) = 0;
-  };
-#else
-  typedef struct IMofCompilerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IMofCompiler *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IMofCompiler *This);
-      ULONG (WINAPI *Release)(IMofCompiler *This);
-      HRESULT (WINAPI *CompileFile)(IMofCompiler *This,LPWSTR FileName,LPWSTR ServerAndNamespace,LPWSTR User,LPWSTR Authority,LPWSTR Password,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo);
-      HRESULT (WINAPI *CompileBuffer)(IMofCompiler *This,__LONG32 BuffSize,BYTE *pBuffer,LPWSTR ServerAndNamespace,LPWSTR User,LPWSTR Authority,LPWSTR Password,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo);
-      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;
-  struct IMofCompiler {
-    CONST_VTBL struct IMofCompilerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IMofCompiler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMofCompiler_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMofCompiler_Release(This) (This)->lpVtbl->Release(This)
-#define IMofCompiler_CompileFile(This,FileName,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo) (This)->lpVtbl->CompileFile(This,FileName,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo)
-#define IMofCompiler_CompileBuffer(This,BuffSize,pBuffer,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo) (This)->lpVtbl->CompileBuffer(This,BuffSize,pBuffer,ServerAndNamespace,User,Authority,Password,lOptionFlags,lClassFlags,lInstanceFlags,pInfo)
-#define IMofCompiler_CreateBMOF(This,TextFileName,BMOFFileName,ServerAndNamespace,lOptionFlags,lClassFlags,lInstanceFlags,pInfo) (This)->lpVtbl->CreateBMOF(This,TextFileName,BMOFFileName,ServerAndNamespace,lOptionFlags,lClassFlags,lInstanceFlags,pInfo)
-#endif
-#endif
-  HRESULT WINAPI IMofCompiler_CompileFile_Proxy(IMofCompiler *This,LPWSTR FileName,LPWSTR ServerAndNamespace,LPWSTR User,LPWSTR Authority,LPWSTR Password,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo);
-  void __RPC_STUB IMofCompiler_CompileFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMofCompiler_CompileBuffer_Proxy(IMofCompiler *This,__LONG32 BuffSize,BYTE *pBuffer,LPWSTR ServerAndNamespace,LPWSTR User,LPWSTR Authority,LPWSTR Password,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo);
-  void __RPC_STUB IMofCompiler_CompileBuffer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IMofCompiler_CreateBMOF_Proxy(IMofCompiler *This,LPWSTR TextFileName,LPWSTR BMOFFileName,LPWSTR ServerAndNamespace,LONG lOptionFlags,LONG lClassFlags,LONG lInstanceFlags,WBEM_COMPILE_STATUS_INFO *pInfo);
-  void __RPC_STUB IMofCompiler_CreateBMOF_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef enum tag_WBEM_UNSECAPP_FLAG_TYPE {
-    WBEM_FLAG_UNSECAPP_DEFAULT_CHECK_ACCESS = 0,WBEM_FLAG_UNSECAPP_CHECK_ACCESS = 1,WBEM_FLAG_UNSECAPP_DONT_CHECK_ACCESS = 2
-  } WBEM_UNSECAPP_FLAG_TYPE;
-
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0127_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0127_v0_0_s_ifspec;
-
-  typedef enum tag_WBEM_INFORMATION_FLAG_TYPE {
-    WBEM_FLAG_SHORT_NAME = 0x1,WBEM_FLAG_LONG_NAME = 0x2
-  } WBEM_INFORMATION_FLAG_TYPE;
-
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0128_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemcli_0128_v0_0_s_ifspec;
-
-  ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
-  unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
-  unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
-  void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
 /* Begin additional prototypes for all interfaces */
 
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
+void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
 
 /* End additional prototypes */
 
diff --git a/mingw-w64-headers/include/wbemdisp.h b/mingw-w64-headers/include/wbemdisp.h
index 245fc6b..78bde35 100644
--- a/mingw-w64-headers/include/wbemdisp.h
+++ b/mingw-w64-headers/include/wbemdisp.h
@@ -1,151 +1,21 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
+/*** Autogenerated by WIDL 1.6 from wbemdisp.idl - Do not edit ***/
+
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
 
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error This stub requires an updated version of <rpcndr.h>
-#endif
+#include <rpc.h>
+#include <rpcndr.h>
 
 #ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
+#include <windows.h>
+#include <ole2.h>
 #endif
 
 #ifndef __wbemdisp_h__
 #define __wbemdisp_h__
 
-#ifndef __ISWbemServices_FWD_DEFINED__
-#define __ISWbemServices_FWD_DEFINED__
-typedef struct ISWbemServices ISWbemServices;
-#endif
-
-#ifndef __ISWbemLocator_FWD_DEFINED__
-#define __ISWbemLocator_FWD_DEFINED__
-typedef struct ISWbemLocator ISWbemLocator;
-#endif
-
-#ifndef __ISWbemObject_FWD_DEFINED__
-#define __ISWbemObject_FWD_DEFINED__
-typedef struct ISWbemObject ISWbemObject;
-#endif
-
-#ifndef __ISWbemObjectSet_FWD_DEFINED__
-#define __ISWbemObjectSet_FWD_DEFINED__
-typedef struct ISWbemObjectSet ISWbemObjectSet;
-#endif
-
-#ifndef __ISWbemNamedValue_FWD_DEFINED__
-#define __ISWbemNamedValue_FWD_DEFINED__
-typedef struct ISWbemNamedValue ISWbemNamedValue;
-#endif
-
-#ifndef __ISWbemNamedValueSet_FWD_DEFINED__
-#define __ISWbemNamedValueSet_FWD_DEFINED__
-typedef struct ISWbemNamedValueSet ISWbemNamedValueSet;
-#endif
-
-#ifndef __ISWbemQualifier_FWD_DEFINED__
-#define __ISWbemQualifier_FWD_DEFINED__
-typedef struct ISWbemQualifier ISWbemQualifier;
-#endif
-
-#ifndef __ISWbemQualifierSet_FWD_DEFINED__
-#define __ISWbemQualifierSet_FWD_DEFINED__
-typedef struct ISWbemQualifierSet ISWbemQualifierSet;
-#endif
-
-#ifndef __ISWbemProperty_FWD_DEFINED__
-#define __ISWbemProperty_FWD_DEFINED__
-typedef struct ISWbemProperty ISWbemProperty;
-#endif
-
-#ifndef __ISWbemPropertySet_FWD_DEFINED__
-#define __ISWbemPropertySet_FWD_DEFINED__
-typedef struct ISWbemPropertySet ISWbemPropertySet;
-#endif
-
-#ifndef __ISWbemMethod_FWD_DEFINED__
-#define __ISWbemMethod_FWD_DEFINED__
-typedef struct ISWbemMethod ISWbemMethod;
-#endif
-
-#ifndef __ISWbemMethodSet_FWD_DEFINED__
-#define __ISWbemMethodSet_FWD_DEFINED__
-typedef struct ISWbemMethodSet ISWbemMethodSet;
-#endif
-
-#ifndef __ISWbemEventSource_FWD_DEFINED__
-#define __ISWbemEventSource_FWD_DEFINED__
-typedef struct ISWbemEventSource ISWbemEventSource;
-#endif
-
-#ifndef __ISWbemObjectPath_FWD_DEFINED__
-#define __ISWbemObjectPath_FWD_DEFINED__
-typedef struct ISWbemObjectPath ISWbemObjectPath;
-#endif
-
-#ifndef __ISWbemLastError_FWD_DEFINED__
-#define __ISWbemLastError_FWD_DEFINED__
-typedef struct ISWbemLastError ISWbemLastError;
-#endif
-
-#ifndef __ISWbemSinkEvents_FWD_DEFINED__
-#define __ISWbemSinkEvents_FWD_DEFINED__
-typedef struct ISWbemSinkEvents ISWbemSinkEvents;
-#endif
-
-#ifndef __ISWbemSink_FWD_DEFINED__
-#define __ISWbemSink_FWD_DEFINED__
-typedef struct ISWbemSink ISWbemSink;
-#endif
-
-#ifndef __ISWbemSecurity_FWD_DEFINED__
-#define __ISWbemSecurity_FWD_DEFINED__
-typedef struct ISWbemSecurity ISWbemSecurity;
-#endif
-
-#ifndef __ISWbemPrivilege_FWD_DEFINED__
-#define __ISWbemPrivilege_FWD_DEFINED__
-typedef struct ISWbemPrivilege ISWbemPrivilege;
-#endif
-
-#ifndef __ISWbemPrivilegeSet_FWD_DEFINED__
-#define __ISWbemPrivilegeSet_FWD_DEFINED__
-typedef struct ISWbemPrivilegeSet ISWbemPrivilegeSet;
-#endif
-
-#ifndef __ISWbemServicesEx_FWD_DEFINED__
-#define __ISWbemServicesEx_FWD_DEFINED__
-typedef struct ISWbemServicesEx ISWbemServicesEx;
-#endif
-
-#ifndef __ISWbemObjectEx_FWD_DEFINED__
-#define __ISWbemObjectEx_FWD_DEFINED__
-typedef struct ISWbemObjectEx ISWbemObjectEx;
-#endif
-
-#ifndef __ISWbemDateTime_FWD_DEFINED__
-#define __ISWbemDateTime_FWD_DEFINED__
-typedef struct ISWbemDateTime ISWbemDateTime;
-#endif
-
-#ifndef __ISWbemRefresher_FWD_DEFINED__
-#define __ISWbemRefresher_FWD_DEFINED__
-typedef struct ISWbemRefresher ISWbemRefresher;
-#endif
-
-#ifndef __ISWbemRefreshableItem_FWD_DEFINED__
-#define __ISWbemRefreshableItem_FWD_DEFINED__
-typedef struct ISWbemRefreshableItem ISWbemRefreshableItem;
-#endif
+/* Forward declarations */
 
 #ifndef __SWbemLocator_FWD_DEFINED__
 #define __SWbemLocator_FWD_DEFINED__
@@ -153,8 +23,8 @@
 typedef class SWbemLocator SWbemLocator;
 #else
 typedef struct SWbemLocator SWbemLocator;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemLocator_FWD_DEFINED__ */
 
 #ifndef __SWbemNamedValueSet_FWD_DEFINED__
 #define __SWbemNamedValueSet_FWD_DEFINED__
@@ -162,8 +32,8 @@
 typedef class SWbemNamedValueSet SWbemNamedValueSet;
 #else
 typedef struct SWbemNamedValueSet SWbemNamedValueSet;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemNamedValueSet_FWD_DEFINED__ */
 
 #ifndef __SWbemObjectPath_FWD_DEFINED__
 #define __SWbemObjectPath_FWD_DEFINED__
@@ -171,8 +41,8 @@
 typedef class SWbemObjectPath SWbemObjectPath;
 #else
 typedef struct SWbemObjectPath SWbemObjectPath;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemObjectPath_FWD_DEFINED__ */
 
 #ifndef __SWbemLastError_FWD_DEFINED__
 #define __SWbemLastError_FWD_DEFINED__
@@ -180,8 +50,8 @@
 typedef class SWbemLastError SWbemLastError;
 #else
 typedef struct SWbemLastError SWbemLastError;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemLastError_FWD_DEFINED__ */
 
 #ifndef __SWbemSink_FWD_DEFINED__
 #define __SWbemSink_FWD_DEFINED__
@@ -189,8 +59,8 @@
 typedef class SWbemSink SWbemSink;
 #else
 typedef struct SWbemSink SWbemSink;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemSink_FWD_DEFINED__ */
 
 #ifndef __SWbemDateTime_FWD_DEFINED__
 #define __SWbemDateTime_FWD_DEFINED__
@@ -198,8 +68,8 @@
 typedef class SWbemDateTime SWbemDateTime;
 #else
 typedef struct SWbemDateTime SWbemDateTime;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemDateTime_FWD_DEFINED__ */
 
 #ifndef __SWbemRefresher_FWD_DEFINED__
 #define __SWbemRefresher_FWD_DEFINED__
@@ -207,8 +77,8 @@
 typedef class SWbemRefresher SWbemRefresher;
 #else
 typedef struct SWbemRefresher SWbemRefresher;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemRefresher_FWD_DEFINED__ */
 
 #ifndef __SWbemServices_FWD_DEFINED__
 #define __SWbemServices_FWD_DEFINED__
@@ -216,8 +86,8 @@
 typedef class SWbemServices SWbemServices;
 #else
 typedef struct SWbemServices SWbemServices;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemServices_FWD_DEFINED__ */
 
 #ifndef __SWbemServicesEx_FWD_DEFINED__
 #define __SWbemServicesEx_FWD_DEFINED__
@@ -225,8 +95,8 @@
 typedef class SWbemServicesEx SWbemServicesEx;
 #else
 typedef struct SWbemServicesEx SWbemServicesEx;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemServicesEx_FWD_DEFINED__ */
 
 #ifndef __SWbemObject_FWD_DEFINED__
 #define __SWbemObject_FWD_DEFINED__
@@ -234,8 +104,8 @@
 typedef class SWbemObject SWbemObject;
 #else
 typedef struct SWbemObject SWbemObject;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemObject_FWD_DEFINED__ */
 
 #ifndef __SWbemObjectEx_FWD_DEFINED__
 #define __SWbemObjectEx_FWD_DEFINED__
@@ -243,8 +113,8 @@
 typedef class SWbemObjectEx SWbemObjectEx;
 #else
 typedef struct SWbemObjectEx SWbemObjectEx;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemObjectEx_FWD_DEFINED__ */
 
 #ifndef __SWbemObjectSet_FWD_DEFINED__
 #define __SWbemObjectSet_FWD_DEFINED__
@@ -252,8 +122,8 @@
 typedef class SWbemObjectSet SWbemObjectSet;
 #else
 typedef struct SWbemObjectSet SWbemObjectSet;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemObjectSet_FWD_DEFINED__ */
 
 #ifndef __SWbemNamedValue_FWD_DEFINED__
 #define __SWbemNamedValue_FWD_DEFINED__
@@ -261,8 +131,8 @@
 typedef class SWbemNamedValue SWbemNamedValue;
 #else
 typedef struct SWbemNamedValue SWbemNamedValue;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemNamedValue_FWD_DEFINED__ */
 
 #ifndef __SWbemQualifier_FWD_DEFINED__
 #define __SWbemQualifier_FWD_DEFINED__
@@ -270,8 +140,8 @@
 typedef class SWbemQualifier SWbemQualifier;
 #else
 typedef struct SWbemQualifier SWbemQualifier;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemQualifier_FWD_DEFINED__ */
 
 #ifndef __SWbemQualifierSet_FWD_DEFINED__
 #define __SWbemQualifierSet_FWD_DEFINED__
@@ -279,8 +149,8 @@
 typedef class SWbemQualifierSet SWbemQualifierSet;
 #else
 typedef struct SWbemQualifierSet SWbemQualifierSet;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemQualifierSet_FWD_DEFINED__ */
 
 #ifndef __SWbemProperty_FWD_DEFINED__
 #define __SWbemProperty_FWD_DEFINED__
@@ -288,8 +158,8 @@
 typedef class SWbemProperty SWbemProperty;
 #else
 typedef struct SWbemProperty SWbemProperty;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemProperty_FWD_DEFINED__ */
 
 #ifndef __SWbemPropertySet_FWD_DEFINED__
 #define __SWbemPropertySet_FWD_DEFINED__
@@ -297,8 +167,8 @@
 typedef class SWbemPropertySet SWbemPropertySet;
 #else
 typedef struct SWbemPropertySet SWbemPropertySet;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemPropertySet_FWD_DEFINED__ */
 
 #ifndef __SWbemMethod_FWD_DEFINED__
 #define __SWbemMethod_FWD_DEFINED__
@@ -306,8 +176,8 @@
 typedef class SWbemMethod SWbemMethod;
 #else
 typedef struct SWbemMethod SWbemMethod;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemMethod_FWD_DEFINED__ */
 
 #ifndef __SWbemMethodSet_FWD_DEFINED__
 #define __SWbemMethodSet_FWD_DEFINED__
@@ -315,8 +185,8 @@
 typedef class SWbemMethodSet SWbemMethodSet;
 #else
 typedef struct SWbemMethodSet SWbemMethodSet;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemMethodSet_FWD_DEFINED__ */
 
 #ifndef __SWbemEventSource_FWD_DEFINED__
 #define __SWbemEventSource_FWD_DEFINED__
@@ -324,8 +194,8 @@
 typedef class SWbemEventSource SWbemEventSource;
 #else
 typedef struct SWbemEventSource SWbemEventSource;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemEventSource_FWD_DEFINED__ */
 
 #ifndef __SWbemSecurity_FWD_DEFINED__
 #define __SWbemSecurity_FWD_DEFINED__
@@ -333,8 +203,8 @@
 typedef class SWbemSecurity SWbemSecurity;
 #else
 typedef struct SWbemSecurity SWbemSecurity;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemSecurity_FWD_DEFINED__ */
 
 #ifndef __SWbemPrivilege_FWD_DEFINED__
 #define __SWbemPrivilege_FWD_DEFINED__
@@ -342,8 +212,8 @@
 typedef class SWbemPrivilege SWbemPrivilege;
 #else
 typedef struct SWbemPrivilege SWbemPrivilege;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemPrivilege_FWD_DEFINED__ */
 
 #ifndef __SWbemPrivilegeSet_FWD_DEFINED__
 #define __SWbemPrivilegeSet_FWD_DEFINED__
@@ -351,8 +221,8 @@
 typedef class SWbemPrivilegeSet SWbemPrivilegeSet;
 #else
 typedef struct SWbemPrivilegeSet SWbemPrivilegeSet;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemPrivilegeSet_FWD_DEFINED__ */
 
 #ifndef __SWbemRefreshableItem_FWD_DEFINED__
 #define __SWbemRefreshableItem_FWD_DEFINED__
@@ -360,322 +230,1428 @@
 typedef class SWbemRefreshableItem SWbemRefreshableItem;
 #else
 typedef struct SWbemRefreshableItem SWbemRefreshableItem;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __SWbemRefreshableItem_FWD_DEFINED__ */
 
 #ifndef __ISWbemLocator_FWD_DEFINED__
 #define __ISWbemLocator_FWD_DEFINED__
-typedef struct ISWbemLocator ISWbemLocator;
+typedef interface ISWbemLocator ISWbemLocator;
 #endif
 
 #ifndef __ISWbemServices_FWD_DEFINED__
 #define __ISWbemServices_FWD_DEFINED__
-typedef struct ISWbemServices ISWbemServices;
+typedef interface ISWbemServices ISWbemServices;
 #endif
 
 #ifndef __ISWbemServicesEx_FWD_DEFINED__
 #define __ISWbemServicesEx_FWD_DEFINED__
-typedef struct ISWbemServicesEx ISWbemServicesEx;
+typedef interface ISWbemServicesEx ISWbemServicesEx;
 #endif
 
 #ifndef __ISWbemObject_FWD_DEFINED__
 #define __ISWbemObject_FWD_DEFINED__
-typedef struct ISWbemObject ISWbemObject;
+typedef interface ISWbemObject ISWbemObject;
 #endif
 
 #ifndef __ISWbemObjectEx_FWD_DEFINED__
 #define __ISWbemObjectEx_FWD_DEFINED__
-typedef struct ISWbemObjectEx ISWbemObjectEx;
+typedef interface ISWbemObjectEx ISWbemObjectEx;
 #endif
 
 #ifndef __ISWbemLastError_FWD_DEFINED__
 #define __ISWbemLastError_FWD_DEFINED__
-typedef struct ISWbemLastError ISWbemLastError;
+typedef interface ISWbemLastError ISWbemLastError;
 #endif
 
 #ifndef __ISWbemObjectSet_FWD_DEFINED__
 #define __ISWbemObjectSet_FWD_DEFINED__
-typedef struct ISWbemObjectSet ISWbemObjectSet;
+typedef interface ISWbemObjectSet ISWbemObjectSet;
 #endif
 
 #ifndef __ISWbemNamedValueSet_FWD_DEFINED__
 #define __ISWbemNamedValueSet_FWD_DEFINED__
-typedef struct ISWbemNamedValueSet ISWbemNamedValueSet;
+typedef interface ISWbemNamedValueSet ISWbemNamedValueSet;
 #endif
 
 #ifndef __ISWbemNamedValue_FWD_DEFINED__
 #define __ISWbemNamedValue_FWD_DEFINED__
-typedef struct ISWbemNamedValue ISWbemNamedValue;
+typedef interface ISWbemNamedValue ISWbemNamedValue;
 #endif
 
 #ifndef __ISWbemObjectPath_FWD_DEFINED__
 #define __ISWbemObjectPath_FWD_DEFINED__
-typedef struct ISWbemObjectPath ISWbemObjectPath;
+typedef interface ISWbemObjectPath ISWbemObjectPath;
 #endif
 
 #ifndef __ISWbemProperty_FWD_DEFINED__
 #define __ISWbemProperty_FWD_DEFINED__
-typedef struct ISWbemProperty ISWbemProperty;
+typedef interface ISWbemProperty ISWbemProperty;
 #endif
 
 #ifndef __ISWbemPropertySet_FWD_DEFINED__
 #define __ISWbemPropertySet_FWD_DEFINED__
-typedef struct ISWbemPropertySet ISWbemPropertySet;
+typedef interface ISWbemPropertySet ISWbemPropertySet;
 #endif
 
 #ifndef __ISWbemQualifier_FWD_DEFINED__
 #define __ISWbemQualifier_FWD_DEFINED__
-typedef struct ISWbemQualifier ISWbemQualifier;
+typedef interface ISWbemQualifier ISWbemQualifier;
 #endif
 
 #ifndef __ISWbemQualifierSet_FWD_DEFINED__
 #define __ISWbemQualifierSet_FWD_DEFINED__
-typedef struct ISWbemQualifierSet ISWbemQualifierSet;
+typedef interface ISWbemQualifierSet ISWbemQualifierSet;
 #endif
 
 #ifndef __ISWbemMethod_FWD_DEFINED__
 #define __ISWbemMethod_FWD_DEFINED__
-typedef struct ISWbemMethod ISWbemMethod;
+typedef interface ISWbemMethod ISWbemMethod;
 #endif
 
 #ifndef __ISWbemMethodSet_FWD_DEFINED__
 #define __ISWbemMethodSet_FWD_DEFINED__
-typedef struct ISWbemMethodSet ISWbemMethodSet;
+typedef interface ISWbemMethodSet ISWbemMethodSet;
 #endif
 
 #ifndef __ISWbemSink_FWD_DEFINED__
 #define __ISWbemSink_FWD_DEFINED__
-typedef struct ISWbemSink ISWbemSink;
+typedef interface ISWbemSink ISWbemSink;
 #endif
 
 #ifndef __ISWbemSinkEvents_FWD_DEFINED__
 #define __ISWbemSinkEvents_FWD_DEFINED__
-typedef struct ISWbemSinkEvents ISWbemSinkEvents;
+typedef interface ISWbemSinkEvents ISWbemSinkEvents;
 #endif
 
 #ifndef __ISWbemEventSource_FWD_DEFINED__
 #define __ISWbemEventSource_FWD_DEFINED__
-typedef struct ISWbemEventSource ISWbemEventSource;
+typedef interface ISWbemEventSource ISWbemEventSource;
 #endif
 
 #ifndef __ISWbemSecurity_FWD_DEFINED__
 #define __ISWbemSecurity_FWD_DEFINED__
-typedef struct ISWbemSecurity ISWbemSecurity;
+typedef interface ISWbemSecurity ISWbemSecurity;
 #endif
 
 #ifndef __ISWbemPrivilege_FWD_DEFINED__
 #define __ISWbemPrivilege_FWD_DEFINED__
-typedef struct ISWbemPrivilege ISWbemPrivilege;
+typedef interface ISWbemPrivilege ISWbemPrivilege;
 #endif
 
 #ifndef __ISWbemPrivilegeSet_FWD_DEFINED__
 #define __ISWbemPrivilegeSet_FWD_DEFINED__
-typedef struct ISWbemPrivilegeSet ISWbemPrivilegeSet;
+typedef interface ISWbemPrivilegeSet ISWbemPrivilegeSet;
 #endif
 
 #ifndef __ISWbemDateTime_FWD_DEFINED__
 #define __ISWbemDateTime_FWD_DEFINED__
-typedef struct ISWbemDateTime ISWbemDateTime;
+typedef interface ISWbemDateTime ISWbemDateTime;
 #endif
 
 #ifndef __ISWbemRefreshableItem_FWD_DEFINED__
 #define __ISWbemRefreshableItem_FWD_DEFINED__
-typedef struct ISWbemRefreshableItem ISWbemRefreshableItem;
+typedef interface ISWbemRefreshableItem ISWbemRefreshableItem;
 #endif
 
 #ifndef __ISWbemRefresher_FWD_DEFINED__
 #define __ISWbemRefresher_FWD_DEFINED__
-typedef struct ISWbemRefresher ISWbemRefresher;
+typedef interface ISWbemRefresher ISWbemRefresher;
 #endif
 
-#include "dispex.h"
+/* Headers for imported files */
+
+#include <dispex.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
-  void *__RPC_API MIDL_user_allocate(size_t);
-  void __RPC_API MIDL_user_free(void *);
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+DEFINE_GUID(LIBID_WbemScripting, 0x565783c6, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifndef __ISWbemDateTime_FWD_DEFINED__
+#define __ISWbemDateTime_FWD_DEFINED__
+typedef interface ISWbemDateTime ISWbemDateTime;
 #endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0000_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0000_v0_0_s_ifspec;
+#ifndef __ISWbemEventSource_FWD_DEFINED__
+#define __ISWbemEventSource_FWD_DEFINED__
+typedef interface ISWbemEventSource ISWbemEventSource;
+#endif
 
-#ifndef __WbemScripting_LIBRARY_DEFINED__
-#define __WbemScripting_LIBRARY_DEFINED__
+#ifndef __ISWbemLastError_FWD_DEFINED__
+#define __ISWbemLastError_FWD_DEFINED__
+typedef interface ISWbemLastError ISWbemLastError;
+#endif
 
-  typedef enum WbemChangeFlagEnum {
-    wbemChangeFlagCreateOrUpdate = 0,wbemChangeFlagUpdateOnly = 0x1,wbemChangeFlagCreateOnly = 0x2,wbemChangeFlagUpdateCompatible = 0,
-    wbemChangeFlagUpdateSafeMode = 0x20,wbemChangeFlagUpdateForceMode = 0x40,wbemChangeFlagStrongValidation = 0x80,wbemChangeFlagAdvisory = 0x10000
-  } WbemChangeFlagEnum;
+#ifndef __ISWbemLocator_FWD_DEFINED__
+#define __ISWbemLocator_FWD_DEFINED__
+typedef interface ISWbemLocator ISWbemLocator;
+#endif
 
-  typedef enum WbemFlagEnum {
-    wbemFlagReturnImmediately = 0x10,wbemFlagReturnWhenComplete = 0,wbemFlagBidirectional = 0,wbemFlagForwardOnly = 0x20,wbemFlagNoErrorObject = 0x40,
-    wbemFlagReturnErrorObject = 0,wbemFlagSendStatus = 0x80,wbemFlagDontSendStatus = 0,wbemFlagEnsureLocatable = 0x100,wbemFlagDirectRead = 0x200,
-    wbemFlagSendOnlySelected = 0,wbemFlagUseAmendedQualifiers = 0x20000,wbemFlagGetDefault = 0,wbemFlagSpawnInstance = 0x1,wbemFlagUseCurrentTime = 0x1
-  } WbemFlagEnum;
+#ifndef __ISWbemMethod_FWD_DEFINED__
+#define __ISWbemMethod_FWD_DEFINED__
+typedef interface ISWbemMethod ISWbemMethod;
+#endif
 
-  typedef enum WbemQueryFlagEnum {
-    wbemQueryFlagDeep = 0,wbemQueryFlagShallow = 1,wbemQueryFlagPrototype = 2
-  } WbemQueryFlagEnum;
+#ifndef __ISWbemMethodSet_FWD_DEFINED__
+#define __ISWbemMethodSet_FWD_DEFINED__
+typedef interface ISWbemMethodSet ISWbemMethodSet;
+#endif
 
-  typedef enum WbemTextFlagEnum {
+#ifndef __ISWbemNamedValue_FWD_DEFINED__
+#define __ISWbemNamedValue_FWD_DEFINED__
+typedef interface ISWbemNamedValue ISWbemNamedValue;
+#endif
+
+#ifndef __ISWbemNamedValueSet_FWD_DEFINED__
+#define __ISWbemNamedValueSet_FWD_DEFINED__
+typedef interface ISWbemNamedValueSet ISWbemNamedValueSet;
+#endif
+
+#ifndef __ISWbemObject_FWD_DEFINED__
+#define __ISWbemObject_FWD_DEFINED__
+typedef interface ISWbemObject ISWbemObject;
+#endif
+
+#ifndef __ISWbemObjectEx_FWD_DEFINED__
+#define __ISWbemObjectEx_FWD_DEFINED__
+typedef interface ISWbemObjectEx ISWbemObjectEx;
+#endif
+
+#ifndef __ISWbemObjectPath_FWD_DEFINED__
+#define __ISWbemObjectPath_FWD_DEFINED__
+typedef interface ISWbemObjectPath ISWbemObjectPath;
+#endif
+
+#ifndef __ISWbemObjectSet_FWD_DEFINED__
+#define __ISWbemObjectSet_FWD_DEFINED__
+typedef interface ISWbemObjectSet ISWbemObjectSet;
+#endif
+
+#ifndef __ISWbemQualifier_FWD_DEFINED__
+#define __ISWbemQualifier_FWD_DEFINED__
+typedef interface ISWbemQualifier ISWbemQualifier;
+#endif
+
+#ifndef __ISWbemQualifierSet_FWD_DEFINED__
+#define __ISWbemQualifierSet_FWD_DEFINED__
+typedef interface ISWbemQualifierSet ISWbemQualifierSet;
+#endif
+
+#ifndef __ISWbemPrivilege_FWD_DEFINED__
+#define __ISWbemPrivilege_FWD_DEFINED__
+typedef interface ISWbemPrivilege ISWbemPrivilege;
+#endif
+
+#ifndef __ISWbemPrivilegeSet_FWD_DEFINED__
+#define __ISWbemPrivilegeSet_FWD_DEFINED__
+typedef interface ISWbemPrivilegeSet ISWbemPrivilegeSet;
+#endif
+
+#ifndef __ISWbemProperty_FWD_DEFINED__
+#define __ISWbemProperty_FWD_DEFINED__
+typedef interface ISWbemProperty ISWbemProperty;
+#endif
+
+#ifndef __ISWbemPropertySet_FWD_DEFINED__
+#define __ISWbemPropertySet_FWD_DEFINED__
+typedef interface ISWbemPropertySet ISWbemPropertySet;
+#endif
+
+#ifndef __ISWbemRefresher_FWD_DEFINED__
+#define __ISWbemRefresher_FWD_DEFINED__
+typedef interface ISWbemRefresher ISWbemRefresher;
+#endif
+
+#ifndef __ISWbemRefreshableItem_FWD_DEFINED__
+#define __ISWbemRefreshableItem_FWD_DEFINED__
+typedef interface ISWbemRefreshableItem ISWbemRefreshableItem;
+#endif
+
+#ifndef __ISWbemSecurity_FWD_DEFINED__
+#define __ISWbemSecurity_FWD_DEFINED__
+typedef interface ISWbemSecurity ISWbemSecurity;
+#endif
+
+#ifndef __ISWbemServices_FWD_DEFINED__
+#define __ISWbemServices_FWD_DEFINED__
+typedef interface ISWbemServices ISWbemServices;
+#endif
+
+#ifndef __ISWbemServicesEx_FWD_DEFINED__
+#define __ISWbemServicesEx_FWD_DEFINED__
+typedef interface ISWbemServicesEx ISWbemServicesEx;
+#endif
+
+#ifndef __ISWbemSink_FWD_DEFINED__
+#define __ISWbemSink_FWD_DEFINED__
+typedef interface ISWbemSink ISWbemSink;
+#endif
+
+#ifndef __ISWbemSinkEvents_FWD_DEFINED__
+#define __ISWbemSinkEvents_FWD_DEFINED__
+typedef interface ISWbemSinkEvents ISWbemSinkEvents;
+#endif
+
+typedef enum WbemChangeFlagEnum {
+    wbemChangeFlagCreateOrUpdate = 0x0,
+    wbemChangeFlagUpdateOnly = 0x1,
+    wbemChangeFlagCreateOnly = 0x2,
+    wbemChangeFlagUpdateCompatible = 0x0,
+    wbemChangeFlagUpdateSafeMode = 0x20,
+    wbemChangeFlagUpdateForceMode = 0x40,
+    wbemChangeFlagStrongValidation = 0x80,
+    wbemChangeFlagAdvisory = 0x10000
+} WbemChangeFlagEnum;
+typedef enum WbemFlagEnum {
+    wbemFlagReturnImmediately = 0x10,
+    wbemFlagReturnWhenComplete = 0,
+    wbemFlagBidirectional = 0,
+    wbemFlagForwardOnly = 0x20,
+    wbemFlagNoErrorObject = 0x40,
+    wbemFlagReturnErrorObject = 0,
+    wbemFlagSendStatus = 0x80,
+    wbemFlagDontSendStatus = 0,
+    wbemFlagEnsureLocatable = 0x100,
+    wbemFlagDirectRead = 0x200,
+    wbemFlagSendOnlySelected = 0,
+    wbemFlagUseAmendedQualifiers = 0x20000,
+    wbemFlagGetDefault = 0x0,
+    wbemFlagSpawnInstance = 0x1,
+    wbemFlagUseCurrentTime = 0x1
+} WbemFlagEnum;
+typedef enum WbemQueryFlagEnum {
+    wbemQueryFlagDeep = 0,
+    wbemQueryFlagShallow = 1,
+    wbemQueryFlagPrototype = 2
+} WbemQueryFlagEnum;
+typedef enum WbemTextFlagEnum {
     wbemTextFlagNoFlavors = 0x1
-  } WbemTextFlagEnum;
-
-  typedef enum WbemTimeout {
+} WbemTextFlagEnum;
+typedef enum WbemTimeout {
     wbemTimeoutInfinite = 0xffffffff
-  } WbemTimeout;
-
-  typedef enum WbemComparisonFlagEnum {
-    wbemComparisonFlagIncludeAll = 0,wbemComparisonFlagIgnoreQualifiers = 0x1,wbemComparisonFlagIgnoreObjectSource = 0x2,
-    wbemComparisonFlagIgnoreDefaultValues = 0x4,wbemComparisonFlagIgnoreClass = 0x8,wbemComparisonFlagIgnoreCase = 0x10,
+} WbemTimeout;
+typedef enum WbemComparisonFlagEnum {
+    wbemComparisonFlagIncludeAll = 0,
+    wbemComparisonFlagIgnoreQualifiers = 0x1,
+    wbemComparisonFlagIgnoreObjectSource = 0x2,
+    wbemComparisonFlagIgnoreDefaultValues = 0x4,
+    wbemComparisonFlagIgnoreClass = 0x8,
+    wbemComparisonFlagIgnoreCase = 0x10,
     wbemComparisonFlagIgnoreFlavor = 0x20
-  } WbemComparisonFlagEnum;
-
-  typedef enum WbemCimtypeEnum {
-    wbemCimtypeSint8 = 16,wbemCimtypeUint8 = 17,wbemCimtypeSint16 = 2,wbemCimtypeUint16 = 18,wbemCimtypeSint32 = 3,wbemCimtypeUint32 = 19,
-    wbemCimtypeSint64 = 20,wbemCimtypeUint64 = 21,wbemCimtypeReal32 = 4,wbemCimtypeReal64 = 5,wbemCimtypeBoolean = 11,wbemCimtypeString = 8,
-    wbemCimtypeDatetime = 101,wbemCimtypeReference = 102,wbemCimtypeChar16 = 103,wbemCimtypeObject = 13
-  } WbemCimtypeEnum;
-
-  typedef enum WbemErrorEnum {
-    wbemNoErr = 0,wbemErrFailed = 0x80041001,wbemErrNotFound = 0x80041002,wbemErrAccessDenied = 0x80041003,wbemErrProviderFailure = 0x80041004,
-    wbemErrTypeMismatch = 0x80041005,wbemErrOutOfMemory = 0x80041006,wbemErrInvalidContext = 0x80041007,wbemErrInvalidParameter = 0x80041008,
-    wbemErrNotAvailable = 0x80041009,wbemErrCriticalError = 0x8004100a,wbemErrInvalidStream = 0x8004100b,wbemErrNotSupported = 0x8004100c,
-    wbemErrInvalidSuperclass = 0x8004100d,wbemErrInvalidNamespace = 0x8004100e,wbemErrInvalidObject = 0x8004100f,wbemErrInvalidClass = 0x80041010,
-    wbemErrProviderNotFound = 0x80041011,wbemErrInvalidProviderRegistration = 0x80041012,wbemErrProviderLoadFailure = 0x80041013,
-    wbemErrInitializationFailure = 0x80041014,wbemErrTransportFailure = 0x80041015,wbemErrInvalidOperation = 0x80041016,
-    wbemErrInvalidQuery = 0x80041017,wbemErrInvalidQueryType = 0x80041018,wbemErrAlreadyExists = 0x80041019,wbemErrOverrideNotAllowed = 0x8004101a,
-    wbemErrPropagatedQualifier = 0x8004101b,wbemErrPropagatedProperty = 0x8004101c,wbemErrUnexpected = 0x8004101d,wbemErrIllegalOperation = 0x8004101e,
-    wbemErrCannotBeKey = 0x8004101f,wbemErrIncompleteClass = 0x80041020,wbemErrInvalidSyntax = 0x80041021,wbemErrNondecoratedObject = 0x80041022,
-    wbemErrReadOnly = 0x80041023,wbemErrProviderNotCapable = 0x80041024,wbemErrClassHasChildren = 0x80041025,wbemErrClassHasInstances = 0x80041026,
-    wbemErrQueryNotImplemented = 0x80041027,wbemErrIllegalNull = 0x80041028,wbemErrInvalidQualifierType = 0x80041029,
-    wbemErrInvalidPropertyType = 0x8004102a,wbemErrValueOutOfRange = 0x8004102b,wbemErrCannotBeSingleton = 0x8004102c,
-    wbemErrInvalidCimType = 0x8004102d,wbemErrInvalidMethod = 0x8004102e,wbemErrInvalidMethodParameters = 0x8004102f,
-    wbemErrSystemProperty = 0x80041030,wbemErrInvalidProperty = 0x80041031,wbemErrCallCancelled = 0x80041032,wbemErrShuttingDown = 0x80041033,
-    wbemErrPropagatedMethod = 0x80041034,wbemErrUnsupportedParameter = 0x80041035,wbemErrMissingParameter = 0x80041036,
-    wbemErrInvalidParameterId = 0x80041037,wbemErrNonConsecutiveParameterIds = 0x80041038,wbemErrParameterIdOnRetval = 0x80041039,
-    wbemErrInvalidObjectPath = 0x8004103a,wbemErrOutOfDiskSpace = 0x8004103b,wbemErrBufferTooSmall = 0x8004103c,
-    wbemErrUnsupportedPutExtension = 0x8004103d,wbemErrUnknownObjectType = 0x8004103e,wbemErrUnknownPacketType = 0x8004103f,
-    wbemErrMarshalVersionMismatch = 0x80041040,wbemErrMarshalInvalidSignature = 0x80041041,wbemErrInvalidQualifier = 0x80041042,
-    wbemErrInvalidDuplicateParameter = 0x80041043,wbemErrTooMuchData = 0x80041044,wbemErrServerTooBusy = 0x80041045,wbemErrInvalidFlavor = 0x80041046,
-    wbemErrCircularReference = 0x80041047,wbemErrUnsupportedClassUpdate = 0x80041048,wbemErrCannotChangeKeyInheritance = 0x80041049,
-    wbemErrCannotChangeIndexInheritance = 0x80041050,wbemErrTooManyProperties = 0x80041051,wbemErrUpdateTypeMismatch = 0x80041052,
-    wbemErrUpdateOverrideNotAllowed = 0x80041053,wbemErrUpdatePropagatedMethod = 0x80041054,wbemErrMethodNotImplemented = 0x80041055,
-    wbemErrMethodDisabled = 0x80041056,wbemErrRefresherBusy = 0x80041057,wbemErrUnparsableQuery = 0x80041058,wbemErrNotEventClass = 0x80041059,
-    wbemErrMissingGroupWithin = 0x8004105a,wbemErrMissingAggregationList = 0x8004105b,wbemErrPropertyNotAnObject = 0x8004105c,
-    wbemErrAggregatingByObject = 0x8004105d,wbemErrUninterpretableProviderQuery = 0x8004105f,wbemErrBackupRestoreWinmgmtRunning = 0x80041060,
-    wbemErrQueueOverflow = 0x80041061,wbemErrPrivilegeNotHeld = 0x80041062,wbemErrInvalidOperator = 0x80041063,wbemErrLocalCredentials = 0x80041064,
-    wbemErrCannotBeAbstract = 0x80041065,wbemErrAmendedObject = 0x80041066,wbemErrClientTooSlow = 0x80041067,wbemErrNullSecurityDescriptor = 0x80041068,
-    wbemErrTimeout = 0x80041069,wbemErrInvalidAssociation = 0x8004106a,wbemErrAmbiguousOperation = 0x8004106b,wbemErrQuotaViolation = 0x8004106c,
-    wbemErrTransactionConflict = 0x8004106d,wbemErrForcedRollback = 0x8004106e,wbemErrUnsupportedLocale = 0x8004106f,wbemErrHandleOutOfDate = 0x80041070,
-    wbemErrConnectionFailed = 0x80041071,wbemErrInvalidHandleRequest = 0x80041072,wbemErrPropertyNameTooWide = 0x80041073,
-    wbemErrClassNameTooWide = 0x80041074,wbemErrMethodNameTooWide = 0x80041075,wbemErrQualifierNameTooWide = 0x80041076,
-    wbemErrRerunCommand = 0x80041077,wbemErrDatabaseVerMismatch = 0x80041078,wbemErrVetoPut = 0x80041079,wbemErrVetoDelete = 0x8004107a,
-    wbemErrInvalidLocale = 0x80041080,wbemErrProviderSuspended = 0x80041081,wbemErrSynchronizationRequired = 0x80041082,wbemErrNoSchema = 0x80041083,
-    wbemErrProviderAlreadyRegistered = 0x80041084,wbemErrProviderNotRegistered = 0x80041085,wbemErrFatalTransportError = 0x80041086,
-    wbemErrEncryptedConnectionRequired = 0x80041087,wbemErrRegistrationTooBroad = 0x80042001,wbemErrRegistrationTooPrecise = 0x80042002,
-    wbemErrTimedout = 0x80043001,wbemErrResetToDefault = 0x80043002
-  } WbemErrorEnum;
-
-  typedef enum WbemAuthenticationLevelEnum {
-    wbemAuthenticationLevelDefault = 0,wbemAuthenticationLevelNone = 1,wbemAuthenticationLevelConnect = 2,wbemAuthenticationLevelCall = 3,
-    wbemAuthenticationLevelPkt = 4,wbemAuthenticationLevelPktIntegrity = 5,wbemAuthenticationLevelPktPrivacy = 6
-  } WbemAuthenticationLevelEnum;
-
-  typedef enum WbemImpersonationLevelEnum {
-    wbemImpersonationLevelAnonymous = 1,wbemImpersonationLevelIdentify = 2,wbemImpersonationLevelImpersonate = 3,wbemImpersonationLevelDelegate = 4
-  } WbemImpersonationLevelEnum;
-
-  typedef enum WbemPrivilegeEnum {
-    wbemPrivilegeCreateToken = 1,wbemPrivilegePrimaryToken = 2,wbemPrivilegeLockMemory = 3,wbemPrivilegeIncreaseQuota = 4,
-    wbemPrivilegeMachineAccount = 5,wbemPrivilegeTcb = 6,wbemPrivilegeSecurity = 7,wbemPrivilegeTakeOwnership = 8,wbemPrivilegeLoadDriver = 9,
-    wbemPrivilegeSystemProfile = 10,wbemPrivilegeSystemtime = 11,wbemPrivilegeProfileSingleProcess = 12,wbemPrivilegeIncreaseBasePriority = 13,
-    wbemPrivilegeCreatePagefile = 14,wbemPrivilegeCreatePermanent = 15,wbemPrivilegeBackup = 16,wbemPrivilegeRestore = 17,wbemPrivilegeShutdown = 18,
-    wbemPrivilegeDebug = 19,wbemPrivilegeAudit = 20,wbemPrivilegeSystemEnvironment = 21,wbemPrivilegeChangeNotify = 22,wbemPrivilegeRemoteShutdown = 23,
-    wbemPrivilegeUndock = 24,wbemPrivilegeSyncAgent = 25,wbemPrivilegeEnableDelegation = 26,wbemPrivilegeManageVolume = 27
-  } WbemPrivilegeEnum;
-
-  typedef enum WbemObjectTextFormatEnum {
-    wbemObjectTextFormatCIMDTD20 = 1,wbemObjectTextFormatWMIDTD20 = 2
-  } WbemObjectTextFormatEnum;
-
-  typedef enum WbemConnectOptionsEnum {
+} WbemComparisonFlagEnum;
+typedef enum WbemCimtypeEnum {
+    wbemCimtypeSint16 = 2,
+    wbemCimtypeSint32 = 3,
+    wbemCimtypeReal32 = 4,
+    wbemCimtypeReal64 = 5,
+    wbemCimtypeString = 8,
+    wbemCimtypeBoolean = 11,
+    wbemCimtypeObject = 13,
+    wbemCimtypeSint8 = 16,
+    wbemCimtypeUint8 = 17,
+    wbemCimtypeUint16 = 18,
+    wbemCimtypeUint32 = 19,
+    wbemCimtypeSint64 = 20,
+    wbemCimtypeUint64 = 21,
+    wbemCimtypeDatetime = 101,
+    wbemCimtypeReference = 102,
+    wbemCimtypeChar16 = 103
+} WbemCimtypeEnum;
+typedef enum WbemErrorEnum {
+    wbemNoErr = 0,
+    wbemErrFailed = 0x80041001,
+    wbemErrNotFound = 0x80041002,
+    wbemErrAccessDenied = 0x80041003,
+    wbemErrProviderFailure = 0x80041004,
+    wbemErrTypeMismatch = 0x80041005,
+    wbemErrOutOfMemory = 0x80041006,
+    wbemErrInvalidContext = 0x80041007,
+    wbemErrInvalidParameter = 0x80041008,
+    wbemErrNotAvailable = 0x80041009,
+    wbemErrCriticalError = 0x8004100a,
+    wbemErrInvalidStream = 0x8004100b,
+    wbemErrNotSupported = 0x8004100c,
+    wbemErrInvalidSuperclass = 0x8004100d,
+    wbemErrInvalidNamespace = 0x8004100e,
+    wbemErrInvalidObject = 0x8004100f,
+    wbemErrInvalidClass = 0x80041010,
+    wbemErrProviderNotFound = 0x80041011,
+    wbemErrInvalidProviderRegistration = 0x80041012,
+    wbemErrProviderLoadFailure = 0x80041013,
+    wbemErrInitializationFailure = 0x80041014,
+    wbemErrTransportFailure = 0x80041015,
+    wbemErrInvalidOperation = 0x80041016,
+    wbemErrInvalidQuery = 0x80041017,
+    wbemErrInvalidQueryType = 0x80041018,
+    wbemErrAlreadyExists = 0x80041019,
+    wbemErrOverrideNotAllowed = 0x8004101a,
+    wbemErrPropagatedQualifier = 0x8004101b,
+    wbemErrPropagatedProperty = 0x8004101c,
+    wbemErrUnexpected = 0x8004101d,
+    wbemErrIllegalOperation = 0x8004101e,
+    wbemErrCannotBeKey = 0x8004101f,
+    wbemErrIncompleteClass = 0x80041020,
+    wbemErrInvalidSyntax = 0x80041021,
+    wbemErrNondecoratedObject = 0x80041022,
+    wbemErrReadOnly = 0x80041023,
+    wbemErrProviderNotCapable = 0x80041024,
+    wbemErrClassHasChildren = 0x80041025,
+    wbemErrClassHasInstances = 0x80041026,
+    wbemErrQueryNotImplemented = 0x80041027,
+    wbemErrIllegalNull = 0x80041028,
+    wbemErrInvalidQualifierType = 0x80041029,
+    wbemErrInvalidPropertyType = 0x8004102a,
+    wbemErrValueOutOfRange = 0x8004102b,
+    wbemErrCannotBeSingleton = 0x8004102c,
+    wbemErrInvalidCimType = 0x8004102d,
+    wbemErrInvalidMethod = 0x8004102e,
+    wbemErrInvalidMethodParameters = 0x8004102f,
+    wbemErrSystemProperty = 0x80041030,
+    wbemErrInvalidProperty = 0x80041031,
+    wbemErrCallCancelled = 0x80041032,
+    wbemErrShuttingDown = 0x80041033,
+    wbemErrPropagatedMethod = 0x80041034,
+    wbemErrUnsupportedParameter = 0x80041035,
+    wbemErrMissingParameter = 0x80041036,
+    wbemErrInvalidParameterId = 0x80041037,
+    wbemErrNonConsecutiveParameterIds = 0x80041038,
+    wbemErrParameterIdOnRetval = 0x80041039,
+    wbemErrInvalidObjectPath = 0x8004103a,
+    wbemErrOutOfDiskSpace = 0x8004103b,
+    wbemErrBufferTooSmall = 0x8004103c,
+    wbemErrUnsupportedPutExtension = 0x8004103d,
+    wbemErrUnknownObjectType = 0x8004103e,
+    wbemErrUnknownPacketType = 0x8004103f,
+    wbemErrMarshalVersionMismatch = 0x80041040,
+    wbemErrMarshalInvalidSignature = 0x80041041,
+    wbemErrInvalidQualifier = 0x80041042,
+    wbemErrInvalidDuplicateParameter = 0x80041043,
+    wbemErrTooMuchData = 0x80041044,
+    wbemErrServerTooBusy = 0x80041045,
+    wbemErrInvalidFlavor = 0x80041046,
+    wbemErrCircularReference = 0x80041047,
+    wbemErrUnsupportedClassUpdate = 0x80041048,
+    wbemErrCannotChangeKeyInheritance = 0x80041049,
+    wbemErrCannotChangeIndexInheritance = 0x80041050,
+    wbemErrTooManyProperties = 0x80041051,
+    wbemErrUpdateTypeMismatch = 0x80041052,
+    wbemErrUpdateOverrideNotAllowed = 0x80041053,
+    wbemErrUpdatePropagatedMethod = 0x80041054,
+    wbemErrMethodNotImplemented = 0x80041055,
+    wbemErrMethodDisabled = 0x80041056,
+    wbemErrRefresherBusy = 0x80041057,
+    wbemErrUnparsableQuery = 0x80041058,
+    wbemErrNotEventClass = 0x80041059,
+    wbemErrMissingGroupWithin = 0x8004105a,
+    wbemErrMissingAggregationList = 0x8004105b,
+    wbemErrPropertyNotAnObject = 0x8004105c,
+    wbemErrAggregatingByObject = 0x8004105d,
+    wbemErrUninterpretableProviderQuery = 0x8004105f,
+    wbemErrBackupRestoreWinmgmtRunning = 0x80041060,
+    wbemErrQueueOverflow = 0x80041061,
+    wbemErrPrivilegeNotHeld = 0x80041062,
+    wbemErrInvalidOperator = 0x80041063,
+    wbemErrLocalCredentials = 0x80041064,
+    wbemErrCannotBeAbstract = 0x80041065,
+    wbemErrAmendedObject = 0x80041066,
+    wbemErrClientTooSlow = 0x80041067,
+    wbemErrNullSecurityDescriptor = 0x80041068,
+    wbemErrTimeout = 0x80041069,
+    wbemErrInvalidAssociation = 0x8004106a,
+    wbemErrAmbiguousOperation = 0x8004106b,
+    wbemErrQuotaViolation = 0x8004106c,
+    wbemErrTransactionConflict = 0x8004106d,
+    wbemErrForcedRollback = 0x8004106e,
+    wbemErrUnsupportedLocale = 0x8004106f,
+    wbemErrHandleOutOfDate = 0x80041070,
+    wbemErrConnectionFailed = 0x80041071,
+    wbemErrInvalidHandleRequest = 0x80041072,
+    wbemErrPropertyNameTooWide = 0x80041073,
+    wbemErrClassNameTooWide = 0x80041074,
+    wbemErrMethodNameTooWide = 0x80041075,
+    wbemErrQualifierNameTooWide = 0x80041076,
+    wbemErrRerunCommand = 0x80041077,
+    wbemErrDatabaseVerMismatch = 0x80041078,
+    wbemErrVetoPut = 0x80041079,
+    wbemErrVetoDelete = 0x8004107a,
+    wbemErrInvalidLocale = 0x80041080,
+    wbemErrProviderSuspended = 0x80041081,
+    wbemErrSynchronizationRequired = 0x80041082,
+    wbemErrNoSchema = 0x80041083,
+    wbemErrProviderAlreadyRegistered = 0x80041084,
+    wbemErrProviderNotRegistered = 0x80041085,
+    wbemErrFatalTransportError = 0x80041086,
+    wbemErrEncryptedConnectionRequired = 0x80041087,
+    wbemErrRegistrationTooBroad = 0x80042001,
+    wbemErrRegistrationTooPrecise = 0x80042002,
+    wbemErrTimedout = 0x80043001,
+    wbemErrResetToDefault = 0x80043002
+} WbemErrorEnum;
+typedef enum WbemAuthenticationLevelEnum {
+    wbemAuthenticationLevelDefault = 0,
+    wbemAuthenticationLevelNone = 1,
+    wbemAuthenticationLevelConnect = 2,
+    wbemAuthenticationLevelCall = 3,
+    wbemAuthenticationLevelPkt = 4,
+    wbemAuthenticationLevelPktIntegrity = 5,
+    wbemAuthenticationLevelPktPrivacy = 6
+} WbemAuthenticationLevelEnum;
+typedef enum WbemImpersonationLevelEnum {
+    wbemImpersonationLevelAnonymous = 1,
+    wbemImpersonationLevelIdentify = 2,
+    wbemImpersonationLevelImpersonate = 3,
+    wbemImpersonationLevelDelegate = 4
+} WbemImpersonationLevelEnum;
+typedef enum WbemPrivilegeEnum {
+    wbemPrivilegeCreateToken = 1,
+    wbemPrivilegePrimaryToken = 2,
+    wbemPrivilegeLockMemory = 3,
+    wbemPrivilegeIncreaseQuota = 4,
+    wbemPrivilegeMachineAccount = 5,
+    wbemPrivilegeTcb = 6,
+    wbemPrivilegeSecurity = 7,
+    wbemPrivilegeTakeOwnership = 8,
+    wbemPrivilegeLoadDriver = 9,
+    wbemPrivilegeSystemProfile = 10,
+    wbemPrivilegeSystemtime = 11,
+    wbemPrivilegeProfileSingleProcess = 12,
+    wbemPrivilegeIncreaseBasePriority = 13,
+    wbemPrivilegeCreatePagefile = 14,
+    wbemPrivilegeCreatePermanent = 15,
+    wbemPrivilegeBackup = 16,
+    wbemPrivilegeRestore = 17,
+    wbemPrivilegeShutdown = 18,
+    wbemPrivilegeDebug = 19,
+    wbemPrivilegeAudit = 20,
+    wbemPrivilegeSystemEnvironment = 21,
+    wbemPrivilegeChangeNotify = 22,
+    wbemPrivilegeRemoteShutdown = 23,
+    wbemPrivilegeUndock = 24,
+    wbemPrivilegeSyncAgent = 25,
+    wbemPrivilegeEnableDelegation = 26,
+    wbemPrivilegeManageVolume = 27
+} WbemPrivilegeEnum;
+typedef enum WbemObjectTextFormatEnum {
+    wbemObjectTextFormatCIMDTD20 = 1,
+    wbemObjectTextFormatWMIDTD20 = 2
+} WbemObjectTextFormatEnum;
+typedef enum WbemConnectOptionsEnum {
     wbemConnectFlagUseMaxWait = 0x80
-  } WbemConnectOptionsEnum;
+} WbemConnectOptionsEnum;
+#define WBEMS_DISPID_OBJECT_READY (1)
 
-  EXTERN_C const IID LIBID_WbemScripting;
+#define WBEMS_DISPID_COMPLETED (2)
+
+#define WBEMS_DISPID_PROGRESS (3)
+
+#define WBEMS_DISPID_OBJECT_PUT (4)
+
+#define WBEMS_DISPID_CONNECTION_READY (5)
+
+#define WBEMS_DISPID_DERIVATION (23)
+
+/*****************************************************************************
+ * SWbemLocator coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemLocator, 0x76a64158, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("76a64158-cb41-11d1-8b02-00600806d9b6") SWbemLocator;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemLocator, 0x76a64158, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemNamedValueSet coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemNamedValueSet, 0x9aed384e, 0xce8b, 0x11d1, 0x8b,0x05, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("9aed384e-ce8b-11d1-8b05-00600806d9b6") SWbemNamedValueSet;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemNamedValueSet, 0x9aed384e, 0xce8b, 0x11d1, 0x8b,0x05, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemObjectPath coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemObjectPath, 0x5791bc26, 0xce9c, 0x11d1, 0x97,0xbf, 0x00,0x00,0xf8,0x1e,0x84,0x9c);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("5791bc26-ce9c-11d1-97bf-0000f81e849c") SWbemObjectPath;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemObjectPath, 0x5791bc26, 0xce9c, 0x11d1, 0x97,0xbf, 0x00,0x00,0xf8,0x1e,0x84,0x9c)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemLastError coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemLastError, 0xc2feeeac, 0xcfcd, 0x11d1, 0x8b,0x05, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("c2feeeac-cfcd-11d1-8b05-00600806d9b6") SWbemLastError;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemLastError, 0xc2feeeac, 0xcfcd, 0x11d1, 0x8b,0x05, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemSink coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemSink, 0x75718c9a, 0xf029, 0x11d1, 0xa1,0xac, 0x00,0xc0,0x4f,0xb6,0xc2,0x23);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("75718c9a-f029-11d1-a1ac-00c04fb6c223") SWbemSink;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemSink, 0x75718c9a, 0xf029, 0x11d1, 0xa1,0xac, 0x00,0xc0,0x4f,0xb6,0xc2,0x23)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemDateTime coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemDateTime, 0x47dfbe54, 0xcf76, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("47dfbe54-cf76-11d3-b38f-00105a1f473a") SWbemDateTime;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemDateTime, 0x47dfbe54, 0xcf76, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemRefresher coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemRefresher, 0xd269bf5c, 0xd9c1, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("d269bf5c-d9c1-11d3-b38f-00105a1f473a") SWbemRefresher;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemRefresher, 0xd269bf5c, 0xd9c1, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemServices coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemServices, 0x04b83d63, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d63-21ae-11d2-8b33-00600806d9b6") SWbemServices;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemServices, 0x04b83d63, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemServicesEx coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemServicesEx, 0x62e522dc, 0x8cf3, 0x40a8, 0x8b,0x2e, 0x37,0xd5,0x95,0x65,0x1e,0x40);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("62e522dc-8cf3-40a8-8b2e-37d595651e40") SWbemServicesEx;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemServicesEx, 0x62e522dc, 0x8cf3, 0x40a8, 0x8b,0x2e, 0x37,0xd5,0x95,0x65,0x1e,0x40)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemObject coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemObject, 0x04b83d62, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d62-21ae-11d2-8b33-00600806d9b6") SWbemObject;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemObject, 0x04b83d62, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemObjectEx coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemObjectEx, 0xd6bdafb2, 0x9435, 0x491f, 0xbb,0x87, 0x6a,0xa0,0xf0,0xbc,0x31,0xa2);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("d6bdafb2-9435-491f-bb87-6aa0f0bc31a2") SWbemObjectEx;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemObjectEx, 0xd6bdafb2, 0x9435, 0x491f, 0xbb,0x87, 0x6a,0xa0,0xf0,0xbc,0x31,0xa2)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemObjectSet coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemObjectSet, 0x04b83d61, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d61-21ae-11d2-8b33-00600806d9b6") SWbemObjectSet;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemObjectSet, 0x04b83d61, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemNamedValue coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemNamedValue, 0x04b83d60, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d60-21ae-11d2-8b33-00600806d9b6") SWbemNamedValue;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemNamedValue, 0x04b83d60, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemQualifier coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemQualifier, 0x04b83d5f, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d5f-21ae-11d2-8b33-00600806d9b6") SWbemQualifier;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemQualifier, 0x04b83d5f, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemQualifierSet coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemQualifierSet, 0x04b83d5e, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d5e-21ae-11d2-8b33-00600806d9b6") SWbemQualifierSet;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemQualifierSet, 0x04b83d5e, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemProperty coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemProperty, 0x04b83d5d, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d5d-21ae-11d2-8b33-00600806d9b6") SWbemProperty;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemProperty, 0x04b83d5d, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemPropertySet coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemPropertySet, 0x04b83d5c, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d5c-21ae-11d2-8b33-00600806d9b6") SWbemPropertySet;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemPropertySet, 0x04b83d5c, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemMethod coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemMethod, 0x04b83d5b, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d5b-21ae-11d2-8b33-00600806d9b6") SWbemMethod;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemMethod, 0x04b83d5b, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemMethodSet coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemMethodSet, 0x04b83d5a, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d5a-21ae-11d2-8b33-00600806d9b6") SWbemMethodSet;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemMethodSet, 0x04b83d5a, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemEventSource coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemEventSource, 0x04b83d58, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("04b83d58-21ae-11d2-8b33-00600806d9b6") SWbemEventSource;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemEventSource, 0x04b83d58, 0x21ae, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemSecurity coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemSecurity, 0xb54d66e9, 0x2287, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("b54d66e9-2287-11d2-8b33-00600806d9b6") SWbemSecurity;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemSecurity, 0xb54d66e9, 0x2287, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemPrivilege coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemPrivilege, 0x26ee67bc, 0x5804, 0x11d2, 0x8b,0x4a, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("26ee67bc-5804-11d2-8b4a-00600806d9b6") SWbemPrivilege;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemPrivilege, 0x26ee67bc, 0x5804, 0x11d2, 0x8b,0x4a, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemPrivilegeSet coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemPrivilegeSet, 0x26ee67be, 0x5804, 0x11d2, 0x8b,0x4a, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("26ee67be-5804-11d2-8b4a-00600806d9b6") SWbemPrivilegeSet;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemPrivilegeSet, 0x26ee67be, 0x5804, 0x11d2, 0x8b,0x4a, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#endif
+
+/*****************************************************************************
+ * SWbemRefreshableItem coclass
+ */
+
+DEFINE_GUID(CLSID_SWbemRefreshableItem, 0x8c6854bc, 0xde4b, 0x11d3, 0xb3,0x90, 0x00,0x10,0x5a,0x1f,0x47,0x3a);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("8c6854bc-de4b-11d3-b390-00105a1f473a") SWbemRefreshableItem;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SWbemRefreshableItem, 0x8c6854bc, 0xde4b, 0x11d3, 0xb3,0x90, 0x00,0x10,0x5a,0x1f,0x47,0x3a)
+#endif
+#endif
+
+/*****************************************************************************
+ * ISWbemLocator interface
+ */
+#ifndef __ISWbemLocator_INTERFACE_DEFINED__
+#define __ISWbemLocator_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemLocator, 0x76a6415b, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("76a6415b-cb41-11d1-8b02-00600806d9b6")
+ISWbemLocator : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE ConnectServer(
+        BSTR strServer = ".",
+        BSTR strNamespace = "",
+        BSTR strUser = "",
+        BSTR strPassword = "",
+        BSTR strLocale = "",
+        BSTR strAuthority = "",
+        LONG iSecurityFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemServices **objWbemServices) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Security_(
+        ISWbemSecurity **objWbemSecurity) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemLocator, 0x76a6415b, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemLocatorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemLocator* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemLocator* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemLocator* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemLocator* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemLocator* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemLocator* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemLocator* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemLocator methods ***/
+    HRESULT (STDMETHODCALLTYPE *ConnectServer)(
+        ISWbemLocator* This,
+        BSTR strServer,
+        BSTR strNamespace,
+        BSTR strUser,
+        BSTR strPassword,
+        BSTR strLocale,
+        BSTR strAuthority,
+        LONG iSecurityFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemServices **objWbemServices);
+
+    HRESULT (STDMETHODCALLTYPE *get_Security_)(
+        ISWbemLocator* This,
+        ISWbemSecurity **objWbemSecurity);
+
+    END_INTERFACE
+} ISWbemLocatorVtbl;
+interface ISWbemLocator {
+    CONST_VTBL ISWbemLocatorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemLocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemLocator_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemLocator_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemLocator_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemLocator_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemLocator_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemLocator_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemLocator methods ***/
+#define ISWbemLocator_ConnectServer(This,strServer,strNamespace,strUser,strPassword,strLocale,strAuthority,iSecurityFlags,objWbemNamedValueSet,objWbemServices) (This)->lpVtbl->ConnectServer(This,strServer,strNamespace,strUser,strPassword,strLocale,strAuthority,iSecurityFlags,objWbemNamedValueSet,objWbemServices)
+#define ISWbemLocator_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemLocator_QueryInterface(ISWbemLocator* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemLocator_AddRef(ISWbemLocator* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemLocator_Release(ISWbemLocator* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemLocator_GetTypeInfoCount(ISWbemLocator* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemLocator_GetTypeInfo(ISWbemLocator* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemLocator_GetIDsOfNames(ISWbemLocator* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemLocator_Invoke(ISWbemLocator* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemLocator methods ***/
+static FORCEINLINE HRESULT ISWbemLocator_ConnectServer(ISWbemLocator* This,BSTR strServer,BSTR strNamespace,BSTR strUser,BSTR strPassword,BSTR strLocale,BSTR strAuthority,LONG iSecurityFlags,IDispatch *objWbemNamedValueSet,ISWbemServices **objWbemServices) {
+    return This->lpVtbl->ConnectServer(This,strServer,strNamespace,strUser,strPassword,strLocale,strAuthority,iSecurityFlags,objWbemNamedValueSet,objWbemServices);
+}
+static FORCEINLINE HRESULT ISWbemLocator_get_Security_(ISWbemLocator* This,ISWbemSecurity **objWbemSecurity) {
+    return This->lpVtbl->get_Security_(This,objWbemSecurity);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemLocator_ConnectServer_Proxy(
+    ISWbemLocator* This,
+    BSTR strServer,
+    BSTR strNamespace,
+    BSTR strUser,
+    BSTR strPassword,
+    BSTR strLocale,
+    BSTR strAuthority,
+    LONG iSecurityFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemServices **objWbemServices);
+void __RPC_STUB ISWbemLocator_ConnectServer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemLocator_get_Security__Proxy(
+    ISWbemLocator* This,
+    ISWbemSecurity **objWbemSecurity);
+void __RPC_STUB ISWbemLocator_get_Security__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemLocator_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemServices interface
+ */
 #ifndef __ISWbemServices_INTERFACE_DEFINED__
 #define __ISWbemServices_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemServices;
+
+DEFINE_GUID(IID_ISWbemServices, 0x76a6415c, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemServices : public IDispatch {
-  public:
-    virtual HRESULT WINAPI Get(BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemObject) = 0;
-    virtual HRESULT WINAPI GetAsync(IDispatch *objWbemSink,BSTR strObjectPath = L"",__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI Delete(BSTR strObjectPath,__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0) = 0;
-    virtual HRESULT WINAPI DeleteAsync(IDispatch *objWbemSink,BSTR strObjectPath,__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI InstancesOf(BSTR strClass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI InstancesOfAsync(IDispatch *objWbemSink,BSTR strClass,__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI SubclassesOf(BSTR strSuperclass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI SubclassesOfAsync(IDispatch *objWbemSink,BSTR strSuperclass = L"",__LONG32 iFlags = wbemQueryFlagDeep,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI ExecQuery(BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI ExecQueryAsync(IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage = L"WQL",__LONG32 lFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI AssociatorsOf(BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI AssociatorsOfAsync(IDispatch *objWbemSink,BSTR strObjectPath,BSTR strAssocClass = L"",BSTR strResultClass = L"",BSTR strResultRole = L"",BSTR strRole = L"",VARIANT_BOOL bClassesOnly = FALSE,VARIANT_BOOL bSchemaOnly = FALSE,BSTR strRequiredAssocQualifier = L"",BSTR strRequiredQualifier = L"",__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI ReferencesTo(BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI ReferencesToAsync(IDispatch *objWbemSink,BSTR strObjectPath,BSTR strResultClass = L"",BSTR strRole = L"",VARIANT_BOOL bClassesOnly = FALSE,VARIANT_BOOL bSchemaOnly = FALSE,BSTR strRequiredQualifier = L"",__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI ExecNotificationQuery(BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemEventSource **objWbemEventSource) = 0;
-    virtual HRESULT WINAPI ExecNotificationQueryAsync(IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage = L"WQL",__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI ExecMethod(BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters) = 0;
-    virtual HRESULT WINAPI ExecMethodAsync(IDispatch *objWbemSink,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters = 0,__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI get_Security_(ISWbemSecurity **objWbemSecurity) = 0;
-  };
+MIDL_INTERFACE("76a6415c-cb41-11d1-8b02-00600806d9b6")
+ISWbemServices : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE Get(
+        BSTR strObjectPath = "",
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObject **objWbemObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAsync(
+        IDispatch *objWbemSink,
+        BSTR strObjectPath = "",
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Delete(
+        BSTR strObjectPath,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteAsync(
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InstancesOf(
+        BSTR strClass,
+        LONG iFlags = wbemFlagReturnImmediately,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InstancesOfAsync(
+        IDispatch *objWbemSink,
+        BSTR strClass,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SubclassesOf(
+        BSTR strSuperclass = "",
+        LONG iFlags = wbemFlagReturnImmediately | wbemQueryFlagDeep,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SubclassesOfAsync(
+        IDispatch *objWbemSink,
+        BSTR strSuperclass = "",
+        LONG iFlags = wbemQueryFlagDeep,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecQuery(
+        BSTR strQuery,
+        BSTR strQueryLanguage = "WQL",
+        LONG iFlags = wbemFlagReturnImmediately,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecQueryAsync(
+        IDispatch *objWbemSink,
+        BSTR strQuery,
+        BSTR strQueryLanguage = "WQL",
+        LONG lFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AssociatorsOf(
+        BSTR strObjectPath,
+        BSTR strAssocClass = "",
+        BSTR strResultClass = "",
+        BSTR strResultRole = "",
+        BSTR strRole = "",
+        VARIANT_BOOL bClassesOnly = FALSE,
+        VARIANT_BOOL bSchemaOnly = FALSE,
+        BSTR strRequiredAssocQualifier = "",
+        BSTR strRequiredQualifier = "",
+        LONG iFlags = wbemFlagReturnImmediately,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AssociatorsOfAsync(
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        BSTR strAssocClass = "",
+        BSTR strResultClass = "",
+        BSTR strResultRole = "",
+        BSTR strRole = "",
+        VARIANT_BOOL bClassesOnly = FALSE,
+        VARIANT_BOOL bSchemaOnly = FALSE,
+        BSTR strRequiredAssocQualifier = "",
+        BSTR strRequiredQualifier = "",
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReferencesTo(
+        BSTR strObjectPath,
+        BSTR strResultClass = "",
+        BSTR strRole = "",
+        VARIANT_BOOL bClassesOnly = FALSE,
+        VARIANT_BOOL bSchemaOnly = FALSE,
+        BSTR strRequiredQualifier = "",
+        LONG iFlags = wbemFlagReturnImmediately,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReferencesToAsync(
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        BSTR strResultClass = "",
+        BSTR strRole = "",
+        VARIANT_BOOL bClassesOnly = FALSE,
+        VARIANT_BOOL bSchemaOnly = FALSE,
+        BSTR strRequiredQualifier = "",
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecNotificationQuery(
+        BSTR strQuery,
+        BSTR strQueryLanguage = "WQL",
+        LONG iFlags = wbemFlagReturnImmediately | wbemFlagForwardOnly,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemEventSource **objWbemEventSource) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecNotificationQueryAsync(
+        IDispatch *objWbemSink,
+        BSTR strQuery,
+        BSTR strQueryLanguage = "WQL",
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecMethod(
+        BSTR strObjectPath,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters = 0,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObject **objWbemOutParameters) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecMethodAsync(
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters = 0,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Security_(
+        ISWbemSecurity **objWbemSecurity) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemServices, 0x76a6415c, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
 #else
-  typedef struct ISWbemServicesVtbl {
+typedef struct ISWbemServicesVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemServices *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemServices *This);
-      ULONG (WINAPI *Release)(ISWbemServices *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemServices *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemServices *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemServices *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemServices *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *Get)(ISWbemServices *This,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *GetAsync)(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Delete)(ISWbemServices *This,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-      HRESULT (WINAPI *DeleteAsync)(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *InstancesOf)(ISWbemServices *This,BSTR strClass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *InstancesOfAsync)(ISWbemServices *This,IDispatch *objWbemSink,BSTR strClass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *SubclassesOf)(ISWbemServices *This,BSTR strSuperclass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *SubclassesOfAsync)(ISWbemServices *This,IDispatch *objWbemSink,BSTR strSuperclass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ExecQuery)(ISWbemServices *This,BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *ExecQueryAsync)(ISWbemServices *This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,__LONG32 lFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *AssociatorsOf)(ISWbemServices *This,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *AssociatorsOfAsync)(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ReferencesTo)(ISWbemServices *This,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *ReferencesToAsync)(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ExecNotificationQuery)(ISWbemServices *This,BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemEventSource **objWbemEventSource);
-      HRESULT (WINAPI *ExecNotificationQueryAsync)(ISWbemServices *This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ExecMethod)(ISWbemServices *This,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters);
-      HRESULT (WINAPI *ExecMethodAsync)(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *get_Security_)(ISWbemServices *This,ISWbemSecurity **objWbemSecurity);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemServices* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemServices* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemServices* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemServices* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemServices* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemServices* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemServices* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemServices methods ***/
+    HRESULT (STDMETHODCALLTYPE *Get)(
+        ISWbemServices* This,
+        BSTR strObjectPath,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *GetAsync)(
+        ISWbemServices* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        ISWbemServices* This,
+        BSTR strObjectPath,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteAsync)(
+        ISWbemServices* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *InstancesOf)(
+        ISWbemServices* This,
+        BSTR strClass,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *InstancesOfAsync)(
+        ISWbemServices* This,
+        IDispatch *objWbemSink,
+        BSTR strClass,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *SubclassesOf)(
+        ISWbemServices* This,
+        BSTR strSuperclass,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *SubclassesOfAsync)(
+        ISWbemServices* This,
+        IDispatch *objWbemSink,
+        BSTR strSuperclass,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ExecQuery)(
+        ISWbemServices* This,
+        BSTR strQuery,
+        BSTR strQueryLanguage,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *ExecQueryAsync)(
+        ISWbemServices* This,
+        IDispatch *objWbemSink,
+        BSTR strQuery,
+        BSTR strQueryLanguage,
+        LONG lFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *AssociatorsOf)(
+        ISWbemServices* This,
+        BSTR strObjectPath,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *AssociatorsOfAsync)(
+        ISWbemServices* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ReferencesTo)(
+        ISWbemServices* This,
+        BSTR strObjectPath,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *ReferencesToAsync)(
+        ISWbemServices* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ExecNotificationQuery)(
+        ISWbemServices* This,
+        BSTR strQuery,
+        BSTR strQueryLanguage,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemEventSource **objWbemEventSource);
+
+    HRESULT (STDMETHODCALLTYPE *ExecNotificationQueryAsync)(
+        ISWbemServices* This,
+        IDispatch *objWbemSink,
+        BSTR strQuery,
+        BSTR strQueryLanguage,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethod)(
+        ISWbemServices* This,
+        BSTR strObjectPath,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObject **objWbemOutParameters);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethodAsync)(
+        ISWbemServices* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *get_Security_)(
+        ISWbemServices* This,
+        ISWbemSecurity **objWbemSecurity);
+
     END_INTERFACE
-  } ISWbemServicesVtbl;
-  struct ISWbemServices {
-    CONST_VTBL struct ISWbemServicesVtbl *lpVtbl;
-  };
+} ISWbemServicesVtbl;
+interface ISWbemServices {
+    CONST_VTBL ISWbemServicesVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define ISWbemServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define ISWbemServices_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define ISWbemServices_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define ISWbemServices_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define ISWbemServices_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define ISWbemServices_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define ISWbemServices_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemServices methods ***/
 #define ISWbemServices_Get(This,strObjectPath,iFlags,objWbemNamedValueSet,objWbemObject) (This)->lpVtbl->Get(This,strObjectPath,iFlags,objWbemNamedValueSet,objWbemObject)
 #define ISWbemServices_GetAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->GetAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
 #define ISWbemServices_Delete(This,strObjectPath,iFlags,objWbemNamedValueSet) (This)->lpVtbl->Delete(This,strObjectPath,iFlags,objWbemNamedValueSet)
@@ -695,174 +1671,1160 @@
 #define ISWbemServices_ExecMethod(This,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters) (This)->lpVtbl->ExecMethod(This,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters)
 #define ISWbemServices_ExecMethodAsync(This,objWbemSink,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecMethodAsync(This,objWbemSink,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
 #define ISWbemServices_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
-#endif
-#endif
-  HRESULT WINAPI ISWbemServices_Get_Proxy(ISWbemServices *This,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemObject);
-  void __RPC_STUB ISWbemServices_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_GetAsync_Proxy(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServices_GetAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_Delete_Proxy(ISWbemServices *This,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-  void __RPC_STUB ISWbemServices_Delete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_DeleteAsync_Proxy(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServices_DeleteAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_InstancesOf_Proxy(ISWbemServices *This,BSTR strClass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemServices_InstancesOf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_InstancesOfAsync_Proxy(ISWbemServices *This,IDispatch *objWbemSink,BSTR strClass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServices_InstancesOfAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_SubclassesOf_Proxy(ISWbemServices *This,BSTR strSuperclass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemServices_SubclassesOf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_SubclassesOfAsync_Proxy(ISWbemServices *This,IDispatch *objWbemSink,BSTR strSuperclass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServices_SubclassesOfAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_ExecQuery_Proxy(ISWbemServices *This,BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemServices_ExecQuery_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_ExecQueryAsync_Proxy(ISWbemServices *This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,__LONG32 lFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServices_ExecQueryAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_AssociatorsOf_Proxy(ISWbemServices *This,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemServices_AssociatorsOf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_AssociatorsOfAsync_Proxy(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServices_AssociatorsOfAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_ReferencesTo_Proxy(ISWbemServices *This,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemServices_ReferencesTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_ReferencesToAsync_Proxy(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServices_ReferencesToAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_ExecNotificationQuery_Proxy(ISWbemServices *This,BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemEventSource **objWbemEventSource);
-  void __RPC_STUB ISWbemServices_ExecNotificationQuery_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_ExecNotificationQueryAsync_Proxy(ISWbemServices *This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServices_ExecNotificationQueryAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_ExecMethod_Proxy(ISWbemServices *This,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters);
-  void __RPC_STUB ISWbemServices_ExecMethod_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_ExecMethodAsync_Proxy(ISWbemServices *This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServices_ExecMethodAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServices_get_Security__Proxy(ISWbemServices *This,ISWbemSecurity **objWbemSecurity);
-  void __RPC_STUB ISWbemServices_get_Security__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemLocator_INTERFACE_DEFINED__
-#define __ISWbemLocator_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemLocator;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemLocator : public IDispatch {
-  public:
-    virtual HRESULT WINAPI ConnectServer(BSTR strServer,BSTR strNamespace,BSTR strUser,BSTR strPassword,BSTR strLocale,BSTR strAuthority,__LONG32 iSecurityFlags,IDispatch *objWbemNamedValueSet,ISWbemServices **objWbemServices) = 0;
-    virtual HRESULT WINAPI get_Security_(ISWbemSecurity **objWbemSecurity) = 0;
-  };
 #else
-  typedef struct ISWbemLocatorVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemLocator *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemLocator *This);
-      ULONG (WINAPI *Release)(ISWbemLocator *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemLocator *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemLocator *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemLocator *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemLocator *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *ConnectServer)(ISWbemLocator *This,BSTR strServer,BSTR strNamespace,BSTR strUser,BSTR strPassword,BSTR strLocale,BSTR strAuthority,__LONG32 iSecurityFlags,IDispatch *objWbemNamedValueSet,ISWbemServices **objWbemServices);
-      HRESULT (WINAPI *get_Security_)(ISWbemLocator *This,ISWbemSecurity **objWbemSecurity);
-    END_INTERFACE
-  } ISWbemLocatorVtbl;
-  struct ISWbemLocator {
-    CONST_VTBL struct ISWbemLocatorVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemLocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemLocator_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemLocator_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemLocator_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemLocator_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemLocator_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemLocator_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemLocator_ConnectServer(This,strServer,strNamespace,strUser,strPassword,strLocale,strAuthority,iSecurityFlags,objWbemNamedValueSet,objWbemServices) (This)->lpVtbl->ConnectServer(This,strServer,strNamespace,strUser,strPassword,strLocale,strAuthority,iSecurityFlags,objWbemNamedValueSet,objWbemServices)
-#define ISWbemLocator_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemServices_QueryInterface(ISWbemServices* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemServices_AddRef(ISWbemServices* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemServices_Release(ISWbemServices* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemServices_GetTypeInfoCount(ISWbemServices* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemServices_GetTypeInfo(ISWbemServices* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemServices_GetIDsOfNames(ISWbemServices* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemServices_Invoke(ISWbemServices* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemServices methods ***/
+static FORCEINLINE HRESULT ISWbemServices_Get(ISWbemServices* This,BSTR strObjectPath,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->Get(This,strObjectPath,iFlags,objWbemNamedValueSet,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemServices_GetAsync(ISWbemServices* This,IDispatch *objWbemSink,BSTR strObjectPath,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->GetAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServices_Delete(ISWbemServices* This,BSTR strObjectPath,LONG iFlags,IDispatch *objWbemNamedValueSet) {
+    return This->lpVtbl->Delete(This,strObjectPath,iFlags,objWbemNamedValueSet);
+}
+static FORCEINLINE HRESULT ISWbemServices_DeleteAsync(ISWbemServices* This,IDispatch *objWbemSink,BSTR strObjectPath,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->DeleteAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServices_InstancesOf(ISWbemServices* This,BSTR strClass,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->InstancesOf(This,strClass,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServices_InstancesOfAsync(ISWbemServices* This,IDispatch *objWbemSink,BSTR strClass,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->InstancesOfAsync(This,objWbemSink,strClass,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServices_SubclassesOf(ISWbemServices* This,BSTR strSuperclass,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->SubclassesOf(This,strSuperclass,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServices_SubclassesOfAsync(ISWbemServices* This,IDispatch *objWbemSink,BSTR strSuperclass,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->SubclassesOfAsync(This,objWbemSink,strSuperclass,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServices_ExecQuery(ISWbemServices* This,BSTR strQuery,BSTR strQueryLanguage,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->ExecQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServices_ExecQueryAsync(ISWbemServices* This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,LONG lFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ExecQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,lFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServices_AssociatorsOf(ISWbemServices* This,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->AssociatorsOf(This,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServices_AssociatorsOfAsync(ISWbemServices* This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->AssociatorsOfAsync(This,objWbemSink,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServices_ReferencesTo(ISWbemServices* This,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->ReferencesTo(This,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServices_ReferencesToAsync(ISWbemServices* This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ReferencesToAsync(This,objWbemSink,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServices_ExecNotificationQuery(ISWbemServices* This,BSTR strQuery,BSTR strQueryLanguage,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemEventSource **objWbemEventSource) {
+    return This->lpVtbl->ExecNotificationQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemEventSource);
+}
+static FORCEINLINE HRESULT ISWbemServices_ExecNotificationQueryAsync(ISWbemServices* This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ExecNotificationQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServices_ExecMethod(ISWbemServices* This,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters) {
+    return This->lpVtbl->ExecMethod(This,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters);
+}
+static FORCEINLINE HRESULT ISWbemServices_ExecMethodAsync(ISWbemServices* This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ExecMethodAsync(This,objWbemSink,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServices_get_Security_(ISWbemServices* This,ISWbemSecurity **objWbemSecurity) {
+    return This->lpVtbl->get_Security_(This,objWbemSecurity);
+}
 #endif
 #endif
-  HRESULT WINAPI ISWbemLocator_ConnectServer_Proxy(ISWbemLocator *This,BSTR strServer,BSTR strNamespace,BSTR strUser,BSTR strPassword,BSTR strLocale,BSTR strAuthority,__LONG32 iSecurityFlags,IDispatch *objWbemNamedValueSet,ISWbemServices **objWbemServices);
-  void __RPC_STUB ISWbemLocator_ConnectServer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemLocator_get_Security__Proxy(ISWbemLocator *This,ISWbemSecurity **objWbemSecurity);
-  void __RPC_STUB ISWbemLocator_get_Security__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemServices_Get_Proxy(
+    ISWbemServices* This,
+    BSTR strObjectPath,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObject **objWbemObject);
+void __RPC_STUB ISWbemServices_Get_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_GetAsync_Proxy(
+    ISWbemServices* This,
+    IDispatch *objWbemSink,
+    BSTR strObjectPath,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServices_GetAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_Delete_Proxy(
+    ISWbemServices* This,
+    BSTR strObjectPath,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet);
+void __RPC_STUB ISWbemServices_Delete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_DeleteAsync_Proxy(
+    ISWbemServices* This,
+    IDispatch *objWbemSink,
+    BSTR strObjectPath,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServices_DeleteAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_InstancesOf_Proxy(
+    ISWbemServices* This,
+    BSTR strClass,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemServices_InstancesOf_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_InstancesOfAsync_Proxy(
+    ISWbemServices* This,
+    IDispatch *objWbemSink,
+    BSTR strClass,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServices_InstancesOfAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_SubclassesOf_Proxy(
+    ISWbemServices* This,
+    BSTR strSuperclass,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemServices_SubclassesOf_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_SubclassesOfAsync_Proxy(
+    ISWbemServices* This,
+    IDispatch *objWbemSink,
+    BSTR strSuperclass,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServices_SubclassesOfAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_ExecQuery_Proxy(
+    ISWbemServices* This,
+    BSTR strQuery,
+    BSTR strQueryLanguage,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemServices_ExecQuery_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_ExecQueryAsync_Proxy(
+    ISWbemServices* This,
+    IDispatch *objWbemSink,
+    BSTR strQuery,
+    BSTR strQueryLanguage,
+    LONG lFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServices_ExecQueryAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_AssociatorsOf_Proxy(
+    ISWbemServices* This,
+    BSTR strObjectPath,
+    BSTR strAssocClass,
+    BSTR strResultClass,
+    BSTR strResultRole,
+    BSTR strRole,
+    VARIANT_BOOL bClassesOnly,
+    VARIANT_BOOL bSchemaOnly,
+    BSTR strRequiredAssocQualifier,
+    BSTR strRequiredQualifier,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemServices_AssociatorsOf_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_AssociatorsOfAsync_Proxy(
+    ISWbemServices* This,
+    IDispatch *objWbemSink,
+    BSTR strObjectPath,
+    BSTR strAssocClass,
+    BSTR strResultClass,
+    BSTR strResultRole,
+    BSTR strRole,
+    VARIANT_BOOL bClassesOnly,
+    VARIANT_BOOL bSchemaOnly,
+    BSTR strRequiredAssocQualifier,
+    BSTR strRequiredQualifier,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServices_AssociatorsOfAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_ReferencesTo_Proxy(
+    ISWbemServices* This,
+    BSTR strObjectPath,
+    BSTR strResultClass,
+    BSTR strRole,
+    VARIANT_BOOL bClassesOnly,
+    VARIANT_BOOL bSchemaOnly,
+    BSTR strRequiredQualifier,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemServices_ReferencesTo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_ReferencesToAsync_Proxy(
+    ISWbemServices* This,
+    IDispatch *objWbemSink,
+    BSTR strObjectPath,
+    BSTR strResultClass,
+    BSTR strRole,
+    VARIANT_BOOL bClassesOnly,
+    VARIANT_BOOL bSchemaOnly,
+    BSTR strRequiredQualifier,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServices_ReferencesToAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_ExecNotificationQuery_Proxy(
+    ISWbemServices* This,
+    BSTR strQuery,
+    BSTR strQueryLanguage,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemEventSource **objWbemEventSource);
+void __RPC_STUB ISWbemServices_ExecNotificationQuery_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_ExecNotificationQueryAsync_Proxy(
+    ISWbemServices* This,
+    IDispatch *objWbemSink,
+    BSTR strQuery,
+    BSTR strQueryLanguage,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServices_ExecNotificationQueryAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_ExecMethod_Proxy(
+    ISWbemServices* This,
+    BSTR strObjectPath,
+    BSTR strMethodName,
+    IDispatch *objWbemInParameters,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObject **objWbemOutParameters);
+void __RPC_STUB ISWbemServices_ExecMethod_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_ExecMethodAsync_Proxy(
+    ISWbemServices* This,
+    IDispatch *objWbemSink,
+    BSTR strObjectPath,
+    BSTR strMethodName,
+    IDispatch *objWbemInParameters,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServices_ExecMethodAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServices_get_Security__Proxy(
+    ISWbemServices* This,
+    ISWbemSecurity **objWbemSecurity);
+void __RPC_STUB ISWbemServices_get_Security__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemServices_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemServicesEx interface
+ */
+#ifndef __ISWbemServicesEx_INTERFACE_DEFINED__
+#define __ISWbemServicesEx_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemServicesEx, 0xd2f68443, 0x85dc, 0x427e, 0x91,0xd8, 0x36,0x65,0x54,0xcc,0x75,0x4c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d2f68443-85dc-427e-91d8-366554cc754c")
+ISWbemServicesEx : public ISWbemServices
+{
+    virtual HRESULT STDMETHODCALLTYPE Put(
+        ISWbemObjectEx *objWbemObject,
+        LONG iFlags = wbemChangeFlagCreateOrUpdate,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectPath **objWbemObjectPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PutAsync(
+        ISWbemSink *objWbemSink,
+        ISWbemObjectEx *objWbemObject,
+        LONG iFlags = wbemChangeFlagCreateOrUpdate,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemServicesEx, 0xd2f68443, 0x85dc, 0x427e, 0x91,0xd8, 0x36,0x65,0x54,0xcc,0x75,0x4c)
+#endif
+#else
+typedef struct ISWbemServicesExVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemServicesEx* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemServicesEx* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemServicesEx* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemServicesEx* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemServicesEx* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemServicesEx* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemServicesEx* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemServices methods ***/
+    HRESULT (STDMETHODCALLTYPE *Get)(
+        ISWbemServicesEx* This,
+        BSTR strObjectPath,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *GetAsync)(
+        ISWbemServicesEx* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        ISWbemServicesEx* This,
+        BSTR strObjectPath,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteAsync)(
+        ISWbemServicesEx* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *InstancesOf)(
+        ISWbemServicesEx* This,
+        BSTR strClass,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *InstancesOfAsync)(
+        ISWbemServicesEx* This,
+        IDispatch *objWbemSink,
+        BSTR strClass,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *SubclassesOf)(
+        ISWbemServicesEx* This,
+        BSTR strSuperclass,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *SubclassesOfAsync)(
+        ISWbemServicesEx* This,
+        IDispatch *objWbemSink,
+        BSTR strSuperclass,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ExecQuery)(
+        ISWbemServicesEx* This,
+        BSTR strQuery,
+        BSTR strQueryLanguage,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *ExecQueryAsync)(
+        ISWbemServicesEx* This,
+        IDispatch *objWbemSink,
+        BSTR strQuery,
+        BSTR strQueryLanguage,
+        LONG lFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *AssociatorsOf)(
+        ISWbemServicesEx* This,
+        BSTR strObjectPath,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *AssociatorsOfAsync)(
+        ISWbemServicesEx* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ReferencesTo)(
+        ISWbemServicesEx* This,
+        BSTR strObjectPath,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *ReferencesToAsync)(
+        ISWbemServicesEx* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ExecNotificationQuery)(
+        ISWbemServicesEx* This,
+        BSTR strQuery,
+        BSTR strQueryLanguage,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemEventSource **objWbemEventSource);
+
+    HRESULT (STDMETHODCALLTYPE *ExecNotificationQueryAsync)(
+        ISWbemServicesEx* This,
+        IDispatch *objWbemSink,
+        BSTR strQuery,
+        BSTR strQueryLanguage,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethod)(
+        ISWbemServicesEx* This,
+        BSTR strObjectPath,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObject **objWbemOutParameters);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethodAsync)(
+        ISWbemServicesEx* This,
+        IDispatch *objWbemSink,
+        BSTR strObjectPath,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *get_Security_)(
+        ISWbemServicesEx* This,
+        ISWbemSecurity **objWbemSecurity);
+
+    /*** ISWbemServicesEx methods ***/
+    HRESULT (STDMETHODCALLTYPE *Put)(
+        ISWbemServicesEx* This,
+        ISWbemObjectEx *objWbemObject,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectPath **objWbemObjectPath);
+
+    HRESULT (STDMETHODCALLTYPE *PutAsync)(
+        ISWbemServicesEx* This,
+        ISWbemSink *objWbemSink,
+        ISWbemObjectEx *objWbemObject,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    END_INTERFACE
+} ISWbemServicesExVtbl;
+interface ISWbemServicesEx {
+    CONST_VTBL ISWbemServicesExVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemServicesEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemServicesEx_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemServicesEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemServicesEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemServicesEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemServicesEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemServicesEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemServices methods ***/
+#define ISWbemServicesEx_Get(This,strObjectPath,iFlags,objWbemNamedValueSet,objWbemObject) (This)->lpVtbl->Get(This,strObjectPath,iFlags,objWbemNamedValueSet,objWbemObject)
+#define ISWbemServicesEx_GetAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->GetAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemServicesEx_Delete(This,strObjectPath,iFlags,objWbemNamedValueSet) (This)->lpVtbl->Delete(This,strObjectPath,iFlags,objWbemNamedValueSet)
+#define ISWbemServicesEx_DeleteAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->DeleteAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemServicesEx_InstancesOf(This,strClass,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->InstancesOf(This,strClass,iFlags,objWbemNamedValueSet,objWbemObjectSet)
+#define ISWbemServicesEx_InstancesOfAsync(This,objWbemSink,strClass,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->InstancesOfAsync(This,objWbemSink,strClass,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemServicesEx_SubclassesOf(This,strSuperclass,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->SubclassesOf(This,strSuperclass,iFlags,objWbemNamedValueSet,objWbemObjectSet)
+#define ISWbemServicesEx_SubclassesOfAsync(This,objWbemSink,strSuperclass,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->SubclassesOfAsync(This,objWbemSink,strSuperclass,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemServicesEx_ExecQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->ExecQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemObjectSet)
+#define ISWbemServicesEx_ExecQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,lFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,lFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemServicesEx_AssociatorsOf(This,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->AssociatorsOf(This,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet)
+#define ISWbemServicesEx_AssociatorsOfAsync(This,objWbemSink,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->AssociatorsOfAsync(This,objWbemSink,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemServicesEx_ReferencesTo(This,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->ReferencesTo(This,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet)
+#define ISWbemServicesEx_ReferencesToAsync(This,objWbemSink,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ReferencesToAsync(This,objWbemSink,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemServicesEx_ExecNotificationQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemEventSource) (This)->lpVtbl->ExecNotificationQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemEventSource)
+#define ISWbemServicesEx_ExecNotificationQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecNotificationQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemServicesEx_ExecMethod(This,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters) (This)->lpVtbl->ExecMethod(This,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters)
+#define ISWbemServicesEx_ExecMethodAsync(This,objWbemSink,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecMethodAsync(This,objWbemSink,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemServicesEx_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
+/*** ISWbemServicesEx methods ***/
+#define ISWbemServicesEx_Put(This,objWbemObject,iFlags,objWbemNamedValueSet,objWbemObjectPath) (This)->lpVtbl->Put(This,objWbemObject,iFlags,objWbemNamedValueSet,objWbemObjectPath)
+#define ISWbemServicesEx_PutAsync(This,objWbemSink,objWbemObject,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->PutAsync(This,objWbemSink,objWbemObject,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemServicesEx_QueryInterface(ISWbemServicesEx* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemServicesEx_AddRef(ISWbemServicesEx* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemServicesEx_Release(ISWbemServicesEx* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemServicesEx_GetTypeInfoCount(ISWbemServicesEx* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_GetTypeInfo(ISWbemServicesEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_GetIDsOfNames(ISWbemServicesEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_Invoke(ISWbemServicesEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemServices methods ***/
+static FORCEINLINE HRESULT ISWbemServicesEx_Get(ISWbemServicesEx* This,BSTR strObjectPath,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->Get(This,strObjectPath,iFlags,objWbemNamedValueSet,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_GetAsync(ISWbemServicesEx* This,IDispatch *objWbemSink,BSTR strObjectPath,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->GetAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_Delete(ISWbemServicesEx* This,BSTR strObjectPath,LONG iFlags,IDispatch *objWbemNamedValueSet) {
+    return This->lpVtbl->Delete(This,strObjectPath,iFlags,objWbemNamedValueSet);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_DeleteAsync(ISWbemServicesEx* This,IDispatch *objWbemSink,BSTR strObjectPath,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->DeleteAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_InstancesOf(ISWbemServicesEx* This,BSTR strClass,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->InstancesOf(This,strClass,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_InstancesOfAsync(ISWbemServicesEx* This,IDispatch *objWbemSink,BSTR strClass,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->InstancesOfAsync(This,objWbemSink,strClass,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_SubclassesOf(ISWbemServicesEx* This,BSTR strSuperclass,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->SubclassesOf(This,strSuperclass,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_SubclassesOfAsync(ISWbemServicesEx* This,IDispatch *objWbemSink,BSTR strSuperclass,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->SubclassesOfAsync(This,objWbemSink,strSuperclass,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_ExecQuery(ISWbemServicesEx* This,BSTR strQuery,BSTR strQueryLanguage,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->ExecQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_ExecQueryAsync(ISWbemServicesEx* This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,LONG lFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ExecQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,lFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_AssociatorsOf(ISWbemServicesEx* This,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->AssociatorsOf(This,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_AssociatorsOfAsync(ISWbemServicesEx* This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->AssociatorsOfAsync(This,objWbemSink,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_ReferencesTo(ISWbemServicesEx* This,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->ReferencesTo(This,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_ReferencesToAsync(ISWbemServicesEx* This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ReferencesToAsync(This,objWbemSink,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_ExecNotificationQuery(ISWbemServicesEx* This,BSTR strQuery,BSTR strQueryLanguage,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemEventSource **objWbemEventSource) {
+    return This->lpVtbl->ExecNotificationQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemEventSource);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_ExecNotificationQueryAsync(ISWbemServicesEx* This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ExecNotificationQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_ExecMethod(ISWbemServicesEx* This,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters) {
+    return This->lpVtbl->ExecMethod(This,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_ExecMethodAsync(ISWbemServicesEx* This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ExecMethodAsync(This,objWbemSink,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_get_Security_(ISWbemServicesEx* This,ISWbemSecurity **objWbemSecurity) {
+    return This->lpVtbl->get_Security_(This,objWbemSecurity);
+}
+/*** ISWbemServicesEx methods ***/
+static FORCEINLINE HRESULT ISWbemServicesEx_Put(ISWbemServicesEx* This,ISWbemObjectEx *objWbemObject,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath) {
+    return This->lpVtbl->Put(This,objWbemObject,iFlags,objWbemNamedValueSet,objWbemObjectPath);
+}
+static FORCEINLINE HRESULT ISWbemServicesEx_PutAsync(ISWbemServicesEx* This,ISWbemSink *objWbemSink,ISWbemObjectEx *objWbemObject,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->PutAsync(This,objWbemSink,objWbemObject,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemServicesEx_Put_Proxy(
+    ISWbemServicesEx* This,
+    ISWbemObjectEx *objWbemObject,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectPath **objWbemObjectPath);
+void __RPC_STUB ISWbemServicesEx_Put_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemServicesEx_PutAsync_Proxy(
+    ISWbemServicesEx* This,
+    ISWbemSink *objWbemSink,
+    ISWbemObjectEx *objWbemObject,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemServicesEx_PutAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemServicesEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemObject interface
+ */
 #ifndef __ISWbemObject_INTERFACE_DEFINED__
 #define __ISWbemObject_INTERFACE_DEFINED__
-#define WBEMS_DISPID_DERIVATION (23)
 
-  EXTERN_C const IID IID_ISWbemObject;
+DEFINE_GUID(IID_ISWbemObject, 0x76a6415a, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemObject : public IDispatch {
-  public:
-    virtual HRESULT WINAPI Put_(__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath) = 0;
-    virtual HRESULT WINAPI PutAsync_(IDispatch *objWbemSink,__LONG32 iFlags = wbemChangeFlagCreateOrUpdate,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI Delete_(__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0) = 0;
-    virtual HRESULT WINAPI DeleteAsync_(IDispatch *objWbemSink,__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI Instances_(__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI InstancesAsync_(IDispatch *objWbemSink,__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI Subclasses_(__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI SubclassesAsync_(IDispatch *objWbemSink,__LONG32 iFlags = wbemQueryFlagDeep,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI Associators_(BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI AssociatorsAsync_(IDispatch *objWbemSink,BSTR strAssocClass = L"",BSTR strResultClass = L"",BSTR strResultRole = L"",BSTR strRole = L"",VARIANT_BOOL bClassesOnly = FALSE,VARIANT_BOOL bSchemaOnly = FALSE,BSTR strRequiredAssocQualifier = L"",BSTR strRequiredQualifier = L"",__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI References_(BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI ReferencesAsync_(IDispatch *objWbemSink,BSTR strResultClass = L"",BSTR strRole = L"",VARIANT_BOOL bClassesOnly = FALSE,VARIANT_BOOL bSchemaOnly = FALSE,BSTR strRequiredQualifier = L"",__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI ExecMethod_(BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters) = 0;
-    virtual HRESULT WINAPI ExecMethodAsync_(IDispatch *objWbemSink,BSTR strMethodName,IDispatch *objWbemInParameters = 0,__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-    virtual HRESULT WINAPI Clone_(ISWbemObject **objWbemObject) = 0;
-    virtual HRESULT WINAPI GetObjectText_(__LONG32 iFlags,BSTR *strObjectText) = 0;
-    virtual HRESULT WINAPI SpawnDerivedClass_(__LONG32 iFlags,ISWbemObject **objWbemObject) = 0;
-    virtual HRESULT WINAPI SpawnInstance_(__LONG32 iFlags,ISWbemObject **objWbemObject) = 0;
-    virtual HRESULT WINAPI CompareTo_(IDispatch *objWbemObject,__LONG32 iFlags,VARIANT_BOOL *bResult) = 0;
-    virtual HRESULT WINAPI get_Qualifiers_(ISWbemQualifierSet **objWbemQualifierSet) = 0;
-    virtual HRESULT WINAPI get_Properties_(ISWbemPropertySet **objWbemPropertySet) = 0;
-    virtual HRESULT WINAPI get_Methods_(ISWbemMethodSet **objWbemMethodSet) = 0;
-    virtual HRESULT WINAPI get_Derivation_(VARIANT *strClassNameArray) = 0;
-    virtual HRESULT WINAPI get_Path_(ISWbemObjectPath **objWbemObjectPath) = 0;
-    virtual HRESULT WINAPI get_Security_(ISWbemSecurity **objWbemSecurity) = 0;
-  };
+MIDL_INTERFACE("76a6415a-cb41-11d1-8b02-00600806d9b6")
+ISWbemObject : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE Put_(
+        LONG iFlags = wbemChangeFlagCreateOrUpdate,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectPath **objWbemObjectPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PutAsync_(
+        IDispatch *objWbemSink,
+        LONG iFlags = wbemChangeFlagCreateOrUpdate,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Delete_(
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteAsync_(
+        IDispatch *objWbemSink,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Instances_(
+        LONG iFlags = wbemFlagReturnImmediately,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InstancesAsync_(
+        IDispatch *objWbemSink,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Subclasses_(
+        LONG iFlags = wbemFlagReturnImmediately | wbemQueryFlagDeep,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SubclassesAsync_(
+        IDispatch *objWbemSink,
+        LONG iFlags = wbemQueryFlagDeep,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Associators_(
+        BSTR strAssocClass = "",
+        BSTR strResultClass = "",
+        BSTR strResultRole = "",
+        BSTR strRole = "",
+        VARIANT_BOOL bClassesOnly = FALSE,
+        VARIANT_BOOL bSchemaOnly = FALSE,
+        BSTR strRequiredAssocQualifier = "",
+        BSTR strRequiredQualifier = "",
+        LONG iFlags = wbemFlagReturnImmediately,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AssociatorsAsync_(
+        IDispatch *objWbemSink,
+        BSTR strAssocClass = "",
+        BSTR strResultClass = "",
+        BSTR strResultRole = "",
+        BSTR strRole = "",
+        VARIANT_BOOL bClassesOnly = FALSE,
+        VARIANT_BOOL bSchemaOnly = FALSE,
+        BSTR strRequiredAssocQualifier = "",
+        BSTR strRequiredQualifier = "",
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE References_(
+        BSTR strResultClass = "",
+        BSTR strRole = "",
+        VARIANT_BOOL bClassesOnly = FALSE,
+        VARIANT_BOOL bSchemaOnly = FALSE,
+        BSTR strRequiredQualifier = "",
+        LONG iFlags = wbemFlagReturnImmediately,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReferencesAsync_(
+        IDispatch *objWbemSink,
+        BSTR strResultClass = "",
+        BSTR strRole = "",
+        VARIANT_BOOL bClassesOnly = FALSE,
+        VARIANT_BOOL bSchemaOnly = FALSE,
+        BSTR strRequiredQualifier = "",
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecMethod_(
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters = 0,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemObject **objWbemOutParameters) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExecMethodAsync_(
+        IDispatch *objWbemSink,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters = 0,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        IDispatch *objWbemAsyncContext = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone_(
+        ISWbemObject **objWbemObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetObjectText_(
+        LONG iFlags = 0,
+        BSTR *strObjectText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SpawnDerivedClass_(
+        LONG iFlags = 0,
+        ISWbemObject **objWbemObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SpawnInstance_(
+        LONG iFlags = 0,
+        ISWbemObject **objWbemObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CompareTo_(
+        IDispatch *objWbemObject,
+        LONG iFlags = wbemComparisonFlagIncludeAll,
+        VARIANT_BOOL *bResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Qualifiers_(
+        ISWbemQualifierSet **objWbemQualifierSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Properties_(
+        ISWbemPropertySet **objWbemPropertySet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Methods_(
+        ISWbemMethodSet **objWbemMethodSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Derivation_(
+        VARIANT *strClassNameArray) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Path_(
+        ISWbemObjectPath **objWbemObjectPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Security_(
+        ISWbemSecurity **objWbemSecurity) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemObject, 0x76a6415a, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
 #else
-  typedef struct ISWbemObjectVtbl {
+typedef struct ISWbemObjectVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemObject *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemObject *This);
-      ULONG (WINAPI *Release)(ISWbemObject *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemObject *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemObject *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemObject *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemObject *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *Put_)(ISWbemObject *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath);
-      HRESULT (WINAPI *PutAsync_)(ISWbemObject *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Delete_)(ISWbemObject *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-      HRESULT (WINAPI *DeleteAsync_)(ISWbemObject *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Instances_)(ISWbemObject *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *InstancesAsync_)(ISWbemObject *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Subclasses_)(ISWbemObject *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *SubclassesAsync_)(ISWbemObject *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Associators_)(ISWbemObject *This,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *AssociatorsAsync_)(ISWbemObject *This,IDispatch *objWbemSink,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *References_)(ISWbemObject *This,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *ReferencesAsync_)(ISWbemObject *This,IDispatch *objWbemSink,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ExecMethod_)(ISWbemObject *This,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters);
-      HRESULT (WINAPI *ExecMethodAsync_)(ISWbemObject *This,IDispatch *objWbemSink,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Clone_)(ISWbemObject *This,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *GetObjectText_)(ISWbemObject *This,__LONG32 iFlags,BSTR *strObjectText);
-      HRESULT (WINAPI *SpawnDerivedClass_)(ISWbemObject *This,__LONG32 iFlags,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *SpawnInstance_)(ISWbemObject *This,__LONG32 iFlags,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *CompareTo_)(ISWbemObject *This,IDispatch *objWbemObject,__LONG32 iFlags,VARIANT_BOOL *bResult);
-      HRESULT (WINAPI *get_Qualifiers_)(ISWbemObject *This,ISWbemQualifierSet **objWbemQualifierSet);
-      HRESULT (WINAPI *get_Properties_)(ISWbemObject *This,ISWbemPropertySet **objWbemPropertySet);
-      HRESULT (WINAPI *get_Methods_)(ISWbemObject *This,ISWbemMethodSet **objWbemMethodSet);
-      HRESULT (WINAPI *get_Derivation_)(ISWbemObject *This,VARIANT *strClassNameArray);
-      HRESULT (WINAPI *get_Path_)(ISWbemObject *This,ISWbemObjectPath **objWbemObjectPath);
-      HRESULT (WINAPI *get_Security_)(ISWbemObject *This,ISWbemSecurity **objWbemSecurity);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemObject* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemObject* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemObject* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemObject* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemObject* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemObject* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemObject* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *Put_)(
+        ISWbemObject* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectPath **objWbemObjectPath);
+
+    HRESULT (STDMETHODCALLTYPE *PutAsync_)(
+        ISWbemObject* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Delete_)(
+        ISWbemObject* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteAsync_)(
+        ISWbemObject* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Instances_)(
+        ISWbemObject* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *InstancesAsync_)(
+        ISWbemObject* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Subclasses_)(
+        ISWbemObject* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *SubclassesAsync_)(
+        ISWbemObject* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Associators_)(
+        ISWbemObject* This,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *AssociatorsAsync_)(
+        ISWbemObject* This,
+        IDispatch *objWbemSink,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *References_)(
+        ISWbemObject* This,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *ReferencesAsync_)(
+        ISWbemObject* This,
+        IDispatch *objWbemSink,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethod_)(
+        ISWbemObject* This,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObject **objWbemOutParameters);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethodAsync_)(
+        ISWbemObject* This,
+        IDispatch *objWbemSink,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Clone_)(
+        ISWbemObject* This,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *GetObjectText_)(
+        ISWbemObject* This,
+        LONG iFlags,
+        BSTR *strObjectText);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnDerivedClass_)(
+        ISWbemObject* This,
+        LONG iFlags,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnInstance_)(
+        ISWbemObject* This,
+        LONG iFlags,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *CompareTo_)(
+        ISWbemObject* This,
+        IDispatch *objWbemObject,
+        LONG iFlags,
+        VARIANT_BOOL *bResult);
+
+    HRESULT (STDMETHODCALLTYPE *get_Qualifiers_)(
+        ISWbemObject* This,
+        ISWbemQualifierSet **objWbemQualifierSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Properties_)(
+        ISWbemObject* This,
+        ISWbemPropertySet **objWbemPropertySet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Methods_)(
+        ISWbemObject* This,
+        ISWbemMethodSet **objWbemMethodSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Derivation_)(
+        ISWbemObject* This,
+        VARIANT *strClassNameArray);
+
+    HRESULT (STDMETHODCALLTYPE *get_Path_)(
+        ISWbemObject* This,
+        ISWbemObjectPath **objWbemObjectPath);
+
+    HRESULT (STDMETHODCALLTYPE *get_Security_)(
+        ISWbemObject* This,
+        ISWbemSecurity **objWbemSecurity);
+
     END_INTERFACE
-  } ISWbemObjectVtbl;
-  struct ISWbemObject {
-    CONST_VTBL struct ISWbemObjectVtbl *lpVtbl;
-  };
+} ISWbemObjectVtbl;
+interface ISWbemObject {
+    CONST_VTBL ISWbemObjectVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define ISWbemObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define ISWbemObject_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define ISWbemObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define ISWbemObject_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define ISWbemObject_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define ISWbemObject_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define ISWbemObject_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemObject methods ***/
 #define ISWbemObject_Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath) (This)->lpVtbl->Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath)
 #define ISWbemObject_PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
 #define ISWbemObject_Delete_(This,iFlags,objWbemNamedValueSet) (This)->lpVtbl->Delete_(This,iFlags,objWbemNamedValueSet)
@@ -888,1301 +2850,675 @@
 #define ISWbemObject_get_Derivation_(This,strClassNameArray) (This)->lpVtbl->get_Derivation_(This,strClassNameArray)
 #define ISWbemObject_get_Path_(This,objWbemObjectPath) (This)->lpVtbl->get_Path_(This,objWbemObjectPath)
 #define ISWbemObject_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
-#endif
-#endif
-  HRESULT WINAPI ISWbemObject_Put__Proxy(ISWbemObject *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath);
-  void __RPC_STUB ISWbemObject_Put__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_PutAsync__Proxy(ISWbemObject *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemObject_PutAsync__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_Delete__Proxy(ISWbemObject *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-  void __RPC_STUB ISWbemObject_Delete__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_DeleteAsync__Proxy(ISWbemObject *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemObject_DeleteAsync__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_Instances__Proxy(ISWbemObject *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemObject_Instances__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_InstancesAsync__Proxy(ISWbemObject *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemObject_InstancesAsync__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_Subclasses__Proxy(ISWbemObject *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemObject_Subclasses__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_SubclassesAsync__Proxy(ISWbemObject *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemObject_SubclassesAsync__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_Associators__Proxy(ISWbemObject *This,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemObject_Associators__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_AssociatorsAsync__Proxy(ISWbemObject *This,IDispatch *objWbemSink,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemObject_AssociatorsAsync__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_References__Proxy(ISWbemObject *This,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemObject_References__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_ReferencesAsync__Proxy(ISWbemObject *This,IDispatch *objWbemSink,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemObject_ReferencesAsync__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_ExecMethod__Proxy(ISWbemObject *This,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters);
-  void __RPC_STUB ISWbemObject_ExecMethod__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_ExecMethodAsync__Proxy(ISWbemObject *This,IDispatch *objWbemSink,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemObject_ExecMethodAsync__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_Clone__Proxy(ISWbemObject *This,ISWbemObject **objWbemObject);
-  void __RPC_STUB ISWbemObject_Clone__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_GetObjectText__Proxy(ISWbemObject *This,__LONG32 iFlags,BSTR *strObjectText);
-  void __RPC_STUB ISWbemObject_GetObjectText__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_SpawnDerivedClass__Proxy(ISWbemObject *This,__LONG32 iFlags,ISWbemObject **objWbemObject);
-  void __RPC_STUB ISWbemObject_SpawnDerivedClass__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_SpawnInstance__Proxy(ISWbemObject *This,__LONG32 iFlags,ISWbemObject **objWbemObject);
-  void __RPC_STUB ISWbemObject_SpawnInstance__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_CompareTo__Proxy(ISWbemObject *This,IDispatch *objWbemObject,__LONG32 iFlags,VARIANT_BOOL *bResult);
-  void __RPC_STUB ISWbemObject_CompareTo__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_get_Qualifiers__Proxy(ISWbemObject *This,ISWbemQualifierSet **objWbemQualifierSet);
-  void __RPC_STUB ISWbemObject_get_Qualifiers__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_get_Properties__Proxy(ISWbemObject *This,ISWbemPropertySet **objWbemPropertySet);
-  void __RPC_STUB ISWbemObject_get_Properties__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_get_Methods__Proxy(ISWbemObject *This,ISWbemMethodSet **objWbemMethodSet);
-  void __RPC_STUB ISWbemObject_get_Methods__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_get_Derivation__Proxy(ISWbemObject *This,VARIANT *strClassNameArray);
-  void __RPC_STUB ISWbemObject_get_Derivation__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_get_Path__Proxy(ISWbemObject *This,ISWbemObjectPath **objWbemObjectPath);
-  void __RPC_STUB ISWbemObject_get_Path__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObject_get_Security__Proxy(ISWbemObject *This,ISWbemSecurity **objWbemSecurity);
-  void __RPC_STUB ISWbemObject_get_Security__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemObjectSet_INTERFACE_DEFINED__
-#define __ISWbemObjectSet_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemObjectSet;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemObjectSet : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get__NewEnum(IUnknown **pUnk) = 0;
-    virtual HRESULT WINAPI Item(BSTR strObjectPath,__LONG32 iFlags,ISWbemObject **objWbemObject) = 0;
-    virtual HRESULT WINAPI get_Count(__LONG32 *iCount) = 0;
-    virtual HRESULT WINAPI get_Security_(ISWbemSecurity **objWbemSecurity) = 0;
-  };
 #else
-  typedef struct ISWbemObjectSetVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemObjectSet *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemObjectSet *This);
-      ULONG (WINAPI *Release)(ISWbemObjectSet *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemObjectSet *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemObjectSet *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemObjectSet *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemObjectSet *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get__NewEnum)(ISWbemObjectSet *This,IUnknown **pUnk);
-      HRESULT (WINAPI *Item)(ISWbemObjectSet *This,BSTR strObjectPath,__LONG32 iFlags,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *get_Count)(ISWbemObjectSet *This,__LONG32 *iCount);
-      HRESULT (WINAPI *get_Security_)(ISWbemObjectSet *This,ISWbemSecurity **objWbemSecurity);
-    END_INTERFACE
-  } ISWbemObjectSetVtbl;
-  struct ISWbemObjectSet {
-    CONST_VTBL struct ISWbemObjectSetVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemObjectSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemObjectSet_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemObjectSet_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemObjectSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemObjectSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemObjectSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemObjectSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemObjectSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
-#define ISWbemObjectSet_Item(This,strObjectPath,iFlags,objWbemObject) (This)->lpVtbl->Item(This,strObjectPath,iFlags,objWbemObject)
-#define ISWbemObjectSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
-#define ISWbemObjectSet_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
-#endif
-#endif
-  HRESULT WINAPI ISWbemObjectSet_get__NewEnum_Proxy(ISWbemObjectSet *This,IUnknown **pUnk);
-  void __RPC_STUB ISWbemObjectSet_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectSet_Item_Proxy(ISWbemObjectSet *This,BSTR strObjectPath,__LONG32 iFlags,ISWbemObject **objWbemObject);
-  void __RPC_STUB ISWbemObjectSet_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectSet_get_Count_Proxy(ISWbemObjectSet *This,__LONG32 *iCount);
-  void __RPC_STUB ISWbemObjectSet_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectSet_get_Security__Proxy(ISWbemObjectSet *This,ISWbemSecurity **objWbemSecurity);
-  void __RPC_STUB ISWbemObjectSet_get_Security__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemNamedValue_INTERFACE_DEFINED__
-#define __ISWbemNamedValue_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemNamedValue;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemNamedValue : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Value(VARIANT *varValue) = 0;
-    virtual HRESULT WINAPI put_Value(VARIANT *varValue) = 0;
-    virtual HRESULT WINAPI get_Name(BSTR *strName) = 0;
-  };
-#else
-  typedef struct ISWbemNamedValueVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemNamedValue *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemNamedValue *This);
-      ULONG (WINAPI *Release)(ISWbemNamedValue *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemNamedValue *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemNamedValue *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemNamedValue *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemNamedValue *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Value)(ISWbemNamedValue *This,VARIANT *varValue);
-      HRESULT (WINAPI *put_Value)(ISWbemNamedValue *This,VARIANT *varValue);
-      HRESULT (WINAPI *get_Name)(ISWbemNamedValue *This,BSTR *strName);
-    END_INTERFACE
-  } ISWbemNamedValueVtbl;
-  struct ISWbemNamedValue {
-    CONST_VTBL struct ISWbemNamedValueVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemNamedValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemNamedValue_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemNamedValue_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemNamedValue_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemNamedValue_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemNamedValue_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemNamedValue_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemNamedValue_get_Value(This,varValue) (This)->lpVtbl->get_Value(This,varValue)
-#define ISWbemNamedValue_put_Value(This,varValue) (This)->lpVtbl->put_Value(This,varValue)
-#define ISWbemNamedValue_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
-#endif
-#endif
-  HRESULT WINAPI ISWbemNamedValue_get_Value_Proxy(ISWbemNamedValue *This,VARIANT *varValue);
-  void __RPC_STUB ISWbemNamedValue_get_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemNamedValue_put_Value_Proxy(ISWbemNamedValue *This,VARIANT *varValue);
-  void __RPC_STUB ISWbemNamedValue_put_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemNamedValue_get_Name_Proxy(ISWbemNamedValue *This,BSTR *strName);
-  void __RPC_STUB ISWbemNamedValue_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemNamedValueSet_INTERFACE_DEFINED__
-#define __ISWbemNamedValueSet_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemNamedValueSet;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemNamedValueSet : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get__NewEnum(IUnknown **pUnk) = 0;
-    virtual HRESULT WINAPI Item(BSTR strName,__LONG32 iFlags,ISWbemNamedValue **objWbemNamedValue) = 0;
-    virtual HRESULT WINAPI get_Count(__LONG32 *iCount) = 0;
-    virtual HRESULT WINAPI Add(BSTR strName,VARIANT *varValue,__LONG32 iFlags,ISWbemNamedValue **objWbemNamedValue) = 0;
-    virtual HRESULT WINAPI Remove(BSTR strName,__LONG32 iFlags = 0) = 0;
-    virtual HRESULT WINAPI Clone(ISWbemNamedValueSet **objWbemNamedValueSet) = 0;
-    virtual HRESULT WINAPI DeleteAll(void) = 0;
-  };
-#else
-  typedef struct ISWbemNamedValueSetVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemNamedValueSet *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemNamedValueSet *This);
-      ULONG (WINAPI *Release)(ISWbemNamedValueSet *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemNamedValueSet *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemNamedValueSet *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemNamedValueSet *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemNamedValueSet *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get__NewEnum)(ISWbemNamedValueSet *This,IUnknown **pUnk);
-      HRESULT (WINAPI *Item)(ISWbemNamedValueSet *This,BSTR strName,__LONG32 iFlags,ISWbemNamedValue **objWbemNamedValue);
-      HRESULT (WINAPI *get_Count)(ISWbemNamedValueSet *This,__LONG32 *iCount);
-      HRESULT (WINAPI *Add)(ISWbemNamedValueSet *This,BSTR strName,VARIANT *varValue,__LONG32 iFlags,ISWbemNamedValue **objWbemNamedValue);
-      HRESULT (WINAPI *Remove)(ISWbemNamedValueSet *This,BSTR strName,__LONG32 iFlags);
-      HRESULT (WINAPI *Clone)(ISWbemNamedValueSet *This,ISWbemNamedValueSet **objWbemNamedValueSet);
-      HRESULT (WINAPI *DeleteAll)(ISWbemNamedValueSet *This);
-    END_INTERFACE
-  } ISWbemNamedValueSetVtbl;
-  struct ISWbemNamedValueSet {
-    CONST_VTBL struct ISWbemNamedValueSetVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemNamedValueSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemNamedValueSet_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemNamedValueSet_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemNamedValueSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemNamedValueSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemNamedValueSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemNamedValueSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemNamedValueSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
-#define ISWbemNamedValueSet_Item(This,strName,iFlags,objWbemNamedValue) (This)->lpVtbl->Item(This,strName,iFlags,objWbemNamedValue)
-#define ISWbemNamedValueSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
-#define ISWbemNamedValueSet_Add(This,strName,varValue,iFlags,objWbemNamedValue) (This)->lpVtbl->Add(This,strName,varValue,iFlags,objWbemNamedValue)
-#define ISWbemNamedValueSet_Remove(This,strName,iFlags) (This)->lpVtbl->Remove(This,strName,iFlags)
-#define ISWbemNamedValueSet_Clone(This,objWbemNamedValueSet) (This)->lpVtbl->Clone(This,objWbemNamedValueSet)
-#define ISWbemNamedValueSet_DeleteAll(This) (This)->lpVtbl->DeleteAll(This)
-#endif
-#endif
-  HRESULT WINAPI ISWbemNamedValueSet_get__NewEnum_Proxy(ISWbemNamedValueSet *This,IUnknown **pUnk);
-  void __RPC_STUB ISWbemNamedValueSet_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemNamedValueSet_Item_Proxy(ISWbemNamedValueSet *This,BSTR strName,__LONG32 iFlags,ISWbemNamedValue **objWbemNamedValue);
-  void __RPC_STUB ISWbemNamedValueSet_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemNamedValueSet_get_Count_Proxy(ISWbemNamedValueSet *This,__LONG32 *iCount);
-  void __RPC_STUB ISWbemNamedValueSet_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemNamedValueSet_Add_Proxy(ISWbemNamedValueSet *This,BSTR strName,VARIANT *varValue,__LONG32 iFlags,ISWbemNamedValue **objWbemNamedValue);
-  void __RPC_STUB ISWbemNamedValueSet_Add_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemNamedValueSet_Remove_Proxy(ISWbemNamedValueSet *This,BSTR strName,__LONG32 iFlags);
-  void __RPC_STUB ISWbemNamedValueSet_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemNamedValueSet_Clone_Proxy(ISWbemNamedValueSet *This,ISWbemNamedValueSet **objWbemNamedValueSet);
-  void __RPC_STUB ISWbemNamedValueSet_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemNamedValueSet_DeleteAll_Proxy(ISWbemNamedValueSet *This);
-  void __RPC_STUB ISWbemNamedValueSet_DeleteAll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemQualifier_INTERFACE_DEFINED__
-#define __ISWbemQualifier_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemQualifier;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemQualifier : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Value(VARIANT *varValue) = 0;
-    virtual HRESULT WINAPI put_Value(VARIANT *varValue) = 0;
-    virtual HRESULT WINAPI get_Name(BSTR *strName) = 0;
-    virtual HRESULT WINAPI get_IsLocal(VARIANT_BOOL *bIsLocal) = 0;
-    virtual HRESULT WINAPI get_PropagatesToSubclass(VARIANT_BOOL *bPropagatesToSubclass) = 0;
-    virtual HRESULT WINAPI put_PropagatesToSubclass(VARIANT_BOOL bPropagatesToSubclass) = 0;
-    virtual HRESULT WINAPI get_PropagatesToInstance(VARIANT_BOOL *bPropagatesToInstance) = 0;
-    virtual HRESULT WINAPI put_PropagatesToInstance(VARIANT_BOOL bPropagatesToInstance) = 0;
-    virtual HRESULT WINAPI get_IsOverridable(VARIANT_BOOL *bIsOverridable) = 0;
-    virtual HRESULT WINAPI put_IsOverridable(VARIANT_BOOL bIsOverridable) = 0;
-    virtual HRESULT WINAPI get_IsAmended(VARIANT_BOOL *bIsAmended) = 0;
-  };
-#else
-  typedef struct ISWbemQualifierVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemQualifier *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemQualifier *This);
-      ULONG (WINAPI *Release)(ISWbemQualifier *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemQualifier *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemQualifier *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemQualifier *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemQualifier *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Value)(ISWbemQualifier *This,VARIANT *varValue);
-      HRESULT (WINAPI *put_Value)(ISWbemQualifier *This,VARIANT *varValue);
-      HRESULT (WINAPI *get_Name)(ISWbemQualifier *This,BSTR *strName);
-      HRESULT (WINAPI *get_IsLocal)(ISWbemQualifier *This,VARIANT_BOOL *bIsLocal);
-      HRESULT (WINAPI *get_PropagatesToSubclass)(ISWbemQualifier *This,VARIANT_BOOL *bPropagatesToSubclass);
-      HRESULT (WINAPI *put_PropagatesToSubclass)(ISWbemQualifier *This,VARIANT_BOOL bPropagatesToSubclass);
-      HRESULT (WINAPI *get_PropagatesToInstance)(ISWbemQualifier *This,VARIANT_BOOL *bPropagatesToInstance);
-      HRESULT (WINAPI *put_PropagatesToInstance)(ISWbemQualifier *This,VARIANT_BOOL bPropagatesToInstance);
-      HRESULT (WINAPI *get_IsOverridable)(ISWbemQualifier *This,VARIANT_BOOL *bIsOverridable);
-      HRESULT (WINAPI *put_IsOverridable)(ISWbemQualifier *This,VARIANT_BOOL bIsOverridable);
-      HRESULT (WINAPI *get_IsAmended)(ISWbemQualifier *This,VARIANT_BOOL *bIsAmended);
-    END_INTERFACE
-  } ISWbemQualifierVtbl;
-  struct ISWbemQualifier {
-    CONST_VTBL struct ISWbemQualifierVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemQualifier_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemQualifier_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemQualifier_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemQualifier_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemQualifier_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemQualifier_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemQualifier_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemQualifier_get_Value(This,varValue) (This)->lpVtbl->get_Value(This,varValue)
-#define ISWbemQualifier_put_Value(This,varValue) (This)->lpVtbl->put_Value(This,varValue)
-#define ISWbemQualifier_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
-#define ISWbemQualifier_get_IsLocal(This,bIsLocal) (This)->lpVtbl->get_IsLocal(This,bIsLocal)
-#define ISWbemQualifier_get_PropagatesToSubclass(This,bPropagatesToSubclass) (This)->lpVtbl->get_PropagatesToSubclass(This,bPropagatesToSubclass)
-#define ISWbemQualifier_put_PropagatesToSubclass(This,bPropagatesToSubclass) (This)->lpVtbl->put_PropagatesToSubclass(This,bPropagatesToSubclass)
-#define ISWbemQualifier_get_PropagatesToInstance(This,bPropagatesToInstance) (This)->lpVtbl->get_PropagatesToInstance(This,bPropagatesToInstance)
-#define ISWbemQualifier_put_PropagatesToInstance(This,bPropagatesToInstance) (This)->lpVtbl->put_PropagatesToInstance(This,bPropagatesToInstance)
-#define ISWbemQualifier_get_IsOverridable(This,bIsOverridable) (This)->lpVtbl->get_IsOverridable(This,bIsOverridable)
-#define ISWbemQualifier_put_IsOverridable(This,bIsOverridable) (This)->lpVtbl->put_IsOverridable(This,bIsOverridable)
-#define ISWbemQualifier_get_IsAmended(This,bIsAmended) (This)->lpVtbl->get_IsAmended(This,bIsAmended)
-#endif
-#endif
-  HRESULT WINAPI ISWbemQualifier_get_Value_Proxy(ISWbemQualifier *This,VARIANT *varValue);
-  void __RPC_STUB ISWbemQualifier_get_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_put_Value_Proxy(ISWbemQualifier *This,VARIANT *varValue);
-  void __RPC_STUB ISWbemQualifier_put_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_get_Name_Proxy(ISWbemQualifier *This,BSTR *strName);
-  void __RPC_STUB ISWbemQualifier_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_get_IsLocal_Proxy(ISWbemQualifier *This,VARIANT_BOOL *bIsLocal);
-  void __RPC_STUB ISWbemQualifier_get_IsLocal_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_get_PropagatesToSubclass_Proxy(ISWbemQualifier *This,VARIANT_BOOL *bPropagatesToSubclass);
-  void __RPC_STUB ISWbemQualifier_get_PropagatesToSubclass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_put_PropagatesToSubclass_Proxy(ISWbemQualifier *This,VARIANT_BOOL bPropagatesToSubclass);
-  void __RPC_STUB ISWbemQualifier_put_PropagatesToSubclass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_get_PropagatesToInstance_Proxy(ISWbemQualifier *This,VARIANT_BOOL *bPropagatesToInstance);
-  void __RPC_STUB ISWbemQualifier_get_PropagatesToInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_put_PropagatesToInstance_Proxy(ISWbemQualifier *This,VARIANT_BOOL bPropagatesToInstance);
-  void __RPC_STUB ISWbemQualifier_put_PropagatesToInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_get_IsOverridable_Proxy(ISWbemQualifier *This,VARIANT_BOOL *bIsOverridable);
-  void __RPC_STUB ISWbemQualifier_get_IsOverridable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_put_IsOverridable_Proxy(ISWbemQualifier *This,VARIANT_BOOL bIsOverridable);
-  void __RPC_STUB ISWbemQualifier_put_IsOverridable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifier_get_IsAmended_Proxy(ISWbemQualifier *This,VARIANT_BOOL *bIsAmended);
-  void __RPC_STUB ISWbemQualifier_get_IsAmended_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemQualifierSet_INTERFACE_DEFINED__
-#define __ISWbemQualifierSet_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemQualifierSet;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemQualifierSet : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get__NewEnum(IUnknown **pUnk) = 0;
-    virtual HRESULT WINAPI Item(BSTR name,__LONG32 iFlags,ISWbemQualifier **objWbemQualifier) = 0;
-    virtual HRESULT WINAPI get_Count(__LONG32 *iCount) = 0;
-    virtual HRESULT WINAPI Add(BSTR strName,VARIANT *varVal,VARIANT_BOOL bPropagatesToSubclass,VARIANT_BOOL bPropagatesToInstance,VARIANT_BOOL bIsOverridable,__LONG32 iFlags,ISWbemQualifier **objWbemQualifier) = 0;
-    virtual HRESULT WINAPI Remove(BSTR strName,__LONG32 iFlags = 0) = 0;
-  };
-#else
-  typedef struct ISWbemQualifierSetVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemQualifierSet *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemQualifierSet *This);
-      ULONG (WINAPI *Release)(ISWbemQualifierSet *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemQualifierSet *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemQualifierSet *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemQualifierSet *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemQualifierSet *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get__NewEnum)(ISWbemQualifierSet *This,IUnknown **pUnk);
-      HRESULT (WINAPI *Item)(ISWbemQualifierSet *This,BSTR name,__LONG32 iFlags,ISWbemQualifier **objWbemQualifier);
-      HRESULT (WINAPI *get_Count)(ISWbemQualifierSet *This,__LONG32 *iCount);
-      HRESULT (WINAPI *Add)(ISWbemQualifierSet *This,BSTR strName,VARIANT *varVal,VARIANT_BOOL bPropagatesToSubclass,VARIANT_BOOL bPropagatesToInstance,VARIANT_BOOL bIsOverridable,__LONG32 iFlags,ISWbemQualifier **objWbemQualifier);
-      HRESULT (WINAPI *Remove)(ISWbemQualifierSet *This,BSTR strName,__LONG32 iFlags);
-    END_INTERFACE
-  } ISWbemQualifierSetVtbl;
-  struct ISWbemQualifierSet {
-    CONST_VTBL struct ISWbemQualifierSetVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemQualifierSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemQualifierSet_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemQualifierSet_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemQualifierSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemQualifierSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemQualifierSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemQualifierSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemQualifierSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
-#define ISWbemQualifierSet_Item(This,name,iFlags,objWbemQualifier) (This)->lpVtbl->Item(This,name,iFlags,objWbemQualifier)
-#define ISWbemQualifierSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
-#define ISWbemQualifierSet_Add(This,strName,varVal,bPropagatesToSubclass,bPropagatesToInstance,bIsOverridable,iFlags,objWbemQualifier) (This)->lpVtbl->Add(This,strName,varVal,bPropagatesToSubclass,bPropagatesToInstance,bIsOverridable,iFlags,objWbemQualifier)
-#define ISWbemQualifierSet_Remove(This,strName,iFlags) (This)->lpVtbl->Remove(This,strName,iFlags)
-#endif
-#endif
-  HRESULT WINAPI ISWbemQualifierSet_get__NewEnum_Proxy(ISWbemQualifierSet *This,IUnknown **pUnk);
-  void __RPC_STUB ISWbemQualifierSet_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifierSet_Item_Proxy(ISWbemQualifierSet *This,BSTR name,__LONG32 iFlags,ISWbemQualifier **objWbemQualifier);
-  void __RPC_STUB ISWbemQualifierSet_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifierSet_get_Count_Proxy(ISWbemQualifierSet *This,__LONG32 *iCount);
-  void __RPC_STUB ISWbemQualifierSet_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifierSet_Add_Proxy(ISWbemQualifierSet *This,BSTR strName,VARIANT *varVal,VARIANT_BOOL bPropagatesToSubclass,VARIANT_BOOL bPropagatesToInstance,VARIANT_BOOL bIsOverridable,__LONG32 iFlags,ISWbemQualifier **objWbemQualifier);
-  void __RPC_STUB ISWbemQualifierSet_Add_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemQualifierSet_Remove_Proxy(ISWbemQualifierSet *This,BSTR strName,__LONG32 iFlags);
-  void __RPC_STUB ISWbemQualifierSet_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemProperty_INTERFACE_DEFINED__
-#define __ISWbemProperty_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemProperty;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemProperty : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Value(VARIANT *varValue) = 0;
-    virtual HRESULT WINAPI put_Value(VARIANT *varValue) = 0;
-    virtual HRESULT WINAPI get_Name(BSTR *strName) = 0;
-    virtual HRESULT WINAPI get_IsLocal(VARIANT_BOOL *bIsLocal) = 0;
-    virtual HRESULT WINAPI get_Origin(BSTR *strOrigin) = 0;
-    virtual HRESULT WINAPI get_CIMType(WbemCimtypeEnum *iCimType) = 0;
-    virtual HRESULT WINAPI get_Qualifiers_(ISWbemQualifierSet **objWbemQualifierSet) = 0;
-    virtual HRESULT WINAPI get_IsArray(VARIANT_BOOL *bIsArray) = 0;
-  };
-#else
-  typedef struct ISWbemPropertyVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemProperty *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemProperty *This);
-      ULONG (WINAPI *Release)(ISWbemProperty *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemProperty *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemProperty *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemProperty *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemProperty *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Value)(ISWbemProperty *This,VARIANT *varValue);
-      HRESULT (WINAPI *put_Value)(ISWbemProperty *This,VARIANT *varValue);
-      HRESULT (WINAPI *get_Name)(ISWbemProperty *This,BSTR *strName);
-      HRESULT (WINAPI *get_IsLocal)(ISWbemProperty *This,VARIANT_BOOL *bIsLocal);
-      HRESULT (WINAPI *get_Origin)(ISWbemProperty *This,BSTR *strOrigin);
-      HRESULT (WINAPI *get_CIMType)(ISWbemProperty *This,WbemCimtypeEnum *iCimType);
-      HRESULT (WINAPI *get_Qualifiers_)(ISWbemProperty *This,ISWbemQualifierSet **objWbemQualifierSet);
-      HRESULT (WINAPI *get_IsArray)(ISWbemProperty *This,VARIANT_BOOL *bIsArray);
-    END_INTERFACE
-  } ISWbemPropertyVtbl;
-  struct ISWbemProperty {
-    CONST_VTBL struct ISWbemPropertyVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemProperty_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemProperty_get_Value(This,varValue) (This)->lpVtbl->get_Value(This,varValue)
-#define ISWbemProperty_put_Value(This,varValue) (This)->lpVtbl->put_Value(This,varValue)
-#define ISWbemProperty_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
-#define ISWbemProperty_get_IsLocal(This,bIsLocal) (This)->lpVtbl->get_IsLocal(This,bIsLocal)
-#define ISWbemProperty_get_Origin(This,strOrigin) (This)->lpVtbl->get_Origin(This,strOrigin)
-#define ISWbemProperty_get_CIMType(This,iCimType) (This)->lpVtbl->get_CIMType(This,iCimType)
-#define ISWbemProperty_get_Qualifiers_(This,objWbemQualifierSet) (This)->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet)
-#define ISWbemProperty_get_IsArray(This,bIsArray) (This)->lpVtbl->get_IsArray(This,bIsArray)
-#endif
-#endif
-  HRESULT WINAPI ISWbemProperty_get_Value_Proxy(ISWbemProperty *This,VARIANT *varValue);
-  void __RPC_STUB ISWbemProperty_get_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemProperty_put_Value_Proxy(ISWbemProperty *This,VARIANT *varValue);
-  void __RPC_STUB ISWbemProperty_put_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemProperty_get_Name_Proxy(ISWbemProperty *This,BSTR *strName);
-  void __RPC_STUB ISWbemProperty_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemProperty_get_IsLocal_Proxy(ISWbemProperty *This,VARIANT_BOOL *bIsLocal);
-  void __RPC_STUB ISWbemProperty_get_IsLocal_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemProperty_get_Origin_Proxy(ISWbemProperty *This,BSTR *strOrigin);
-  void __RPC_STUB ISWbemProperty_get_Origin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemProperty_get_CIMType_Proxy(ISWbemProperty *This,WbemCimtypeEnum *iCimType);
-  void __RPC_STUB ISWbemProperty_get_CIMType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemProperty_get_Qualifiers__Proxy(ISWbemProperty *This,ISWbemQualifierSet **objWbemQualifierSet);
-  void __RPC_STUB ISWbemProperty_get_Qualifiers__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemProperty_get_IsArray_Proxy(ISWbemProperty *This,VARIANT_BOOL *bIsArray);
-  void __RPC_STUB ISWbemProperty_get_IsArray_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemPropertySet_INTERFACE_DEFINED__
-#define __ISWbemPropertySet_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemPropertySet;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemPropertySet : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get__NewEnum(IUnknown **pUnk) = 0;
-    virtual HRESULT WINAPI Item(BSTR strName,__LONG32 iFlags,ISWbemProperty **objWbemProperty) = 0;
-    virtual HRESULT WINAPI get_Count(__LONG32 *iCount) = 0;
-    virtual HRESULT WINAPI Add(BSTR strName,WbemCimtypeEnum iCIMType,VARIANT_BOOL bIsArray,__LONG32 iFlags,ISWbemProperty **objWbemProperty) = 0;
-    virtual HRESULT WINAPI Remove(BSTR strName,__LONG32 iFlags = 0) = 0;
-  };
-#else
-  typedef struct ISWbemPropertySetVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemPropertySet *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemPropertySet *This);
-      ULONG (WINAPI *Release)(ISWbemPropertySet *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemPropertySet *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemPropertySet *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemPropertySet *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemPropertySet *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get__NewEnum)(ISWbemPropertySet *This,IUnknown **pUnk);
-      HRESULT (WINAPI *Item)(ISWbemPropertySet *This,BSTR strName,__LONG32 iFlags,ISWbemProperty **objWbemProperty);
-      HRESULT (WINAPI *get_Count)(ISWbemPropertySet *This,__LONG32 *iCount);
-      HRESULT (WINAPI *Add)(ISWbemPropertySet *This,BSTR strName,WbemCimtypeEnum iCIMType,VARIANT_BOOL bIsArray,__LONG32 iFlags,ISWbemProperty **objWbemProperty);
-      HRESULT (WINAPI *Remove)(ISWbemPropertySet *This,BSTR strName,__LONG32 iFlags);
-    END_INTERFACE
-  } ISWbemPropertySetVtbl;
-  struct ISWbemPropertySet {
-    CONST_VTBL struct ISWbemPropertySetVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemPropertySet_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemPropertySet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemPropertySet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemPropertySet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemPropertySet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemPropertySet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
-#define ISWbemPropertySet_Item(This,strName,iFlags,objWbemProperty) (This)->lpVtbl->Item(This,strName,iFlags,objWbemProperty)
-#define ISWbemPropertySet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
-#define ISWbemPropertySet_Add(This,strName,iCIMType,bIsArray,iFlags,objWbemProperty) (This)->lpVtbl->Add(This,strName,iCIMType,bIsArray,iFlags,objWbemProperty)
-#define ISWbemPropertySet_Remove(This,strName,iFlags) (This)->lpVtbl->Remove(This,strName,iFlags)
-#endif
-#endif
-  HRESULT WINAPI ISWbemPropertySet_get__NewEnum_Proxy(ISWbemPropertySet *This,IUnknown **pUnk);
-  void __RPC_STUB ISWbemPropertySet_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPropertySet_Item_Proxy(ISWbemPropertySet *This,BSTR strName,__LONG32 iFlags,ISWbemProperty **objWbemProperty);
-  void __RPC_STUB ISWbemPropertySet_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPropertySet_get_Count_Proxy(ISWbemPropertySet *This,__LONG32 *iCount);
-  void __RPC_STUB ISWbemPropertySet_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPropertySet_Add_Proxy(ISWbemPropertySet *This,BSTR strName,WbemCimtypeEnum iCIMType,VARIANT_BOOL bIsArray,__LONG32 iFlags,ISWbemProperty **objWbemProperty);
-  void __RPC_STUB ISWbemPropertySet_Add_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPropertySet_Remove_Proxy(ISWbemPropertySet *This,BSTR strName,__LONG32 iFlags);
-  void __RPC_STUB ISWbemPropertySet_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemMethod_INTERFACE_DEFINED__
-#define __ISWbemMethod_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemMethod;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemMethod : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Name(BSTR *strName) = 0;
-    virtual HRESULT WINAPI get_Origin(BSTR *strOrigin) = 0;
-    virtual HRESULT WINAPI get_InParameters(ISWbemObject **objWbemInParameters) = 0;
-    virtual HRESULT WINAPI get_OutParameters(ISWbemObject **objWbemOutParameters) = 0;
-    virtual HRESULT WINAPI get_Qualifiers_(ISWbemQualifierSet **objWbemQualifierSet) = 0;
-  };
-#else
-  typedef struct ISWbemMethodVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemMethod *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemMethod *This);
-      ULONG (WINAPI *Release)(ISWbemMethod *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemMethod *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemMethod *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemMethod *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemMethod *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Name)(ISWbemMethod *This,BSTR *strName);
-      HRESULT (WINAPI *get_Origin)(ISWbemMethod *This,BSTR *strOrigin);
-      HRESULT (WINAPI *get_InParameters)(ISWbemMethod *This,ISWbemObject **objWbemInParameters);
-      HRESULT (WINAPI *get_OutParameters)(ISWbemMethod *This,ISWbemObject **objWbemOutParameters);
-      HRESULT (WINAPI *get_Qualifiers_)(ISWbemMethod *This,ISWbemQualifierSet **objWbemQualifierSet);
-    END_INTERFACE
-  } ISWbemMethodVtbl;
-  struct ISWbemMethod {
-    CONST_VTBL struct ISWbemMethodVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemMethod_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemMethod_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemMethod_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemMethod_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemMethod_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemMethod_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemMethod_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemMethod_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
-#define ISWbemMethod_get_Origin(This,strOrigin) (This)->lpVtbl->get_Origin(This,strOrigin)
-#define ISWbemMethod_get_InParameters(This,objWbemInParameters) (This)->lpVtbl->get_InParameters(This,objWbemInParameters)
-#define ISWbemMethod_get_OutParameters(This,objWbemOutParameters) (This)->lpVtbl->get_OutParameters(This,objWbemOutParameters)
-#define ISWbemMethod_get_Qualifiers_(This,objWbemQualifierSet) (This)->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet)
-#endif
-#endif
-  HRESULT WINAPI ISWbemMethod_get_Name_Proxy(ISWbemMethod *This,BSTR *strName);
-  void __RPC_STUB ISWbemMethod_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemMethod_get_Origin_Proxy(ISWbemMethod *This,BSTR *strOrigin);
-  void __RPC_STUB ISWbemMethod_get_Origin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemMethod_get_InParameters_Proxy(ISWbemMethod *This,ISWbemObject **objWbemInParameters);
-  void __RPC_STUB ISWbemMethod_get_InParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemMethod_get_OutParameters_Proxy(ISWbemMethod *This,ISWbemObject **objWbemOutParameters);
-  void __RPC_STUB ISWbemMethod_get_OutParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemMethod_get_Qualifiers__Proxy(ISWbemMethod *This,ISWbemQualifierSet **objWbemQualifierSet);
-  void __RPC_STUB ISWbemMethod_get_Qualifiers__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemMethodSet_INTERFACE_DEFINED__
-#define __ISWbemMethodSet_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemMethodSet;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemMethodSet : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get__NewEnum(IUnknown **pUnk) = 0;
-    virtual HRESULT WINAPI Item(BSTR strName,__LONG32 iFlags,ISWbemMethod **objWbemMethod) = 0;
-    virtual HRESULT WINAPI get_Count(__LONG32 *iCount) = 0;
-  };
-#else
-  typedef struct ISWbemMethodSetVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemMethodSet *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemMethodSet *This);
-      ULONG (WINAPI *Release)(ISWbemMethodSet *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemMethodSet *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemMethodSet *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemMethodSet *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemMethodSet *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get__NewEnum)(ISWbemMethodSet *This,IUnknown **pUnk);
-      HRESULT (WINAPI *Item)(ISWbemMethodSet *This,BSTR strName,__LONG32 iFlags,ISWbemMethod **objWbemMethod);
-      HRESULT (WINAPI *get_Count)(ISWbemMethodSet *This,__LONG32 *iCount);
-    END_INTERFACE
-  } ISWbemMethodSetVtbl;
-  struct ISWbemMethodSet {
-    CONST_VTBL struct ISWbemMethodSetVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemMethodSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemMethodSet_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemMethodSet_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemMethodSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemMethodSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemMethodSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemMethodSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemMethodSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
-#define ISWbemMethodSet_Item(This,strName,iFlags,objWbemMethod) (This)->lpVtbl->Item(This,strName,iFlags,objWbemMethod)
-#define ISWbemMethodSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
-#endif
-#endif
-  HRESULT WINAPI ISWbemMethodSet_get__NewEnum_Proxy(ISWbemMethodSet *This,IUnknown **pUnk);
-  void __RPC_STUB ISWbemMethodSet_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemMethodSet_Item_Proxy(ISWbemMethodSet *This,BSTR strName,__LONG32 iFlags,ISWbemMethod **objWbemMethod);
-  void __RPC_STUB ISWbemMethodSet_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemMethodSet_get_Count_Proxy(ISWbemMethodSet *This,__LONG32 *iCount);
-  void __RPC_STUB ISWbemMethodSet_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemEventSource_INTERFACE_DEFINED__
-#define __ISWbemEventSource_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemEventSource;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemEventSource : public IDispatch {
-  public:
-    virtual HRESULT WINAPI NextEvent(__LONG32 iTimeoutMs,ISWbemObject **objWbemObject) = 0;
-    virtual HRESULT WINAPI get_Security_(ISWbemSecurity **objWbemSecurity) = 0;
-  };
-#else
-  typedef struct ISWbemEventSourceVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemEventSource *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemEventSource *This);
-      ULONG (WINAPI *Release)(ISWbemEventSource *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemEventSource *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemEventSource *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemEventSource *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemEventSource *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *NextEvent)(ISWbemEventSource *This,__LONG32 iTimeoutMs,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *get_Security_)(ISWbemEventSource *This,ISWbemSecurity **objWbemSecurity);
-    END_INTERFACE
-  } ISWbemEventSourceVtbl;
-  struct ISWbemEventSource {
-    CONST_VTBL struct ISWbemEventSourceVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemEventSource_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemEventSource_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemEventSource_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemEventSource_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemEventSource_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemEventSource_NextEvent(This,iTimeoutMs,objWbemObject) (This)->lpVtbl->NextEvent(This,iTimeoutMs,objWbemObject)
-#define ISWbemEventSource_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
-#endif
-#endif
-  HRESULT WINAPI ISWbemEventSource_NextEvent_Proxy(ISWbemEventSource *This,__LONG32 iTimeoutMs,ISWbemObject **objWbemObject);
-  void __RPC_STUB ISWbemEventSource_NextEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemEventSource_get_Security__Proxy(ISWbemEventSource *This,ISWbemSecurity **objWbemSecurity);
-  void __RPC_STUB ISWbemEventSource_get_Security__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemObjectPath_INTERFACE_DEFINED__
-#define __ISWbemObjectPath_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemObjectPath;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemObjectPath : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Path(BSTR *strPath) = 0;
-    virtual HRESULT WINAPI put_Path(BSTR strPath) = 0;
-    virtual HRESULT WINAPI get_RelPath(BSTR *strRelPath) = 0;
-    virtual HRESULT WINAPI put_RelPath(BSTR strRelPath) = 0;
-    virtual HRESULT WINAPI get_Server(BSTR *strServer) = 0;
-    virtual HRESULT WINAPI put_Server(BSTR strServer) = 0;
-    virtual HRESULT WINAPI get_Namespace(BSTR *strNamespace) = 0;
-    virtual HRESULT WINAPI put_Namespace(BSTR strNamespace) = 0;
-    virtual HRESULT WINAPI get_ParentNamespace(BSTR *strParentNamespace) = 0;
-    virtual HRESULT WINAPI get_DisplayName(BSTR *strDisplayName) = 0;
-    virtual HRESULT WINAPI put_DisplayName(BSTR strDisplayName) = 0;
-    virtual HRESULT WINAPI get_Class(BSTR *strClass) = 0;
-    virtual HRESULT WINAPI put_Class(BSTR strClass) = 0;
-    virtual HRESULT WINAPI get_IsClass(VARIANT_BOOL *bIsClass) = 0;
-    virtual HRESULT WINAPI SetAsClass(void) = 0;
-    virtual HRESULT WINAPI get_IsSingleton(VARIANT_BOOL *bIsSingleton) = 0;
-    virtual HRESULT WINAPI SetAsSingleton(void) = 0;
-    virtual HRESULT WINAPI get_Keys(ISWbemNamedValueSet **objWbemNamedValueSet) = 0;
-    virtual HRESULT WINAPI get_Security_(ISWbemSecurity **objWbemSecurity) = 0;
-    virtual HRESULT WINAPI get_Locale(BSTR *strLocale) = 0;
-    virtual HRESULT WINAPI put_Locale(BSTR strLocale) = 0;
-    virtual HRESULT WINAPI get_Authority(BSTR *strAuthority) = 0;
-    virtual HRESULT WINAPI put_Authority(BSTR strAuthority) = 0;
-  };
-#else
-  typedef struct ISWbemObjectPathVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemObjectPath *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemObjectPath *This);
-      ULONG (WINAPI *Release)(ISWbemObjectPath *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemObjectPath *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemObjectPath *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemObjectPath *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemObjectPath *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Path)(ISWbemObjectPath *This,BSTR *strPath);
-      HRESULT (WINAPI *put_Path)(ISWbemObjectPath *This,BSTR strPath);
-      HRESULT (WINAPI *get_RelPath)(ISWbemObjectPath *This,BSTR *strRelPath);
-      HRESULT (WINAPI *put_RelPath)(ISWbemObjectPath *This,BSTR strRelPath);
-      HRESULT (WINAPI *get_Server)(ISWbemObjectPath *This,BSTR *strServer);
-      HRESULT (WINAPI *put_Server)(ISWbemObjectPath *This,BSTR strServer);
-      HRESULT (WINAPI *get_Namespace)(ISWbemObjectPath *This,BSTR *strNamespace);
-      HRESULT (WINAPI *put_Namespace)(ISWbemObjectPath *This,BSTR strNamespace);
-      HRESULT (WINAPI *get_ParentNamespace)(ISWbemObjectPath *This,BSTR *strParentNamespace);
-      HRESULT (WINAPI *get_DisplayName)(ISWbemObjectPath *This,BSTR *strDisplayName);
-      HRESULT (WINAPI *put_DisplayName)(ISWbemObjectPath *This,BSTR strDisplayName);
-      HRESULT (WINAPI *get_Class)(ISWbemObjectPath *This,BSTR *strClass);
-      HRESULT (WINAPI *put_Class)(ISWbemObjectPath *This,BSTR strClass);
-      HRESULT (WINAPI *get_IsClass)(ISWbemObjectPath *This,VARIANT_BOOL *bIsClass);
-      HRESULT (WINAPI *SetAsClass)(ISWbemObjectPath *This);
-      HRESULT (WINAPI *get_IsSingleton)(ISWbemObjectPath *This,VARIANT_BOOL *bIsSingleton);
-      HRESULT (WINAPI *SetAsSingleton)(ISWbemObjectPath *This);
-      HRESULT (WINAPI *get_Keys)(ISWbemObjectPath *This,ISWbemNamedValueSet **objWbemNamedValueSet);
-      HRESULT (WINAPI *get_Security_)(ISWbemObjectPath *This,ISWbemSecurity **objWbemSecurity);
-      HRESULT (WINAPI *get_Locale)(ISWbemObjectPath *This,BSTR *strLocale);
-      HRESULT (WINAPI *put_Locale)(ISWbemObjectPath *This,BSTR strLocale);
-      HRESULT (WINAPI *get_Authority)(ISWbemObjectPath *This,BSTR *strAuthority);
-      HRESULT (WINAPI *put_Authority)(ISWbemObjectPath *This,BSTR strAuthority);
-    END_INTERFACE
-  } ISWbemObjectPathVtbl;
-  struct ISWbemObjectPath {
-    CONST_VTBL struct ISWbemObjectPathVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemObjectPath_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemObjectPath_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemObjectPath_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemObjectPath_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemObjectPath_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemObjectPath_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemObjectPath_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemObjectPath_get_Path(This,strPath) (This)->lpVtbl->get_Path(This,strPath)
-#define ISWbemObjectPath_put_Path(This,strPath) (This)->lpVtbl->put_Path(This,strPath)
-#define ISWbemObjectPath_get_RelPath(This,strRelPath) (This)->lpVtbl->get_RelPath(This,strRelPath)
-#define ISWbemObjectPath_put_RelPath(This,strRelPath) (This)->lpVtbl->put_RelPath(This,strRelPath)
-#define ISWbemObjectPath_get_Server(This,strServer) (This)->lpVtbl->get_Server(This,strServer)
-#define ISWbemObjectPath_put_Server(This,strServer) (This)->lpVtbl->put_Server(This,strServer)
-#define ISWbemObjectPath_get_Namespace(This,strNamespace) (This)->lpVtbl->get_Namespace(This,strNamespace)
-#define ISWbemObjectPath_put_Namespace(This,strNamespace) (This)->lpVtbl->put_Namespace(This,strNamespace)
-#define ISWbemObjectPath_get_ParentNamespace(This,strParentNamespace) (This)->lpVtbl->get_ParentNamespace(This,strParentNamespace)
-#define ISWbemObjectPath_get_DisplayName(This,strDisplayName) (This)->lpVtbl->get_DisplayName(This,strDisplayName)
-#define ISWbemObjectPath_put_DisplayName(This,strDisplayName) (This)->lpVtbl->put_DisplayName(This,strDisplayName)
-#define ISWbemObjectPath_get_Class(This,strClass) (This)->lpVtbl->get_Class(This,strClass)
-#define ISWbemObjectPath_put_Class(This,strClass) (This)->lpVtbl->put_Class(This,strClass)
-#define ISWbemObjectPath_get_IsClass(This,bIsClass) (This)->lpVtbl->get_IsClass(This,bIsClass)
-#define ISWbemObjectPath_SetAsClass(This) (This)->lpVtbl->SetAsClass(This)
-#define ISWbemObjectPath_get_IsSingleton(This,bIsSingleton) (This)->lpVtbl->get_IsSingleton(This,bIsSingleton)
-#define ISWbemObjectPath_SetAsSingleton(This) (This)->lpVtbl->SetAsSingleton(This)
-#define ISWbemObjectPath_get_Keys(This,objWbemNamedValueSet) (This)->lpVtbl->get_Keys(This,objWbemNamedValueSet)
-#define ISWbemObjectPath_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
-#define ISWbemObjectPath_get_Locale(This,strLocale) (This)->lpVtbl->get_Locale(This,strLocale)
-#define ISWbemObjectPath_put_Locale(This,strLocale) (This)->lpVtbl->put_Locale(This,strLocale)
-#define ISWbemObjectPath_get_Authority(This,strAuthority) (This)->lpVtbl->get_Authority(This,strAuthority)
-#define ISWbemObjectPath_put_Authority(This,strAuthority) (This)->lpVtbl->put_Authority(This,strAuthority)
-#endif
-#endif
-  HRESULT WINAPI ISWbemObjectPath_get_Path_Proxy(ISWbemObjectPath *This,BSTR *strPath);
-  void __RPC_STUB ISWbemObjectPath_get_Path_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_put_Path_Proxy(ISWbemObjectPath *This,BSTR strPath);
-  void __RPC_STUB ISWbemObjectPath_put_Path_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_RelPath_Proxy(ISWbemObjectPath *This,BSTR *strRelPath);
-  void __RPC_STUB ISWbemObjectPath_get_RelPath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_put_RelPath_Proxy(ISWbemObjectPath *This,BSTR strRelPath);
-  void __RPC_STUB ISWbemObjectPath_put_RelPath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_Server_Proxy(ISWbemObjectPath *This,BSTR *strServer);
-  void __RPC_STUB ISWbemObjectPath_get_Server_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_put_Server_Proxy(ISWbemObjectPath *This,BSTR strServer);
-  void __RPC_STUB ISWbemObjectPath_put_Server_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_Namespace_Proxy(ISWbemObjectPath *This,BSTR *strNamespace);
-  void __RPC_STUB ISWbemObjectPath_get_Namespace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_put_Namespace_Proxy(ISWbemObjectPath *This,BSTR strNamespace);
-  void __RPC_STUB ISWbemObjectPath_put_Namespace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_ParentNamespace_Proxy(ISWbemObjectPath *This,BSTR *strParentNamespace);
-  void __RPC_STUB ISWbemObjectPath_get_ParentNamespace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_DisplayName_Proxy(ISWbemObjectPath *This,BSTR *strDisplayName);
-  void __RPC_STUB ISWbemObjectPath_get_DisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_put_DisplayName_Proxy(ISWbemObjectPath *This,BSTR strDisplayName);
-  void __RPC_STUB ISWbemObjectPath_put_DisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_Class_Proxy(ISWbemObjectPath *This,BSTR *strClass);
-  void __RPC_STUB ISWbemObjectPath_get_Class_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_put_Class_Proxy(ISWbemObjectPath *This,BSTR strClass);
-  void __RPC_STUB ISWbemObjectPath_put_Class_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_IsClass_Proxy(ISWbemObjectPath *This,VARIANT_BOOL *bIsClass);
-  void __RPC_STUB ISWbemObjectPath_get_IsClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_SetAsClass_Proxy(ISWbemObjectPath *This);
-  void __RPC_STUB ISWbemObjectPath_SetAsClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_IsSingleton_Proxy(ISWbemObjectPath *This,VARIANT_BOOL *bIsSingleton);
-  void __RPC_STUB ISWbemObjectPath_get_IsSingleton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_SetAsSingleton_Proxy(ISWbemObjectPath *This);
-  void __RPC_STUB ISWbemObjectPath_SetAsSingleton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_Keys_Proxy(ISWbemObjectPath *This,ISWbemNamedValueSet **objWbemNamedValueSet);
-  void __RPC_STUB ISWbemObjectPath_get_Keys_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_Security__Proxy(ISWbemObjectPath *This,ISWbemSecurity **objWbemSecurity);
-  void __RPC_STUB ISWbemObjectPath_get_Security__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_Locale_Proxy(ISWbemObjectPath *This,BSTR *strLocale);
-  void __RPC_STUB ISWbemObjectPath_get_Locale_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_put_Locale_Proxy(ISWbemObjectPath *This,BSTR strLocale);
-  void __RPC_STUB ISWbemObjectPath_put_Locale_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_get_Authority_Proxy(ISWbemObjectPath *This,BSTR *strAuthority);
-  void __RPC_STUB ISWbemObjectPath_get_Authority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectPath_put_Authority_Proxy(ISWbemObjectPath *This,BSTR strAuthority);
-  void __RPC_STUB ISWbemObjectPath_put_Authority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemLastError_INTERFACE_DEFINED__
-#define __ISWbemLastError_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemLastError;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemLastError : public ISWbemObject {
-  };
-#else
-  typedef struct ISWbemLastErrorVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemLastError *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemLastError *This);
-      ULONG (WINAPI *Release)(ISWbemLastError *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemLastError *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemLastError *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemLastError *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemLastError *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *Put_)(ISWbemLastError *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath);
-      HRESULT (WINAPI *PutAsync_)(ISWbemLastError *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Delete_)(ISWbemLastError *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-      HRESULT (WINAPI *DeleteAsync_)(ISWbemLastError *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Instances_)(ISWbemLastError *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *InstancesAsync_)(ISWbemLastError *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Subclasses_)(ISWbemLastError *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *SubclassesAsync_)(ISWbemLastError *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Associators_)(ISWbemLastError *This,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *AssociatorsAsync_)(ISWbemLastError *This,IDispatch *objWbemSink,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *References_)(ISWbemLastError *This,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *ReferencesAsync_)(ISWbemLastError *This,IDispatch *objWbemSink,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ExecMethod_)(ISWbemLastError *This,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters);
-      HRESULT (WINAPI *ExecMethodAsync_)(ISWbemLastError *This,IDispatch *objWbemSink,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Clone_)(ISWbemLastError *This,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *GetObjectText_)(ISWbemLastError *This,__LONG32 iFlags,BSTR *strObjectText);
-      HRESULT (WINAPI *SpawnDerivedClass_)(ISWbemLastError *This,__LONG32 iFlags,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *SpawnInstance_)(ISWbemLastError *This,__LONG32 iFlags,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *CompareTo_)(ISWbemLastError *This,IDispatch *objWbemObject,__LONG32 iFlags,VARIANT_BOOL *bResult);
-      HRESULT (WINAPI *get_Qualifiers_)(ISWbemLastError *This,ISWbemQualifierSet **objWbemQualifierSet);
-      HRESULT (WINAPI *get_Properties_)(ISWbemLastError *This,ISWbemPropertySet **objWbemPropertySet);
-      HRESULT (WINAPI *get_Methods_)(ISWbemLastError *This,ISWbemMethodSet **objWbemMethodSet);
-      HRESULT (WINAPI *get_Derivation_)(ISWbemLastError *This,VARIANT *strClassNameArray);
-      HRESULT (WINAPI *get_Path_)(ISWbemLastError *This,ISWbemObjectPath **objWbemObjectPath);
-      HRESULT (WINAPI *get_Security_)(ISWbemLastError *This,ISWbemSecurity **objWbemSecurity);
-    END_INTERFACE
-  } ISWbemLastErrorVtbl;
-  struct ISWbemLastError {
-    CONST_VTBL struct ISWbemLastErrorVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemLastError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemLastError_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemLastError_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemLastError_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemLastError_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemLastError_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemLastError_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemLastError_Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath) (This)->lpVtbl->Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath)
-#define ISWbemLastError_PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemLastError_Delete_(This,iFlags,objWbemNamedValueSet) (This)->lpVtbl->Delete_(This,iFlags,objWbemNamedValueSet)
-#define ISWbemLastError_DeleteAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->DeleteAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemLastError_Instances_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->Instances_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet)
-#define ISWbemLastError_InstancesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->InstancesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemLastError_Subclasses_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->Subclasses_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet)
-#define ISWbemLastError_SubclassesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->SubclassesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemLastError_Associators_(This,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->Associators_(This,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet)
-#define ISWbemLastError_AssociatorsAsync_(This,objWbemSink,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->AssociatorsAsync_(This,objWbemSink,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemLastError_References_(This,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->References_(This,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet)
-#define ISWbemLastError_ReferencesAsync_(This,objWbemSink,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ReferencesAsync_(This,objWbemSink,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemLastError_ExecMethod_(This,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters) (This)->lpVtbl->ExecMethod_(This,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters)
-#define ISWbemLastError_ExecMethodAsync_(This,objWbemSink,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecMethodAsync_(This,objWbemSink,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemLastError_Clone_(This,objWbemObject) (This)->lpVtbl->Clone_(This,objWbemObject)
-#define ISWbemLastError_GetObjectText_(This,iFlags,strObjectText) (This)->lpVtbl->GetObjectText_(This,iFlags,strObjectText)
-#define ISWbemLastError_SpawnDerivedClass_(This,iFlags,objWbemObject) (This)->lpVtbl->SpawnDerivedClass_(This,iFlags,objWbemObject)
-#define ISWbemLastError_SpawnInstance_(This,iFlags,objWbemObject) (This)->lpVtbl->SpawnInstance_(This,iFlags,objWbemObject)
-#define ISWbemLastError_CompareTo_(This,objWbemObject,iFlags,bResult) (This)->lpVtbl->CompareTo_(This,objWbemObject,iFlags,bResult)
-#define ISWbemLastError_get_Qualifiers_(This,objWbemQualifierSet) (This)->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet)
-#define ISWbemLastError_get_Properties_(This,objWbemPropertySet) (This)->lpVtbl->get_Properties_(This,objWbemPropertySet)
-#define ISWbemLastError_get_Methods_(This,objWbemMethodSet) (This)->lpVtbl->get_Methods_(This,objWbemMethodSet)
-#define ISWbemLastError_get_Derivation_(This,strClassNameArray) (This)->lpVtbl->get_Derivation_(This,strClassNameArray)
-#define ISWbemLastError_get_Path_(This,objWbemObjectPath) (This)->lpVtbl->get_Path_(This,objWbemObjectPath)
-#define ISWbemLastError_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
-#endif
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemObject_QueryInterface(ISWbemObject* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemObject_AddRef(ISWbemObject* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemObject_Release(ISWbemObject* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemObject_GetTypeInfoCount(ISWbemObject* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemObject_GetTypeInfo(ISWbemObject* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemObject_GetIDsOfNames(ISWbemObject* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemObject_Invoke(ISWbemObject* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemObject methods ***/
+static FORCEINLINE HRESULT ISWbemObject_Put_(ISWbemObject* This,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath) {
+    return This->lpVtbl->Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath);
+}
+static FORCEINLINE HRESULT ISWbemObject_PutAsync_(ISWbemObject* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObject_Delete_(ISWbemObject* This,LONG iFlags,IDispatch *objWbemNamedValueSet) {
+    return This->lpVtbl->Delete_(This,iFlags,objWbemNamedValueSet);
+}
+static FORCEINLINE HRESULT ISWbemObject_DeleteAsync_(ISWbemObject* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->DeleteAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObject_Instances_(ISWbemObject* This,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->Instances_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemObject_InstancesAsync_(ISWbemObject* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->InstancesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObject_Subclasses_(ISWbemObject* This,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->Subclasses_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemObject_SubclassesAsync_(ISWbemObject* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->SubclassesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObject_Associators_(ISWbemObject* This,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->Associators_(This,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemObject_AssociatorsAsync_(ISWbemObject* This,IDispatch *objWbemSink,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->AssociatorsAsync_(This,objWbemSink,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObject_References_(ISWbemObject* This,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->References_(This,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemObject_ReferencesAsync_(ISWbemObject* This,IDispatch *objWbemSink,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ReferencesAsync_(This,objWbemSink,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObject_ExecMethod_(ISWbemObject* This,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters) {
+    return This->lpVtbl->ExecMethod_(This,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters);
+}
+static FORCEINLINE HRESULT ISWbemObject_ExecMethodAsync_(ISWbemObject* This,IDispatch *objWbemSink,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ExecMethodAsync_(This,objWbemSink,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObject_Clone_(ISWbemObject* This,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->Clone_(This,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemObject_GetObjectText_(ISWbemObject* This,LONG iFlags,BSTR *strObjectText) {
+    return This->lpVtbl->GetObjectText_(This,iFlags,strObjectText);
+}
+static FORCEINLINE HRESULT ISWbemObject_SpawnDerivedClass_(ISWbemObject* This,LONG iFlags,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->SpawnDerivedClass_(This,iFlags,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemObject_SpawnInstance_(ISWbemObject* This,LONG iFlags,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->SpawnInstance_(This,iFlags,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemObject_CompareTo_(ISWbemObject* This,IDispatch *objWbemObject,LONG iFlags,VARIANT_BOOL *bResult) {
+    return This->lpVtbl->CompareTo_(This,objWbemObject,iFlags,bResult);
+}
+static FORCEINLINE HRESULT ISWbemObject_get_Qualifiers_(ISWbemObject* This,ISWbemQualifierSet **objWbemQualifierSet) {
+    return This->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet);
+}
+static FORCEINLINE HRESULT ISWbemObject_get_Properties_(ISWbemObject* This,ISWbemPropertySet **objWbemPropertySet) {
+    return This->lpVtbl->get_Properties_(This,objWbemPropertySet);
+}
+static FORCEINLINE HRESULT ISWbemObject_get_Methods_(ISWbemObject* This,ISWbemMethodSet **objWbemMethodSet) {
+    return This->lpVtbl->get_Methods_(This,objWbemMethodSet);
+}
+static FORCEINLINE HRESULT ISWbemObject_get_Derivation_(ISWbemObject* This,VARIANT *strClassNameArray) {
+    return This->lpVtbl->get_Derivation_(This,strClassNameArray);
+}
+static FORCEINLINE HRESULT ISWbemObject_get_Path_(ISWbemObject* This,ISWbemObjectPath **objWbemObjectPath) {
+    return This->lpVtbl->get_Path_(This,objWbemObjectPath);
+}
+static FORCEINLINE HRESULT ISWbemObject_get_Security_(ISWbemObject* This,ISWbemSecurity **objWbemSecurity) {
+    return This->lpVtbl->get_Security_(This,objWbemSecurity);
+}
 #endif
 #endif
 
-#ifndef __ISWbemSinkEvents_DISPINTERFACE_DEFINED__
-#define __ISWbemSinkEvents_DISPINTERFACE_DEFINED__
-  EXTERN_C const IID DIID_ISWbemSinkEvents;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemSinkEvents : public IDispatch {
-  };
-#else
-  typedef struct ISWbemSinkEventsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemSinkEvents *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemSinkEvents *This);
-      ULONG (WINAPI *Release)(ISWbemSinkEvents *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemSinkEvents *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemSinkEvents *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemSinkEvents *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemSinkEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-    END_INTERFACE
-  } ISWbemSinkEventsVtbl;
-  struct ISWbemSinkEvents {
-    CONST_VTBL struct ISWbemSinkEventsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemSinkEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemSinkEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemSinkEvents_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemSinkEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemSinkEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemSinkEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemSinkEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#endif
-#endif
 #endif
 
-#ifndef __ISWbemSink_INTERFACE_DEFINED__
-#define __ISWbemSink_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemSink;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemSink : public IDispatch {
-  public:
-    virtual HRESULT WINAPI Cancel(void) = 0;
-  };
-#else
-  typedef struct ISWbemSinkVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemSink *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemSink *This);
-      ULONG (WINAPI *Release)(ISWbemSink *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemSink *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemSink *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemSink *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemSink *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *Cancel)(ISWbemSink *This);
-    END_INTERFACE
-  } ISWbemSinkVtbl;
-  struct ISWbemSink {
-    CONST_VTBL struct ISWbemSinkVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemSink_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemSink_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemSink_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemSink_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemSink_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemSink_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemSink_Cancel(This) (This)->lpVtbl->Cancel(This)
-#endif
-#endif
-  HRESULT WINAPI ISWbemSink_Cancel_Proxy(ISWbemSink *This);
-  void __RPC_STUB ISWbemSink_Cancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
+HRESULT STDMETHODCALLTYPE ISWbemObject_Put__Proxy(
+    ISWbemObject* This,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectPath **objWbemObjectPath);
+void __RPC_STUB ISWbemObject_Put__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_PutAsync__Proxy(
+    ISWbemObject* This,
+    IDispatch *objWbemSink,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemObject_PutAsync__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_Delete__Proxy(
+    ISWbemObject* This,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet);
+void __RPC_STUB ISWbemObject_Delete__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_DeleteAsync__Proxy(
+    ISWbemObject* This,
+    IDispatch *objWbemSink,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemObject_DeleteAsync__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_Instances__Proxy(
+    ISWbemObject* This,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemObject_Instances__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_InstancesAsync__Proxy(
+    ISWbemObject* This,
+    IDispatch *objWbemSink,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemObject_InstancesAsync__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_Subclasses__Proxy(
+    ISWbemObject* This,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemObject_Subclasses__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_SubclassesAsync__Proxy(
+    ISWbemObject* This,
+    IDispatch *objWbemSink,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemObject_SubclassesAsync__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_Associators__Proxy(
+    ISWbemObject* This,
+    BSTR strAssocClass,
+    BSTR strResultClass,
+    BSTR strResultRole,
+    BSTR strRole,
+    VARIANT_BOOL bClassesOnly,
+    VARIANT_BOOL bSchemaOnly,
+    BSTR strRequiredAssocQualifier,
+    BSTR strRequiredQualifier,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemObject_Associators__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_AssociatorsAsync__Proxy(
+    ISWbemObject* This,
+    IDispatch *objWbemSink,
+    BSTR strAssocClass,
+    BSTR strResultClass,
+    BSTR strResultRole,
+    BSTR strRole,
+    VARIANT_BOOL bClassesOnly,
+    VARIANT_BOOL bSchemaOnly,
+    BSTR strRequiredAssocQualifier,
+    BSTR strRequiredQualifier,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemObject_AssociatorsAsync__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_References__Proxy(
+    ISWbemObject* This,
+    BSTR strResultClass,
+    BSTR strRole,
+    VARIANT_BOOL bClassesOnly,
+    VARIANT_BOOL bSchemaOnly,
+    BSTR strRequiredQualifier,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemObject_References__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_ReferencesAsync__Proxy(
+    ISWbemObject* This,
+    IDispatch *objWbemSink,
+    BSTR strResultClass,
+    BSTR strRole,
+    VARIANT_BOOL bClassesOnly,
+    VARIANT_BOOL bSchemaOnly,
+    BSTR strRequiredQualifier,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemObject_ReferencesAsync__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_ExecMethod__Proxy(
+    ISWbemObject* This,
+    BSTR strMethodName,
+    IDispatch *objWbemInParameters,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemObject **objWbemOutParameters);
+void __RPC_STUB ISWbemObject_ExecMethod__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_ExecMethodAsync__Proxy(
+    ISWbemObject* This,
+    IDispatch *objWbemSink,
+    BSTR strMethodName,
+    IDispatch *objWbemInParameters,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    IDispatch *objWbemAsyncContext);
+void __RPC_STUB ISWbemObject_ExecMethodAsync__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_Clone__Proxy(
+    ISWbemObject* This,
+    ISWbemObject **objWbemObject);
+void __RPC_STUB ISWbemObject_Clone__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_GetObjectText__Proxy(
+    ISWbemObject* This,
+    LONG iFlags,
+    BSTR *strObjectText);
+void __RPC_STUB ISWbemObject_GetObjectText__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_SpawnDerivedClass__Proxy(
+    ISWbemObject* This,
+    LONG iFlags,
+    ISWbemObject **objWbemObject);
+void __RPC_STUB ISWbemObject_SpawnDerivedClass__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_SpawnInstance__Proxy(
+    ISWbemObject* This,
+    LONG iFlags,
+    ISWbemObject **objWbemObject);
+void __RPC_STUB ISWbemObject_SpawnInstance__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_CompareTo__Proxy(
+    ISWbemObject* This,
+    IDispatch *objWbemObject,
+    LONG iFlags,
+    VARIANT_BOOL *bResult);
+void __RPC_STUB ISWbemObject_CompareTo__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_get_Qualifiers__Proxy(
+    ISWbemObject* This,
+    ISWbemQualifierSet **objWbemQualifierSet);
+void __RPC_STUB ISWbemObject_get_Qualifiers__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_get_Properties__Proxy(
+    ISWbemObject* This,
+    ISWbemPropertySet **objWbemPropertySet);
+void __RPC_STUB ISWbemObject_get_Properties__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_get_Methods__Proxy(
+    ISWbemObject* This,
+    ISWbemMethodSet **objWbemMethodSet);
+void __RPC_STUB ISWbemObject_get_Methods__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_get_Derivation__Proxy(
+    ISWbemObject* This,
+    VARIANT *strClassNameArray);
+void __RPC_STUB ISWbemObject_get_Derivation__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_get_Path__Proxy(
+    ISWbemObject* This,
+    ISWbemObjectPath **objWbemObjectPath);
+void __RPC_STUB ISWbemObject_get_Path__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObject_get_Security__Proxy(
+    ISWbemObject* This,
+    ISWbemSecurity **objWbemSecurity);
+void __RPC_STUB ISWbemObject_get_Security__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
 
-#ifndef __ISWbemSecurity_INTERFACE_DEFINED__
-#define __ISWbemSecurity_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemSecurity;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemSecurity : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_ImpersonationLevel(WbemImpersonationLevelEnum *iImpersonationLevel) = 0;
-    virtual HRESULT WINAPI put_ImpersonationLevel(WbemImpersonationLevelEnum iImpersonationLevel) = 0;
-    virtual HRESULT WINAPI get_AuthenticationLevel(WbemAuthenticationLevelEnum *iAuthenticationLevel) = 0;
-    virtual HRESULT WINAPI put_AuthenticationLevel(WbemAuthenticationLevelEnum iAuthenticationLevel) = 0;
-    virtual HRESULT WINAPI get_Privileges(ISWbemPrivilegeSet **objWbemPrivilegeSet) = 0;
-  };
-#else
-  typedef struct ISWbemSecurityVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemSecurity *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemSecurity *This);
-      ULONG (WINAPI *Release)(ISWbemSecurity *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemSecurity *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemSecurity *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemSecurity *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemSecurity *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_ImpersonationLevel)(ISWbemSecurity *This,WbemImpersonationLevelEnum *iImpersonationLevel);
-      HRESULT (WINAPI *put_ImpersonationLevel)(ISWbemSecurity *This,WbemImpersonationLevelEnum iImpersonationLevel);
-      HRESULT (WINAPI *get_AuthenticationLevel)(ISWbemSecurity *This,WbemAuthenticationLevelEnum *iAuthenticationLevel);
-      HRESULT (WINAPI *put_AuthenticationLevel)(ISWbemSecurity *This,WbemAuthenticationLevelEnum iAuthenticationLevel);
-      HRESULT (WINAPI *get_Privileges)(ISWbemSecurity *This,ISWbemPrivilegeSet **objWbemPrivilegeSet);
-    END_INTERFACE
-  } ISWbemSecurityVtbl;
-  struct ISWbemSecurity {
-    CONST_VTBL struct ISWbemSecurityVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemSecurity_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemSecurity_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemSecurity_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemSecurity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemSecurity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemSecurity_get_ImpersonationLevel(This,iImpersonationLevel) (This)->lpVtbl->get_ImpersonationLevel(This,iImpersonationLevel)
-#define ISWbemSecurity_put_ImpersonationLevel(This,iImpersonationLevel) (This)->lpVtbl->put_ImpersonationLevel(This,iImpersonationLevel)
-#define ISWbemSecurity_get_AuthenticationLevel(This,iAuthenticationLevel) (This)->lpVtbl->get_AuthenticationLevel(This,iAuthenticationLevel)
-#define ISWbemSecurity_put_AuthenticationLevel(This,iAuthenticationLevel) (This)->lpVtbl->put_AuthenticationLevel(This,iAuthenticationLevel)
-#define ISWbemSecurity_get_Privileges(This,objWbemPrivilegeSet) (This)->lpVtbl->get_Privileges(This,objWbemPrivilegeSet)
-#endif
-#endif
-  HRESULT WINAPI ISWbemSecurity_get_ImpersonationLevel_Proxy(ISWbemSecurity *This,WbemImpersonationLevelEnum *iImpersonationLevel);
-  void __RPC_STUB ISWbemSecurity_get_ImpersonationLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemSecurity_put_ImpersonationLevel_Proxy(ISWbemSecurity *This,WbemImpersonationLevelEnum iImpersonationLevel);
-  void __RPC_STUB ISWbemSecurity_put_ImpersonationLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemSecurity_get_AuthenticationLevel_Proxy(ISWbemSecurity *This,WbemAuthenticationLevelEnum *iAuthenticationLevel);
-  void __RPC_STUB ISWbemSecurity_get_AuthenticationLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemSecurity_put_AuthenticationLevel_Proxy(ISWbemSecurity *This,WbemAuthenticationLevelEnum iAuthenticationLevel);
-  void __RPC_STUB ISWbemSecurity_put_AuthenticationLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemSecurity_get_Privileges_Proxy(ISWbemSecurity *This,ISWbemPrivilegeSet **objWbemPrivilegeSet);
-  void __RPC_STUB ISWbemSecurity_get_Privileges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
+#endif  /* __ISWbemObject_INTERFACE_DEFINED__ */
 
-#ifndef __ISWbemPrivilege_INTERFACE_DEFINED__
-#define __ISWbemPrivilege_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemPrivilege;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemPrivilege : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_IsEnabled(VARIANT_BOOL *bIsEnabled) = 0;
-    virtual HRESULT WINAPI put_IsEnabled(VARIANT_BOOL bIsEnabled) = 0;
-    virtual HRESULT WINAPI get_Name(BSTR *strDisplayName) = 0;
-    virtual HRESULT WINAPI get_DisplayName(BSTR *strDisplayName) = 0;
-    virtual HRESULT WINAPI get_Identifier(WbemPrivilegeEnum *iPrivilege) = 0;
-  };
-#else
-  typedef struct ISWbemPrivilegeVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemPrivilege *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemPrivilege *This);
-      ULONG (WINAPI *Release)(ISWbemPrivilege *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemPrivilege *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemPrivilege *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemPrivilege *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemPrivilege *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_IsEnabled)(ISWbemPrivilege *This,VARIANT_BOOL *bIsEnabled);
-      HRESULT (WINAPI *put_IsEnabled)(ISWbemPrivilege *This,VARIANT_BOOL bIsEnabled);
-      HRESULT (WINAPI *get_Name)(ISWbemPrivilege *This,BSTR *strDisplayName);
-      HRESULT (WINAPI *get_DisplayName)(ISWbemPrivilege *This,BSTR *strDisplayName);
-      HRESULT (WINAPI *get_Identifier)(ISWbemPrivilege *This,WbemPrivilegeEnum *iPrivilege);
-    END_INTERFACE
-  } ISWbemPrivilegeVtbl;
-  struct ISWbemPrivilege {
-    CONST_VTBL struct ISWbemPrivilegeVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemPrivilege_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemPrivilege_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemPrivilege_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemPrivilege_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemPrivilege_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemPrivilege_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemPrivilege_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemPrivilege_get_IsEnabled(This,bIsEnabled) (This)->lpVtbl->get_IsEnabled(This,bIsEnabled)
-#define ISWbemPrivilege_put_IsEnabled(This,bIsEnabled) (This)->lpVtbl->put_IsEnabled(This,bIsEnabled)
-#define ISWbemPrivilege_get_Name(This,strDisplayName) (This)->lpVtbl->get_Name(This,strDisplayName)
-#define ISWbemPrivilege_get_DisplayName(This,strDisplayName) (This)->lpVtbl->get_DisplayName(This,strDisplayName)
-#define ISWbemPrivilege_get_Identifier(This,iPrivilege) (This)->lpVtbl->get_Identifier(This,iPrivilege)
-#endif
-#endif
-  HRESULT WINAPI ISWbemPrivilege_get_IsEnabled_Proxy(ISWbemPrivilege *This,VARIANT_BOOL *bIsEnabled);
-  void __RPC_STUB ISWbemPrivilege_get_IsEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilege_put_IsEnabled_Proxy(ISWbemPrivilege *This,VARIANT_BOOL bIsEnabled);
-  void __RPC_STUB ISWbemPrivilege_put_IsEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilege_get_Name_Proxy(ISWbemPrivilege *This,BSTR *strDisplayName);
-  void __RPC_STUB ISWbemPrivilege_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilege_get_DisplayName_Proxy(ISWbemPrivilege *This,BSTR *strDisplayName);
-  void __RPC_STUB ISWbemPrivilege_get_DisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilege_get_Identifier_Proxy(ISWbemPrivilege *This,WbemPrivilegeEnum *iPrivilege);
-  void __RPC_STUB ISWbemPrivilege_get_Identifier_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemPrivilegeSet_INTERFACE_DEFINED__
-#define __ISWbemPrivilegeSet_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemPrivilegeSet;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemPrivilegeSet : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get__NewEnum(IUnknown **pUnk) = 0;
-    virtual HRESULT WINAPI Item(WbemPrivilegeEnum iPrivilege,ISWbemPrivilege **objWbemPrivilege) = 0;
-    virtual HRESULT WINAPI get_Count(__LONG32 *iCount) = 0;
-    virtual HRESULT WINAPI Add(WbemPrivilegeEnum iPrivilege,VARIANT_BOOL bIsEnabled,ISWbemPrivilege **objWbemPrivilege) = 0;
-    virtual HRESULT WINAPI Remove(WbemPrivilegeEnum iPrivilege) = 0;
-    virtual HRESULT WINAPI DeleteAll(void) = 0;
-    virtual HRESULT WINAPI AddAsString(BSTR strPrivilege,VARIANT_BOOL bIsEnabled,ISWbemPrivilege **objWbemPrivilege) = 0;
-  };
-#else
-  typedef struct ISWbemPrivilegeSetVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemPrivilegeSet *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemPrivilegeSet *This);
-      ULONG (WINAPI *Release)(ISWbemPrivilegeSet *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemPrivilegeSet *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemPrivilegeSet *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemPrivilegeSet *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemPrivilegeSet *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get__NewEnum)(ISWbemPrivilegeSet *This,IUnknown **pUnk);
-      HRESULT (WINAPI *Item)(ISWbemPrivilegeSet *This,WbemPrivilegeEnum iPrivilege,ISWbemPrivilege **objWbemPrivilege);
-      HRESULT (WINAPI *get_Count)(ISWbemPrivilegeSet *This,__LONG32 *iCount);
-      HRESULT (WINAPI *Add)(ISWbemPrivilegeSet *This,WbemPrivilegeEnum iPrivilege,VARIANT_BOOL bIsEnabled,ISWbemPrivilege **objWbemPrivilege);
-      HRESULT (WINAPI *Remove)(ISWbemPrivilegeSet *This,WbemPrivilegeEnum iPrivilege);
-      HRESULT (WINAPI *DeleteAll)(ISWbemPrivilegeSet *This);
-      HRESULT (WINAPI *AddAsString)(ISWbemPrivilegeSet *This,BSTR strPrivilege,VARIANT_BOOL bIsEnabled,ISWbemPrivilege **objWbemPrivilege);
-    END_INTERFACE
-  } ISWbemPrivilegeSetVtbl;
-  struct ISWbemPrivilegeSet {
-    CONST_VTBL struct ISWbemPrivilegeSetVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemPrivilegeSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemPrivilegeSet_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemPrivilegeSet_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemPrivilegeSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemPrivilegeSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemPrivilegeSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemPrivilegeSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemPrivilegeSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
-#define ISWbemPrivilegeSet_Item(This,iPrivilege,objWbemPrivilege) (This)->lpVtbl->Item(This,iPrivilege,objWbemPrivilege)
-#define ISWbemPrivilegeSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
-#define ISWbemPrivilegeSet_Add(This,iPrivilege,bIsEnabled,objWbemPrivilege) (This)->lpVtbl->Add(This,iPrivilege,bIsEnabled,objWbemPrivilege)
-#define ISWbemPrivilegeSet_Remove(This,iPrivilege) (This)->lpVtbl->Remove(This,iPrivilege)
-#define ISWbemPrivilegeSet_DeleteAll(This) (This)->lpVtbl->DeleteAll(This)
-#define ISWbemPrivilegeSet_AddAsString(This,strPrivilege,bIsEnabled,objWbemPrivilege) (This)->lpVtbl->AddAsString(This,strPrivilege,bIsEnabled,objWbemPrivilege)
-#endif
-#endif
-  HRESULT WINAPI ISWbemPrivilegeSet_get__NewEnum_Proxy(ISWbemPrivilegeSet *This,IUnknown **pUnk);
-  void __RPC_STUB ISWbemPrivilegeSet_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilegeSet_Item_Proxy(ISWbemPrivilegeSet *This,WbemPrivilegeEnum iPrivilege,ISWbemPrivilege **objWbemPrivilege);
-  void __RPC_STUB ISWbemPrivilegeSet_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilegeSet_get_Count_Proxy(ISWbemPrivilegeSet *This,__LONG32 *iCount);
-  void __RPC_STUB ISWbemPrivilegeSet_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilegeSet_Add_Proxy(ISWbemPrivilegeSet *This,WbemPrivilegeEnum iPrivilege,VARIANT_BOOL bIsEnabled,ISWbemPrivilege **objWbemPrivilege);
-  void __RPC_STUB ISWbemPrivilegeSet_Add_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilegeSet_Remove_Proxy(ISWbemPrivilegeSet *This,WbemPrivilegeEnum iPrivilege);
-  void __RPC_STUB ISWbemPrivilegeSet_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilegeSet_DeleteAll_Proxy(ISWbemPrivilegeSet *This);
-  void __RPC_STUB ISWbemPrivilegeSet_DeleteAll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemPrivilegeSet_AddAsString_Proxy(ISWbemPrivilegeSet *This,BSTR strPrivilege,VARIANT_BOOL bIsEnabled,ISWbemPrivilege **objWbemPrivilege);
-  void __RPC_STUB ISWbemPrivilegeSet_AddAsString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemServicesEx_INTERFACE_DEFINED__
-#define __ISWbemServicesEx_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemServicesEx;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemServicesEx : public ISWbemServices {
-  public:
-    virtual HRESULT WINAPI Put(ISWbemObjectEx *objWbemObject,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath) = 0;
-    virtual HRESULT WINAPI PutAsync(ISWbemSink *objWbemSink,ISWbemObjectEx *objWbemObject,__LONG32 iFlags = wbemChangeFlagCreateOrUpdate,IDispatch *objWbemNamedValueSet = 0,IDispatch *objWbemAsyncContext = 0) = 0;
-  };
-#else
-  typedef struct ISWbemServicesExVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemServicesEx *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemServicesEx *This);
-      ULONG (WINAPI *Release)(ISWbemServicesEx *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemServicesEx *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemServicesEx *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemServicesEx *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemServicesEx *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *Get)(ISWbemServicesEx *This,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *GetAsync)(ISWbemServicesEx *This,IDispatch *objWbemSink,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Delete)(ISWbemServicesEx *This,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-      HRESULT (WINAPI *DeleteAsync)(ISWbemServicesEx *This,IDispatch *objWbemSink,BSTR strObjectPath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *InstancesOf)(ISWbemServicesEx *This,BSTR strClass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *InstancesOfAsync)(ISWbemServicesEx *This,IDispatch *objWbemSink,BSTR strClass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *SubclassesOf)(ISWbemServicesEx *This,BSTR strSuperclass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *SubclassesOfAsync)(ISWbemServicesEx *This,IDispatch *objWbemSink,BSTR strSuperclass,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ExecQuery)(ISWbemServicesEx *This,BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *ExecQueryAsync)(ISWbemServicesEx *This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,__LONG32 lFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *AssociatorsOf)(ISWbemServicesEx *This,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *AssociatorsOfAsync)(ISWbemServicesEx *This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ReferencesTo)(ISWbemServicesEx *This,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *ReferencesToAsync)(ISWbemServicesEx *This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ExecNotificationQuery)(ISWbemServicesEx *This,BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemEventSource **objWbemEventSource);
-      HRESULT (WINAPI *ExecNotificationQueryAsync)(ISWbemServicesEx *This,IDispatch *objWbemSink,BSTR strQuery,BSTR strQueryLanguage,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ExecMethod)(ISWbemServicesEx *This,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters);
-      HRESULT (WINAPI *ExecMethodAsync)(ISWbemServicesEx *This,IDispatch *objWbemSink,BSTR strObjectPath,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *get_Security_)(ISWbemServicesEx *This,ISWbemSecurity **objWbemSecurity);
-      HRESULT (WINAPI *Put)(ISWbemServicesEx *This,ISWbemObjectEx *objWbemObject,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath);
-      HRESULT (WINAPI *PutAsync)(ISWbemServicesEx *This,ISWbemSink *objWbemSink,ISWbemObjectEx *objWbemObject,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-    END_INTERFACE
-  } ISWbemServicesExVtbl;
-  struct ISWbemServicesEx {
-    CONST_VTBL struct ISWbemServicesExVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemServicesEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemServicesEx_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemServicesEx_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemServicesEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemServicesEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemServicesEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemServicesEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemServicesEx_Get(This,strObjectPath,iFlags,objWbemNamedValueSet,objWbemObject) (This)->lpVtbl->Get(This,strObjectPath,iFlags,objWbemNamedValueSet,objWbemObject)
-#define ISWbemServicesEx_GetAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->GetAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemServicesEx_Delete(This,strObjectPath,iFlags,objWbemNamedValueSet) (This)->lpVtbl->Delete(This,strObjectPath,iFlags,objWbemNamedValueSet)
-#define ISWbemServicesEx_DeleteAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->DeleteAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemServicesEx_InstancesOf(This,strClass,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->InstancesOf(This,strClass,iFlags,objWbemNamedValueSet,objWbemObjectSet)
-#define ISWbemServicesEx_InstancesOfAsync(This,objWbemSink,strClass,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->InstancesOfAsync(This,objWbemSink,strClass,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemServicesEx_SubclassesOf(This,strSuperclass,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->SubclassesOf(This,strSuperclass,iFlags,objWbemNamedValueSet,objWbemObjectSet)
-#define ISWbemServicesEx_SubclassesOfAsync(This,objWbemSink,strSuperclass,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->SubclassesOfAsync(This,objWbemSink,strSuperclass,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemServicesEx_ExecQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->ExecQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemObjectSet)
-#define ISWbemServicesEx_ExecQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,lFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,lFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemServicesEx_AssociatorsOf(This,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->AssociatorsOf(This,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet)
-#define ISWbemServicesEx_AssociatorsOfAsync(This,objWbemSink,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->AssociatorsOfAsync(This,objWbemSink,strObjectPath,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemServicesEx_ReferencesTo(This,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->ReferencesTo(This,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet)
-#define ISWbemServicesEx_ReferencesToAsync(This,objWbemSink,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ReferencesToAsync(This,objWbemSink,strObjectPath,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemServicesEx_ExecNotificationQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemEventSource) (This)->lpVtbl->ExecNotificationQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemEventSource)
-#define ISWbemServicesEx_ExecNotificationQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecNotificationQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemServicesEx_ExecMethod(This,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters) (This)->lpVtbl->ExecMethod(This,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters)
-#define ISWbemServicesEx_ExecMethodAsync(This,objWbemSink,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecMethodAsync(This,objWbemSink,strObjectPath,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#define ISWbemServicesEx_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
-#define ISWbemServicesEx_Put(This,objWbemObject,iFlags,objWbemNamedValueSet,objWbemObjectPath) (This)->lpVtbl->Put(This,objWbemObject,iFlags,objWbemNamedValueSet,objWbemObjectPath)
-#define ISWbemServicesEx_PutAsync(This,objWbemSink,objWbemObject,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->PutAsync(This,objWbemSink,objWbemObject,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
-#endif
-#endif
-  HRESULT WINAPI ISWbemServicesEx_Put_Proxy(ISWbemServicesEx *This,ISWbemObjectEx *objWbemObject,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath);
-  void __RPC_STUB ISWbemServicesEx_Put_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemServicesEx_PutAsync_Proxy(ISWbemServicesEx *This,ISWbemSink *objWbemSink,ISWbemObjectEx *objWbemObject,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-  void __RPC_STUB ISWbemServicesEx_PutAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
+/*****************************************************************************
+ * ISWbemObjectEx interface
+ */
 #ifndef __ISWbemObjectEx_INTERFACE_DEFINED__
 #define __ISWbemObjectEx_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemObjectEx;
+
+DEFINE_GUID(IID_ISWbemObjectEx, 0x269ad56a, 0x8a67, 0x4129, 0xbc,0x8c, 0x05,0x06,0xdc,0xfe,0x98,0x80);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemObjectEx : public ISWbemObject {
-  public:
-    virtual HRESULT WINAPI Refresh_(__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0) = 0;
-    virtual HRESULT WINAPI get_SystemProperties_(ISWbemPropertySet **objWbemPropertySet) = 0;
-    virtual HRESULT WINAPI GetText_(WbemObjectTextFormatEnum iObjectTextFormat,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,BSTR *bsText) = 0;
-    virtual HRESULT WINAPI SetFromText_(BSTR bsText,WbemObjectTextFormatEnum iObjectTextFormat,__LONG32 iFlags = 0,IDispatch *objWbemNamedValueSet = 0) = 0;
-  };
+MIDL_INTERFACE("269ad56a-8a67-4129-bc8c-0506dcfe9880")
+ISWbemObjectEx : public ISWbemObject
+{
+    virtual HRESULT STDMETHODCALLTYPE Refresh_(
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SystemProperties_(
+        ISWbemPropertySet **objWbemPropertySet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetText_(
+        WbemObjectTextFormatEnum iObjectTextFormat,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        BSTR *bsText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetFromText_(
+        BSTR bsText,
+        WbemObjectTextFormatEnum iObjectTextFormat,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemObjectEx, 0x269ad56a, 0x8a67, 0x4129, 0xbc,0x8c, 0x05,0x06,0xdc,0xfe,0x98,0x80)
+#endif
 #else
-  typedef struct ISWbemObjectExVtbl {
+typedef struct ISWbemObjectExVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemObjectEx *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemObjectEx *This);
-      ULONG (WINAPI *Release)(ISWbemObjectEx *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemObjectEx *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemObjectEx *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemObjectEx *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemObjectEx *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *Put_)(ISWbemObjectEx *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath);
-      HRESULT (WINAPI *PutAsync_)(ISWbemObjectEx *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Delete_)(ISWbemObjectEx *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-      HRESULT (WINAPI *DeleteAsync_)(ISWbemObjectEx *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Instances_)(ISWbemObjectEx *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *InstancesAsync_)(ISWbemObjectEx *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Subclasses_)(ISWbemObjectEx *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *SubclassesAsync_)(ISWbemObjectEx *This,IDispatch *objWbemSink,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Associators_)(ISWbemObjectEx *This,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *AssociatorsAsync_)(ISWbemObjectEx *This,IDispatch *objWbemSink,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *References_)(ISWbemObjectEx *This,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *ReferencesAsync_)(ISWbemObjectEx *This,IDispatch *objWbemSink,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *ExecMethod_)(ISWbemObjectEx *This,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters);
-      HRESULT (WINAPI *ExecMethodAsync_)(ISWbemObjectEx *This,IDispatch *objWbemSink,BSTR strMethodName,IDispatch *objWbemInParameters,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext);
-      HRESULT (WINAPI *Clone_)(ISWbemObjectEx *This,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *GetObjectText_)(ISWbemObjectEx *This,__LONG32 iFlags,BSTR *strObjectText);
-      HRESULT (WINAPI *SpawnDerivedClass_)(ISWbemObjectEx *This,__LONG32 iFlags,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *SpawnInstance_)(ISWbemObjectEx *This,__LONG32 iFlags,ISWbemObject **objWbemObject);
-      HRESULT (WINAPI *CompareTo_)(ISWbemObjectEx *This,IDispatch *objWbemObject,__LONG32 iFlags,VARIANT_BOOL *bResult);
-      HRESULT (WINAPI *get_Qualifiers_)(ISWbemObjectEx *This,ISWbemQualifierSet **objWbemQualifierSet);
-      HRESULT (WINAPI *get_Properties_)(ISWbemObjectEx *This,ISWbemPropertySet **objWbemPropertySet);
-      HRESULT (WINAPI *get_Methods_)(ISWbemObjectEx *This,ISWbemMethodSet **objWbemMethodSet);
-      HRESULT (WINAPI *get_Derivation_)(ISWbemObjectEx *This,VARIANT *strClassNameArray);
-      HRESULT (WINAPI *get_Path_)(ISWbemObjectEx *This,ISWbemObjectPath **objWbemObjectPath);
-      HRESULT (WINAPI *get_Security_)(ISWbemObjectEx *This,ISWbemSecurity **objWbemSecurity);
-      HRESULT (WINAPI *Refresh_)(ISWbemObjectEx *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-      HRESULT (WINAPI *get_SystemProperties_)(ISWbemObjectEx *This,ISWbemPropertySet **objWbemPropertySet);
-      HRESULT (WINAPI *GetText_)(ISWbemObjectEx *This,WbemObjectTextFormatEnum iObjectTextFormat,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,BSTR *bsText);
-      HRESULT (WINAPI *SetFromText_)(ISWbemObjectEx *This,BSTR bsText,WbemObjectTextFormatEnum iObjectTextFormat,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemObjectEx* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemObjectEx* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemObjectEx* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemObjectEx* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemObjectEx* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemObjectEx* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemObjectEx* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *Put_)(
+        ISWbemObjectEx* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectPath **objWbemObjectPath);
+
+    HRESULT (STDMETHODCALLTYPE *PutAsync_)(
+        ISWbemObjectEx* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Delete_)(
+        ISWbemObjectEx* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteAsync_)(
+        ISWbemObjectEx* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Instances_)(
+        ISWbemObjectEx* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *InstancesAsync_)(
+        ISWbemObjectEx* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Subclasses_)(
+        ISWbemObjectEx* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *SubclassesAsync_)(
+        ISWbemObjectEx* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Associators_)(
+        ISWbemObjectEx* This,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *AssociatorsAsync_)(
+        ISWbemObjectEx* This,
+        IDispatch *objWbemSink,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *References_)(
+        ISWbemObjectEx* This,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *ReferencesAsync_)(
+        ISWbemObjectEx* This,
+        IDispatch *objWbemSink,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethod_)(
+        ISWbemObjectEx* This,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObject **objWbemOutParameters);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethodAsync_)(
+        ISWbemObjectEx* This,
+        IDispatch *objWbemSink,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Clone_)(
+        ISWbemObjectEx* This,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *GetObjectText_)(
+        ISWbemObjectEx* This,
+        LONG iFlags,
+        BSTR *strObjectText);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnDerivedClass_)(
+        ISWbemObjectEx* This,
+        LONG iFlags,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnInstance_)(
+        ISWbemObjectEx* This,
+        LONG iFlags,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *CompareTo_)(
+        ISWbemObjectEx* This,
+        IDispatch *objWbemObject,
+        LONG iFlags,
+        VARIANT_BOOL *bResult);
+
+    HRESULT (STDMETHODCALLTYPE *get_Qualifiers_)(
+        ISWbemObjectEx* This,
+        ISWbemQualifierSet **objWbemQualifierSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Properties_)(
+        ISWbemObjectEx* This,
+        ISWbemPropertySet **objWbemPropertySet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Methods_)(
+        ISWbemObjectEx* This,
+        ISWbemMethodSet **objWbemMethodSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Derivation_)(
+        ISWbemObjectEx* This,
+        VARIANT *strClassNameArray);
+
+    HRESULT (STDMETHODCALLTYPE *get_Path_)(
+        ISWbemObjectEx* This,
+        ISWbemObjectPath **objWbemObjectPath);
+
+    HRESULT (STDMETHODCALLTYPE *get_Security_)(
+        ISWbemObjectEx* This,
+        ISWbemSecurity **objWbemSecurity);
+
+    /*** ISWbemObjectEx methods ***/
+    HRESULT (STDMETHODCALLTYPE *Refresh_)(
+        ISWbemObjectEx* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_SystemProperties_)(
+        ISWbemObjectEx* This,
+        ISWbemPropertySet **objWbemPropertySet);
+
+    HRESULT (STDMETHODCALLTYPE *GetText_)(
+        ISWbemObjectEx* This,
+        WbemObjectTextFormatEnum iObjectTextFormat,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        BSTR *bsText);
+
+    HRESULT (STDMETHODCALLTYPE *SetFromText_)(
+        ISWbemObjectEx* This,
+        BSTR bsText,
+        WbemObjectTextFormatEnum iObjectTextFormat,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet);
+
     END_INTERFACE
-  } ISWbemObjectExVtbl;
-  struct ISWbemObjectEx {
-    CONST_VTBL struct ISWbemObjectExVtbl *lpVtbl;
-  };
+} ISWbemObjectExVtbl;
+interface ISWbemObjectEx {
+    CONST_VTBL ISWbemObjectExVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define ISWbemObjectEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define ISWbemObjectEx_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define ISWbemObjectEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define ISWbemObjectEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define ISWbemObjectEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define ISWbemObjectEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define ISWbemObjectEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemObject methods ***/
 #define ISWbemObjectEx_Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath) (This)->lpVtbl->Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath)
 #define ISWbemObjectEx_PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
 #define ISWbemObjectEx_Delete_(This,iFlags,objWbemNamedValueSet) (This)->lpVtbl->Delete_(This,iFlags,objWbemNamedValueSet)
@@ -2208,132 +3544,4619 @@
 #define ISWbemObjectEx_get_Derivation_(This,strClassNameArray) (This)->lpVtbl->get_Derivation_(This,strClassNameArray)
 #define ISWbemObjectEx_get_Path_(This,objWbemObjectPath) (This)->lpVtbl->get_Path_(This,objWbemObjectPath)
 #define ISWbemObjectEx_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
+/*** ISWbemObjectEx methods ***/
 #define ISWbemObjectEx_Refresh_(This,iFlags,objWbemNamedValueSet) (This)->lpVtbl->Refresh_(This,iFlags,objWbemNamedValueSet)
 #define ISWbemObjectEx_get_SystemProperties_(This,objWbemPropertySet) (This)->lpVtbl->get_SystemProperties_(This,objWbemPropertySet)
 #define ISWbemObjectEx_GetText_(This,iObjectTextFormat,iFlags,objWbemNamedValueSet,bsText) (This)->lpVtbl->GetText_(This,iObjectTextFormat,iFlags,objWbemNamedValueSet,bsText)
 #define ISWbemObjectEx_SetFromText_(This,bsText,iObjectTextFormat,iFlags,objWbemNamedValueSet) (This)->lpVtbl->SetFromText_(This,bsText,iObjectTextFormat,iFlags,objWbemNamedValueSet)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemObjectEx_QueryInterface(ISWbemObjectEx* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemObjectEx_AddRef(ISWbemObjectEx* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemObjectEx_Release(ISWbemObjectEx* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemObjectEx_GetTypeInfoCount(ISWbemObjectEx* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_GetTypeInfo(ISWbemObjectEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_GetIDsOfNames(ISWbemObjectEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_Invoke(ISWbemObjectEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemObject methods ***/
+static FORCEINLINE HRESULT ISWbemObjectEx_Put_(ISWbemObjectEx* This,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath) {
+    return This->lpVtbl->Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_PutAsync_(ISWbemObjectEx* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_Delete_(ISWbemObjectEx* This,LONG iFlags,IDispatch *objWbemNamedValueSet) {
+    return This->lpVtbl->Delete_(This,iFlags,objWbemNamedValueSet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_DeleteAsync_(ISWbemObjectEx* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->DeleteAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_Instances_(ISWbemObjectEx* This,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->Instances_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_InstancesAsync_(ISWbemObjectEx* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->InstancesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_Subclasses_(ISWbemObjectEx* This,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->Subclasses_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_SubclassesAsync_(ISWbemObjectEx* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->SubclassesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_Associators_(ISWbemObjectEx* This,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->Associators_(This,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_AssociatorsAsync_(ISWbemObjectEx* This,IDispatch *objWbemSink,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->AssociatorsAsync_(This,objWbemSink,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_References_(ISWbemObjectEx* This,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->References_(This,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_ReferencesAsync_(ISWbemObjectEx* This,IDispatch *objWbemSink,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ReferencesAsync_(This,objWbemSink,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_ExecMethod_(ISWbemObjectEx* This,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters) {
+    return This->lpVtbl->ExecMethod_(This,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_ExecMethodAsync_(ISWbemObjectEx* This,IDispatch *objWbemSink,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ExecMethodAsync_(This,objWbemSink,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_Clone_(ISWbemObjectEx* This,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->Clone_(This,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_GetObjectText_(ISWbemObjectEx* This,LONG iFlags,BSTR *strObjectText) {
+    return This->lpVtbl->GetObjectText_(This,iFlags,strObjectText);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_SpawnDerivedClass_(ISWbemObjectEx* This,LONG iFlags,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->SpawnDerivedClass_(This,iFlags,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_SpawnInstance_(ISWbemObjectEx* This,LONG iFlags,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->SpawnInstance_(This,iFlags,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_CompareTo_(ISWbemObjectEx* This,IDispatch *objWbemObject,LONG iFlags,VARIANT_BOOL *bResult) {
+    return This->lpVtbl->CompareTo_(This,objWbemObject,iFlags,bResult);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_get_Qualifiers_(ISWbemObjectEx* This,ISWbemQualifierSet **objWbemQualifierSet) {
+    return This->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_get_Properties_(ISWbemObjectEx* This,ISWbemPropertySet **objWbemPropertySet) {
+    return This->lpVtbl->get_Properties_(This,objWbemPropertySet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_get_Methods_(ISWbemObjectEx* This,ISWbemMethodSet **objWbemMethodSet) {
+    return This->lpVtbl->get_Methods_(This,objWbemMethodSet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_get_Derivation_(ISWbemObjectEx* This,VARIANT *strClassNameArray) {
+    return This->lpVtbl->get_Derivation_(This,strClassNameArray);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_get_Path_(ISWbemObjectEx* This,ISWbemObjectPath **objWbemObjectPath) {
+    return This->lpVtbl->get_Path_(This,objWbemObjectPath);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_get_Security_(ISWbemObjectEx* This,ISWbemSecurity **objWbemSecurity) {
+    return This->lpVtbl->get_Security_(This,objWbemSecurity);
+}
+/*** ISWbemObjectEx methods ***/
+static FORCEINLINE HRESULT ISWbemObjectEx_Refresh_(ISWbemObjectEx* This,LONG iFlags,IDispatch *objWbemNamedValueSet) {
+    return This->lpVtbl->Refresh_(This,iFlags,objWbemNamedValueSet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_get_SystemProperties_(ISWbemObjectEx* This,ISWbemPropertySet **objWbemPropertySet) {
+    return This->lpVtbl->get_SystemProperties_(This,objWbemPropertySet);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_GetText_(ISWbemObjectEx* This,WbemObjectTextFormatEnum iObjectTextFormat,LONG iFlags,IDispatch *objWbemNamedValueSet,BSTR *bsText) {
+    return This->lpVtbl->GetText_(This,iObjectTextFormat,iFlags,objWbemNamedValueSet,bsText);
+}
+static FORCEINLINE HRESULT ISWbemObjectEx_SetFromText_(ISWbemObjectEx* This,BSTR bsText,WbemObjectTextFormatEnum iObjectTextFormat,LONG iFlags,IDispatch *objWbemNamedValueSet) {
+    return This->lpVtbl->SetFromText_(This,bsText,iObjectTextFormat,iFlags,objWbemNamedValueSet);
+}
 #endif
 #endif
-  HRESULT WINAPI ISWbemObjectEx_Refresh__Proxy(ISWbemObjectEx *This,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-  void __RPC_STUB ISWbemObjectEx_Refresh__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectEx_get_SystemProperties__Proxy(ISWbemObjectEx *This,ISWbemPropertySet **objWbemPropertySet);
-  void __RPC_STUB ISWbemObjectEx_get_SystemProperties__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectEx_GetText__Proxy(ISWbemObjectEx *This,WbemObjectTextFormatEnum iObjectTextFormat,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,BSTR *bsText);
-  void __RPC_STUB ISWbemObjectEx_GetText__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemObjectEx_SetFromText__Proxy(ISWbemObjectEx *This,BSTR bsText,WbemObjectTextFormatEnum iObjectTextFormat,__LONG32 iFlags,IDispatch *objWbemNamedValueSet);
-  void __RPC_STUB ISWbemObjectEx_SetFromText__Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemObjectEx_Refresh__Proxy(
+    ISWbemObjectEx* This,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet);
+void __RPC_STUB ISWbemObjectEx_Refresh__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectEx_get_SystemProperties__Proxy(
+    ISWbemObjectEx* This,
+    ISWbemPropertySet **objWbemPropertySet);
+void __RPC_STUB ISWbemObjectEx_get_SystemProperties__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectEx_GetText__Proxy(
+    ISWbemObjectEx* This,
+    WbemObjectTextFormatEnum iObjectTextFormat,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    BSTR *bsText);
+void __RPC_STUB ISWbemObjectEx_GetText__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectEx_SetFromText__Proxy(
+    ISWbemObjectEx* This,
+    BSTR bsText,
+    WbemObjectTextFormatEnum iObjectTextFormat,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet);
+void __RPC_STUB ISWbemObjectEx_SetFromText__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemObjectEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemLastError interface
+ */
+#ifndef __ISWbemLastError_INTERFACE_DEFINED__
+#define __ISWbemLastError_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemLastError, 0xd962db84, 0xd4bb, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d962db84-d4bb-11d1-8b09-00600806d9b6")
+ISWbemLastError : public ISWbemObject
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemLastError, 0xd962db84, 0xd4bb, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemLastErrorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemLastError* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemLastError* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemLastError* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemLastError* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemLastError* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemLastError* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemLastError* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *Put_)(
+        ISWbemLastError* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectPath **objWbemObjectPath);
+
+    HRESULT (STDMETHODCALLTYPE *PutAsync_)(
+        ISWbemLastError* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Delete_)(
+        ISWbemLastError* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteAsync_)(
+        ISWbemLastError* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Instances_)(
+        ISWbemLastError* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *InstancesAsync_)(
+        ISWbemLastError* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Subclasses_)(
+        ISWbemLastError* This,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *SubclassesAsync_)(
+        ISWbemLastError* This,
+        IDispatch *objWbemSink,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Associators_)(
+        ISWbemLastError* This,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *AssociatorsAsync_)(
+        ISWbemLastError* This,
+        IDispatch *objWbemSink,
+        BSTR strAssocClass,
+        BSTR strResultClass,
+        BSTR strResultRole,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredAssocQualifier,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *References_)(
+        ISWbemLastError* This,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *ReferencesAsync_)(
+        ISWbemLastError* This,
+        IDispatch *objWbemSink,
+        BSTR strResultClass,
+        BSTR strRole,
+        VARIANT_BOOL bClassesOnly,
+        VARIANT_BOOL bSchemaOnly,
+        BSTR strRequiredQualifier,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethod_)(
+        ISWbemLastError* This,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemObject **objWbemOutParameters);
+
+    HRESULT (STDMETHODCALLTYPE *ExecMethodAsync_)(
+        ISWbemLastError* This,
+        IDispatch *objWbemSink,
+        BSTR strMethodName,
+        IDispatch *objWbemInParameters,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        IDispatch *objWbemAsyncContext);
+
+    HRESULT (STDMETHODCALLTYPE *Clone_)(
+        ISWbemLastError* This,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *GetObjectText_)(
+        ISWbemLastError* This,
+        LONG iFlags,
+        BSTR *strObjectText);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnDerivedClass_)(
+        ISWbemLastError* This,
+        LONG iFlags,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *SpawnInstance_)(
+        ISWbemLastError* This,
+        LONG iFlags,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *CompareTo_)(
+        ISWbemLastError* This,
+        IDispatch *objWbemObject,
+        LONG iFlags,
+        VARIANT_BOOL *bResult);
+
+    HRESULT (STDMETHODCALLTYPE *get_Qualifiers_)(
+        ISWbemLastError* This,
+        ISWbemQualifierSet **objWbemQualifierSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Properties_)(
+        ISWbemLastError* This,
+        ISWbemPropertySet **objWbemPropertySet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Methods_)(
+        ISWbemLastError* This,
+        ISWbemMethodSet **objWbemMethodSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Derivation_)(
+        ISWbemLastError* This,
+        VARIANT *strClassNameArray);
+
+    HRESULT (STDMETHODCALLTYPE *get_Path_)(
+        ISWbemLastError* This,
+        ISWbemObjectPath **objWbemObjectPath);
+
+    HRESULT (STDMETHODCALLTYPE *get_Security_)(
+        ISWbemLastError* This,
+        ISWbemSecurity **objWbemSecurity);
+
+    END_INTERFACE
+} ISWbemLastErrorVtbl;
+interface ISWbemLastError {
+    CONST_VTBL ISWbemLastErrorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemLastError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemLastError_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemLastError_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemLastError_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemLastError_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemLastError_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemLastError_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemObject methods ***/
+#define ISWbemLastError_Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath) (This)->lpVtbl->Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath)
+#define ISWbemLastError_PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemLastError_Delete_(This,iFlags,objWbemNamedValueSet) (This)->lpVtbl->Delete_(This,iFlags,objWbemNamedValueSet)
+#define ISWbemLastError_DeleteAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->DeleteAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemLastError_Instances_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->Instances_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet)
+#define ISWbemLastError_InstancesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->InstancesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemLastError_Subclasses_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->Subclasses_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet)
+#define ISWbemLastError_SubclassesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->SubclassesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemLastError_Associators_(This,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->Associators_(This,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet)
+#define ISWbemLastError_AssociatorsAsync_(This,objWbemSink,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->AssociatorsAsync_(This,objWbemSink,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemLastError_References_(This,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->References_(This,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet)
+#define ISWbemLastError_ReferencesAsync_(This,objWbemSink,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ReferencesAsync_(This,objWbemSink,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemLastError_ExecMethod_(This,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters) (This)->lpVtbl->ExecMethod_(This,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters)
+#define ISWbemLastError_ExecMethodAsync_(This,objWbemSink,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecMethodAsync_(This,objWbemSink,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
+#define ISWbemLastError_Clone_(This,objWbemObject) (This)->lpVtbl->Clone_(This,objWbemObject)
+#define ISWbemLastError_GetObjectText_(This,iFlags,strObjectText) (This)->lpVtbl->GetObjectText_(This,iFlags,strObjectText)
+#define ISWbemLastError_SpawnDerivedClass_(This,iFlags,objWbemObject) (This)->lpVtbl->SpawnDerivedClass_(This,iFlags,objWbemObject)
+#define ISWbemLastError_SpawnInstance_(This,iFlags,objWbemObject) (This)->lpVtbl->SpawnInstance_(This,iFlags,objWbemObject)
+#define ISWbemLastError_CompareTo_(This,objWbemObject,iFlags,bResult) (This)->lpVtbl->CompareTo_(This,objWbemObject,iFlags,bResult)
+#define ISWbemLastError_get_Qualifiers_(This,objWbemQualifierSet) (This)->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet)
+#define ISWbemLastError_get_Properties_(This,objWbemPropertySet) (This)->lpVtbl->get_Properties_(This,objWbemPropertySet)
+#define ISWbemLastError_get_Methods_(This,objWbemMethodSet) (This)->lpVtbl->get_Methods_(This,objWbemMethodSet)
+#define ISWbemLastError_get_Derivation_(This,strClassNameArray) (This)->lpVtbl->get_Derivation_(This,strClassNameArray)
+#define ISWbemLastError_get_Path_(This,objWbemObjectPath) (This)->lpVtbl->get_Path_(This,objWbemObjectPath)
+#define ISWbemLastError_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemLastError_QueryInterface(ISWbemLastError* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemLastError_AddRef(ISWbemLastError* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemLastError_Release(ISWbemLastError* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemLastError_GetTypeInfoCount(ISWbemLastError* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemLastError_GetTypeInfo(ISWbemLastError* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemLastError_GetIDsOfNames(ISWbemLastError* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemLastError_Invoke(ISWbemLastError* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemObject methods ***/
+static FORCEINLINE HRESULT ISWbemLastError_Put_(ISWbemLastError* This,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectPath **objWbemObjectPath) {
+    return This->lpVtbl->Put_(This,iFlags,objWbemNamedValueSet,objWbemObjectPath);
+}
+static FORCEINLINE HRESULT ISWbemLastError_PutAsync_(ISWbemLastError* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->PutAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemLastError_Delete_(ISWbemLastError* This,LONG iFlags,IDispatch *objWbemNamedValueSet) {
+    return This->lpVtbl->Delete_(This,iFlags,objWbemNamedValueSet);
+}
+static FORCEINLINE HRESULT ISWbemLastError_DeleteAsync_(ISWbemLastError* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->DeleteAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemLastError_Instances_(ISWbemLastError* This,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->Instances_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemLastError_InstancesAsync_(ISWbemLastError* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->InstancesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemLastError_Subclasses_(ISWbemLastError* This,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->Subclasses_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemLastError_SubclassesAsync_(ISWbemLastError* This,IDispatch *objWbemSink,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->SubclassesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemLastError_Associators_(ISWbemLastError* This,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->Associators_(This,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemLastError_AssociatorsAsync_(ISWbemLastError* This,IDispatch *objWbemSink,BSTR strAssocClass,BSTR strResultClass,BSTR strResultRole,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredAssocQualifier,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->AssociatorsAsync_(This,objWbemSink,strAssocClass,strResultClass,strResultRole,strRole,bClassesOnly,bSchemaOnly,strRequiredAssocQualifier,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemLastError_References_(ISWbemLastError* This,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->References_(This,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemLastError_ReferencesAsync_(ISWbemLastError* This,IDispatch *objWbemSink,BSTR strResultClass,BSTR strRole,VARIANT_BOOL bClassesOnly,VARIANT_BOOL bSchemaOnly,BSTR strRequiredQualifier,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ReferencesAsync_(This,objWbemSink,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemLastError_ExecMethod_(ISWbemLastError* This,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemObject **objWbemOutParameters) {
+    return This->lpVtbl->ExecMethod_(This,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters);
+}
+static FORCEINLINE HRESULT ISWbemLastError_ExecMethodAsync_(ISWbemLastError* This,IDispatch *objWbemSink,BSTR strMethodName,IDispatch *objWbemInParameters,LONG iFlags,IDispatch *objWbemNamedValueSet,IDispatch *objWbemAsyncContext) {
+    return This->lpVtbl->ExecMethodAsync_(This,objWbemSink,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext);
+}
+static FORCEINLINE HRESULT ISWbemLastError_Clone_(ISWbemLastError* This,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->Clone_(This,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemLastError_GetObjectText_(ISWbemLastError* This,LONG iFlags,BSTR *strObjectText) {
+    return This->lpVtbl->GetObjectText_(This,iFlags,strObjectText);
+}
+static FORCEINLINE HRESULT ISWbemLastError_SpawnDerivedClass_(ISWbemLastError* This,LONG iFlags,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->SpawnDerivedClass_(This,iFlags,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemLastError_SpawnInstance_(ISWbemLastError* This,LONG iFlags,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->SpawnInstance_(This,iFlags,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemLastError_CompareTo_(ISWbemLastError* This,IDispatch *objWbemObject,LONG iFlags,VARIANT_BOOL *bResult) {
+    return This->lpVtbl->CompareTo_(This,objWbemObject,iFlags,bResult);
+}
+static FORCEINLINE HRESULT ISWbemLastError_get_Qualifiers_(ISWbemLastError* This,ISWbemQualifierSet **objWbemQualifierSet) {
+    return This->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet);
+}
+static FORCEINLINE HRESULT ISWbemLastError_get_Properties_(ISWbemLastError* This,ISWbemPropertySet **objWbemPropertySet) {
+    return This->lpVtbl->get_Properties_(This,objWbemPropertySet);
+}
+static FORCEINLINE HRESULT ISWbemLastError_get_Methods_(ISWbemLastError* This,ISWbemMethodSet **objWbemMethodSet) {
+    return This->lpVtbl->get_Methods_(This,objWbemMethodSet);
+}
+static FORCEINLINE HRESULT ISWbemLastError_get_Derivation_(ISWbemLastError* This,VARIANT *strClassNameArray) {
+    return This->lpVtbl->get_Derivation_(This,strClassNameArray);
+}
+static FORCEINLINE HRESULT ISWbemLastError_get_Path_(ISWbemLastError* This,ISWbemObjectPath **objWbemObjectPath) {
+    return This->lpVtbl->get_Path_(This,objWbemObjectPath);
+}
+static FORCEINLINE HRESULT ISWbemLastError_get_Security_(ISWbemLastError* This,ISWbemSecurity **objWbemSecurity) {
+    return This->lpVtbl->get_Security_(This,objWbemSecurity);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISWbemLastError_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemObjectSet interface
+ */
+#ifndef __ISWbemObjectSet_INTERFACE_DEFINED__
+#define __ISWbemObjectSet_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemObjectSet, 0x76a6415f, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("76a6415f-cb41-11d1-8b02-00600806d9b6")
+ISWbemObjectSet : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **pUnk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        BSTR strObjectPath,
+        LONG iFlags = 0,
+        ISWbemObject **objWbemObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *iCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Security_(
+        ISWbemSecurity **objWbemSecurity) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ItemIndex(
+        LONG lIndex,
+        ISWbemObject **objWbemObject) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemObjectSet, 0x76a6415f, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemObjectSetVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemObjectSet* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemObjectSet* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemObjectSet* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemObjectSet* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemObjectSet* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemObjectSet* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemObjectSet* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemObjectSet methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        ISWbemObjectSet* This,
+        IUnknown **pUnk);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        ISWbemObjectSet* This,
+        BSTR strObjectPath,
+        LONG iFlags,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        ISWbemObjectSet* This,
+        LONG *iCount);
+
+    HRESULT (STDMETHODCALLTYPE *get_Security_)(
+        ISWbemObjectSet* This,
+        ISWbemSecurity **objWbemSecurity);
+
+    HRESULT (STDMETHODCALLTYPE *ItemIndex)(
+        ISWbemObjectSet* This,
+        LONG lIndex,
+        ISWbemObject **objWbemObject);
+
+    END_INTERFACE
+} ISWbemObjectSetVtbl;
+interface ISWbemObjectSet {
+    CONST_VTBL ISWbemObjectSetVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemObjectSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemObjectSet_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemObjectSet_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemObjectSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemObjectSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemObjectSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemObjectSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemObjectSet methods ***/
+#define ISWbemObjectSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
+#define ISWbemObjectSet_Item(This,strObjectPath,iFlags,objWbemObject) (This)->lpVtbl->Item(This,strObjectPath,iFlags,objWbemObject)
+#define ISWbemObjectSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
+#define ISWbemObjectSet_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
+#define ISWbemObjectSet_ItemIndex(This,lIndex,objWbemObject) (This)->lpVtbl->ItemIndex(This,lIndex,objWbemObject)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemObjectSet_QueryInterface(ISWbemObjectSet* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemObjectSet_AddRef(ISWbemObjectSet* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemObjectSet_Release(ISWbemObjectSet* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemObjectSet_GetTypeInfoCount(ISWbemObjectSet* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemObjectSet_GetTypeInfo(ISWbemObjectSet* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemObjectSet_GetIDsOfNames(ISWbemObjectSet* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemObjectSet_Invoke(ISWbemObjectSet* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemObjectSet methods ***/
+static FORCEINLINE HRESULT ISWbemObjectSet_get__NewEnum(ISWbemObjectSet* This,IUnknown **pUnk) {
+    return This->lpVtbl->get__NewEnum(This,pUnk);
+}
+static FORCEINLINE HRESULT ISWbemObjectSet_Item(ISWbemObjectSet* This,BSTR strObjectPath,LONG iFlags,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->Item(This,strObjectPath,iFlags,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemObjectSet_get_Count(ISWbemObjectSet* This,LONG *iCount) {
+    return This->lpVtbl->get_Count(This,iCount);
+}
+static FORCEINLINE HRESULT ISWbemObjectSet_get_Security_(ISWbemObjectSet* This,ISWbemSecurity **objWbemSecurity) {
+    return This->lpVtbl->get_Security_(This,objWbemSecurity);
+}
+static FORCEINLINE HRESULT ISWbemObjectSet_ItemIndex(ISWbemObjectSet* This,LONG lIndex,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->ItemIndex(This,lIndex,objWbemObject);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemObjectSet_get__NewEnum_Proxy(
+    ISWbemObjectSet* This,
+    IUnknown **pUnk);
+void __RPC_STUB ISWbemObjectSet_get__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectSet_Item_Proxy(
+    ISWbemObjectSet* This,
+    BSTR strObjectPath,
+    LONG iFlags,
+    ISWbemObject **objWbemObject);
+void __RPC_STUB ISWbemObjectSet_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectSet_get_Count_Proxy(
+    ISWbemObjectSet* This,
+    LONG *iCount);
+void __RPC_STUB ISWbemObjectSet_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectSet_get_Security__Proxy(
+    ISWbemObjectSet* This,
+    ISWbemSecurity **objWbemSecurity);
+void __RPC_STUB ISWbemObjectSet_get_Security__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectSet_ItemIndex_Proxy(
+    ISWbemObjectSet* This,
+    LONG lIndex,
+    ISWbemObject **objWbemObject);
+void __RPC_STUB ISWbemObjectSet_ItemIndex_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemObjectSet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemNamedValueSet interface
+ */
+#ifndef __ISWbemNamedValueSet_INTERFACE_DEFINED__
+#define __ISWbemNamedValueSet_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemNamedValueSet, 0xcf2376ea, 0xce8c, 0x11d1, 0x8b,0x05, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cf2376ea-ce8c-11d1-8b05-00600806d9b6")
+ISWbemNamedValueSet : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **pUnk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        BSTR strName,
+        LONG iFlags = 0,
+        ISWbemNamedValue **objWbemNamedValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *iCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Add(
+        BSTR strName,
+        VARIANT *varValue,
+        LONG iFlags = 0,
+        ISWbemNamedValue **objWbemNamedValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Remove(
+        BSTR strName,
+        LONG iFlags = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        ISWbemNamedValueSet **objWbemNamedValueSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteAll(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemNamedValueSet, 0xcf2376ea, 0xce8c, 0x11d1, 0x8b,0x05, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemNamedValueSetVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemNamedValueSet* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemNamedValueSet* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemNamedValueSet* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemNamedValueSet* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemNamedValueSet* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemNamedValueSet* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemNamedValueSet* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemNamedValueSet methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        ISWbemNamedValueSet* This,
+        IUnknown **pUnk);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        ISWbemNamedValueSet* This,
+        BSTR strName,
+        LONG iFlags,
+        ISWbemNamedValue **objWbemNamedValue);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        ISWbemNamedValueSet* This,
+        LONG *iCount);
+
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        ISWbemNamedValueSet* This,
+        BSTR strName,
+        VARIANT *varValue,
+        LONG iFlags,
+        ISWbemNamedValue **objWbemNamedValue);
+
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        ISWbemNamedValueSet* This,
+        BSTR strName,
+        LONG iFlags);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        ISWbemNamedValueSet* This,
+        ISWbemNamedValueSet **objWbemNamedValueSet);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteAll)(
+        ISWbemNamedValueSet* This);
+
+    END_INTERFACE
+} ISWbemNamedValueSetVtbl;
+interface ISWbemNamedValueSet {
+    CONST_VTBL ISWbemNamedValueSetVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemNamedValueSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemNamedValueSet_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemNamedValueSet_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemNamedValueSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemNamedValueSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemNamedValueSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemNamedValueSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemNamedValueSet methods ***/
+#define ISWbemNamedValueSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
+#define ISWbemNamedValueSet_Item(This,strName,iFlags,objWbemNamedValue) (This)->lpVtbl->Item(This,strName,iFlags,objWbemNamedValue)
+#define ISWbemNamedValueSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
+#define ISWbemNamedValueSet_Add(This,strName,varValue,iFlags,objWbemNamedValue) (This)->lpVtbl->Add(This,strName,varValue,iFlags,objWbemNamedValue)
+#define ISWbemNamedValueSet_Remove(This,strName,iFlags) (This)->lpVtbl->Remove(This,strName,iFlags)
+#define ISWbemNamedValueSet_Clone(This,objWbemNamedValueSet) (This)->lpVtbl->Clone(This,objWbemNamedValueSet)
+#define ISWbemNamedValueSet_DeleteAll(This) (This)->lpVtbl->DeleteAll(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemNamedValueSet_QueryInterface(ISWbemNamedValueSet* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemNamedValueSet_AddRef(ISWbemNamedValueSet* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemNamedValueSet_Release(ISWbemNamedValueSet* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemNamedValueSet_GetTypeInfoCount(ISWbemNamedValueSet* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemNamedValueSet_GetTypeInfo(ISWbemNamedValueSet* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemNamedValueSet_GetIDsOfNames(ISWbemNamedValueSet* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemNamedValueSet_Invoke(ISWbemNamedValueSet* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemNamedValueSet methods ***/
+static FORCEINLINE HRESULT ISWbemNamedValueSet_get__NewEnum(ISWbemNamedValueSet* This,IUnknown **pUnk) {
+    return This->lpVtbl->get__NewEnum(This,pUnk);
+}
+static FORCEINLINE HRESULT ISWbemNamedValueSet_Item(ISWbemNamedValueSet* This,BSTR strName,LONG iFlags,ISWbemNamedValue **objWbemNamedValue) {
+    return This->lpVtbl->Item(This,strName,iFlags,objWbemNamedValue);
+}
+static FORCEINLINE HRESULT ISWbemNamedValueSet_get_Count(ISWbemNamedValueSet* This,LONG *iCount) {
+    return This->lpVtbl->get_Count(This,iCount);
+}
+static FORCEINLINE HRESULT ISWbemNamedValueSet_Add(ISWbemNamedValueSet* This,BSTR strName,VARIANT *varValue,LONG iFlags,ISWbemNamedValue **objWbemNamedValue) {
+    return This->lpVtbl->Add(This,strName,varValue,iFlags,objWbemNamedValue);
+}
+static FORCEINLINE HRESULT ISWbemNamedValueSet_Remove(ISWbemNamedValueSet* This,BSTR strName,LONG iFlags) {
+    return This->lpVtbl->Remove(This,strName,iFlags);
+}
+static FORCEINLINE HRESULT ISWbemNamedValueSet_Clone(ISWbemNamedValueSet* This,ISWbemNamedValueSet **objWbemNamedValueSet) {
+    return This->lpVtbl->Clone(This,objWbemNamedValueSet);
+}
+static FORCEINLINE HRESULT ISWbemNamedValueSet_DeleteAll(ISWbemNamedValueSet* This) {
+    return This->lpVtbl->DeleteAll(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemNamedValueSet_get__NewEnum_Proxy(
+    ISWbemNamedValueSet* This,
+    IUnknown **pUnk);
+void __RPC_STUB ISWbemNamedValueSet_get__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemNamedValueSet_Item_Proxy(
+    ISWbemNamedValueSet* This,
+    BSTR strName,
+    LONG iFlags,
+    ISWbemNamedValue **objWbemNamedValue);
+void __RPC_STUB ISWbemNamedValueSet_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemNamedValueSet_get_Count_Proxy(
+    ISWbemNamedValueSet* This,
+    LONG *iCount);
+void __RPC_STUB ISWbemNamedValueSet_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemNamedValueSet_Add_Proxy(
+    ISWbemNamedValueSet* This,
+    BSTR strName,
+    VARIANT *varValue,
+    LONG iFlags,
+    ISWbemNamedValue **objWbemNamedValue);
+void __RPC_STUB ISWbemNamedValueSet_Add_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemNamedValueSet_Remove_Proxy(
+    ISWbemNamedValueSet* This,
+    BSTR strName,
+    LONG iFlags);
+void __RPC_STUB ISWbemNamedValueSet_Remove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemNamedValueSet_Clone_Proxy(
+    ISWbemNamedValueSet* This,
+    ISWbemNamedValueSet **objWbemNamedValueSet);
+void __RPC_STUB ISWbemNamedValueSet_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemNamedValueSet_DeleteAll_Proxy(
+    ISWbemNamedValueSet* This);
+void __RPC_STUB ISWbemNamedValueSet_DeleteAll_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemNamedValueSet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemNamedValue interface
+ */
+#ifndef __ISWbemNamedValue_INTERFACE_DEFINED__
+#define __ISWbemNamedValue_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemNamedValue, 0x76a64164, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("76a64164-cb41-11d1-8b02-00600806d9b6")
+ISWbemNamedValue : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Value(
+        VARIANT *varValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Value(
+        VARIANT *varValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *strName) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemNamedValue, 0x76a64164, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemNamedValueVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemNamedValue* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemNamedValue* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemNamedValue* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemNamedValue* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemNamedValue* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemNamedValue* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemNamedValue* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemNamedValue methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Value)(
+        ISWbemNamedValue* This,
+        VARIANT *varValue);
+
+    HRESULT (STDMETHODCALLTYPE *put_Value)(
+        ISWbemNamedValue* This,
+        VARIANT *varValue);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        ISWbemNamedValue* This,
+        BSTR *strName);
+
+    END_INTERFACE
+} ISWbemNamedValueVtbl;
+interface ISWbemNamedValue {
+    CONST_VTBL ISWbemNamedValueVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemNamedValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemNamedValue_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemNamedValue_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemNamedValue_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemNamedValue_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemNamedValue_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemNamedValue_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemNamedValue methods ***/
+#define ISWbemNamedValue_get_Value(This,varValue) (This)->lpVtbl->get_Value(This,varValue)
+#define ISWbemNamedValue_put_Value(This,varValue) (This)->lpVtbl->put_Value(This,varValue)
+#define ISWbemNamedValue_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemNamedValue_QueryInterface(ISWbemNamedValue* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemNamedValue_AddRef(ISWbemNamedValue* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemNamedValue_Release(ISWbemNamedValue* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemNamedValue_GetTypeInfoCount(ISWbemNamedValue* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemNamedValue_GetTypeInfo(ISWbemNamedValue* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemNamedValue_GetIDsOfNames(ISWbemNamedValue* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemNamedValue_Invoke(ISWbemNamedValue* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemNamedValue methods ***/
+static FORCEINLINE HRESULT ISWbemNamedValue_get_Value(ISWbemNamedValue* This,VARIANT *varValue) {
+    return This->lpVtbl->get_Value(This,varValue);
+}
+static FORCEINLINE HRESULT ISWbemNamedValue_put_Value(ISWbemNamedValue* This,VARIANT *varValue) {
+    return This->lpVtbl->put_Value(This,varValue);
+}
+static FORCEINLINE HRESULT ISWbemNamedValue_get_Name(ISWbemNamedValue* This,BSTR *strName) {
+    return This->lpVtbl->get_Name(This,strName);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemNamedValue_get_Value_Proxy(
+    ISWbemNamedValue* This,
+    VARIANT *varValue);
+void __RPC_STUB ISWbemNamedValue_get_Value_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemNamedValue_put_Value_Proxy(
+    ISWbemNamedValue* This,
+    VARIANT *varValue);
+void __RPC_STUB ISWbemNamedValue_put_Value_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemNamedValue_get_Name_Proxy(
+    ISWbemNamedValue* This,
+    BSTR *strName);
+void __RPC_STUB ISWbemNamedValue_get_Name_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemNamedValue_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemObjectPath interface
+ */
+#ifndef __ISWbemObjectPath_INTERFACE_DEFINED__
+#define __ISWbemObjectPath_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemObjectPath, 0x5791bc27, 0xce9c, 0x11d1, 0x97,0xbf, 0x00,0x00,0xf8,0x1e,0x84,0x9c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5791bc27-ce9c-11d1-97bf-0000f81e849c")
+ISWbemObjectPath : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Path(
+        BSTR *strPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Path(
+        BSTR strPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RelPath(
+        BSTR *strRelPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_RelPath(
+        BSTR strRelPath) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Server(
+        BSTR *strServer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Server(
+        BSTR strServer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Namespace(
+        BSTR *strNamespace) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Namespace(
+        BSTR strNamespace) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ParentNamespace(
+        BSTR *strParentNamespace) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DisplayName(
+        BSTR *strDisplayName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_DisplayName(
+        BSTR strDisplayName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Class(
+        BSTR *strClass) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Class(
+        BSTR strClass) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsClass(
+        VARIANT_BOOL *bIsClass) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetAsClass(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsSingleton(
+        VARIANT_BOOL *bIsSingleton) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetAsSingleton(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Keys(
+        ISWbemNamedValueSet **objWbemNamedValueSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Security_(
+        ISWbemSecurity **objWbemSecurity) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Locale(
+        BSTR *strLocale) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Locale(
+        BSTR strLocale) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Authority(
+        BSTR *strAuthority) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Authority(
+        BSTR strAuthority) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemObjectPath, 0x5791bc27, 0xce9c, 0x11d1, 0x97,0xbf, 0x00,0x00,0xf8,0x1e,0x84,0x9c)
+#endif
+#else
+typedef struct ISWbemObjectPathVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemObjectPath* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemObjectPath* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemObjectPath* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemObjectPath* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemObjectPath* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemObjectPath* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemObjectPath* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemObjectPath methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Path)(
+        ISWbemObjectPath* This,
+        BSTR *strPath);
+
+    HRESULT (STDMETHODCALLTYPE *put_Path)(
+        ISWbemObjectPath* This,
+        BSTR strPath);
+
+    HRESULT (STDMETHODCALLTYPE *get_RelPath)(
+        ISWbemObjectPath* This,
+        BSTR *strRelPath);
+
+    HRESULT (STDMETHODCALLTYPE *put_RelPath)(
+        ISWbemObjectPath* This,
+        BSTR strRelPath);
+
+    HRESULT (STDMETHODCALLTYPE *get_Server)(
+        ISWbemObjectPath* This,
+        BSTR *strServer);
+
+    HRESULT (STDMETHODCALLTYPE *put_Server)(
+        ISWbemObjectPath* This,
+        BSTR strServer);
+
+    HRESULT (STDMETHODCALLTYPE *get_Namespace)(
+        ISWbemObjectPath* This,
+        BSTR *strNamespace);
+
+    HRESULT (STDMETHODCALLTYPE *put_Namespace)(
+        ISWbemObjectPath* This,
+        BSTR strNamespace);
+
+    HRESULT (STDMETHODCALLTYPE *get_ParentNamespace)(
+        ISWbemObjectPath* This,
+        BSTR *strParentNamespace);
+
+    HRESULT (STDMETHODCALLTYPE *get_DisplayName)(
+        ISWbemObjectPath* This,
+        BSTR *strDisplayName);
+
+    HRESULT (STDMETHODCALLTYPE *put_DisplayName)(
+        ISWbemObjectPath* This,
+        BSTR strDisplayName);
+
+    HRESULT (STDMETHODCALLTYPE *get_Class)(
+        ISWbemObjectPath* This,
+        BSTR *strClass);
+
+    HRESULT (STDMETHODCALLTYPE *put_Class)(
+        ISWbemObjectPath* This,
+        BSTR strClass);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsClass)(
+        ISWbemObjectPath* This,
+        VARIANT_BOOL *bIsClass);
+
+    HRESULT (STDMETHODCALLTYPE *SetAsClass)(
+        ISWbemObjectPath* This);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsSingleton)(
+        ISWbemObjectPath* This,
+        VARIANT_BOOL *bIsSingleton);
+
+    HRESULT (STDMETHODCALLTYPE *SetAsSingleton)(
+        ISWbemObjectPath* This);
+
+    HRESULT (STDMETHODCALLTYPE *get_Keys)(
+        ISWbemObjectPath* This,
+        ISWbemNamedValueSet **objWbemNamedValueSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Security_)(
+        ISWbemObjectPath* This,
+        ISWbemSecurity **objWbemSecurity);
+
+    HRESULT (STDMETHODCALLTYPE *get_Locale)(
+        ISWbemObjectPath* This,
+        BSTR *strLocale);
+
+    HRESULT (STDMETHODCALLTYPE *put_Locale)(
+        ISWbemObjectPath* This,
+        BSTR strLocale);
+
+    HRESULT (STDMETHODCALLTYPE *get_Authority)(
+        ISWbemObjectPath* This,
+        BSTR *strAuthority);
+
+    HRESULT (STDMETHODCALLTYPE *put_Authority)(
+        ISWbemObjectPath* This,
+        BSTR strAuthority);
+
+    END_INTERFACE
+} ISWbemObjectPathVtbl;
+interface ISWbemObjectPath {
+    CONST_VTBL ISWbemObjectPathVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemObjectPath_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemObjectPath_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemObjectPath_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemObjectPath_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemObjectPath_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemObjectPath_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemObjectPath_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemObjectPath methods ***/
+#define ISWbemObjectPath_get_Path(This,strPath) (This)->lpVtbl->get_Path(This,strPath)
+#define ISWbemObjectPath_put_Path(This,strPath) (This)->lpVtbl->put_Path(This,strPath)
+#define ISWbemObjectPath_get_RelPath(This,strRelPath) (This)->lpVtbl->get_RelPath(This,strRelPath)
+#define ISWbemObjectPath_put_RelPath(This,strRelPath) (This)->lpVtbl->put_RelPath(This,strRelPath)
+#define ISWbemObjectPath_get_Server(This,strServer) (This)->lpVtbl->get_Server(This,strServer)
+#define ISWbemObjectPath_put_Server(This,strServer) (This)->lpVtbl->put_Server(This,strServer)
+#define ISWbemObjectPath_get_Namespace(This,strNamespace) (This)->lpVtbl->get_Namespace(This,strNamespace)
+#define ISWbemObjectPath_put_Namespace(This,strNamespace) (This)->lpVtbl->put_Namespace(This,strNamespace)
+#define ISWbemObjectPath_get_ParentNamespace(This,strParentNamespace) (This)->lpVtbl->get_ParentNamespace(This,strParentNamespace)
+#define ISWbemObjectPath_get_DisplayName(This,strDisplayName) (This)->lpVtbl->get_DisplayName(This,strDisplayName)
+#define ISWbemObjectPath_put_DisplayName(This,strDisplayName) (This)->lpVtbl->put_DisplayName(This,strDisplayName)
+#define ISWbemObjectPath_get_Class(This,strClass) (This)->lpVtbl->get_Class(This,strClass)
+#define ISWbemObjectPath_put_Class(This,strClass) (This)->lpVtbl->put_Class(This,strClass)
+#define ISWbemObjectPath_get_IsClass(This,bIsClass) (This)->lpVtbl->get_IsClass(This,bIsClass)
+#define ISWbemObjectPath_SetAsClass(This) (This)->lpVtbl->SetAsClass(This)
+#define ISWbemObjectPath_get_IsSingleton(This,bIsSingleton) (This)->lpVtbl->get_IsSingleton(This,bIsSingleton)
+#define ISWbemObjectPath_SetAsSingleton(This) (This)->lpVtbl->SetAsSingleton(This)
+#define ISWbemObjectPath_get_Keys(This,objWbemNamedValueSet) (This)->lpVtbl->get_Keys(This,objWbemNamedValueSet)
+#define ISWbemObjectPath_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
+#define ISWbemObjectPath_get_Locale(This,strLocale) (This)->lpVtbl->get_Locale(This,strLocale)
+#define ISWbemObjectPath_put_Locale(This,strLocale) (This)->lpVtbl->put_Locale(This,strLocale)
+#define ISWbemObjectPath_get_Authority(This,strAuthority) (This)->lpVtbl->get_Authority(This,strAuthority)
+#define ISWbemObjectPath_put_Authority(This,strAuthority) (This)->lpVtbl->put_Authority(This,strAuthority)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemObjectPath_QueryInterface(ISWbemObjectPath* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemObjectPath_AddRef(ISWbemObjectPath* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemObjectPath_Release(ISWbemObjectPath* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemObjectPath_GetTypeInfoCount(ISWbemObjectPath* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_GetTypeInfo(ISWbemObjectPath* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_GetIDsOfNames(ISWbemObjectPath* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_Invoke(ISWbemObjectPath* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemObjectPath methods ***/
+static FORCEINLINE HRESULT ISWbemObjectPath_get_Path(ISWbemObjectPath* This,BSTR *strPath) {
+    return This->lpVtbl->get_Path(This,strPath);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_put_Path(ISWbemObjectPath* This,BSTR strPath) {
+    return This->lpVtbl->put_Path(This,strPath);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_RelPath(ISWbemObjectPath* This,BSTR *strRelPath) {
+    return This->lpVtbl->get_RelPath(This,strRelPath);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_put_RelPath(ISWbemObjectPath* This,BSTR strRelPath) {
+    return This->lpVtbl->put_RelPath(This,strRelPath);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_Server(ISWbemObjectPath* This,BSTR *strServer) {
+    return This->lpVtbl->get_Server(This,strServer);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_put_Server(ISWbemObjectPath* This,BSTR strServer) {
+    return This->lpVtbl->put_Server(This,strServer);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_Namespace(ISWbemObjectPath* This,BSTR *strNamespace) {
+    return This->lpVtbl->get_Namespace(This,strNamespace);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_put_Namespace(ISWbemObjectPath* This,BSTR strNamespace) {
+    return This->lpVtbl->put_Namespace(This,strNamespace);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_ParentNamespace(ISWbemObjectPath* This,BSTR *strParentNamespace) {
+    return This->lpVtbl->get_ParentNamespace(This,strParentNamespace);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_DisplayName(ISWbemObjectPath* This,BSTR *strDisplayName) {
+    return This->lpVtbl->get_DisplayName(This,strDisplayName);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_put_DisplayName(ISWbemObjectPath* This,BSTR strDisplayName) {
+    return This->lpVtbl->put_DisplayName(This,strDisplayName);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_Class(ISWbemObjectPath* This,BSTR *strClass) {
+    return This->lpVtbl->get_Class(This,strClass);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_put_Class(ISWbemObjectPath* This,BSTR strClass) {
+    return This->lpVtbl->put_Class(This,strClass);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_IsClass(ISWbemObjectPath* This,VARIANT_BOOL *bIsClass) {
+    return This->lpVtbl->get_IsClass(This,bIsClass);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_SetAsClass(ISWbemObjectPath* This) {
+    return This->lpVtbl->SetAsClass(This);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_IsSingleton(ISWbemObjectPath* This,VARIANT_BOOL *bIsSingleton) {
+    return This->lpVtbl->get_IsSingleton(This,bIsSingleton);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_SetAsSingleton(ISWbemObjectPath* This) {
+    return This->lpVtbl->SetAsSingleton(This);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_Keys(ISWbemObjectPath* This,ISWbemNamedValueSet **objWbemNamedValueSet) {
+    return This->lpVtbl->get_Keys(This,objWbemNamedValueSet);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_Security_(ISWbemObjectPath* This,ISWbemSecurity **objWbemSecurity) {
+    return This->lpVtbl->get_Security_(This,objWbemSecurity);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_Locale(ISWbemObjectPath* This,BSTR *strLocale) {
+    return This->lpVtbl->get_Locale(This,strLocale);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_put_Locale(ISWbemObjectPath* This,BSTR strLocale) {
+    return This->lpVtbl->put_Locale(This,strLocale);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_get_Authority(ISWbemObjectPath* This,BSTR *strAuthority) {
+    return This->lpVtbl->get_Authority(This,strAuthority);
+}
+static FORCEINLINE HRESULT ISWbemObjectPath_put_Authority(ISWbemObjectPath* This,BSTR strAuthority) {
+    return This->lpVtbl->put_Authority(This,strAuthority);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_Path_Proxy(
+    ISWbemObjectPath* This,
+    BSTR *strPath);
+void __RPC_STUB ISWbemObjectPath_get_Path_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_put_Path_Proxy(
+    ISWbemObjectPath* This,
+    BSTR strPath);
+void __RPC_STUB ISWbemObjectPath_put_Path_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_RelPath_Proxy(
+    ISWbemObjectPath* This,
+    BSTR *strRelPath);
+void __RPC_STUB ISWbemObjectPath_get_RelPath_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_put_RelPath_Proxy(
+    ISWbemObjectPath* This,
+    BSTR strRelPath);
+void __RPC_STUB ISWbemObjectPath_put_RelPath_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_Server_Proxy(
+    ISWbemObjectPath* This,
+    BSTR *strServer);
+void __RPC_STUB ISWbemObjectPath_get_Server_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_put_Server_Proxy(
+    ISWbemObjectPath* This,
+    BSTR strServer);
+void __RPC_STUB ISWbemObjectPath_put_Server_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_Namespace_Proxy(
+    ISWbemObjectPath* This,
+    BSTR *strNamespace);
+void __RPC_STUB ISWbemObjectPath_get_Namespace_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_put_Namespace_Proxy(
+    ISWbemObjectPath* This,
+    BSTR strNamespace);
+void __RPC_STUB ISWbemObjectPath_put_Namespace_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_ParentNamespace_Proxy(
+    ISWbemObjectPath* This,
+    BSTR *strParentNamespace);
+void __RPC_STUB ISWbemObjectPath_get_ParentNamespace_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_DisplayName_Proxy(
+    ISWbemObjectPath* This,
+    BSTR *strDisplayName);
+void __RPC_STUB ISWbemObjectPath_get_DisplayName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_put_DisplayName_Proxy(
+    ISWbemObjectPath* This,
+    BSTR strDisplayName);
+void __RPC_STUB ISWbemObjectPath_put_DisplayName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_Class_Proxy(
+    ISWbemObjectPath* This,
+    BSTR *strClass);
+void __RPC_STUB ISWbemObjectPath_get_Class_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_put_Class_Proxy(
+    ISWbemObjectPath* This,
+    BSTR strClass);
+void __RPC_STUB ISWbemObjectPath_put_Class_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_IsClass_Proxy(
+    ISWbemObjectPath* This,
+    VARIANT_BOOL *bIsClass);
+void __RPC_STUB ISWbemObjectPath_get_IsClass_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_SetAsClass_Proxy(
+    ISWbemObjectPath* This);
+void __RPC_STUB ISWbemObjectPath_SetAsClass_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_IsSingleton_Proxy(
+    ISWbemObjectPath* This,
+    VARIANT_BOOL *bIsSingleton);
+void __RPC_STUB ISWbemObjectPath_get_IsSingleton_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_SetAsSingleton_Proxy(
+    ISWbemObjectPath* This);
+void __RPC_STUB ISWbemObjectPath_SetAsSingleton_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_Keys_Proxy(
+    ISWbemObjectPath* This,
+    ISWbemNamedValueSet **objWbemNamedValueSet);
+void __RPC_STUB ISWbemObjectPath_get_Keys_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_Security__Proxy(
+    ISWbemObjectPath* This,
+    ISWbemSecurity **objWbemSecurity);
+void __RPC_STUB ISWbemObjectPath_get_Security__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_Locale_Proxy(
+    ISWbemObjectPath* This,
+    BSTR *strLocale);
+void __RPC_STUB ISWbemObjectPath_get_Locale_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_put_Locale_Proxy(
+    ISWbemObjectPath* This,
+    BSTR strLocale);
+void __RPC_STUB ISWbemObjectPath_put_Locale_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_get_Authority_Proxy(
+    ISWbemObjectPath* This,
+    BSTR *strAuthority);
+void __RPC_STUB ISWbemObjectPath_get_Authority_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemObjectPath_put_Authority_Proxy(
+    ISWbemObjectPath* This,
+    BSTR strAuthority);
+void __RPC_STUB ISWbemObjectPath_put_Authority_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemObjectPath_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemProperty interface
+ */
+#ifndef __ISWbemProperty_INTERFACE_DEFINED__
+#define __ISWbemProperty_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemProperty, 0x1a388f98, 0xd4ba, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1a388f98-d4ba-11d1-8b09-00600806d9b6")
+ISWbemProperty : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Value(
+        VARIANT *varValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Value(
+        VARIANT *varValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *strName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsLocal(
+        VARIANT_BOOL *bIsLocal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Origin(
+        BSTR *strOrigin) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CIMType(
+        WbemCimtypeEnum *iCimType) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Qualifiers_(
+        ISWbemQualifierSet **objWbemQualifierSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsArray(
+        VARIANT_BOOL *bIsArray) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemProperty, 0x1a388f98, 0xd4ba, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemPropertyVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemProperty* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemProperty* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemProperty* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemProperty* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemProperty* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemProperty* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemProperty* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemProperty methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Value)(
+        ISWbemProperty* This,
+        VARIANT *varValue);
+
+    HRESULT (STDMETHODCALLTYPE *put_Value)(
+        ISWbemProperty* This,
+        VARIANT *varValue);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        ISWbemProperty* This,
+        BSTR *strName);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsLocal)(
+        ISWbemProperty* This,
+        VARIANT_BOOL *bIsLocal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Origin)(
+        ISWbemProperty* This,
+        BSTR *strOrigin);
+
+    HRESULT (STDMETHODCALLTYPE *get_CIMType)(
+        ISWbemProperty* This,
+        WbemCimtypeEnum *iCimType);
+
+    HRESULT (STDMETHODCALLTYPE *get_Qualifiers_)(
+        ISWbemProperty* This,
+        ISWbemQualifierSet **objWbemQualifierSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsArray)(
+        ISWbemProperty* This,
+        VARIANT_BOOL *bIsArray);
+
+    END_INTERFACE
+} ISWbemPropertyVtbl;
+interface ISWbemProperty {
+    CONST_VTBL ISWbemPropertyVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemProperty_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemProperty methods ***/
+#define ISWbemProperty_get_Value(This,varValue) (This)->lpVtbl->get_Value(This,varValue)
+#define ISWbemProperty_put_Value(This,varValue) (This)->lpVtbl->put_Value(This,varValue)
+#define ISWbemProperty_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
+#define ISWbemProperty_get_IsLocal(This,bIsLocal) (This)->lpVtbl->get_IsLocal(This,bIsLocal)
+#define ISWbemProperty_get_Origin(This,strOrigin) (This)->lpVtbl->get_Origin(This,strOrigin)
+#define ISWbemProperty_get_CIMType(This,iCimType) (This)->lpVtbl->get_CIMType(This,iCimType)
+#define ISWbemProperty_get_Qualifiers_(This,objWbemQualifierSet) (This)->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet)
+#define ISWbemProperty_get_IsArray(This,bIsArray) (This)->lpVtbl->get_IsArray(This,bIsArray)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemProperty_QueryInterface(ISWbemProperty* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemProperty_AddRef(ISWbemProperty* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemProperty_Release(ISWbemProperty* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemProperty_GetTypeInfoCount(ISWbemProperty* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemProperty_GetTypeInfo(ISWbemProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemProperty_GetIDsOfNames(ISWbemProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemProperty_Invoke(ISWbemProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemProperty methods ***/
+static FORCEINLINE HRESULT ISWbemProperty_get_Value(ISWbemProperty* This,VARIANT *varValue) {
+    return This->lpVtbl->get_Value(This,varValue);
+}
+static FORCEINLINE HRESULT ISWbemProperty_put_Value(ISWbemProperty* This,VARIANT *varValue) {
+    return This->lpVtbl->put_Value(This,varValue);
+}
+static FORCEINLINE HRESULT ISWbemProperty_get_Name(ISWbemProperty* This,BSTR *strName) {
+    return This->lpVtbl->get_Name(This,strName);
+}
+static FORCEINLINE HRESULT ISWbemProperty_get_IsLocal(ISWbemProperty* This,VARIANT_BOOL *bIsLocal) {
+    return This->lpVtbl->get_IsLocal(This,bIsLocal);
+}
+static FORCEINLINE HRESULT ISWbemProperty_get_Origin(ISWbemProperty* This,BSTR *strOrigin) {
+    return This->lpVtbl->get_Origin(This,strOrigin);
+}
+static FORCEINLINE HRESULT ISWbemProperty_get_CIMType(ISWbemProperty* This,WbemCimtypeEnum *iCimType) {
+    return This->lpVtbl->get_CIMType(This,iCimType);
+}
+static FORCEINLINE HRESULT ISWbemProperty_get_Qualifiers_(ISWbemProperty* This,ISWbemQualifierSet **objWbemQualifierSet) {
+    return This->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet);
+}
+static FORCEINLINE HRESULT ISWbemProperty_get_IsArray(ISWbemProperty* This,VARIANT_BOOL *bIsArray) {
+    return This->lpVtbl->get_IsArray(This,bIsArray);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemProperty_get_Value_Proxy(
+    ISWbemProperty* This,
+    VARIANT *varValue);
+void __RPC_STUB ISWbemProperty_get_Value_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemProperty_put_Value_Proxy(
+    ISWbemProperty* This,
+    VARIANT *varValue);
+void __RPC_STUB ISWbemProperty_put_Value_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemProperty_get_Name_Proxy(
+    ISWbemProperty* This,
+    BSTR *strName);
+void __RPC_STUB ISWbemProperty_get_Name_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemProperty_get_IsLocal_Proxy(
+    ISWbemProperty* This,
+    VARIANT_BOOL *bIsLocal);
+void __RPC_STUB ISWbemProperty_get_IsLocal_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemProperty_get_Origin_Proxy(
+    ISWbemProperty* This,
+    BSTR *strOrigin);
+void __RPC_STUB ISWbemProperty_get_Origin_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemProperty_get_CIMType_Proxy(
+    ISWbemProperty* This,
+    WbemCimtypeEnum *iCimType);
+void __RPC_STUB ISWbemProperty_get_CIMType_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemProperty_get_Qualifiers__Proxy(
+    ISWbemProperty* This,
+    ISWbemQualifierSet **objWbemQualifierSet);
+void __RPC_STUB ISWbemProperty_get_Qualifiers__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemProperty_get_IsArray_Proxy(
+    ISWbemProperty* This,
+    VARIANT_BOOL *bIsArray);
+void __RPC_STUB ISWbemProperty_get_IsArray_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemProperty_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemPropertySet interface
+ */
+#ifndef __ISWbemPropertySet_INTERFACE_DEFINED__
+#define __ISWbemPropertySet_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemPropertySet, 0xdea0a7b2, 0xd4ba, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dea0a7b2-d4ba-11d1-8b09-00600806d9b6")
+ISWbemPropertySet : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **pUnk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        BSTR strName,
+        LONG iFlags = 0,
+        ISWbemProperty **objWbemProperty) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *iCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Add(
+        BSTR strName,
+        WbemCimtypeEnum iCIMType,
+        VARIANT_BOOL bIsArray = FALSE,
+        LONG iFlags = 0,
+        ISWbemProperty **objWbemProperty) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Remove(
+        BSTR strName,
+        LONG iFlags = 0) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemPropertySet, 0xdea0a7b2, 0xd4ba, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemPropertySetVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemPropertySet* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemPropertySet* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemPropertySet* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemPropertySet* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemPropertySet* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemPropertySet* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemPropertySet* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemPropertySet methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        ISWbemPropertySet* This,
+        IUnknown **pUnk);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        ISWbemPropertySet* This,
+        BSTR strName,
+        LONG iFlags,
+        ISWbemProperty **objWbemProperty);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        ISWbemPropertySet* This,
+        LONG *iCount);
+
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        ISWbemPropertySet* This,
+        BSTR strName,
+        WbemCimtypeEnum iCIMType,
+        VARIANT_BOOL bIsArray,
+        LONG iFlags,
+        ISWbemProperty **objWbemProperty);
+
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        ISWbemPropertySet* This,
+        BSTR strName,
+        LONG iFlags);
+
+    END_INTERFACE
+} ISWbemPropertySetVtbl;
+interface ISWbemPropertySet {
+    CONST_VTBL ISWbemPropertySetVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemPropertySet_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemPropertySet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemPropertySet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemPropertySet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemPropertySet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemPropertySet methods ***/
+#define ISWbemPropertySet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
+#define ISWbemPropertySet_Item(This,strName,iFlags,objWbemProperty) (This)->lpVtbl->Item(This,strName,iFlags,objWbemProperty)
+#define ISWbemPropertySet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
+#define ISWbemPropertySet_Add(This,strName,iCIMType,bIsArray,iFlags,objWbemProperty) (This)->lpVtbl->Add(This,strName,iCIMType,bIsArray,iFlags,objWbemProperty)
+#define ISWbemPropertySet_Remove(This,strName,iFlags) (This)->lpVtbl->Remove(This,strName,iFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemPropertySet_QueryInterface(ISWbemPropertySet* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemPropertySet_AddRef(ISWbemPropertySet* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemPropertySet_Release(ISWbemPropertySet* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemPropertySet_GetTypeInfoCount(ISWbemPropertySet* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemPropertySet_GetTypeInfo(ISWbemPropertySet* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemPropertySet_GetIDsOfNames(ISWbemPropertySet* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemPropertySet_Invoke(ISWbemPropertySet* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemPropertySet methods ***/
+static FORCEINLINE HRESULT ISWbemPropertySet_get__NewEnum(ISWbemPropertySet* This,IUnknown **pUnk) {
+    return This->lpVtbl->get__NewEnum(This,pUnk);
+}
+static FORCEINLINE HRESULT ISWbemPropertySet_Item(ISWbemPropertySet* This,BSTR strName,LONG iFlags,ISWbemProperty **objWbemProperty) {
+    return This->lpVtbl->Item(This,strName,iFlags,objWbemProperty);
+}
+static FORCEINLINE HRESULT ISWbemPropertySet_get_Count(ISWbemPropertySet* This,LONG *iCount) {
+    return This->lpVtbl->get_Count(This,iCount);
+}
+static FORCEINLINE HRESULT ISWbemPropertySet_Add(ISWbemPropertySet* This,BSTR strName,WbemCimtypeEnum iCIMType,VARIANT_BOOL bIsArray,LONG iFlags,ISWbemProperty **objWbemProperty) {
+    return This->lpVtbl->Add(This,strName,iCIMType,bIsArray,iFlags,objWbemProperty);
+}
+static FORCEINLINE HRESULT ISWbemPropertySet_Remove(ISWbemPropertySet* This,BSTR strName,LONG iFlags) {
+    return This->lpVtbl->Remove(This,strName,iFlags);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemPropertySet_get__NewEnum_Proxy(
+    ISWbemPropertySet* This,
+    IUnknown **pUnk);
+void __RPC_STUB ISWbemPropertySet_get__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPropertySet_Item_Proxy(
+    ISWbemPropertySet* This,
+    BSTR strName,
+    LONG iFlags,
+    ISWbemProperty **objWbemProperty);
+void __RPC_STUB ISWbemPropertySet_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPropertySet_get_Count_Proxy(
+    ISWbemPropertySet* This,
+    LONG *iCount);
+void __RPC_STUB ISWbemPropertySet_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPropertySet_Add_Proxy(
+    ISWbemPropertySet* This,
+    BSTR strName,
+    WbemCimtypeEnum iCIMType,
+    VARIANT_BOOL bIsArray,
+    LONG iFlags,
+    ISWbemProperty **objWbemProperty);
+void __RPC_STUB ISWbemPropertySet_Add_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPropertySet_Remove_Proxy(
+    ISWbemPropertySet* This,
+    BSTR strName,
+    LONG iFlags);
+void __RPC_STUB ISWbemPropertySet_Remove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemPropertySet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemQualifier interface
+ */
+#ifndef __ISWbemQualifier_INTERFACE_DEFINED__
+#define __ISWbemQualifier_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemQualifier, 0x79b05932, 0xd3b7, 0x11d1, 0x8b,0x06, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("79b05932-d3b7-11d1-8b06-00600806d9b6")
+ISWbemQualifier : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Value(
+        VARIANT *varValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Value(
+        VARIANT *varValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *strName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsLocal(
+        VARIANT_BOOL *bIsLocal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PropagatesToSubclass(
+        VARIANT_BOOL *bPropagatesToSubclass) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_PropagatesToSubclass(
+        VARIANT_BOOL bPropagatesToSubclass) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PropagatesToInstance(
+        VARIANT_BOOL *bPropagatesToInstance) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_PropagatesToInstance(
+        VARIANT_BOOL bPropagatesToInstance) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsOverridable(
+        VARIANT_BOOL *bIsOverridable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_IsOverridable(
+        VARIANT_BOOL bIsOverridable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsAmended(
+        VARIANT_BOOL *bIsAmended) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemQualifier, 0x79b05932, 0xd3b7, 0x11d1, 0x8b,0x06, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemQualifierVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemQualifier* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemQualifier* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemQualifier* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemQualifier* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemQualifier* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemQualifier* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemQualifier* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemQualifier methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Value)(
+        ISWbemQualifier* This,
+        VARIANT *varValue);
+
+    HRESULT (STDMETHODCALLTYPE *put_Value)(
+        ISWbemQualifier* This,
+        VARIANT *varValue);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        ISWbemQualifier* This,
+        BSTR *strName);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsLocal)(
+        ISWbemQualifier* This,
+        VARIANT_BOOL *bIsLocal);
+
+    HRESULT (STDMETHODCALLTYPE *get_PropagatesToSubclass)(
+        ISWbemQualifier* This,
+        VARIANT_BOOL *bPropagatesToSubclass);
+
+    HRESULT (STDMETHODCALLTYPE *put_PropagatesToSubclass)(
+        ISWbemQualifier* This,
+        VARIANT_BOOL bPropagatesToSubclass);
+
+    HRESULT (STDMETHODCALLTYPE *get_PropagatesToInstance)(
+        ISWbemQualifier* This,
+        VARIANT_BOOL *bPropagatesToInstance);
+
+    HRESULT (STDMETHODCALLTYPE *put_PropagatesToInstance)(
+        ISWbemQualifier* This,
+        VARIANT_BOOL bPropagatesToInstance);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsOverridable)(
+        ISWbemQualifier* This,
+        VARIANT_BOOL *bIsOverridable);
+
+    HRESULT (STDMETHODCALLTYPE *put_IsOverridable)(
+        ISWbemQualifier* This,
+        VARIANT_BOOL bIsOverridable);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsAmended)(
+        ISWbemQualifier* This,
+        VARIANT_BOOL *bIsAmended);
+
+    END_INTERFACE
+} ISWbemQualifierVtbl;
+interface ISWbemQualifier {
+    CONST_VTBL ISWbemQualifierVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemQualifier_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemQualifier_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemQualifier_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemQualifier_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemQualifier_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemQualifier_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemQualifier_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemQualifier methods ***/
+#define ISWbemQualifier_get_Value(This,varValue) (This)->lpVtbl->get_Value(This,varValue)
+#define ISWbemQualifier_put_Value(This,varValue) (This)->lpVtbl->put_Value(This,varValue)
+#define ISWbemQualifier_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
+#define ISWbemQualifier_get_IsLocal(This,bIsLocal) (This)->lpVtbl->get_IsLocal(This,bIsLocal)
+#define ISWbemQualifier_get_PropagatesToSubclass(This,bPropagatesToSubclass) (This)->lpVtbl->get_PropagatesToSubclass(This,bPropagatesToSubclass)
+#define ISWbemQualifier_put_PropagatesToSubclass(This,bPropagatesToSubclass) (This)->lpVtbl->put_PropagatesToSubclass(This,bPropagatesToSubclass)
+#define ISWbemQualifier_get_PropagatesToInstance(This,bPropagatesToInstance) (This)->lpVtbl->get_PropagatesToInstance(This,bPropagatesToInstance)
+#define ISWbemQualifier_put_PropagatesToInstance(This,bPropagatesToInstance) (This)->lpVtbl->put_PropagatesToInstance(This,bPropagatesToInstance)
+#define ISWbemQualifier_get_IsOverridable(This,bIsOverridable) (This)->lpVtbl->get_IsOverridable(This,bIsOverridable)
+#define ISWbemQualifier_put_IsOverridable(This,bIsOverridable) (This)->lpVtbl->put_IsOverridable(This,bIsOverridable)
+#define ISWbemQualifier_get_IsAmended(This,bIsAmended) (This)->lpVtbl->get_IsAmended(This,bIsAmended)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemQualifier_QueryInterface(ISWbemQualifier* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemQualifier_AddRef(ISWbemQualifier* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemQualifier_Release(ISWbemQualifier* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemQualifier_GetTypeInfoCount(ISWbemQualifier* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_GetTypeInfo(ISWbemQualifier* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_GetIDsOfNames(ISWbemQualifier* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_Invoke(ISWbemQualifier* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemQualifier methods ***/
+static FORCEINLINE HRESULT ISWbemQualifier_get_Value(ISWbemQualifier* This,VARIANT *varValue) {
+    return This->lpVtbl->get_Value(This,varValue);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_put_Value(ISWbemQualifier* This,VARIANT *varValue) {
+    return This->lpVtbl->put_Value(This,varValue);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_get_Name(ISWbemQualifier* This,BSTR *strName) {
+    return This->lpVtbl->get_Name(This,strName);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_get_IsLocal(ISWbemQualifier* This,VARIANT_BOOL *bIsLocal) {
+    return This->lpVtbl->get_IsLocal(This,bIsLocal);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_get_PropagatesToSubclass(ISWbemQualifier* This,VARIANT_BOOL *bPropagatesToSubclass) {
+    return This->lpVtbl->get_PropagatesToSubclass(This,bPropagatesToSubclass);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_put_PropagatesToSubclass(ISWbemQualifier* This,VARIANT_BOOL bPropagatesToSubclass) {
+    return This->lpVtbl->put_PropagatesToSubclass(This,bPropagatesToSubclass);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_get_PropagatesToInstance(ISWbemQualifier* This,VARIANT_BOOL *bPropagatesToInstance) {
+    return This->lpVtbl->get_PropagatesToInstance(This,bPropagatesToInstance);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_put_PropagatesToInstance(ISWbemQualifier* This,VARIANT_BOOL bPropagatesToInstance) {
+    return This->lpVtbl->put_PropagatesToInstance(This,bPropagatesToInstance);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_get_IsOverridable(ISWbemQualifier* This,VARIANT_BOOL *bIsOverridable) {
+    return This->lpVtbl->get_IsOverridable(This,bIsOverridable);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_put_IsOverridable(ISWbemQualifier* This,VARIANT_BOOL bIsOverridable) {
+    return This->lpVtbl->put_IsOverridable(This,bIsOverridable);
+}
+static FORCEINLINE HRESULT ISWbemQualifier_get_IsAmended(ISWbemQualifier* This,VARIANT_BOOL *bIsAmended) {
+    return This->lpVtbl->get_IsAmended(This,bIsAmended);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_get_Value_Proxy(
+    ISWbemQualifier* This,
+    VARIANT *varValue);
+void __RPC_STUB ISWbemQualifier_get_Value_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_put_Value_Proxy(
+    ISWbemQualifier* This,
+    VARIANT *varValue);
+void __RPC_STUB ISWbemQualifier_put_Value_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_get_Name_Proxy(
+    ISWbemQualifier* This,
+    BSTR *strName);
+void __RPC_STUB ISWbemQualifier_get_Name_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_get_IsLocal_Proxy(
+    ISWbemQualifier* This,
+    VARIANT_BOOL *bIsLocal);
+void __RPC_STUB ISWbemQualifier_get_IsLocal_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_get_PropagatesToSubclass_Proxy(
+    ISWbemQualifier* This,
+    VARIANT_BOOL *bPropagatesToSubclass);
+void __RPC_STUB ISWbemQualifier_get_PropagatesToSubclass_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_put_PropagatesToSubclass_Proxy(
+    ISWbemQualifier* This,
+    VARIANT_BOOL bPropagatesToSubclass);
+void __RPC_STUB ISWbemQualifier_put_PropagatesToSubclass_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_get_PropagatesToInstance_Proxy(
+    ISWbemQualifier* This,
+    VARIANT_BOOL *bPropagatesToInstance);
+void __RPC_STUB ISWbemQualifier_get_PropagatesToInstance_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_put_PropagatesToInstance_Proxy(
+    ISWbemQualifier* This,
+    VARIANT_BOOL bPropagatesToInstance);
+void __RPC_STUB ISWbemQualifier_put_PropagatesToInstance_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_get_IsOverridable_Proxy(
+    ISWbemQualifier* This,
+    VARIANT_BOOL *bIsOverridable);
+void __RPC_STUB ISWbemQualifier_get_IsOverridable_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_put_IsOverridable_Proxy(
+    ISWbemQualifier* This,
+    VARIANT_BOOL bIsOverridable);
+void __RPC_STUB ISWbemQualifier_put_IsOverridable_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifier_get_IsAmended_Proxy(
+    ISWbemQualifier* This,
+    VARIANT_BOOL *bIsAmended);
+void __RPC_STUB ISWbemQualifier_get_IsAmended_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemQualifier_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemQualifierSet interface
+ */
+#ifndef __ISWbemQualifierSet_INTERFACE_DEFINED__
+#define __ISWbemQualifierSet_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemQualifierSet, 0x9b16ed16, 0xd3df, 0x11d1, 0x8b,0x08, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b16ed16-d3df-11d1-8b08-00600806d9b6")
+ISWbemQualifierSet : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **pUnk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        BSTR name,
+        LONG iFlags = 0,
+        ISWbemQualifier **objWbemQualifier) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *iCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Add(
+        BSTR strName,
+        VARIANT *varVal,
+        VARIANT_BOOL bPropagatesToSubclass = TRUE,
+        VARIANT_BOOL bPropagatesToInstance = TRUE,
+        VARIANT_BOOL bIsOverridable = TRUE,
+        LONG iFlags = 0,
+        ISWbemQualifier **objWbemQualifier) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Remove(
+        BSTR strName,
+        LONG iFlags = 0) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemQualifierSet, 0x9b16ed16, 0xd3df, 0x11d1, 0x8b,0x08, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemQualifierSetVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemQualifierSet* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemQualifierSet* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemQualifierSet* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemQualifierSet* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemQualifierSet* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemQualifierSet* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemQualifierSet* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemQualifierSet methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        ISWbemQualifierSet* This,
+        IUnknown **pUnk);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        ISWbemQualifierSet* This,
+        BSTR name,
+        LONG iFlags,
+        ISWbemQualifier **objWbemQualifier);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        ISWbemQualifierSet* This,
+        LONG *iCount);
+
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        ISWbemQualifierSet* This,
+        BSTR strName,
+        VARIANT *varVal,
+        VARIANT_BOOL bPropagatesToSubclass,
+        VARIANT_BOOL bPropagatesToInstance,
+        VARIANT_BOOL bIsOverridable,
+        LONG iFlags,
+        ISWbemQualifier **objWbemQualifier);
+
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        ISWbemQualifierSet* This,
+        BSTR strName,
+        LONG iFlags);
+
+    END_INTERFACE
+} ISWbemQualifierSetVtbl;
+interface ISWbemQualifierSet {
+    CONST_VTBL ISWbemQualifierSetVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemQualifierSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemQualifierSet_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemQualifierSet_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemQualifierSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemQualifierSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemQualifierSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemQualifierSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemQualifierSet methods ***/
+#define ISWbemQualifierSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
+#define ISWbemQualifierSet_Item(This,name,iFlags,objWbemQualifier) (This)->lpVtbl->Item(This,name,iFlags,objWbemQualifier)
+#define ISWbemQualifierSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
+#define ISWbemQualifierSet_Add(This,strName,varVal,bPropagatesToSubclass,bPropagatesToInstance,bIsOverridable,iFlags,objWbemQualifier) (This)->lpVtbl->Add(This,strName,varVal,bPropagatesToSubclass,bPropagatesToInstance,bIsOverridable,iFlags,objWbemQualifier)
+#define ISWbemQualifierSet_Remove(This,strName,iFlags) (This)->lpVtbl->Remove(This,strName,iFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemQualifierSet_QueryInterface(ISWbemQualifierSet* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemQualifierSet_AddRef(ISWbemQualifierSet* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemQualifierSet_Release(ISWbemQualifierSet* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemQualifierSet_GetTypeInfoCount(ISWbemQualifierSet* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemQualifierSet_GetTypeInfo(ISWbemQualifierSet* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemQualifierSet_GetIDsOfNames(ISWbemQualifierSet* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemQualifierSet_Invoke(ISWbemQualifierSet* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemQualifierSet methods ***/
+static FORCEINLINE HRESULT ISWbemQualifierSet_get__NewEnum(ISWbemQualifierSet* This,IUnknown **pUnk) {
+    return This->lpVtbl->get__NewEnum(This,pUnk);
+}
+static FORCEINLINE HRESULT ISWbemQualifierSet_Item(ISWbemQualifierSet* This,BSTR name,LONG iFlags,ISWbemQualifier **objWbemQualifier) {
+    return This->lpVtbl->Item(This,name,iFlags,objWbemQualifier);
+}
+static FORCEINLINE HRESULT ISWbemQualifierSet_get_Count(ISWbemQualifierSet* This,LONG *iCount) {
+    return This->lpVtbl->get_Count(This,iCount);
+}
+static FORCEINLINE HRESULT ISWbemQualifierSet_Add(ISWbemQualifierSet* This,BSTR strName,VARIANT *varVal,VARIANT_BOOL bPropagatesToSubclass,VARIANT_BOOL bPropagatesToInstance,VARIANT_BOOL bIsOverridable,LONG iFlags,ISWbemQualifier **objWbemQualifier) {
+    return This->lpVtbl->Add(This,strName,varVal,bPropagatesToSubclass,bPropagatesToInstance,bIsOverridable,iFlags,objWbemQualifier);
+}
+static FORCEINLINE HRESULT ISWbemQualifierSet_Remove(ISWbemQualifierSet* This,BSTR strName,LONG iFlags) {
+    return This->lpVtbl->Remove(This,strName,iFlags);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemQualifierSet_get__NewEnum_Proxy(
+    ISWbemQualifierSet* This,
+    IUnknown **pUnk);
+void __RPC_STUB ISWbemQualifierSet_get__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifierSet_Item_Proxy(
+    ISWbemQualifierSet* This,
+    BSTR name,
+    LONG iFlags,
+    ISWbemQualifier **objWbemQualifier);
+void __RPC_STUB ISWbemQualifierSet_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifierSet_get_Count_Proxy(
+    ISWbemQualifierSet* This,
+    LONG *iCount);
+void __RPC_STUB ISWbemQualifierSet_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifierSet_Add_Proxy(
+    ISWbemQualifierSet* This,
+    BSTR strName,
+    VARIANT *varVal,
+    VARIANT_BOOL bPropagatesToSubclass,
+    VARIANT_BOOL bPropagatesToInstance,
+    VARIANT_BOOL bIsOverridable,
+    LONG iFlags,
+    ISWbemQualifier **objWbemQualifier);
+void __RPC_STUB ISWbemQualifierSet_Add_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemQualifierSet_Remove_Proxy(
+    ISWbemQualifierSet* This,
+    BSTR strName,
+    LONG iFlags);
+void __RPC_STUB ISWbemQualifierSet_Remove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemQualifierSet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemMethod interface
+ */
+#ifndef __ISWbemMethod_INTERFACE_DEFINED__
+#define __ISWbemMethod_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemMethod, 0x422e8e90, 0xd955, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("422e8e90-d955-11d1-8b09-00600806d9b6")
+ISWbemMethod : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *strName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Origin(
+        BSTR *strOrigin) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_InParameters(
+        ISWbemObject **objWbemInParameters) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_OutParameters(
+        ISWbemObject **objWbemOutParameters) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Qualifiers_(
+        ISWbemQualifierSet **objWbemQualifierSet) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemMethod, 0x422e8e90, 0xd955, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemMethodVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemMethod* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemMethod* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemMethod* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemMethod* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemMethod* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemMethod* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemMethod* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemMethod methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        ISWbemMethod* This,
+        BSTR *strName);
+
+    HRESULT (STDMETHODCALLTYPE *get_Origin)(
+        ISWbemMethod* This,
+        BSTR *strOrigin);
+
+    HRESULT (STDMETHODCALLTYPE *get_InParameters)(
+        ISWbemMethod* This,
+        ISWbemObject **objWbemInParameters);
+
+    HRESULT (STDMETHODCALLTYPE *get_OutParameters)(
+        ISWbemMethod* This,
+        ISWbemObject **objWbemOutParameters);
+
+    HRESULT (STDMETHODCALLTYPE *get_Qualifiers_)(
+        ISWbemMethod* This,
+        ISWbemQualifierSet **objWbemQualifierSet);
+
+    END_INTERFACE
+} ISWbemMethodVtbl;
+interface ISWbemMethod {
+    CONST_VTBL ISWbemMethodVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemMethod_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemMethod_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemMethod_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemMethod_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemMethod_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemMethod_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemMethod_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemMethod methods ***/
+#define ISWbemMethod_get_Name(This,strName) (This)->lpVtbl->get_Name(This,strName)
+#define ISWbemMethod_get_Origin(This,strOrigin) (This)->lpVtbl->get_Origin(This,strOrigin)
+#define ISWbemMethod_get_InParameters(This,objWbemInParameters) (This)->lpVtbl->get_InParameters(This,objWbemInParameters)
+#define ISWbemMethod_get_OutParameters(This,objWbemOutParameters) (This)->lpVtbl->get_OutParameters(This,objWbemOutParameters)
+#define ISWbemMethod_get_Qualifiers_(This,objWbemQualifierSet) (This)->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemMethod_QueryInterface(ISWbemMethod* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemMethod_AddRef(ISWbemMethod* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemMethod_Release(ISWbemMethod* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemMethod_GetTypeInfoCount(ISWbemMethod* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemMethod_GetTypeInfo(ISWbemMethod* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemMethod_GetIDsOfNames(ISWbemMethod* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemMethod_Invoke(ISWbemMethod* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemMethod methods ***/
+static FORCEINLINE HRESULT ISWbemMethod_get_Name(ISWbemMethod* This,BSTR *strName) {
+    return This->lpVtbl->get_Name(This,strName);
+}
+static FORCEINLINE HRESULT ISWbemMethod_get_Origin(ISWbemMethod* This,BSTR *strOrigin) {
+    return This->lpVtbl->get_Origin(This,strOrigin);
+}
+static FORCEINLINE HRESULT ISWbemMethod_get_InParameters(ISWbemMethod* This,ISWbemObject **objWbemInParameters) {
+    return This->lpVtbl->get_InParameters(This,objWbemInParameters);
+}
+static FORCEINLINE HRESULT ISWbemMethod_get_OutParameters(ISWbemMethod* This,ISWbemObject **objWbemOutParameters) {
+    return This->lpVtbl->get_OutParameters(This,objWbemOutParameters);
+}
+static FORCEINLINE HRESULT ISWbemMethod_get_Qualifiers_(ISWbemMethod* This,ISWbemQualifierSet **objWbemQualifierSet) {
+    return This->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemMethod_get_Name_Proxy(
+    ISWbemMethod* This,
+    BSTR *strName);
+void __RPC_STUB ISWbemMethod_get_Name_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemMethod_get_Origin_Proxy(
+    ISWbemMethod* This,
+    BSTR *strOrigin);
+void __RPC_STUB ISWbemMethod_get_Origin_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemMethod_get_InParameters_Proxy(
+    ISWbemMethod* This,
+    ISWbemObject **objWbemInParameters);
+void __RPC_STUB ISWbemMethod_get_InParameters_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemMethod_get_OutParameters_Proxy(
+    ISWbemMethod* This,
+    ISWbemObject **objWbemOutParameters);
+void __RPC_STUB ISWbemMethod_get_OutParameters_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemMethod_get_Qualifiers__Proxy(
+    ISWbemMethod* This,
+    ISWbemQualifierSet **objWbemQualifierSet);
+void __RPC_STUB ISWbemMethod_get_Qualifiers__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemMethod_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemMethodSet interface
+ */
+#ifndef __ISWbemMethodSet_INTERFACE_DEFINED__
+#define __ISWbemMethodSet_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemMethodSet, 0xc93ba292, 0xd955, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c93ba292-d955-11d1-8b09-00600806d9b6")
+ISWbemMethodSet : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **pUnk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        BSTR strName,
+        LONG iFlags = 0,
+        ISWbemMethod **objWbemMethod) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *iCount) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemMethodSet, 0xc93ba292, 0xd955, 0x11d1, 0x8b,0x09, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemMethodSetVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemMethodSet* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemMethodSet* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemMethodSet* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemMethodSet* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemMethodSet* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemMethodSet* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemMethodSet* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemMethodSet methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        ISWbemMethodSet* This,
+        IUnknown **pUnk);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        ISWbemMethodSet* This,
+        BSTR strName,
+        LONG iFlags,
+        ISWbemMethod **objWbemMethod);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        ISWbemMethodSet* This,
+        LONG *iCount);
+
+    END_INTERFACE
+} ISWbemMethodSetVtbl;
+interface ISWbemMethodSet {
+    CONST_VTBL ISWbemMethodSetVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemMethodSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemMethodSet_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemMethodSet_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemMethodSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemMethodSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemMethodSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemMethodSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemMethodSet methods ***/
+#define ISWbemMethodSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
+#define ISWbemMethodSet_Item(This,strName,iFlags,objWbemMethod) (This)->lpVtbl->Item(This,strName,iFlags,objWbemMethod)
+#define ISWbemMethodSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemMethodSet_QueryInterface(ISWbemMethodSet* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemMethodSet_AddRef(ISWbemMethodSet* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemMethodSet_Release(ISWbemMethodSet* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemMethodSet_GetTypeInfoCount(ISWbemMethodSet* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemMethodSet_GetTypeInfo(ISWbemMethodSet* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemMethodSet_GetIDsOfNames(ISWbemMethodSet* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemMethodSet_Invoke(ISWbemMethodSet* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemMethodSet methods ***/
+static FORCEINLINE HRESULT ISWbemMethodSet_get__NewEnum(ISWbemMethodSet* This,IUnknown **pUnk) {
+    return This->lpVtbl->get__NewEnum(This,pUnk);
+}
+static FORCEINLINE HRESULT ISWbemMethodSet_Item(ISWbemMethodSet* This,BSTR strName,LONG iFlags,ISWbemMethod **objWbemMethod) {
+    return This->lpVtbl->Item(This,strName,iFlags,objWbemMethod);
+}
+static FORCEINLINE HRESULT ISWbemMethodSet_get_Count(ISWbemMethodSet* This,LONG *iCount) {
+    return This->lpVtbl->get_Count(This,iCount);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemMethodSet_get__NewEnum_Proxy(
+    ISWbemMethodSet* This,
+    IUnknown **pUnk);
+void __RPC_STUB ISWbemMethodSet_get__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemMethodSet_Item_Proxy(
+    ISWbemMethodSet* This,
+    BSTR strName,
+    LONG iFlags,
+    ISWbemMethod **objWbemMethod);
+void __RPC_STUB ISWbemMethodSet_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemMethodSet_get_Count_Proxy(
+    ISWbemMethodSet* This,
+    LONG *iCount);
+void __RPC_STUB ISWbemMethodSet_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemMethodSet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemSink interface
+ */
+#ifndef __ISWbemSink_INTERFACE_DEFINED__
+#define __ISWbemSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemSink, 0x75718c9f, 0xf029, 0x11d1, 0xa1,0xac, 0x00,0xc0,0x4f,0xb6,0xc2,0x23);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("75718c9f-f029-11d1-a1ac-00c04fb6c223")
+ISWbemSink : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE Cancel(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemSink, 0x75718c9f, 0xf029, 0x11d1, 0xa1,0xac, 0x00,0xc0,0x4f,0xb6,0xc2,0x23)
+#endif
+#else
+typedef struct ISWbemSinkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemSink* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemSink* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemSink* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemSink* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemSink* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemSink* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemSink* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        ISWbemSink* This);
+
+    END_INTERFACE
+} ISWbemSinkVtbl;
+interface ISWbemSink {
+    CONST_VTBL ISWbemSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemSink_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemSink_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemSink_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemSink_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemSink methods ***/
+#define ISWbemSink_Cancel(This) (This)->lpVtbl->Cancel(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemSink_QueryInterface(ISWbemSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemSink_AddRef(ISWbemSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemSink_Release(ISWbemSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemSink_GetTypeInfoCount(ISWbemSink* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemSink_GetTypeInfo(ISWbemSink* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemSink_GetIDsOfNames(ISWbemSink* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemSink_Invoke(ISWbemSink* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemSink methods ***/
+static FORCEINLINE HRESULT ISWbemSink_Cancel(ISWbemSink* This) {
+    return This->lpVtbl->Cancel(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemSink_Cancel_Proxy(
+    ISWbemSink* This);
+void __RPC_STUB ISWbemSink_Cancel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemSinkEvents dispinterface
+ */
+#ifndef __ISWbemSinkEvents_DISPINTERFACE_DEFINED__
+#define __ISWbemSinkEvents_DISPINTERFACE_DEFINED__
+
+DEFINE_GUID(DIID_ISWbemSinkEvents, 0x75718ca0, 0xf029, 0x11d1, 0xa1,0xac, 0x00,0xc0,0x4f,0xb6,0xc2,0x23);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("75718ca0-f029-11d1-a1ac-00c04fb6c223")
+ISWbemSinkEvents : public IDispatch
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemSinkEvents, 0x75718ca0, 0xf029, 0x11d1, 0xa1,0xac, 0x00,0xc0,0x4f,0xb6,0xc2,0x23)
+#endif
+#else
+typedef struct ISWbemSinkEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemSinkEvents* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemSinkEvents* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemSinkEvents* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemSinkEvents* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemSinkEvents* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemSinkEvents* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemSinkEvents* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    END_INTERFACE
+} ISWbemSinkEventsVtbl;
+interface ISWbemSinkEvents {
+    CONST_VTBL ISWbemSinkEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemSinkEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemSinkEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemSinkEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemSinkEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemSinkEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemSinkEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemSinkEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemSinkEvents_QueryInterface(ISWbemSinkEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemSinkEvents_AddRef(ISWbemSinkEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemSinkEvents_Release(ISWbemSinkEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemSinkEvents_GetTypeInfoCount(ISWbemSinkEvents* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemSinkEvents_GetTypeInfo(ISWbemSinkEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemSinkEvents_GetIDsOfNames(ISWbemSinkEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemSinkEvents_Invoke(ISWbemSinkEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* __ISWbemSinkEvents_DISPINTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemEventSource interface
+ */
+#ifndef __ISWbemEventSource_INTERFACE_DEFINED__
+#define __ISWbemEventSource_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemEventSource, 0x27d54d92, 0x0ebe, 0x11d2, 0x8b,0x22, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("27d54d92-0ebe-11d2-8b22-00600806d9b6")
+ISWbemEventSource : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE NextEvent(
+        LONG iTimeoutMs = wbemTimeoutInfinite,
+        ISWbemObject **objWbemObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Security_(
+        ISWbemSecurity **objWbemSecurity) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemEventSource, 0x27d54d92, 0x0ebe, 0x11d2, 0x8b,0x22, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemEventSourceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemEventSource* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemEventSource* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemEventSource* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemEventSource* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemEventSource* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemEventSource* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemEventSource* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemEventSource methods ***/
+    HRESULT (STDMETHODCALLTYPE *NextEvent)(
+        ISWbemEventSource* This,
+        LONG iTimeoutMs,
+        ISWbemObject **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *get_Security_)(
+        ISWbemEventSource* This,
+        ISWbemSecurity **objWbemSecurity);
+
+    END_INTERFACE
+} ISWbemEventSourceVtbl;
+interface ISWbemEventSource {
+    CONST_VTBL ISWbemEventSourceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemEventSource_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemEventSource_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemEventSource_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemEventSource_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemEventSource_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemEventSource methods ***/
+#define ISWbemEventSource_NextEvent(This,iTimeoutMs,objWbemObject) (This)->lpVtbl->NextEvent(This,iTimeoutMs,objWbemObject)
+#define ISWbemEventSource_get_Security_(This,objWbemSecurity) (This)->lpVtbl->get_Security_(This,objWbemSecurity)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemEventSource_QueryInterface(ISWbemEventSource* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemEventSource_AddRef(ISWbemEventSource* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemEventSource_Release(ISWbemEventSource* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemEventSource_GetTypeInfoCount(ISWbemEventSource* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemEventSource_GetTypeInfo(ISWbemEventSource* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemEventSource_GetIDsOfNames(ISWbemEventSource* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemEventSource_Invoke(ISWbemEventSource* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemEventSource methods ***/
+static FORCEINLINE HRESULT ISWbemEventSource_NextEvent(ISWbemEventSource* This,LONG iTimeoutMs,ISWbemObject **objWbemObject) {
+    return This->lpVtbl->NextEvent(This,iTimeoutMs,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemEventSource_get_Security_(ISWbemEventSource* This,ISWbemSecurity **objWbemSecurity) {
+    return This->lpVtbl->get_Security_(This,objWbemSecurity);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemEventSource_NextEvent_Proxy(
+    ISWbemEventSource* This,
+    LONG iTimeoutMs,
+    ISWbemObject **objWbemObject);
+void __RPC_STUB ISWbemEventSource_NextEvent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemEventSource_get_Security__Proxy(
+    ISWbemEventSource* This,
+    ISWbemSecurity **objWbemSecurity);
+void __RPC_STUB ISWbemEventSource_get_Security__Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemEventSource_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemSecurity interface
+ */
+#ifndef __ISWbemSecurity_INTERFACE_DEFINED__
+#define __ISWbemSecurity_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemSecurity, 0xb54d66e6, 0x2287, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b54d66e6-2287-11d2-8b33-00600806d9b6")
+ISWbemSecurity : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_ImpersonationLevel(
+        WbemImpersonationLevelEnum *iImpersonationLevel) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ImpersonationLevel(
+        WbemImpersonationLevelEnum iImpersonationLevel) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_AuthenticationLevel(
+        WbemAuthenticationLevelEnum *iAuthenticationLevel) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_AuthenticationLevel(
+        WbemAuthenticationLevelEnum iAuthenticationLevel) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Privileges(
+        ISWbemPrivilegeSet **objWbemPrivilegeSet) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemSecurity, 0xb54d66e6, 0x2287, 0x11d2, 0x8b,0x33, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemSecurityVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemSecurity* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemSecurity* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemSecurity* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemSecurity* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemSecurity* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemSecurity* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemSecurity* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemSecurity methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ImpersonationLevel)(
+        ISWbemSecurity* This,
+        WbemImpersonationLevelEnum *iImpersonationLevel);
+
+    HRESULT (STDMETHODCALLTYPE *put_ImpersonationLevel)(
+        ISWbemSecurity* This,
+        WbemImpersonationLevelEnum iImpersonationLevel);
+
+    HRESULT (STDMETHODCALLTYPE *get_AuthenticationLevel)(
+        ISWbemSecurity* This,
+        WbemAuthenticationLevelEnum *iAuthenticationLevel);
+
+    HRESULT (STDMETHODCALLTYPE *put_AuthenticationLevel)(
+        ISWbemSecurity* This,
+        WbemAuthenticationLevelEnum iAuthenticationLevel);
+
+    HRESULT (STDMETHODCALLTYPE *get_Privileges)(
+        ISWbemSecurity* This,
+        ISWbemPrivilegeSet **objWbemPrivilegeSet);
+
+    END_INTERFACE
+} ISWbemSecurityVtbl;
+interface ISWbemSecurity {
+    CONST_VTBL ISWbemSecurityVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemSecurity_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemSecurity_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemSecurity_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemSecurity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemSecurity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemSecurity methods ***/
+#define ISWbemSecurity_get_ImpersonationLevel(This,iImpersonationLevel) (This)->lpVtbl->get_ImpersonationLevel(This,iImpersonationLevel)
+#define ISWbemSecurity_put_ImpersonationLevel(This,iImpersonationLevel) (This)->lpVtbl->put_ImpersonationLevel(This,iImpersonationLevel)
+#define ISWbemSecurity_get_AuthenticationLevel(This,iAuthenticationLevel) (This)->lpVtbl->get_AuthenticationLevel(This,iAuthenticationLevel)
+#define ISWbemSecurity_put_AuthenticationLevel(This,iAuthenticationLevel) (This)->lpVtbl->put_AuthenticationLevel(This,iAuthenticationLevel)
+#define ISWbemSecurity_get_Privileges(This,objWbemPrivilegeSet) (This)->lpVtbl->get_Privileges(This,objWbemPrivilegeSet)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemSecurity_QueryInterface(ISWbemSecurity* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemSecurity_AddRef(ISWbemSecurity* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemSecurity_Release(ISWbemSecurity* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemSecurity_GetTypeInfoCount(ISWbemSecurity* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemSecurity_GetTypeInfo(ISWbemSecurity* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemSecurity_GetIDsOfNames(ISWbemSecurity* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemSecurity_Invoke(ISWbemSecurity* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemSecurity methods ***/
+static FORCEINLINE HRESULT ISWbemSecurity_get_ImpersonationLevel(ISWbemSecurity* This,WbemImpersonationLevelEnum *iImpersonationLevel) {
+    return This->lpVtbl->get_ImpersonationLevel(This,iImpersonationLevel);
+}
+static FORCEINLINE HRESULT ISWbemSecurity_put_ImpersonationLevel(ISWbemSecurity* This,WbemImpersonationLevelEnum iImpersonationLevel) {
+    return This->lpVtbl->put_ImpersonationLevel(This,iImpersonationLevel);
+}
+static FORCEINLINE HRESULT ISWbemSecurity_get_AuthenticationLevel(ISWbemSecurity* This,WbemAuthenticationLevelEnum *iAuthenticationLevel) {
+    return This->lpVtbl->get_AuthenticationLevel(This,iAuthenticationLevel);
+}
+static FORCEINLINE HRESULT ISWbemSecurity_put_AuthenticationLevel(ISWbemSecurity* This,WbemAuthenticationLevelEnum iAuthenticationLevel) {
+    return This->lpVtbl->put_AuthenticationLevel(This,iAuthenticationLevel);
+}
+static FORCEINLINE HRESULT ISWbemSecurity_get_Privileges(ISWbemSecurity* This,ISWbemPrivilegeSet **objWbemPrivilegeSet) {
+    return This->lpVtbl->get_Privileges(This,objWbemPrivilegeSet);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemSecurity_get_ImpersonationLevel_Proxy(
+    ISWbemSecurity* This,
+    WbemImpersonationLevelEnum *iImpersonationLevel);
+void __RPC_STUB ISWbemSecurity_get_ImpersonationLevel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemSecurity_put_ImpersonationLevel_Proxy(
+    ISWbemSecurity* This,
+    WbemImpersonationLevelEnum iImpersonationLevel);
+void __RPC_STUB ISWbemSecurity_put_ImpersonationLevel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemSecurity_get_AuthenticationLevel_Proxy(
+    ISWbemSecurity* This,
+    WbemAuthenticationLevelEnum *iAuthenticationLevel);
+void __RPC_STUB ISWbemSecurity_get_AuthenticationLevel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemSecurity_put_AuthenticationLevel_Proxy(
+    ISWbemSecurity* This,
+    WbemAuthenticationLevelEnum iAuthenticationLevel);
+void __RPC_STUB ISWbemSecurity_put_AuthenticationLevel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemSecurity_get_Privileges_Proxy(
+    ISWbemSecurity* This,
+    ISWbemPrivilegeSet **objWbemPrivilegeSet);
+void __RPC_STUB ISWbemSecurity_get_Privileges_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemSecurity_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemPrivilege interface
+ */
+#ifndef __ISWbemPrivilege_INTERFACE_DEFINED__
+#define __ISWbemPrivilege_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemPrivilege, 0x26ee67bd, 0x5804, 0x11d2, 0x8b,0x4a, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("26ee67bd-5804-11d2-8b4a-00600806d9b6")
+ISWbemPrivilege : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_IsEnabled(
+        VARIANT_BOOL *bIsEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_IsEnabled(
+        VARIANT_BOOL bIsEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *strDisplayName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DisplayName(
+        BSTR *strDisplayName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Identifier(
+        WbemPrivilegeEnum *iPrivilege) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemPrivilege, 0x26ee67bd, 0x5804, 0x11d2, 0x8b,0x4a, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemPrivilegeVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemPrivilege* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemPrivilege* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemPrivilege* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemPrivilege* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemPrivilege* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemPrivilege* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemPrivilege* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemPrivilege methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_IsEnabled)(
+        ISWbemPrivilege* This,
+        VARIANT_BOOL *bIsEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *put_IsEnabled)(
+        ISWbemPrivilege* This,
+        VARIANT_BOOL bIsEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        ISWbemPrivilege* This,
+        BSTR *strDisplayName);
+
+    HRESULT (STDMETHODCALLTYPE *get_DisplayName)(
+        ISWbemPrivilege* This,
+        BSTR *strDisplayName);
+
+    HRESULT (STDMETHODCALLTYPE *get_Identifier)(
+        ISWbemPrivilege* This,
+        WbemPrivilegeEnum *iPrivilege);
+
+    END_INTERFACE
+} ISWbemPrivilegeVtbl;
+interface ISWbemPrivilege {
+    CONST_VTBL ISWbemPrivilegeVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemPrivilege_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemPrivilege_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemPrivilege_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemPrivilege_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemPrivilege_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemPrivilege_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemPrivilege_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemPrivilege methods ***/
+#define ISWbemPrivilege_get_IsEnabled(This,bIsEnabled) (This)->lpVtbl->get_IsEnabled(This,bIsEnabled)
+#define ISWbemPrivilege_put_IsEnabled(This,bIsEnabled) (This)->lpVtbl->put_IsEnabled(This,bIsEnabled)
+#define ISWbemPrivilege_get_Name(This,strDisplayName) (This)->lpVtbl->get_Name(This,strDisplayName)
+#define ISWbemPrivilege_get_DisplayName(This,strDisplayName) (This)->lpVtbl->get_DisplayName(This,strDisplayName)
+#define ISWbemPrivilege_get_Identifier(This,iPrivilege) (This)->lpVtbl->get_Identifier(This,iPrivilege)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemPrivilege_QueryInterface(ISWbemPrivilege* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemPrivilege_AddRef(ISWbemPrivilege* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemPrivilege_Release(ISWbemPrivilege* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemPrivilege_GetTypeInfoCount(ISWbemPrivilege* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemPrivilege_GetTypeInfo(ISWbemPrivilege* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemPrivilege_GetIDsOfNames(ISWbemPrivilege* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemPrivilege_Invoke(ISWbemPrivilege* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemPrivilege methods ***/
+static FORCEINLINE HRESULT ISWbemPrivilege_get_IsEnabled(ISWbemPrivilege* This,VARIANT_BOOL *bIsEnabled) {
+    return This->lpVtbl->get_IsEnabled(This,bIsEnabled);
+}
+static FORCEINLINE HRESULT ISWbemPrivilege_put_IsEnabled(ISWbemPrivilege* This,VARIANT_BOOL bIsEnabled) {
+    return This->lpVtbl->put_IsEnabled(This,bIsEnabled);
+}
+static FORCEINLINE HRESULT ISWbemPrivilege_get_Name(ISWbemPrivilege* This,BSTR *strDisplayName) {
+    return This->lpVtbl->get_Name(This,strDisplayName);
+}
+static FORCEINLINE HRESULT ISWbemPrivilege_get_DisplayName(ISWbemPrivilege* This,BSTR *strDisplayName) {
+    return This->lpVtbl->get_DisplayName(This,strDisplayName);
+}
+static FORCEINLINE HRESULT ISWbemPrivilege_get_Identifier(ISWbemPrivilege* This,WbemPrivilegeEnum *iPrivilege) {
+    return This->lpVtbl->get_Identifier(This,iPrivilege);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemPrivilege_get_IsEnabled_Proxy(
+    ISWbemPrivilege* This,
+    VARIANT_BOOL *bIsEnabled);
+void __RPC_STUB ISWbemPrivilege_get_IsEnabled_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilege_put_IsEnabled_Proxy(
+    ISWbemPrivilege* This,
+    VARIANT_BOOL bIsEnabled);
+void __RPC_STUB ISWbemPrivilege_put_IsEnabled_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilege_get_Name_Proxy(
+    ISWbemPrivilege* This,
+    BSTR *strDisplayName);
+void __RPC_STUB ISWbemPrivilege_get_Name_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilege_get_DisplayName_Proxy(
+    ISWbemPrivilege* This,
+    BSTR *strDisplayName);
+void __RPC_STUB ISWbemPrivilege_get_DisplayName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilege_get_Identifier_Proxy(
+    ISWbemPrivilege* This,
+    WbemPrivilegeEnum *iPrivilege);
+void __RPC_STUB ISWbemPrivilege_get_Identifier_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemPrivilege_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemPrivilegeSet interface
+ */
+#ifndef __ISWbemPrivilegeSet_INTERFACE_DEFINED__
+#define __ISWbemPrivilegeSet_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemPrivilegeSet, 0x26ee67bf, 0x5804, 0x11d2, 0x8b,0x4a, 0x00,0x60,0x08,0x06,0xd9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("26ee67bf-5804-11d2-8b4a-00600806d9b6")
+ISWbemPrivilegeSet : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **pUnk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        WbemPrivilegeEnum iPrivilege,
+        ISWbemPrivilege **objWbemPrivilege) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *iCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Add(
+        WbemPrivilegeEnum iPrivilege,
+        VARIANT_BOOL bIsEnabled = TRUE,
+        ISWbemPrivilege **objWbemPrivilege) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Remove(
+        WbemPrivilegeEnum iPrivilege) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteAll(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddAsString(
+        BSTR strPrivilege,
+        VARIANT_BOOL bIsEnabled = TRUE,
+        ISWbemPrivilege **objWbemPrivilege) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemPrivilegeSet, 0x26ee67bf, 0x5804, 0x11d2, 0x8b,0x4a, 0x00,0x60,0x08,0x06,0xd9,0xb6)
+#endif
+#else
+typedef struct ISWbemPrivilegeSetVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemPrivilegeSet* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemPrivilegeSet* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemPrivilegeSet* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemPrivilegeSet* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemPrivilegeSet* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemPrivilegeSet* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemPrivilegeSet* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemPrivilegeSet methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        ISWbemPrivilegeSet* This,
+        IUnknown **pUnk);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        ISWbemPrivilegeSet* This,
+        WbemPrivilegeEnum iPrivilege,
+        ISWbemPrivilege **objWbemPrivilege);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        ISWbemPrivilegeSet* This,
+        LONG *iCount);
+
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        ISWbemPrivilegeSet* This,
+        WbemPrivilegeEnum iPrivilege,
+        VARIANT_BOOL bIsEnabled,
+        ISWbemPrivilege **objWbemPrivilege);
+
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        ISWbemPrivilegeSet* This,
+        WbemPrivilegeEnum iPrivilege);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteAll)(
+        ISWbemPrivilegeSet* This);
+
+    HRESULT (STDMETHODCALLTYPE *AddAsString)(
+        ISWbemPrivilegeSet* This,
+        BSTR strPrivilege,
+        VARIANT_BOOL bIsEnabled,
+        ISWbemPrivilege **objWbemPrivilege);
+
+    END_INTERFACE
+} ISWbemPrivilegeSetVtbl;
+interface ISWbemPrivilegeSet {
+    CONST_VTBL ISWbemPrivilegeSetVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemPrivilegeSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemPrivilegeSet_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemPrivilegeSet_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemPrivilegeSet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemPrivilegeSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemPrivilegeSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemPrivilegeSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemPrivilegeSet methods ***/
+#define ISWbemPrivilegeSet_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
+#define ISWbemPrivilegeSet_Item(This,iPrivilege,objWbemPrivilege) (This)->lpVtbl->Item(This,iPrivilege,objWbemPrivilege)
+#define ISWbemPrivilegeSet_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
+#define ISWbemPrivilegeSet_Add(This,iPrivilege,bIsEnabled,objWbemPrivilege) (This)->lpVtbl->Add(This,iPrivilege,bIsEnabled,objWbemPrivilege)
+#define ISWbemPrivilegeSet_Remove(This,iPrivilege) (This)->lpVtbl->Remove(This,iPrivilege)
+#define ISWbemPrivilegeSet_DeleteAll(This) (This)->lpVtbl->DeleteAll(This)
+#define ISWbemPrivilegeSet_AddAsString(This,strPrivilege,bIsEnabled,objWbemPrivilege) (This)->lpVtbl->AddAsString(This,strPrivilege,bIsEnabled,objWbemPrivilege)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_QueryInterface(ISWbemPrivilegeSet* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemPrivilegeSet_AddRef(ISWbemPrivilegeSet* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemPrivilegeSet_Release(ISWbemPrivilegeSet* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_GetTypeInfoCount(ISWbemPrivilegeSet* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_GetTypeInfo(ISWbemPrivilegeSet* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_GetIDsOfNames(ISWbemPrivilegeSet* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_Invoke(ISWbemPrivilegeSet* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemPrivilegeSet methods ***/
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_get__NewEnum(ISWbemPrivilegeSet* This,IUnknown **pUnk) {
+    return This->lpVtbl->get__NewEnum(This,pUnk);
+}
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_Item(ISWbemPrivilegeSet* This,WbemPrivilegeEnum iPrivilege,ISWbemPrivilege **objWbemPrivilege) {
+    return This->lpVtbl->Item(This,iPrivilege,objWbemPrivilege);
+}
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_get_Count(ISWbemPrivilegeSet* This,LONG *iCount) {
+    return This->lpVtbl->get_Count(This,iCount);
+}
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_Add(ISWbemPrivilegeSet* This,WbemPrivilegeEnum iPrivilege,VARIANT_BOOL bIsEnabled,ISWbemPrivilege **objWbemPrivilege) {
+    return This->lpVtbl->Add(This,iPrivilege,bIsEnabled,objWbemPrivilege);
+}
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_Remove(ISWbemPrivilegeSet* This,WbemPrivilegeEnum iPrivilege) {
+    return This->lpVtbl->Remove(This,iPrivilege);
+}
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_DeleteAll(ISWbemPrivilegeSet* This) {
+    return This->lpVtbl->DeleteAll(This);
+}
+static FORCEINLINE HRESULT ISWbemPrivilegeSet_AddAsString(ISWbemPrivilegeSet* This,BSTR strPrivilege,VARIANT_BOOL bIsEnabled,ISWbemPrivilege **objWbemPrivilege) {
+    return This->lpVtbl->AddAsString(This,strPrivilege,bIsEnabled,objWbemPrivilege);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemPrivilegeSet_get__NewEnum_Proxy(
+    ISWbemPrivilegeSet* This,
+    IUnknown **pUnk);
+void __RPC_STUB ISWbemPrivilegeSet_get__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilegeSet_Item_Proxy(
+    ISWbemPrivilegeSet* This,
+    WbemPrivilegeEnum iPrivilege,
+    ISWbemPrivilege **objWbemPrivilege);
+void __RPC_STUB ISWbemPrivilegeSet_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilegeSet_get_Count_Proxy(
+    ISWbemPrivilegeSet* This,
+    LONG *iCount);
+void __RPC_STUB ISWbemPrivilegeSet_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilegeSet_Add_Proxy(
+    ISWbemPrivilegeSet* This,
+    WbemPrivilegeEnum iPrivilege,
+    VARIANT_BOOL bIsEnabled,
+    ISWbemPrivilege **objWbemPrivilege);
+void __RPC_STUB ISWbemPrivilegeSet_Add_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilegeSet_Remove_Proxy(
+    ISWbemPrivilegeSet* This,
+    WbemPrivilegeEnum iPrivilege);
+void __RPC_STUB ISWbemPrivilegeSet_Remove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilegeSet_DeleteAll_Proxy(
+    ISWbemPrivilegeSet* This);
+void __RPC_STUB ISWbemPrivilegeSet_DeleteAll_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemPrivilegeSet_AddAsString_Proxy(
+    ISWbemPrivilegeSet* This,
+    BSTR strPrivilege,
+    VARIANT_BOOL bIsEnabled,
+    ISWbemPrivilege **objWbemPrivilege);
+void __RPC_STUB ISWbemPrivilegeSet_AddAsString_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemPrivilegeSet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemDateTime interface
+ */
 #ifndef __ISWbemDateTime_INTERFACE_DEFINED__
 #define __ISWbemDateTime_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemDateTime;
+
+DEFINE_GUID(IID_ISWbemDateTime, 0x5e97458a, 0xcf77, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemDateTime : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Value(BSTR *strValue) = 0;
-    virtual HRESULT WINAPI put_Value(BSTR strValue) = 0;
-    virtual HRESULT WINAPI get_Year(__LONG32 *iYear) = 0;
-    virtual HRESULT WINAPI put_Year(__LONG32 iYear) = 0;
-    virtual HRESULT WINAPI get_YearSpecified(VARIANT_BOOL *bYearSpecified) = 0;
-    virtual HRESULT WINAPI put_YearSpecified(VARIANT_BOOL bYearSpecified) = 0;
-    virtual HRESULT WINAPI get_Month(__LONG32 *iMonth) = 0;
-    virtual HRESULT WINAPI put_Month(__LONG32 iMonth) = 0;
-    virtual HRESULT WINAPI get_MonthSpecified(VARIANT_BOOL *bMonthSpecified) = 0;
-    virtual HRESULT WINAPI put_MonthSpecified(VARIANT_BOOL bMonthSpecified) = 0;
-    virtual HRESULT WINAPI get_Day(__LONG32 *iDay) = 0;
-    virtual HRESULT WINAPI put_Day(__LONG32 iDay) = 0;
-    virtual HRESULT WINAPI get_DaySpecified(VARIANT_BOOL *bDaySpecified) = 0;
-    virtual HRESULT WINAPI put_DaySpecified(VARIANT_BOOL bDaySpecified) = 0;
-    virtual HRESULT WINAPI get_Hours(__LONG32 *iHours) = 0;
-    virtual HRESULT WINAPI put_Hours(__LONG32 iHours) = 0;
-    virtual HRESULT WINAPI get_HoursSpecified(VARIANT_BOOL *bHoursSpecified) = 0;
-    virtual HRESULT WINAPI put_HoursSpecified(VARIANT_BOOL bHoursSpecified) = 0;
-    virtual HRESULT WINAPI get_Minutes(__LONG32 *iMinutes) = 0;
-    virtual HRESULT WINAPI put_Minutes(__LONG32 iMinutes) = 0;
-    virtual HRESULT WINAPI get_MinutesSpecified(VARIANT_BOOL *bMinutesSpecified) = 0;
-    virtual HRESULT WINAPI put_MinutesSpecified(VARIANT_BOOL bMinutesSpecified) = 0;
-    virtual HRESULT WINAPI get_Seconds(__LONG32 *iSeconds) = 0;
-    virtual HRESULT WINAPI put_Seconds(__LONG32 iSeconds) = 0;
-    virtual HRESULT WINAPI get_SecondsSpecified(VARIANT_BOOL *bSecondsSpecified) = 0;
-    virtual HRESULT WINAPI put_SecondsSpecified(VARIANT_BOOL bSecondsSpecified) = 0;
-    virtual HRESULT WINAPI get_Microseconds(__LONG32 *iMicroseconds) = 0;
-    virtual HRESULT WINAPI put_Microseconds(__LONG32 iMicroseconds) = 0;
-    virtual HRESULT WINAPI get_MicrosecondsSpecified(VARIANT_BOOL *bMicrosecondsSpecified) = 0;
-    virtual HRESULT WINAPI put_MicrosecondsSpecified(VARIANT_BOOL bMicrosecondsSpecified) = 0;
-    virtual HRESULT WINAPI get_UTC(__LONG32 *iUTC) = 0;
-    virtual HRESULT WINAPI put_UTC(__LONG32 iUTC) = 0;
-    virtual HRESULT WINAPI get_UTCSpecified(VARIANT_BOOL *bUTCSpecified) = 0;
-    virtual HRESULT WINAPI put_UTCSpecified(VARIANT_BOOL bUTCSpecified) = 0;
-    virtual HRESULT WINAPI get_IsInterval(VARIANT_BOOL *bIsInterval) = 0;
-    virtual HRESULT WINAPI put_IsInterval(VARIANT_BOOL bIsInterval) = 0;
-    virtual HRESULT WINAPI GetVarDate(VARIANT_BOOL bIsLocal,DATE *dVarDate) = 0;
-    virtual HRESULT WINAPI SetVarDate(DATE dVarDate,VARIANT_BOOL bIsLocal = TRUE) = 0;
-    virtual HRESULT WINAPI GetFileTime(VARIANT_BOOL bIsLocal,BSTR *strFileTime) = 0;
-    virtual HRESULT WINAPI SetFileTime(BSTR strFileTime,VARIANT_BOOL bIsLocal = TRUE) = 0;
-  };
+MIDL_INTERFACE("5e97458a-cf77-11d3-b38f-00105a1f473a")
+ISWbemDateTime : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Value(
+        BSTR *strValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Value(
+        BSTR strValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Year(
+        LONG *iYear) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Year(
+        LONG iYear) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_YearSpecified(
+        VARIANT_BOOL *bYearSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_YearSpecified(
+        VARIANT_BOOL bYearSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Month(
+        LONG *iMonth) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Month(
+        LONG iMonth) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MonthSpecified(
+        VARIANT_BOOL *bMonthSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MonthSpecified(
+        VARIANT_BOOL bMonthSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Day(
+        LONG *iDay) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Day(
+        LONG iDay) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DaySpecified(
+        VARIANT_BOOL *bDaySpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_DaySpecified(
+        VARIANT_BOOL bDaySpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Hours(
+        LONG *iHours) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Hours(
+        LONG iHours) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_HoursSpecified(
+        VARIANT_BOOL *bHoursSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_HoursSpecified(
+        VARIANT_BOOL bHoursSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Minutes(
+        LONG *iMinutes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Minutes(
+        LONG iMinutes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MinutesSpecified(
+        VARIANT_BOOL *bMinutesSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MinutesSpecified(
+        VARIANT_BOOL bMinutesSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Seconds(
+        LONG *iSeconds) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Seconds(
+        LONG iSeconds) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SecondsSpecified(
+        VARIANT_BOOL *bSecondsSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_SecondsSpecified(
+        VARIANT_BOOL bSecondsSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Microseconds(
+        LONG *iMicroseconds) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Microseconds(
+        LONG iMicroseconds) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MicrosecondsSpecified(
+        VARIANT_BOOL *bMicrosecondsSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_MicrosecondsSpecified(
+        VARIANT_BOOL bMicrosecondsSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UTC(
+        LONG *iUTC) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_UTC(
+        LONG iUTC) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UTCSpecified(
+        VARIANT_BOOL *bUTCSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_UTCSpecified(
+        VARIANT_BOOL bUTCSpecified) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsInterval(
+        VARIANT_BOOL *bIsInterval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_IsInterval(
+        VARIANT_BOOL bIsInterval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetVarDate(
+        VARIANT_BOOL bIsLocal = TRUE,
+        DATE *dVarDate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetVarDate(
+        DATE dVarDate,
+        VARIANT_BOOL bIsLocal = TRUE) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFileTime(
+        VARIANT_BOOL bIsLocal = TRUE,
+        BSTR *strFileTime) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetFileTime(
+        BSTR strFileTime,
+        VARIANT_BOOL bIsLocal = TRUE) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemDateTime, 0x5e97458a, 0xcf77, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a)
+#endif
 #else
-  typedef struct ISWbemDateTimeVtbl {
+typedef struct ISWbemDateTimeVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemDateTime *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemDateTime *This);
-      ULONG (WINAPI *Release)(ISWbemDateTime *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemDateTime *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemDateTime *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemDateTime *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemDateTime *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Value)(ISWbemDateTime *This,BSTR *strValue);
-      HRESULT (WINAPI *put_Value)(ISWbemDateTime *This,BSTR strValue);
-      HRESULT (WINAPI *get_Year)(ISWbemDateTime *This,__LONG32 *iYear);
-      HRESULT (WINAPI *put_Year)(ISWbemDateTime *This,__LONG32 iYear);
-      HRESULT (WINAPI *get_YearSpecified)(ISWbemDateTime *This,VARIANT_BOOL *bYearSpecified);
-      HRESULT (WINAPI *put_YearSpecified)(ISWbemDateTime *This,VARIANT_BOOL bYearSpecified);
-      HRESULT (WINAPI *get_Month)(ISWbemDateTime *This,__LONG32 *iMonth);
-      HRESULT (WINAPI *put_Month)(ISWbemDateTime *This,__LONG32 iMonth);
-      HRESULT (WINAPI *get_MonthSpecified)(ISWbemDateTime *This,VARIANT_BOOL *bMonthSpecified);
-      HRESULT (WINAPI *put_MonthSpecified)(ISWbemDateTime *This,VARIANT_BOOL bMonthSpecified);
-      HRESULT (WINAPI *get_Day)(ISWbemDateTime *This,__LONG32 *iDay);
-      HRESULT (WINAPI *put_Day)(ISWbemDateTime *This,__LONG32 iDay);
-      HRESULT (WINAPI *get_DaySpecified)(ISWbemDateTime *This,VARIANT_BOOL *bDaySpecified);
-      HRESULT (WINAPI *put_DaySpecified)(ISWbemDateTime *This,VARIANT_BOOL bDaySpecified);
-      HRESULT (WINAPI *get_Hours)(ISWbemDateTime *This,__LONG32 *iHours);
-      HRESULT (WINAPI *put_Hours)(ISWbemDateTime *This,__LONG32 iHours);
-      HRESULT (WINAPI *get_HoursSpecified)(ISWbemDateTime *This,VARIANT_BOOL *bHoursSpecified);
-      HRESULT (WINAPI *put_HoursSpecified)(ISWbemDateTime *This,VARIANT_BOOL bHoursSpecified);
-      HRESULT (WINAPI *get_Minutes)(ISWbemDateTime *This,__LONG32 *iMinutes);
-      HRESULT (WINAPI *put_Minutes)(ISWbemDateTime *This,__LONG32 iMinutes);
-      HRESULT (WINAPI *get_MinutesSpecified)(ISWbemDateTime *This,VARIANT_BOOL *bMinutesSpecified);
-      HRESULT (WINAPI *put_MinutesSpecified)(ISWbemDateTime *This,VARIANT_BOOL bMinutesSpecified);
-      HRESULT (WINAPI *get_Seconds)(ISWbemDateTime *This,__LONG32 *iSeconds);
-      HRESULT (WINAPI *put_Seconds)(ISWbemDateTime *This,__LONG32 iSeconds);
-      HRESULT (WINAPI *get_SecondsSpecified)(ISWbemDateTime *This,VARIANT_BOOL *bSecondsSpecified);
-      HRESULT (WINAPI *put_SecondsSpecified)(ISWbemDateTime *This,VARIANT_BOOL bSecondsSpecified);
-      HRESULT (WINAPI *get_Microseconds)(ISWbemDateTime *This,__LONG32 *iMicroseconds);
-      HRESULT (WINAPI *put_Microseconds)(ISWbemDateTime *This,__LONG32 iMicroseconds);
-      HRESULT (WINAPI *get_MicrosecondsSpecified)(ISWbemDateTime *This,VARIANT_BOOL *bMicrosecondsSpecified);
-      HRESULT (WINAPI *put_MicrosecondsSpecified)(ISWbemDateTime *This,VARIANT_BOOL bMicrosecondsSpecified);
-      HRESULT (WINAPI *get_UTC)(ISWbemDateTime *This,__LONG32 *iUTC);
-      HRESULT (WINAPI *put_UTC)(ISWbemDateTime *This,__LONG32 iUTC);
-      HRESULT (WINAPI *get_UTCSpecified)(ISWbemDateTime *This,VARIANT_BOOL *bUTCSpecified);
-      HRESULT (WINAPI *put_UTCSpecified)(ISWbemDateTime *This,VARIANT_BOOL bUTCSpecified);
-      HRESULT (WINAPI *get_IsInterval)(ISWbemDateTime *This,VARIANT_BOOL *bIsInterval);
-      HRESULT (WINAPI *put_IsInterval)(ISWbemDateTime *This,VARIANT_BOOL bIsInterval);
-      HRESULT (WINAPI *GetVarDate)(ISWbemDateTime *This,VARIANT_BOOL bIsLocal,DATE *dVarDate);
-      HRESULT (WINAPI *SetVarDate)(ISWbemDateTime *This,DATE dVarDate,VARIANT_BOOL bIsLocal);
-      HRESULT (WINAPI *GetFileTime)(ISWbemDateTime *This,VARIANT_BOOL bIsLocal,BSTR *strFileTime);
-      HRESULT (WINAPI *SetFileTime)(ISWbemDateTime *This,BSTR strFileTime,VARIANT_BOOL bIsLocal);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemDateTime* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemDateTime* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemDateTime* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemDateTime* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemDateTime* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemDateTime* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemDateTime* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemDateTime methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Value)(
+        ISWbemDateTime* This,
+        BSTR *strValue);
+
+    HRESULT (STDMETHODCALLTYPE *put_Value)(
+        ISWbemDateTime* This,
+        BSTR strValue);
+
+    HRESULT (STDMETHODCALLTYPE *get_Year)(
+        ISWbemDateTime* This,
+        LONG *iYear);
+
+    HRESULT (STDMETHODCALLTYPE *put_Year)(
+        ISWbemDateTime* This,
+        LONG iYear);
+
+    HRESULT (STDMETHODCALLTYPE *get_YearSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL *bYearSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *put_YearSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bYearSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *get_Month)(
+        ISWbemDateTime* This,
+        LONG *iMonth);
+
+    HRESULT (STDMETHODCALLTYPE *put_Month)(
+        ISWbemDateTime* This,
+        LONG iMonth);
+
+    HRESULT (STDMETHODCALLTYPE *get_MonthSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL *bMonthSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *put_MonthSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bMonthSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *get_Day)(
+        ISWbemDateTime* This,
+        LONG *iDay);
+
+    HRESULT (STDMETHODCALLTYPE *put_Day)(
+        ISWbemDateTime* This,
+        LONG iDay);
+
+    HRESULT (STDMETHODCALLTYPE *get_DaySpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL *bDaySpecified);
+
+    HRESULT (STDMETHODCALLTYPE *put_DaySpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bDaySpecified);
+
+    HRESULT (STDMETHODCALLTYPE *get_Hours)(
+        ISWbemDateTime* This,
+        LONG *iHours);
+
+    HRESULT (STDMETHODCALLTYPE *put_Hours)(
+        ISWbemDateTime* This,
+        LONG iHours);
+
+    HRESULT (STDMETHODCALLTYPE *get_HoursSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL *bHoursSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *put_HoursSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bHoursSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *get_Minutes)(
+        ISWbemDateTime* This,
+        LONG *iMinutes);
+
+    HRESULT (STDMETHODCALLTYPE *put_Minutes)(
+        ISWbemDateTime* This,
+        LONG iMinutes);
+
+    HRESULT (STDMETHODCALLTYPE *get_MinutesSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL *bMinutesSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *put_MinutesSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bMinutesSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *get_Seconds)(
+        ISWbemDateTime* This,
+        LONG *iSeconds);
+
+    HRESULT (STDMETHODCALLTYPE *put_Seconds)(
+        ISWbemDateTime* This,
+        LONG iSeconds);
+
+    HRESULT (STDMETHODCALLTYPE *get_SecondsSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL *bSecondsSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *put_SecondsSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bSecondsSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *get_Microseconds)(
+        ISWbemDateTime* This,
+        LONG *iMicroseconds);
+
+    HRESULT (STDMETHODCALLTYPE *put_Microseconds)(
+        ISWbemDateTime* This,
+        LONG iMicroseconds);
+
+    HRESULT (STDMETHODCALLTYPE *get_MicrosecondsSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL *bMicrosecondsSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *put_MicrosecondsSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bMicrosecondsSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *get_UTC)(
+        ISWbemDateTime* This,
+        LONG *iUTC);
+
+    HRESULT (STDMETHODCALLTYPE *put_UTC)(
+        ISWbemDateTime* This,
+        LONG iUTC);
+
+    HRESULT (STDMETHODCALLTYPE *get_UTCSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL *bUTCSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *put_UTCSpecified)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bUTCSpecified);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsInterval)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL *bIsInterval);
+
+    HRESULT (STDMETHODCALLTYPE *put_IsInterval)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bIsInterval);
+
+    HRESULT (STDMETHODCALLTYPE *GetVarDate)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bIsLocal,
+        DATE *dVarDate);
+
+    HRESULT (STDMETHODCALLTYPE *SetVarDate)(
+        ISWbemDateTime* This,
+        DATE dVarDate,
+        VARIANT_BOOL bIsLocal);
+
+    HRESULT (STDMETHODCALLTYPE *GetFileTime)(
+        ISWbemDateTime* This,
+        VARIANT_BOOL bIsLocal,
+        BSTR *strFileTime);
+
+    HRESULT (STDMETHODCALLTYPE *SetFileTime)(
+        ISWbemDateTime* This,
+        BSTR strFileTime,
+        VARIANT_BOOL bIsLocal);
+
     END_INTERFACE
-  } ISWbemDateTimeVtbl;
-  struct ISWbemDateTime {
-    CONST_VTBL struct ISWbemDateTimeVtbl *lpVtbl;
-  };
+} ISWbemDateTimeVtbl;
+interface ISWbemDateTime {
+    CONST_VTBL ISWbemDateTimeVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define ISWbemDateTime_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define ISWbemDateTime_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define ISWbemDateTime_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define ISWbemDateTime_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define ISWbemDateTime_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define ISWbemDateTime_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define ISWbemDateTime_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemDateTime methods ***/
 #define ISWbemDateTime_get_Value(This,strValue) (This)->lpVtbl->get_Value(This,strValue)
 #define ISWbemDateTime_put_Value(This,strValue) (This)->lpVtbl->put_Value(This,strValue)
 #define ISWbemDateTime_get_Year(This,iYear) (This)->lpVtbl->get_Year(This,iYear)
@@ -2374,140 +8197,879 @@
 #define ISWbemDateTime_SetVarDate(This,dVarDate,bIsLocal) (This)->lpVtbl->SetVarDate(This,dVarDate,bIsLocal)
 #define ISWbemDateTime_GetFileTime(This,bIsLocal,strFileTime) (This)->lpVtbl->GetFileTime(This,bIsLocal,strFileTime)
 #define ISWbemDateTime_SetFileTime(This,strFileTime,bIsLocal) (This)->lpVtbl->SetFileTime(This,strFileTime,bIsLocal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemDateTime_QueryInterface(ISWbemDateTime* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemDateTime_AddRef(ISWbemDateTime* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemDateTime_Release(ISWbemDateTime* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemDateTime_GetTypeInfoCount(ISWbemDateTime* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_GetTypeInfo(ISWbemDateTime* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_GetIDsOfNames(ISWbemDateTime* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_Invoke(ISWbemDateTime* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemDateTime methods ***/
+static FORCEINLINE HRESULT ISWbemDateTime_get_Value(ISWbemDateTime* This,BSTR *strValue) {
+    return This->lpVtbl->get_Value(This,strValue);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_Value(ISWbemDateTime* This,BSTR strValue) {
+    return This->lpVtbl->put_Value(This,strValue);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_Year(ISWbemDateTime* This,LONG *iYear) {
+    return This->lpVtbl->get_Year(This,iYear);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_Year(ISWbemDateTime* This,LONG iYear) {
+    return This->lpVtbl->put_Year(This,iYear);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_YearSpecified(ISWbemDateTime* This,VARIANT_BOOL *bYearSpecified) {
+    return This->lpVtbl->get_YearSpecified(This,bYearSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_YearSpecified(ISWbemDateTime* This,VARIANT_BOOL bYearSpecified) {
+    return This->lpVtbl->put_YearSpecified(This,bYearSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_Month(ISWbemDateTime* This,LONG *iMonth) {
+    return This->lpVtbl->get_Month(This,iMonth);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_Month(ISWbemDateTime* This,LONG iMonth) {
+    return This->lpVtbl->put_Month(This,iMonth);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_MonthSpecified(ISWbemDateTime* This,VARIANT_BOOL *bMonthSpecified) {
+    return This->lpVtbl->get_MonthSpecified(This,bMonthSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_MonthSpecified(ISWbemDateTime* This,VARIANT_BOOL bMonthSpecified) {
+    return This->lpVtbl->put_MonthSpecified(This,bMonthSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_Day(ISWbemDateTime* This,LONG *iDay) {
+    return This->lpVtbl->get_Day(This,iDay);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_Day(ISWbemDateTime* This,LONG iDay) {
+    return This->lpVtbl->put_Day(This,iDay);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_DaySpecified(ISWbemDateTime* This,VARIANT_BOOL *bDaySpecified) {
+    return This->lpVtbl->get_DaySpecified(This,bDaySpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_DaySpecified(ISWbemDateTime* This,VARIANT_BOOL bDaySpecified) {
+    return This->lpVtbl->put_DaySpecified(This,bDaySpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_Hours(ISWbemDateTime* This,LONG *iHours) {
+    return This->lpVtbl->get_Hours(This,iHours);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_Hours(ISWbemDateTime* This,LONG iHours) {
+    return This->lpVtbl->put_Hours(This,iHours);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_HoursSpecified(ISWbemDateTime* This,VARIANT_BOOL *bHoursSpecified) {
+    return This->lpVtbl->get_HoursSpecified(This,bHoursSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_HoursSpecified(ISWbemDateTime* This,VARIANT_BOOL bHoursSpecified) {
+    return This->lpVtbl->put_HoursSpecified(This,bHoursSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_Minutes(ISWbemDateTime* This,LONG *iMinutes) {
+    return This->lpVtbl->get_Minutes(This,iMinutes);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_Minutes(ISWbemDateTime* This,LONG iMinutes) {
+    return This->lpVtbl->put_Minutes(This,iMinutes);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_MinutesSpecified(ISWbemDateTime* This,VARIANT_BOOL *bMinutesSpecified) {
+    return This->lpVtbl->get_MinutesSpecified(This,bMinutesSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_MinutesSpecified(ISWbemDateTime* This,VARIANT_BOOL bMinutesSpecified) {
+    return This->lpVtbl->put_MinutesSpecified(This,bMinutesSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_Seconds(ISWbemDateTime* This,LONG *iSeconds) {
+    return This->lpVtbl->get_Seconds(This,iSeconds);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_Seconds(ISWbemDateTime* This,LONG iSeconds) {
+    return This->lpVtbl->put_Seconds(This,iSeconds);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_SecondsSpecified(ISWbemDateTime* This,VARIANT_BOOL *bSecondsSpecified) {
+    return This->lpVtbl->get_SecondsSpecified(This,bSecondsSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_SecondsSpecified(ISWbemDateTime* This,VARIANT_BOOL bSecondsSpecified) {
+    return This->lpVtbl->put_SecondsSpecified(This,bSecondsSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_Microseconds(ISWbemDateTime* This,LONG *iMicroseconds) {
+    return This->lpVtbl->get_Microseconds(This,iMicroseconds);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_Microseconds(ISWbemDateTime* This,LONG iMicroseconds) {
+    return This->lpVtbl->put_Microseconds(This,iMicroseconds);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_MicrosecondsSpecified(ISWbemDateTime* This,VARIANT_BOOL *bMicrosecondsSpecified) {
+    return This->lpVtbl->get_MicrosecondsSpecified(This,bMicrosecondsSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_MicrosecondsSpecified(ISWbemDateTime* This,VARIANT_BOOL bMicrosecondsSpecified) {
+    return This->lpVtbl->put_MicrosecondsSpecified(This,bMicrosecondsSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_UTC(ISWbemDateTime* This,LONG *iUTC) {
+    return This->lpVtbl->get_UTC(This,iUTC);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_UTC(ISWbemDateTime* This,LONG iUTC) {
+    return This->lpVtbl->put_UTC(This,iUTC);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_UTCSpecified(ISWbemDateTime* This,VARIANT_BOOL *bUTCSpecified) {
+    return This->lpVtbl->get_UTCSpecified(This,bUTCSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_UTCSpecified(ISWbemDateTime* This,VARIANT_BOOL bUTCSpecified) {
+    return This->lpVtbl->put_UTCSpecified(This,bUTCSpecified);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_get_IsInterval(ISWbemDateTime* This,VARIANT_BOOL *bIsInterval) {
+    return This->lpVtbl->get_IsInterval(This,bIsInterval);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_put_IsInterval(ISWbemDateTime* This,VARIANT_BOOL bIsInterval) {
+    return This->lpVtbl->put_IsInterval(This,bIsInterval);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_GetVarDate(ISWbemDateTime* This,VARIANT_BOOL bIsLocal,DATE *dVarDate) {
+    return This->lpVtbl->GetVarDate(This,bIsLocal,dVarDate);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_SetVarDate(ISWbemDateTime* This,DATE dVarDate,VARIANT_BOOL bIsLocal) {
+    return This->lpVtbl->SetVarDate(This,dVarDate,bIsLocal);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_GetFileTime(ISWbemDateTime* This,VARIANT_BOOL bIsLocal,BSTR *strFileTime) {
+    return This->lpVtbl->GetFileTime(This,bIsLocal,strFileTime);
+}
+static FORCEINLINE HRESULT ISWbemDateTime_SetFileTime(ISWbemDateTime* This,BSTR strFileTime,VARIANT_BOOL bIsLocal) {
+    return This->lpVtbl->SetFileTime(This,strFileTime,bIsLocal);
+}
 #endif
 #endif
-  HRESULT WINAPI ISWbemDateTime_get_Value_Proxy(ISWbemDateTime *This,BSTR *strValue);
-  void __RPC_STUB ISWbemDateTime_get_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_Value_Proxy(ISWbemDateTime *This,BSTR strValue);
-  void __RPC_STUB ISWbemDateTime_put_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_Year_Proxy(ISWbemDateTime *This,__LONG32 *iYear);
-  void __RPC_STUB ISWbemDateTime_get_Year_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_Year_Proxy(ISWbemDateTime *This,__LONG32 iYear);
-  void __RPC_STUB ISWbemDateTime_put_Year_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_YearSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL *bYearSpecified);
-  void __RPC_STUB ISWbemDateTime_get_YearSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_YearSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL bYearSpecified);
-  void __RPC_STUB ISWbemDateTime_put_YearSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_Month_Proxy(ISWbemDateTime *This,__LONG32 *iMonth);
-  void __RPC_STUB ISWbemDateTime_get_Month_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_Month_Proxy(ISWbemDateTime *This,__LONG32 iMonth);
-  void __RPC_STUB ISWbemDateTime_put_Month_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_MonthSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL *bMonthSpecified);
-  void __RPC_STUB ISWbemDateTime_get_MonthSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_MonthSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL bMonthSpecified);
-  void __RPC_STUB ISWbemDateTime_put_MonthSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_Day_Proxy(ISWbemDateTime *This,__LONG32 *iDay);
-  void __RPC_STUB ISWbemDateTime_get_Day_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_Day_Proxy(ISWbemDateTime *This,__LONG32 iDay);
-  void __RPC_STUB ISWbemDateTime_put_Day_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_DaySpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL *bDaySpecified);
-  void __RPC_STUB ISWbemDateTime_get_DaySpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_DaySpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL bDaySpecified);
-  void __RPC_STUB ISWbemDateTime_put_DaySpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_Hours_Proxy(ISWbemDateTime *This,__LONG32 *iHours);
-  void __RPC_STUB ISWbemDateTime_get_Hours_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_Hours_Proxy(ISWbemDateTime *This,__LONG32 iHours);
-  void __RPC_STUB ISWbemDateTime_put_Hours_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_HoursSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL *bHoursSpecified);
-  void __RPC_STUB ISWbemDateTime_get_HoursSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_HoursSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL bHoursSpecified);
-  void __RPC_STUB ISWbemDateTime_put_HoursSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_Minutes_Proxy(ISWbemDateTime *This,__LONG32 *iMinutes);
-  void __RPC_STUB ISWbemDateTime_get_Minutes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_Minutes_Proxy(ISWbemDateTime *This,__LONG32 iMinutes);
-  void __RPC_STUB ISWbemDateTime_put_Minutes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_MinutesSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL *bMinutesSpecified);
-  void __RPC_STUB ISWbemDateTime_get_MinutesSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_MinutesSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL bMinutesSpecified);
-  void __RPC_STUB ISWbemDateTime_put_MinutesSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_Seconds_Proxy(ISWbemDateTime *This,__LONG32 *iSeconds);
-  void __RPC_STUB ISWbemDateTime_get_Seconds_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_Seconds_Proxy(ISWbemDateTime *This,__LONG32 iSeconds);
-  void __RPC_STUB ISWbemDateTime_put_Seconds_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_SecondsSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL *bSecondsSpecified);
-  void __RPC_STUB ISWbemDateTime_get_SecondsSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_SecondsSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL bSecondsSpecified);
-  void __RPC_STUB ISWbemDateTime_put_SecondsSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_Microseconds_Proxy(ISWbemDateTime *This,__LONG32 *iMicroseconds);
-  void __RPC_STUB ISWbemDateTime_get_Microseconds_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_Microseconds_Proxy(ISWbemDateTime *This,__LONG32 iMicroseconds);
-  void __RPC_STUB ISWbemDateTime_put_Microseconds_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_MicrosecondsSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL *bMicrosecondsSpecified);
-  void __RPC_STUB ISWbemDateTime_get_MicrosecondsSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_MicrosecondsSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL bMicrosecondsSpecified);
-  void __RPC_STUB ISWbemDateTime_put_MicrosecondsSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_UTC_Proxy(ISWbemDateTime *This,__LONG32 *iUTC);
-  void __RPC_STUB ISWbemDateTime_get_UTC_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_UTC_Proxy(ISWbemDateTime *This,__LONG32 iUTC);
-  void __RPC_STUB ISWbemDateTime_put_UTC_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_UTCSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL *bUTCSpecified);
-  void __RPC_STUB ISWbemDateTime_get_UTCSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_UTCSpecified_Proxy(ISWbemDateTime *This,VARIANT_BOOL bUTCSpecified);
-  void __RPC_STUB ISWbemDateTime_put_UTCSpecified_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_get_IsInterval_Proxy(ISWbemDateTime *This,VARIANT_BOOL *bIsInterval);
-  void __RPC_STUB ISWbemDateTime_get_IsInterval_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_put_IsInterval_Proxy(ISWbemDateTime *This,VARIANT_BOOL bIsInterval);
-  void __RPC_STUB ISWbemDateTime_put_IsInterval_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_GetVarDate_Proxy(ISWbemDateTime *This,VARIANT_BOOL bIsLocal,DATE *dVarDate);
-  void __RPC_STUB ISWbemDateTime_GetVarDate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_SetVarDate_Proxy(ISWbemDateTime *This,DATE dVarDate,VARIANT_BOOL bIsLocal);
-  void __RPC_STUB ISWbemDateTime_SetVarDate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_GetFileTime_Proxy(ISWbemDateTime *This,VARIANT_BOOL bIsLocal,BSTR *strFileTime);
-  void __RPC_STUB ISWbemDateTime_GetFileTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemDateTime_SetFileTime_Proxy(ISWbemDateTime *This,BSTR strFileTime,VARIANT_BOOL bIsLocal);
-  void __RPC_STUB ISWbemDateTime_SetFileTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_Value_Proxy(
+    ISWbemDateTime* This,
+    BSTR *strValue);
+void __RPC_STUB ISWbemDateTime_get_Value_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_Value_Proxy(
+    ISWbemDateTime* This,
+    BSTR strValue);
+void __RPC_STUB ISWbemDateTime_put_Value_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_Year_Proxy(
+    ISWbemDateTime* This,
+    LONG *iYear);
+void __RPC_STUB ISWbemDateTime_get_Year_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_Year_Proxy(
+    ISWbemDateTime* This,
+    LONG iYear);
+void __RPC_STUB ISWbemDateTime_put_Year_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_YearSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL *bYearSpecified);
+void __RPC_STUB ISWbemDateTime_get_YearSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_YearSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bYearSpecified);
+void __RPC_STUB ISWbemDateTime_put_YearSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_Month_Proxy(
+    ISWbemDateTime* This,
+    LONG *iMonth);
+void __RPC_STUB ISWbemDateTime_get_Month_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_Month_Proxy(
+    ISWbemDateTime* This,
+    LONG iMonth);
+void __RPC_STUB ISWbemDateTime_put_Month_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_MonthSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL *bMonthSpecified);
+void __RPC_STUB ISWbemDateTime_get_MonthSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_MonthSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bMonthSpecified);
+void __RPC_STUB ISWbemDateTime_put_MonthSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_Day_Proxy(
+    ISWbemDateTime* This,
+    LONG *iDay);
+void __RPC_STUB ISWbemDateTime_get_Day_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_Day_Proxy(
+    ISWbemDateTime* This,
+    LONG iDay);
+void __RPC_STUB ISWbemDateTime_put_Day_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_DaySpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL *bDaySpecified);
+void __RPC_STUB ISWbemDateTime_get_DaySpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_DaySpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bDaySpecified);
+void __RPC_STUB ISWbemDateTime_put_DaySpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_Hours_Proxy(
+    ISWbemDateTime* This,
+    LONG *iHours);
+void __RPC_STUB ISWbemDateTime_get_Hours_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_Hours_Proxy(
+    ISWbemDateTime* This,
+    LONG iHours);
+void __RPC_STUB ISWbemDateTime_put_Hours_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_HoursSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL *bHoursSpecified);
+void __RPC_STUB ISWbemDateTime_get_HoursSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_HoursSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bHoursSpecified);
+void __RPC_STUB ISWbemDateTime_put_HoursSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_Minutes_Proxy(
+    ISWbemDateTime* This,
+    LONG *iMinutes);
+void __RPC_STUB ISWbemDateTime_get_Minutes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_Minutes_Proxy(
+    ISWbemDateTime* This,
+    LONG iMinutes);
+void __RPC_STUB ISWbemDateTime_put_Minutes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_MinutesSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL *bMinutesSpecified);
+void __RPC_STUB ISWbemDateTime_get_MinutesSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_MinutesSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bMinutesSpecified);
+void __RPC_STUB ISWbemDateTime_put_MinutesSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_Seconds_Proxy(
+    ISWbemDateTime* This,
+    LONG *iSeconds);
+void __RPC_STUB ISWbemDateTime_get_Seconds_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_Seconds_Proxy(
+    ISWbemDateTime* This,
+    LONG iSeconds);
+void __RPC_STUB ISWbemDateTime_put_Seconds_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_SecondsSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL *bSecondsSpecified);
+void __RPC_STUB ISWbemDateTime_get_SecondsSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_SecondsSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bSecondsSpecified);
+void __RPC_STUB ISWbemDateTime_put_SecondsSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_Microseconds_Proxy(
+    ISWbemDateTime* This,
+    LONG *iMicroseconds);
+void __RPC_STUB ISWbemDateTime_get_Microseconds_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_Microseconds_Proxy(
+    ISWbemDateTime* This,
+    LONG iMicroseconds);
+void __RPC_STUB ISWbemDateTime_put_Microseconds_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_MicrosecondsSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL *bMicrosecondsSpecified);
+void __RPC_STUB ISWbemDateTime_get_MicrosecondsSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_MicrosecondsSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bMicrosecondsSpecified);
+void __RPC_STUB ISWbemDateTime_put_MicrosecondsSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_UTC_Proxy(
+    ISWbemDateTime* This,
+    LONG *iUTC);
+void __RPC_STUB ISWbemDateTime_get_UTC_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_UTC_Proxy(
+    ISWbemDateTime* This,
+    LONG iUTC);
+void __RPC_STUB ISWbemDateTime_put_UTC_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_UTCSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL *bUTCSpecified);
+void __RPC_STUB ISWbemDateTime_get_UTCSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_UTCSpecified_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bUTCSpecified);
+void __RPC_STUB ISWbemDateTime_put_UTCSpecified_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_get_IsInterval_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL *bIsInterval);
+void __RPC_STUB ISWbemDateTime_get_IsInterval_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_put_IsInterval_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bIsInterval);
+void __RPC_STUB ISWbemDateTime_put_IsInterval_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_GetVarDate_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bIsLocal,
+    DATE *dVarDate);
+void __RPC_STUB ISWbemDateTime_GetVarDate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_SetVarDate_Proxy(
+    ISWbemDateTime* This,
+    DATE dVarDate,
+    VARIANT_BOOL bIsLocal);
+void __RPC_STUB ISWbemDateTime_SetVarDate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_GetFileTime_Proxy(
+    ISWbemDateTime* This,
+    VARIANT_BOOL bIsLocal,
+    BSTR *strFileTime);
+void __RPC_STUB ISWbemDateTime_GetFileTime_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemDateTime_SetFileTime_Proxy(
+    ISWbemDateTime* This,
+    BSTR strFileTime,
+    VARIANT_BOOL bIsLocal);
+void __RPC_STUB ISWbemDateTime_SetFileTime_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemDateTime_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemRefreshableItem interface
+ */
+#ifndef __ISWbemRefreshableItem_INTERFACE_DEFINED__
+#define __ISWbemRefreshableItem_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISWbemRefreshableItem, 0x5ad4bf92, 0xdaab, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5ad4bf92-daab-11d3-b38f-00105a1f473a")
+ISWbemRefreshableItem : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Index(
+        LONG *iIndex) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Refresher(
+        ISWbemRefresher **objWbemRefresher) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsSet(
+        VARIANT_BOOL *bIsSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Object(
+        ISWbemObjectEx **objWbemObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ObjectSet(
+        ISWbemObjectSet **objWbemObjectSet) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Remove(
+        LONG iFlags = 0) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemRefreshableItem, 0x5ad4bf92, 0xdaab, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a)
+#endif
+#else
+typedef struct ISWbemRefreshableItemVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemRefreshableItem* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemRefreshableItem* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemRefreshableItem* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemRefreshableItem* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemRefreshableItem* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemRefreshableItem* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemRefreshableItem* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemRefreshableItem methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Index)(
+        ISWbemRefreshableItem* This,
+        LONG *iIndex);
+
+    HRESULT (STDMETHODCALLTYPE *get_Refresher)(
+        ISWbemRefreshableItem* This,
+        ISWbemRefresher **objWbemRefresher);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsSet)(
+        ISWbemRefreshableItem* This,
+        VARIANT_BOOL *bIsSet);
+
+    HRESULT (STDMETHODCALLTYPE *get_Object)(
+        ISWbemRefreshableItem* This,
+        ISWbemObjectEx **objWbemObject);
+
+    HRESULT (STDMETHODCALLTYPE *get_ObjectSet)(
+        ISWbemRefreshableItem* This,
+        ISWbemObjectSet **objWbemObjectSet);
+
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        ISWbemRefreshableItem* This,
+        LONG iFlags);
+
+    END_INTERFACE
+} ISWbemRefreshableItemVtbl;
+interface ISWbemRefreshableItem {
+    CONST_VTBL ISWbemRefreshableItemVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISWbemRefreshableItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISWbemRefreshableItem_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISWbemRefreshableItem_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISWbemRefreshableItem_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISWbemRefreshableItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISWbemRefreshableItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISWbemRefreshableItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemRefreshableItem methods ***/
+#define ISWbemRefreshableItem_get_Index(This,iIndex) (This)->lpVtbl->get_Index(This,iIndex)
+#define ISWbemRefreshableItem_get_Refresher(This,objWbemRefresher) (This)->lpVtbl->get_Refresher(This,objWbemRefresher)
+#define ISWbemRefreshableItem_get_IsSet(This,bIsSet) (This)->lpVtbl->get_IsSet(This,bIsSet)
+#define ISWbemRefreshableItem_get_Object(This,objWbemObject) (This)->lpVtbl->get_Object(This,objWbemObject)
+#define ISWbemRefreshableItem_get_ObjectSet(This,objWbemObjectSet) (This)->lpVtbl->get_ObjectSet(This,objWbemObjectSet)
+#define ISWbemRefreshableItem_Remove(This,iFlags) (This)->lpVtbl->Remove(This,iFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemRefreshableItem_QueryInterface(ISWbemRefreshableItem* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemRefreshableItem_AddRef(ISWbemRefreshableItem* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemRefreshableItem_Release(ISWbemRefreshableItem* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemRefreshableItem_GetTypeInfoCount(ISWbemRefreshableItem* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemRefreshableItem_GetTypeInfo(ISWbemRefreshableItem* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemRefreshableItem_GetIDsOfNames(ISWbemRefreshableItem* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemRefreshableItem_Invoke(ISWbemRefreshableItem* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemRefreshableItem methods ***/
+static FORCEINLINE HRESULT ISWbemRefreshableItem_get_Index(ISWbemRefreshableItem* This,LONG *iIndex) {
+    return This->lpVtbl->get_Index(This,iIndex);
+}
+static FORCEINLINE HRESULT ISWbemRefreshableItem_get_Refresher(ISWbemRefreshableItem* This,ISWbemRefresher **objWbemRefresher) {
+    return This->lpVtbl->get_Refresher(This,objWbemRefresher);
+}
+static FORCEINLINE HRESULT ISWbemRefreshableItem_get_IsSet(ISWbemRefreshableItem* This,VARIANT_BOOL *bIsSet) {
+    return This->lpVtbl->get_IsSet(This,bIsSet);
+}
+static FORCEINLINE HRESULT ISWbemRefreshableItem_get_Object(ISWbemRefreshableItem* This,ISWbemObjectEx **objWbemObject) {
+    return This->lpVtbl->get_Object(This,objWbemObject);
+}
+static FORCEINLINE HRESULT ISWbemRefreshableItem_get_ObjectSet(ISWbemRefreshableItem* This,ISWbemObjectSet **objWbemObjectSet) {
+    return This->lpVtbl->get_ObjectSet(This,objWbemObjectSet);
+}
+static FORCEINLINE HRESULT ISWbemRefreshableItem_Remove(ISWbemRefreshableItem* This,LONG iFlags) {
+    return This->lpVtbl->Remove(This,iFlags);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISWbemRefreshableItem_get_Index_Proxy(
+    ISWbemRefreshableItem* This,
+    LONG *iIndex);
+void __RPC_STUB ISWbemRefreshableItem_get_Index_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefreshableItem_get_Refresher_Proxy(
+    ISWbemRefreshableItem* This,
+    ISWbemRefresher **objWbemRefresher);
+void __RPC_STUB ISWbemRefreshableItem_get_Refresher_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefreshableItem_get_IsSet_Proxy(
+    ISWbemRefreshableItem* This,
+    VARIANT_BOOL *bIsSet);
+void __RPC_STUB ISWbemRefreshableItem_get_IsSet_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefreshableItem_get_Object_Proxy(
+    ISWbemRefreshableItem* This,
+    ISWbemObjectEx **objWbemObject);
+void __RPC_STUB ISWbemRefreshableItem_get_Object_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefreshableItem_get_ObjectSet_Proxy(
+    ISWbemRefreshableItem* This,
+    ISWbemObjectSet **objWbemObjectSet);
+void __RPC_STUB ISWbemRefreshableItem_get_ObjectSet_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefreshableItem_Remove_Proxy(
+    ISWbemRefreshableItem* This,
+    LONG iFlags);
+void __RPC_STUB ISWbemRefreshableItem_Remove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemRefreshableItem_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISWbemRefresher interface
+ */
 #ifndef __ISWbemRefresher_INTERFACE_DEFINED__
 #define __ISWbemRefresher_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemRefresher;
+
+DEFINE_GUID(IID_ISWbemRefresher, 0x14d8250e, 0xd9c2, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemRefresher : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get__NewEnum(IUnknown **pUnk) = 0;
-    virtual HRESULT WINAPI Item(__LONG32 iIndex,ISWbemRefreshableItem **objWbemRefreshableItem) = 0;
-    virtual HRESULT WINAPI get_Count(__LONG32 *iCount) = 0;
-    virtual HRESULT WINAPI Add(ISWbemServicesEx *objWbemServices,BSTR bsInstancePath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemRefreshableItem **objWbemRefreshableItem) = 0;
-    virtual HRESULT WINAPI AddEnum(ISWbemServicesEx *objWbemServices,BSTR bsClassName,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemRefreshableItem **objWbemRefreshableItem) = 0;
-    virtual HRESULT WINAPI Remove(__LONG32 iIndex,__LONG32 iFlags = 0) = 0;
-    virtual HRESULT WINAPI Refresh(__LONG32 iFlags = 0) = 0;
-    virtual HRESULT WINAPI get_AutoReconnect(VARIANT_BOOL *bCount) = 0;
-    virtual HRESULT WINAPI put_AutoReconnect(VARIANT_BOOL bCount) = 0;
-    virtual HRESULT WINAPI DeleteAll(void) = 0;
-  };
+MIDL_INTERFACE("14d8250e-d9c2-11d3-b38f-00105a1f473a")
+ISWbemRefresher : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **pUnk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        LONG iIndex,
+        ISWbemRefreshableItem **objWbemRefreshableItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *iCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Add(
+        ISWbemServicesEx *objWbemServices,
+        BSTR bsInstancePath,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemRefreshableItem **objWbemRefreshableItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddEnum(
+        ISWbemServicesEx *objWbemServices,
+        BSTR bsClassName,
+        LONG iFlags = 0,
+        IDispatch *objWbemNamedValueSet = 0,
+        ISWbemRefreshableItem **objWbemRefreshableItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Remove(
+        LONG iIndex,
+        LONG iFlags = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Refresh(
+        LONG iFlags = 0) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_AutoReconnect(
+        VARIANT_BOOL *bCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_AutoReconnect(
+        VARIANT_BOOL bCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteAll(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISWbemRefresher, 0x14d8250e, 0xd9c2, 0x11d3, 0xb3,0x8f, 0x00,0x10,0x5a,0x1f,0x47,0x3a)
+#endif
 #else
-  typedef struct ISWbemRefresherVtbl {
+typedef struct ISWbemRefresherVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemRefresher *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemRefresher *This);
-      ULONG (WINAPI *Release)(ISWbemRefresher *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemRefresher *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemRefresher *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemRefresher *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemRefresher *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get__NewEnum)(ISWbemRefresher *This,IUnknown **pUnk);
-      HRESULT (WINAPI *Item)(ISWbemRefresher *This,__LONG32 iIndex,ISWbemRefreshableItem **objWbemRefreshableItem);
-      HRESULT (WINAPI *get_Count)(ISWbemRefresher *This,__LONG32 *iCount);
-      HRESULT (WINAPI *Add)(ISWbemRefresher *This,ISWbemServicesEx *objWbemServices,BSTR bsInstancePath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemRefreshableItem **objWbemRefreshableItem);
-      HRESULT (WINAPI *AddEnum)(ISWbemRefresher *This,ISWbemServicesEx *objWbemServices,BSTR bsClassName,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemRefreshableItem **objWbemRefreshableItem);
-      HRESULT (WINAPI *Remove)(ISWbemRefresher *This,__LONG32 iIndex,__LONG32 iFlags);
-      HRESULT (WINAPI *Refresh)(ISWbemRefresher *This,__LONG32 iFlags);
-      HRESULT (WINAPI *get_AutoReconnect)(ISWbemRefresher *This,VARIANT_BOOL *bCount);
-      HRESULT (WINAPI *put_AutoReconnect)(ISWbemRefresher *This,VARIANT_BOOL bCount);
-      HRESULT (WINAPI *DeleteAll)(ISWbemRefresher *This);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISWbemRefresher* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISWbemRefresher* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISWbemRefresher* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISWbemRefresher* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISWbemRefresher* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISWbemRefresher* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISWbemRefresher* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISWbemRefresher methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        ISWbemRefresher* This,
+        IUnknown **pUnk);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        ISWbemRefresher* This,
+        LONG iIndex,
+        ISWbemRefreshableItem **objWbemRefreshableItem);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        ISWbemRefresher* This,
+        LONG *iCount);
+
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        ISWbemRefresher* This,
+        ISWbemServicesEx *objWbemServices,
+        BSTR bsInstancePath,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemRefreshableItem **objWbemRefreshableItem);
+
+    HRESULT (STDMETHODCALLTYPE *AddEnum)(
+        ISWbemRefresher* This,
+        ISWbemServicesEx *objWbemServices,
+        BSTR bsClassName,
+        LONG iFlags,
+        IDispatch *objWbemNamedValueSet,
+        ISWbemRefreshableItem **objWbemRefreshableItem);
+
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        ISWbemRefresher* This,
+        LONG iIndex,
+        LONG iFlags);
+
+    HRESULT (STDMETHODCALLTYPE *Refresh)(
+        ISWbemRefresher* This,
+        LONG iFlags);
+
+    HRESULT (STDMETHODCALLTYPE *get_AutoReconnect)(
+        ISWbemRefresher* This,
+        VARIANT_BOOL *bCount);
+
+    HRESULT (STDMETHODCALLTYPE *put_AutoReconnect)(
+        ISWbemRefresher* This,
+        VARIANT_BOOL bCount);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteAll)(
+        ISWbemRefresher* This);
+
     END_INTERFACE
-  } ISWbemRefresherVtbl;
-  struct ISWbemRefresher {
-    CONST_VTBL struct ISWbemRefresherVtbl *lpVtbl;
-  };
+} ISWbemRefresherVtbl;
+interface ISWbemRefresher {
+    CONST_VTBL ISWbemRefresherVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define ISWbemRefresher_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define ISWbemRefresher_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define ISWbemRefresher_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define ISWbemRefresher_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define ISWbemRefresher_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define ISWbemRefresher_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define ISWbemRefresher_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISWbemRefresher methods ***/
 #define ISWbemRefresher_get__NewEnum(This,pUnk) (This)->lpVtbl->get__NewEnum(This,pUnk)
 #define ISWbemRefresher_Item(This,iIndex,objWbemRefreshableItem) (This)->lpVtbl->Item(This,iIndex,objWbemRefreshableItem)
 #define ISWbemRefresher_get_Count(This,iCount) (This)->lpVtbl->get_Count(This,iCount)
@@ -2518,202 +9080,166 @@
 #define ISWbemRefresher_get_AutoReconnect(This,bCount) (This)->lpVtbl->get_AutoReconnect(This,bCount)
 #define ISWbemRefresher_put_AutoReconnect(This,bCount) (This)->lpVtbl->put_AutoReconnect(This,bCount)
 #define ISWbemRefresher_DeleteAll(This) (This)->lpVtbl->DeleteAll(This)
-#endif
-#endif
-  HRESULT WINAPI ISWbemRefresher_get__NewEnum_Proxy(ISWbemRefresher *This,IUnknown **pUnk);
-  void __RPC_STUB ISWbemRefresher_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefresher_Item_Proxy(ISWbemRefresher *This,__LONG32 iIndex,ISWbemRefreshableItem **objWbemRefreshableItem);
-  void __RPC_STUB ISWbemRefresher_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefresher_get_Count_Proxy(ISWbemRefresher *This,__LONG32 *iCount);
-  void __RPC_STUB ISWbemRefresher_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefresher_Add_Proxy(ISWbemRefresher *This,ISWbemServicesEx *objWbemServices,BSTR bsInstancePath,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemRefreshableItem **objWbemRefreshableItem);
-  void __RPC_STUB ISWbemRefresher_Add_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefresher_AddEnum_Proxy(ISWbemRefresher *This,ISWbemServicesEx *objWbemServices,BSTR bsClassName,__LONG32 iFlags,IDispatch *objWbemNamedValueSet,ISWbemRefreshableItem **objWbemRefreshableItem);
-  void __RPC_STUB ISWbemRefresher_AddEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefresher_Remove_Proxy(ISWbemRefresher *This,__LONG32 iIndex,__LONG32 iFlags);
-  void __RPC_STUB ISWbemRefresher_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefresher_Refresh_Proxy(ISWbemRefresher *This,__LONG32 iFlags);
-  void __RPC_STUB ISWbemRefresher_Refresh_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefresher_get_AutoReconnect_Proxy(ISWbemRefresher *This,VARIANT_BOOL *bCount);
-  void __RPC_STUB ISWbemRefresher_get_AutoReconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefresher_put_AutoReconnect_Proxy(ISWbemRefresher *This,VARIANT_BOOL bCount);
-  void __RPC_STUB ISWbemRefresher_put_AutoReconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefresher_DeleteAll_Proxy(ISWbemRefresher *This);
-  void __RPC_STUB ISWbemRefresher_DeleteAll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISWbemRefreshableItem_INTERFACE_DEFINED__
-#define __ISWbemRefreshableItem_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_ISWbemRefreshableItem;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISWbemRefreshableItem : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Index(__LONG32 *iIndex) = 0;
-    virtual HRESULT WINAPI get_Refresher(ISWbemRefresher **objWbemRefresher) = 0;
-    virtual HRESULT WINAPI get_IsSet(VARIANT_BOOL *bIsSet) = 0;
-    virtual HRESULT WINAPI get_Object(ISWbemObjectEx **objWbemObject) = 0;
-    virtual HRESULT WINAPI get_ObjectSet(ISWbemObjectSet **objWbemObjectSet) = 0;
-    virtual HRESULT WINAPI Remove(__LONG32 iFlags = 0) = 0;
-  };
 #else
-  typedef struct ISWbemRefreshableItemVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISWbemRefreshableItem *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISWbemRefreshableItem *This);
-      ULONG (WINAPI *Release)(ISWbemRefreshableItem *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISWbemRefreshableItem *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISWbemRefreshableItem *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISWbemRefreshableItem *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISWbemRefreshableItem *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Index)(ISWbemRefreshableItem *This,__LONG32 *iIndex);
-      HRESULT (WINAPI *get_Refresher)(ISWbemRefreshableItem *This,ISWbemRefresher **objWbemRefresher);
-      HRESULT (WINAPI *get_IsSet)(ISWbemRefreshableItem *This,VARIANT_BOOL *bIsSet);
-      HRESULT (WINAPI *get_Object)(ISWbemRefreshableItem *This,ISWbemObjectEx **objWbemObject);
-      HRESULT (WINAPI *get_ObjectSet)(ISWbemRefreshableItem *This,ISWbemObjectSet **objWbemObjectSet);
-      HRESULT (WINAPI *Remove)(ISWbemRefreshableItem *This,__LONG32 iFlags);
-    END_INTERFACE
-  } ISWbemRefreshableItemVtbl;
-  struct ISWbemRefreshableItem {
-    CONST_VTBL struct ISWbemRefreshableItemVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISWbemRefreshableItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISWbemRefreshableItem_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISWbemRefreshableItem_Release(This) (This)->lpVtbl->Release(This)
-#define ISWbemRefreshableItem_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISWbemRefreshableItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISWbemRefreshableItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISWbemRefreshableItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISWbemRefreshableItem_get_Index(This,iIndex) (This)->lpVtbl->get_Index(This,iIndex)
-#define ISWbemRefreshableItem_get_Refresher(This,objWbemRefresher) (This)->lpVtbl->get_Refresher(This,objWbemRefresher)
-#define ISWbemRefreshableItem_get_IsSet(This,bIsSet) (This)->lpVtbl->get_IsSet(This,bIsSet)
-#define ISWbemRefreshableItem_get_Object(This,objWbemObject) (This)->lpVtbl->get_Object(This,objWbemObject)
-#define ISWbemRefreshableItem_get_ObjectSet(This,objWbemObjectSet) (This)->lpVtbl->get_ObjectSet(This,objWbemObjectSet)
-#define ISWbemRefreshableItem_Remove(This,iFlags) (This)->lpVtbl->Remove(This,iFlags)
-#endif
-#endif
-  HRESULT WINAPI ISWbemRefreshableItem_get_Index_Proxy(ISWbemRefreshableItem *This,__LONG32 *iIndex);
-  void __RPC_STUB ISWbemRefreshableItem_get_Index_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefreshableItem_get_Refresher_Proxy(ISWbemRefreshableItem *This,ISWbemRefresher **objWbemRefresher);
-  void __RPC_STUB ISWbemRefreshableItem_get_Refresher_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefreshableItem_get_IsSet_Proxy(ISWbemRefreshableItem *This,VARIANT_BOOL *bIsSet);
-  void __RPC_STUB ISWbemRefreshableItem_get_IsSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefreshableItem_get_Object_Proxy(ISWbemRefreshableItem *This,ISWbemObjectEx **objWbemObject);
-  void __RPC_STUB ISWbemRefreshableItem_get_Object_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefreshableItem_get_ObjectSet_Proxy(ISWbemRefreshableItem *This,ISWbemObjectSet **objWbemObjectSet);
-  void __RPC_STUB ISWbemRefreshableItem_get_ObjectSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISWbemRefreshableItem_Remove_Proxy(ISWbemRefreshableItem *This,__LONG32 iFlags);
-  void __RPC_STUB ISWbemRefreshableItem_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  EXTERN_C const CLSID CLSID_SWbemLocator;
-#ifdef __cplusplus
-  class SWbemLocator;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemNamedValueSet;
-#ifdef __cplusplus
-  class SWbemNamedValueSet;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemObjectPath;
-#ifdef __cplusplus
-  class SWbemObjectPath;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemLastError;
-#ifdef __cplusplus
-  class SWbemLastError;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemSink;
-#ifdef __cplusplus
-  class SWbemSink;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemDateTime;
-#ifdef __cplusplus
-  class SWbemDateTime;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemRefresher;
-#ifdef __cplusplus
-  class SWbemRefresher;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemServices;
-#ifdef __cplusplus
-  class SWbemServices;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemServicesEx;
-#ifdef __cplusplus
-  class SWbemServicesEx;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemObject;
-#ifdef __cplusplus
-  class SWbemObject;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemObjectEx;
-#ifdef __cplusplus
-  class SWbemObjectEx;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemObjectSet;
-#ifdef __cplusplus
-  class SWbemObjectSet;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemNamedValue;
-#ifdef __cplusplus
-  class SWbemNamedValue;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemQualifier;
-#ifdef __cplusplus
-  class SWbemQualifier;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemQualifierSet;
-#ifdef __cplusplus
-  class SWbemQualifierSet;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemProperty;
-#ifdef __cplusplus
-  class SWbemProperty;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemPropertySet;
-#ifdef __cplusplus
-  class SWbemPropertySet;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemMethod;
-#ifdef __cplusplus
-  class SWbemMethod;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemMethodSet;
-#ifdef __cplusplus
-  class SWbemMethodSet;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemEventSource;
-#ifdef __cplusplus
-  class SWbemEventSource;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemSecurity;
-#ifdef __cplusplus
-  class SWbemSecurity;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemPrivilege;
-#ifdef __cplusplus
-  class SWbemPrivilege;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemPrivilegeSet;
-#ifdef __cplusplus
-  class SWbemPrivilegeSet;
-#endif
-  EXTERN_C const CLSID CLSID_SWbemRefreshableItem;
-#ifdef __cplusplus
-  class SWbemRefreshableItem;
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISWbemRefresher_QueryInterface(ISWbemRefresher* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISWbemRefresher_AddRef(ISWbemRefresher* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISWbemRefresher_Release(ISWbemRefresher* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISWbemRefresher_GetTypeInfoCount(ISWbemRefresher* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_GetTypeInfo(ISWbemRefresher* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_GetIDsOfNames(ISWbemRefresher* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_Invoke(ISWbemRefresher* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** ISWbemRefresher methods ***/
+static FORCEINLINE HRESULT ISWbemRefresher_get__NewEnum(ISWbemRefresher* This,IUnknown **pUnk) {
+    return This->lpVtbl->get__NewEnum(This,pUnk);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_Item(ISWbemRefresher* This,LONG iIndex,ISWbemRefreshableItem **objWbemRefreshableItem) {
+    return This->lpVtbl->Item(This,iIndex,objWbemRefreshableItem);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_get_Count(ISWbemRefresher* This,LONG *iCount) {
+    return This->lpVtbl->get_Count(This,iCount);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_Add(ISWbemRefresher* This,ISWbemServicesEx *objWbemServices,BSTR bsInstancePath,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemRefreshableItem **objWbemRefreshableItem) {
+    return This->lpVtbl->Add(This,objWbemServices,bsInstancePath,iFlags,objWbemNamedValueSet,objWbemRefreshableItem);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_AddEnum(ISWbemRefresher* This,ISWbemServicesEx *objWbemServices,BSTR bsClassName,LONG iFlags,IDispatch *objWbemNamedValueSet,ISWbemRefreshableItem **objWbemRefreshableItem) {
+    return This->lpVtbl->AddEnum(This,objWbemServices,bsClassName,iFlags,objWbemNamedValueSet,objWbemRefreshableItem);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_Remove(ISWbemRefresher* This,LONG iIndex,LONG iFlags) {
+    return This->lpVtbl->Remove(This,iIndex,iFlags);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_Refresh(ISWbemRefresher* This,LONG iFlags) {
+    return This->lpVtbl->Refresh(This,iFlags);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_get_AutoReconnect(ISWbemRefresher* This,VARIANT_BOOL *bCount) {
+    return This->lpVtbl->get_AutoReconnect(This,bCount);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_put_AutoReconnect(ISWbemRefresher* This,VARIANT_BOOL bCount) {
+    return This->lpVtbl->put_AutoReconnect(This,bCount);
+}
+static FORCEINLINE HRESULT ISWbemRefresher_DeleteAll(ISWbemRefresher* This) {
+    return This->lpVtbl->DeleteAll(This);
+}
 #endif
 #endif
 
-#define WBEMS_DISPID_OBJECT_READY (1)
-#define WBEMS_DISPID_COMPLETED (2)
-#define WBEMS_DISPID_PROGRESS (3)
-#define WBEMS_DISPID_OBJECT_PUT (4)
-#define WBEMS_DISPID_CONNECTION_READY (5)
+#endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0286_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0286_v0_0_s_ifspec;
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_get__NewEnum_Proxy(
+    ISWbemRefresher* This,
+    IUnknown **pUnk);
+void __RPC_STUB ISWbemRefresher_get__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_Item_Proxy(
+    ISWbemRefresher* This,
+    LONG iIndex,
+    ISWbemRefreshableItem **objWbemRefreshableItem);
+void __RPC_STUB ISWbemRefresher_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_get_Count_Proxy(
+    ISWbemRefresher* This,
+    LONG *iCount);
+void __RPC_STUB ISWbemRefresher_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_Add_Proxy(
+    ISWbemRefresher* This,
+    ISWbemServicesEx *objWbemServices,
+    BSTR bsInstancePath,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemRefreshableItem **objWbemRefreshableItem);
+void __RPC_STUB ISWbemRefresher_Add_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_AddEnum_Proxy(
+    ISWbemRefresher* This,
+    ISWbemServicesEx *objWbemServices,
+    BSTR bsClassName,
+    LONG iFlags,
+    IDispatch *objWbemNamedValueSet,
+    ISWbemRefreshableItem **objWbemRefreshableItem);
+void __RPC_STUB ISWbemRefresher_AddEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_Remove_Proxy(
+    ISWbemRefresher* This,
+    LONG iIndex,
+    LONG iFlags);
+void __RPC_STUB ISWbemRefresher_Remove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_Refresh_Proxy(
+    ISWbemRefresher* This,
+    LONG iFlags);
+void __RPC_STUB ISWbemRefresher_Refresh_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_get_AutoReconnect_Proxy(
+    ISWbemRefresher* This,
+    VARIANT_BOOL *bCount);
+void __RPC_STUB ISWbemRefresher_get_AutoReconnect_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_put_AutoReconnect_Proxy(
+    ISWbemRefresher* This,
+    VARIANT_BOOL bCount);
+void __RPC_STUB ISWbemRefresher_put_AutoReconnect_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISWbemRefresher_DeleteAll_Proxy(
+    ISWbemRefresher* This);
+void __RPC_STUB ISWbemRefresher_DeleteAll_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISWbemRefresher_INTERFACE_DEFINED__ */
+
+#endif
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
 
 #ifdef __cplusplus
 }
 #endif
-#endif
+
+#endif /* __wbemdisp_h__ */
diff --git a/mingw-w64-headers/include/wbemidl.h b/mingw-w64-headers/include/wbemidl.h
index 923a72d..7c22158 100644
--- a/mingw-w64-headers/include/wbemidl.h
+++ b/mingw-w64-headers/include/wbemidl.h
@@ -6,9 +6,13 @@
 #ifndef __WBEMIDL_H_
 #define __WBEMIDL_H_
 
+#include <winapifamily.h>

+

+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
 #include <wbemcli.h>
 #include <wbemprov.h>
 #include <wbemtran.h>
 #include <wbemdisp.h>
-
+#endif
 #endif
diff --git a/mingw-w64-headers/include/wbemprov.h b/mingw-w64-headers/include/wbemprov.h
index 49a8da6..1cd383d 100644
--- a/mingw-w64-headers/include/wbemprov.h
+++ b/mingw-w64-headers/include/wbemprov.h
@@ -1,76 +1,21 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
+/*** Autogenerated by WIDL 1.6 from wbemprov.idl - Do not edit ***/
+
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
 
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error This stub requires an updated version of <rpcndr.h>
-#endif
+#include <rpc.h>
+#include <rpcndr.h>
 
 #ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
+#include <windows.h>
+#include <ole2.h>
 #endif
 
 #ifndef __wbemprov_h__
 #define __wbemprov_h__
 
-#ifndef __IWbemPropertyProvider_FWD_DEFINED__
-#define __IWbemPropertyProvider_FWD_DEFINED__
-typedef struct IWbemPropertyProvider IWbemPropertyProvider;
-#endif
-
-#ifndef __IWbemUnboundObjectSink_FWD_DEFINED__
-#define __IWbemUnboundObjectSink_FWD_DEFINED__
-typedef struct IWbemUnboundObjectSink IWbemUnboundObjectSink;
-#endif
-
-#ifndef __IWbemEventProvider_FWD_DEFINED__
-#define __IWbemEventProvider_FWD_DEFINED__
-typedef struct IWbemEventProvider IWbemEventProvider;
-#endif
-
-#ifndef __IWbemEventProviderQuerySink_FWD_DEFINED__
-#define __IWbemEventProviderQuerySink_FWD_DEFINED__
-typedef struct IWbemEventProviderQuerySink IWbemEventProviderQuerySink;
-#endif
-
-#ifndef __IWbemEventProviderSecurity_FWD_DEFINED__
-#define __IWbemEventProviderSecurity_FWD_DEFINED__
-typedef struct IWbemEventProviderSecurity IWbemEventProviderSecurity;
-#endif
-
-#ifndef __IWbemEventConsumerProvider_FWD_DEFINED__
-#define __IWbemEventConsumerProvider_FWD_DEFINED__
-typedef struct IWbemEventConsumerProvider IWbemEventConsumerProvider;
-#endif
-
-#ifndef __IWbemProviderInitSink_FWD_DEFINED__
-#define __IWbemProviderInitSink_FWD_DEFINED__
-typedef struct IWbemProviderInitSink IWbemProviderInitSink;
-#endif
-
-#ifndef __IWbemProviderInit_FWD_DEFINED__
-#define __IWbemProviderInit_FWD_DEFINED__
-typedef struct IWbemProviderInit IWbemProviderInit;
-#endif
-
-#ifndef __IWbemHiPerfProvider_FWD_DEFINED__
-#define __IWbemHiPerfProvider_FWD_DEFINED__
-typedef struct IWbemHiPerfProvider IWbemHiPerfProvider;
-#endif
-
-#ifndef __IWbemDecoupledRegistrar_FWD_DEFINED__
-#define __IWbemDecoupledRegistrar_FWD_DEFINED__
-typedef struct IWbemDecoupledRegistrar IWbemDecoupledRegistrar;
-#endif
+/* Forward declarations */
 
 #ifndef __WbemAdministrativeLocator_FWD_DEFINED__
 #define __WbemAdministrativeLocator_FWD_DEFINED__
@@ -78,8 +23,8 @@
 typedef class WbemAdministrativeLocator WbemAdministrativeLocator;
 #else
 typedef struct WbemAdministrativeLocator WbemAdministrativeLocator;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemAdministrativeLocator_FWD_DEFINED__ */
 
 #ifndef __WbemAuthenticatedLocator_FWD_DEFINED__
 #define __WbemAuthenticatedLocator_FWD_DEFINED__
@@ -87,8 +32,8 @@
 typedef class WbemAuthenticatedLocator WbemAuthenticatedLocator;
 #else
 typedef struct WbemAuthenticatedLocator WbemAuthenticatedLocator;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemAuthenticatedLocator_FWD_DEFINED__ */
 
 #ifndef __WbemUnauthenticatedLocator_FWD_DEFINED__
 #define __WbemUnauthenticatedLocator_FWD_DEFINED__
@@ -96,8 +41,8 @@
 typedef class WbemUnauthenticatedLocator WbemUnauthenticatedLocator;
 #else
 typedef struct WbemUnauthenticatedLocator WbemUnauthenticatedLocator;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemUnauthenticatedLocator_FWD_DEFINED__ */
 
 #ifndef __WbemDecoupledRegistrar_FWD_DEFINED__
 #define __WbemDecoupledRegistrar_FWD_DEFINED__
@@ -105,8 +50,8 @@
 typedef class WbemDecoupledRegistrar WbemDecoupledRegistrar;
 #else
 typedef struct WbemDecoupledRegistrar WbemDecoupledRegistrar;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemDecoupledRegistrar_FWD_DEFINED__ */
 
 #ifndef __WbemDecoupledBasicEventProvider_FWD_DEFINED__
 #define __WbemDecoupledBasicEventProvider_FWD_DEFINED__
@@ -114,626 +59,1815 @@
 typedef class WbemDecoupledBasicEventProvider WbemDecoupledBasicEventProvider;
 #else
 typedef struct WbemDecoupledBasicEventProvider WbemDecoupledBasicEventProvider;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemDecoupledBasicEventProvider_FWD_DEFINED__ */
 
 #ifndef __IWbemUnboundObjectSink_FWD_DEFINED__
 #define __IWbemUnboundObjectSink_FWD_DEFINED__
-typedef struct IWbemUnboundObjectSink IWbemUnboundObjectSink;
+typedef interface IWbemUnboundObjectSink IWbemUnboundObjectSink;
 #endif
 
 #ifndef __IWbemPropertyProvider_FWD_DEFINED__
 #define __IWbemPropertyProvider_FWD_DEFINED__
-typedef struct IWbemPropertyProvider IWbemPropertyProvider;
+typedef interface IWbemPropertyProvider IWbemPropertyProvider;
 #endif
 
 #ifndef __IWbemEventProvider_FWD_DEFINED__
 #define __IWbemEventProvider_FWD_DEFINED__
-typedef struct IWbemEventProvider IWbemEventProvider;
+typedef interface IWbemEventProvider IWbemEventProvider;
 #endif
 
 #ifndef __IWbemEventProviderQuerySink_FWD_DEFINED__
 #define __IWbemEventProviderQuerySink_FWD_DEFINED__
-typedef struct IWbemEventProviderQuerySink IWbemEventProviderQuerySink;
+typedef interface IWbemEventProviderQuerySink IWbemEventProviderQuerySink;
 #endif
 
 #ifndef __IWbemEventProviderSecurity_FWD_DEFINED__
 #define __IWbemEventProviderSecurity_FWD_DEFINED__
-typedef struct IWbemEventProviderSecurity IWbemEventProviderSecurity;
+typedef interface IWbemEventProviderSecurity IWbemEventProviderSecurity;
 #endif
 
 #ifndef __IWbemProviderIdentity_FWD_DEFINED__
 #define __IWbemProviderIdentity_FWD_DEFINED__
-typedef struct IWbemProviderIdentity IWbemProviderIdentity;
+typedef interface IWbemProviderIdentity IWbemProviderIdentity;
 #endif
 
 #ifndef __IWbemEventConsumerProvider_FWD_DEFINED__
 #define __IWbemEventConsumerProvider_FWD_DEFINED__
-typedef struct IWbemEventConsumerProvider IWbemEventConsumerProvider;
+typedef interface IWbemEventConsumerProvider IWbemEventConsumerProvider;
 #endif
 
 #ifndef __IWbemProviderInitSink_FWD_DEFINED__
 #define __IWbemProviderInitSink_FWD_DEFINED__
-typedef struct IWbemProviderInitSink IWbemProviderInitSink;
+typedef interface IWbemProviderInitSink IWbemProviderInitSink;
 #endif
 
 #ifndef __IWbemProviderInit_FWD_DEFINED__
 #define __IWbemProviderInit_FWD_DEFINED__
-typedef struct IWbemProviderInit IWbemProviderInit;
+typedef interface IWbemProviderInit IWbemProviderInit;
 #endif
 
 #ifndef __IWbemHiPerfProvider_FWD_DEFINED__
 #define __IWbemHiPerfProvider_FWD_DEFINED__
-typedef struct IWbemHiPerfProvider IWbemHiPerfProvider;
+typedef interface IWbemHiPerfProvider IWbemHiPerfProvider;
 #endif
 
 #ifndef __IWbemDecoupledRegistrar_FWD_DEFINED__
 #define __IWbemDecoupledRegistrar_FWD_DEFINED__
-typedef struct IWbemDecoupledRegistrar IWbemDecoupledRegistrar;
+typedef interface IWbemDecoupledRegistrar IWbemDecoupledRegistrar;
 #endif
 
 #ifndef __IWbemDecoupledBasicEventProvider_FWD_DEFINED__
 #define __IWbemDecoupledBasicEventProvider_FWD_DEFINED__
-typedef struct IWbemDecoupledBasicEventProvider IWbemDecoupledBasicEventProvider;
+typedef interface IWbemDecoupledBasicEventProvider IWbemDecoupledBasicEventProvider;
 #endif
 
 #ifndef __IWbemEventSink_FWD_DEFINED__
 #define __IWbemEventSink_FWD_DEFINED__
-typedef struct IWbemEventSink IWbemEventSink;
+typedef interface IWbemEventSink IWbemEventSink;
 #endif
 
-#include "objidl.h"
-#include "oleidl.h"
-#include "oaidl.h"
-#include "wbemcli.h"
+/* Headers for imported files */
+
+#include <objidl.h>
+#include <oleidl.h>
+#include <oaidl.h>
+#include <wbemcli.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
-  void *__RPC_API MIDL_user_allocate(size_t);
-  void __RPC_API MIDL_user_free(void *);
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+typedef VARIANT WBEM_VARIANT;
+typedef LPWSTR WBEM_WSTR;
+typedef LPCWSTR WBEM_CWSTR;
+typedef enum tag_WBEM_PROVIDER_REQUIREMENTS_TYPE {
+    WBEM_REQUIREMENTS_START_POSTFILTER = 0,
+    WBEM_REQUIREMENTS_STOP_POSTFILTER = 1,
+    WBEM_REQUIREMENTS_RECHECK_SUBSCRIPTIONS = 2
+} WBEM_PROVIDER_REQUIREMENTS_TYPE;
+#ifndef __IWbemPropertyProvider_FWD_DEFINED__
+#define __IWbemPropertyProvider_FWD_DEFINED__
+typedef interface IWbemPropertyProvider IWbemPropertyProvider;
 #endif
 
-  typedef VARIANT WBEM_VARIANT;
-  typedef WCHAR *WBEM_WSTR;
-  typedef const WCHAR *WBEM_CWSTR;
-
-  typedef enum tag_WBEM_PROVIDER_REQUIREMENTS_TYPE {
-    WBEM_REQUIREMENTS_START_POSTFILTER = 0,WBEM_REQUIREMENTS_STOP_POSTFILTER = 1,WBEM_REQUIREMENTS_RECHECK_SUBSCRIPTIONS = 2
-  } WBEM_PROVIDER_REQUIREMENTS_TYPE;
-
-  extern RPC_IF_HANDLE __MIDL_itf_wbemprov_0000_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemprov_0000_v0_0_s_ifspec;
-#ifndef __WbemProviders_v1_LIBRARY_DEFINED__
-#define __WbemProviders_v1_LIBRARY_DEFINED__
-  EXTERN_C const IID LIBID_WbemProviders_v1;
-#ifndef __IWbemPropertyProvider_INTERFACE_DEFINED__
-#define __IWbemPropertyProvider_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemPropertyProvider;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemPropertyProvider : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetProperty(__LONG32 lFlags,const BSTR strLocale,const BSTR strClassMapping,const BSTR strInstMapping,const BSTR strPropMapping,VARIANT *pvValue) = 0;
-    virtual HRESULT WINAPI PutProperty(__LONG32 lFlags,const BSTR strLocale,const BSTR strClassMapping,const BSTR strInstMapping,const BSTR strPropMapping,const VARIANT *pvValue) = 0;
-  };
-#else
-  typedef struct IWbemPropertyProviderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemPropertyProvider *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemPropertyProvider *This);
-      ULONG (WINAPI *Release)(IWbemPropertyProvider *This);
-      HRESULT (WINAPI *GetProperty)(IWbemPropertyProvider *This,__LONG32 lFlags,const BSTR strLocale,const BSTR strClassMapping,const BSTR strInstMapping,const BSTR strPropMapping,VARIANT *pvValue);
-      HRESULT (WINAPI *PutProperty)(IWbemPropertyProvider *This,__LONG32 lFlags,const BSTR strLocale,const BSTR strClassMapping,const BSTR strInstMapping,const BSTR strPropMapping,const VARIANT *pvValue);
-    END_INTERFACE
-  } IWbemPropertyProviderVtbl;
-  struct IWbemPropertyProvider {
-    CONST_VTBL struct IWbemPropertyProviderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemPropertyProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemPropertyProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemPropertyProvider_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemPropertyProvider_GetProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue) (This)->lpVtbl->GetProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue)
-#define IWbemPropertyProvider_PutProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue) (This)->lpVtbl->PutProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue)
-#endif
-#endif
-  HRESULT WINAPI IWbemPropertyProvider_GetProperty_Proxy(IWbemPropertyProvider *This,__LONG32 lFlags,const BSTR strLocale,const BSTR strClassMapping,const BSTR strInstMapping,const BSTR strPropMapping,VARIANT *pvValue);
-  void __RPC_STUB IWbemPropertyProvider_GetProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemPropertyProvider_PutProperty_Proxy(IWbemPropertyProvider *This,__LONG32 lFlags,const BSTR strLocale,const BSTR strClassMapping,const BSTR strInstMapping,const BSTR strPropMapping,const VARIANT *pvValue);
-  void __RPC_STUB IWbemPropertyProvider_PutProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#ifndef __IWbemUnboundObjectSink_FWD_DEFINED__
+#define __IWbemUnboundObjectSink_FWD_DEFINED__
+typedef interface IWbemUnboundObjectSink IWbemUnboundObjectSink;
 #endif
 
-#ifndef __IWbemUnboundObjectSink_INTERFACE_DEFINED__
-#define __IWbemUnboundObjectSink_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemUnboundObjectSink;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemUnboundObjectSink : public IUnknown {
-  public:
-    virtual HRESULT WINAPI IndicateToConsumer(IWbemClassObject *pLogicalConsumer,__LONG32 lNumObjects,IWbemClassObject **apObjects) = 0;
-  };
-#else
-  typedef struct IWbemUnboundObjectSinkVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemUnboundObjectSink *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemUnboundObjectSink *This);
-      ULONG (WINAPI *Release)(IWbemUnboundObjectSink *This);
-      HRESULT (WINAPI *IndicateToConsumer)(IWbemUnboundObjectSink *This,IWbemClassObject *pLogicalConsumer,__LONG32 lNumObjects,IWbemClassObject **apObjects);
-    END_INTERFACE
-  } IWbemUnboundObjectSinkVtbl;
-  struct IWbemUnboundObjectSink {
-    CONST_VTBL struct IWbemUnboundObjectSinkVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemUnboundObjectSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemUnboundObjectSink_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemUnboundObjectSink_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemUnboundObjectSink_IndicateToConsumer(This,pLogicalConsumer,lNumObjects,apObjects) (This)->lpVtbl->IndicateToConsumer(This,pLogicalConsumer,lNumObjects,apObjects)
-#endif
-#endif
-  HRESULT WINAPI IWbemUnboundObjectSink_IndicateToConsumer_Proxy(IWbemUnboundObjectSink *This,IWbemClassObject *pLogicalConsumer,__LONG32 lNumObjects,IWbemClassObject **apObjects);
-  void __RPC_STUB IWbemUnboundObjectSink_IndicateToConsumer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#ifndef __IWbemEventProvider_FWD_DEFINED__
+#define __IWbemEventProvider_FWD_DEFINED__
+typedef interface IWbemEventProvider IWbemEventProvider;
 #endif
 
-#ifndef __IWbemEventProvider_INTERFACE_DEFINED__
-#define __IWbemEventProvider_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemEventProvider;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemEventProvider : public IUnknown {
-  public:
-    virtual HRESULT WINAPI ProvideEvents(IWbemObjectSink *pSink,__LONG32 lFlags) = 0;
-  };
-#else
-  typedef struct IWbemEventProviderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemEventProvider *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemEventProvider *This);
-      ULONG (WINAPI *Release)(IWbemEventProvider *This);
-      HRESULT (WINAPI *ProvideEvents)(IWbemEventProvider *This,IWbemObjectSink *pSink,__LONG32 lFlags);
-    END_INTERFACE
-  } IWbemEventProviderVtbl;
-  struct IWbemEventProvider {
-    CONST_VTBL struct IWbemEventProviderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemEventProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemEventProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemEventProvider_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemEventProvider_ProvideEvents(This,pSink,lFlags) (This)->lpVtbl->ProvideEvents(This,pSink,lFlags)
-#endif
-#endif
-  HRESULT WINAPI IWbemEventProvider_ProvideEvents_Proxy(IWbemEventProvider *This,IWbemObjectSink *pSink,__LONG32 lFlags);
-  void __RPC_STUB IWbemEventProvider_ProvideEvents_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#ifndef __IWbemEventProviderQuerySink_FWD_DEFINED__
+#define __IWbemEventProviderQuerySink_FWD_DEFINED__
+typedef interface IWbemEventProviderQuerySink IWbemEventProviderQuerySink;
 #endif
 
-#ifndef __IWbemEventProviderQuerySink_INTERFACE_DEFINED__
-#define __IWbemEventProviderQuerySink_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemEventProviderQuerySink;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemEventProviderQuerySink : public IUnknown {
-  public:
-    virtual HRESULT WINAPI NewQuery(unsigned __LONG32 dwId,WBEM_WSTR wszQueryLanguage,WBEM_WSTR wszQuery) = 0;
-    virtual HRESULT WINAPI CancelQuery(unsigned __LONG32 dwId) = 0;
-  };
-#else
-  typedef struct IWbemEventProviderQuerySinkVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemEventProviderQuerySink *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemEventProviderQuerySink *This);
-      ULONG (WINAPI *Release)(IWbemEventProviderQuerySink *This);
-      HRESULT (WINAPI *NewQuery)(IWbemEventProviderQuerySink *This,unsigned __LONG32 dwId,WBEM_WSTR wszQueryLanguage,WBEM_WSTR wszQuery);
-      HRESULT (WINAPI *CancelQuery)(IWbemEventProviderQuerySink *This,unsigned __LONG32 dwId);
-    END_INTERFACE
-  } IWbemEventProviderQuerySinkVtbl;
-  struct IWbemEventProviderQuerySink {
-    CONST_VTBL struct IWbemEventProviderQuerySinkVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemEventProviderQuerySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemEventProviderQuerySink_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemEventProviderQuerySink_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemEventProviderQuerySink_NewQuery(This,dwId,wszQueryLanguage,wszQuery) (This)->lpVtbl->NewQuery(This,dwId,wszQueryLanguage,wszQuery)
-#define IWbemEventProviderQuerySink_CancelQuery(This,dwId) (This)->lpVtbl->CancelQuery(This,dwId)
-#endif
-#endif
-  HRESULT WINAPI IWbemEventProviderQuerySink_NewQuery_Proxy(IWbemEventProviderQuerySink *This,unsigned __LONG32 dwId,WBEM_WSTR wszQueryLanguage,WBEM_WSTR wszQuery);
-  void __RPC_STUB IWbemEventProviderQuerySink_NewQuery_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemEventProviderQuerySink_CancelQuery_Proxy(IWbemEventProviderQuerySink *This,unsigned __LONG32 dwId);
-  void __RPC_STUB IWbemEventProviderQuerySink_CancelQuery_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#ifndef __IWbemEventProviderSecurity_FWD_DEFINED__
+#define __IWbemEventProviderSecurity_FWD_DEFINED__
+typedef interface IWbemEventProviderSecurity IWbemEventProviderSecurity;
 #endif
 
-#ifndef __IWbemEventProviderSecurity_INTERFACE_DEFINED__
-#define __IWbemEventProviderSecurity_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemEventProviderSecurity;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemEventProviderSecurity : public IUnknown {
-  public:
-    virtual HRESULT WINAPI AccessCheck(WBEM_CWSTR wszQueryLanguage,WBEM_CWSTR wszQuery,__LONG32 lSidLength,const BYTE *pSid) = 0;
-  };
-#else
-  typedef struct IWbemEventProviderSecurityVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemEventProviderSecurity *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemEventProviderSecurity *This);
-      ULONG (WINAPI *Release)(IWbemEventProviderSecurity *This);
-      HRESULT (WINAPI *AccessCheck)(IWbemEventProviderSecurity *This,WBEM_CWSTR wszQueryLanguage,WBEM_CWSTR wszQuery,__LONG32 lSidLength,const BYTE *pSid);
-    END_INTERFACE
-  } IWbemEventProviderSecurityVtbl;
-  struct IWbemEventProviderSecurity {
-    CONST_VTBL struct IWbemEventProviderSecurityVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemEventProviderSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemEventProviderSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemEventProviderSecurity_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemEventProviderSecurity_AccessCheck(This,wszQueryLanguage,wszQuery,lSidLength,pSid) (This)->lpVtbl->AccessCheck(This,wszQueryLanguage,wszQuery,lSidLength,pSid)
-#endif
-#endif
-  HRESULT WINAPI IWbemEventProviderSecurity_AccessCheck_Proxy(IWbemEventProviderSecurity *This,WBEM_CWSTR wszQueryLanguage,WBEM_CWSTR wszQuery,__LONG32 lSidLength,const BYTE *pSid);
-  void __RPC_STUB IWbemEventProviderSecurity_AccessCheck_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#ifndef __IWbemEventConsumerProvider_FWD_DEFINED__
+#define __IWbemEventConsumerProvider_FWD_DEFINED__
+typedef interface IWbemEventConsumerProvider IWbemEventConsumerProvider;
 #endif
 
-#ifndef __IWbemEventConsumerProvider_INTERFACE_DEFINED__
-#define __IWbemEventConsumerProvider_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemEventConsumerProvider;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemEventConsumerProvider : public IUnknown {
-  public:
-    virtual HRESULT WINAPI FindConsumer(IWbemClassObject *pLogicalConsumer,IWbemUnboundObjectSink **ppConsumer) = 0;
-  };
-#else
-  typedef struct IWbemEventConsumerProviderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemEventConsumerProvider *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemEventConsumerProvider *This);
-      ULONG (WINAPI *Release)(IWbemEventConsumerProvider *This);
-      HRESULT (WINAPI *FindConsumer)(IWbemEventConsumerProvider *This,IWbemClassObject *pLogicalConsumer,IWbemUnboundObjectSink **ppConsumer);
-    END_INTERFACE
-  } IWbemEventConsumerProviderVtbl;
-  struct IWbemEventConsumerProvider {
-    CONST_VTBL struct IWbemEventConsumerProviderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemEventConsumerProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemEventConsumerProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemEventConsumerProvider_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemEventConsumerProvider_FindConsumer(This,pLogicalConsumer,ppConsumer) (This)->lpVtbl->FindConsumer(This,pLogicalConsumer,ppConsumer)
-#endif
-#endif
-  HRESULT WINAPI IWbemEventConsumerProvider_FindConsumer_Proxy(IWbemEventConsumerProvider *This,IWbemClassObject *pLogicalConsumer,IWbemUnboundObjectSink **ppConsumer);
-  void __RPC_STUB IWbemEventConsumerProvider_FindConsumer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#ifndef __IWbemProviderInitSink_FWD_DEFINED__
+#define __IWbemProviderInitSink_FWD_DEFINED__
+typedef interface IWbemProviderInitSink IWbemProviderInitSink;
 #endif
 
-#ifndef __IWbemProviderInitSink_INTERFACE_DEFINED__
-#define __IWbemProviderInitSink_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemProviderInitSink;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemProviderInitSink : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetStatus(LONG lStatus,LONG lFlags) = 0;
-  };
-#else
-  typedef struct IWbemProviderInitSinkVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemProviderInitSink *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemProviderInitSink *This);
-      ULONG (WINAPI *Release)(IWbemProviderInitSink *This);
-      HRESULT (WINAPI *SetStatus)(IWbemProviderInitSink *This,LONG lStatus,LONG lFlags);
-    END_INTERFACE
-  } IWbemProviderInitSinkVtbl;
-  struct IWbemProviderInitSink {
-    CONST_VTBL struct IWbemProviderInitSinkVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemProviderInitSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemProviderInitSink_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemProviderInitSink_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemProviderInitSink_SetStatus(This,lStatus,lFlags) (This)->lpVtbl->SetStatus(This,lStatus,lFlags)
-#endif
-#endif
-  HRESULT WINAPI IWbemProviderInitSink_SetStatus_Proxy(IWbemProviderInitSink *This,LONG lStatus,LONG lFlags);
-  void __RPC_STUB IWbemProviderInitSink_SetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#ifndef __IWbemProviderInit_FWD_DEFINED__
+#define __IWbemProviderInit_FWD_DEFINED__
+typedef interface IWbemProviderInit IWbemProviderInit;
 #endif
 
-#ifndef __IWbemProviderInit_INTERFACE_DEFINED__
-#define __IWbemProviderInit_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemProviderInit;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemProviderInit : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Initialize(LPWSTR wszUser,LONG lFlags,LPWSTR wszNamespace,LPWSTR wszLocale,IWbemServices *pNamespace,IWbemContext *pCtx,IWbemProviderInitSink *pInitSink) = 0;
-  };
-#else
-  typedef struct IWbemProviderInitVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemProviderInit *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemProviderInit *This);
-      ULONG (WINAPI *Release)(IWbemProviderInit *This);
-      HRESULT (WINAPI *Initialize)(IWbemProviderInit *This,LPWSTR wszUser,LONG lFlags,LPWSTR wszNamespace,LPWSTR wszLocale,IWbemServices *pNamespace,IWbemContext *pCtx,IWbemProviderInitSink *pInitSink);
-    END_INTERFACE
-  } IWbemProviderInitVtbl;
-  struct IWbemProviderInit {
-    CONST_VTBL struct IWbemProviderInitVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemProviderInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemProviderInit_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemProviderInit_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemProviderInit_Initialize(This,wszUser,lFlags,wszNamespace,wszLocale,pNamespace,pCtx,pInitSink) (This)->lpVtbl->Initialize(This,wszUser,lFlags,wszNamespace,wszLocale,pNamespace,pCtx,pInitSink)
-#endif
-#endif
-  HRESULT WINAPI IWbemProviderInit_Initialize_Proxy(IWbemProviderInit *This,LPWSTR wszUser,LONG lFlags,LPWSTR wszNamespace,LPWSTR wszLocale,IWbemServices *pNamespace,IWbemContext *pCtx,IWbemProviderInitSink *pInitSink);
-  void __RPC_STUB IWbemProviderInit_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#ifndef __IWbemHiPerfProvider_FWD_DEFINED__
+#define __IWbemHiPerfProvider_FWD_DEFINED__
+typedef interface IWbemHiPerfProvider IWbemHiPerfProvider;
 #endif
 
-#ifndef __IWbemHiPerfProvider_INTERFACE_DEFINED__
-#define __IWbemHiPerfProvider_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemHiPerfProvider;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemHiPerfProvider : public IUnknown {
-  public:
-    virtual HRESULT WINAPI QueryInstances(IWbemServices *pNamespace,WCHAR *wszClass,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pSink) = 0;
-    virtual HRESULT WINAPI CreateRefresher(IWbemServices *pNamespace,__LONG32 lFlags,IWbemRefresher **ppRefresher) = 0;
-    virtual HRESULT WINAPI CreateRefreshableObject(IWbemServices *pNamespace,IWbemObjectAccess *pTemplate,IWbemRefresher *pRefresher,__LONG32 lFlags,IWbemContext *pContext,IWbemObjectAccess **ppRefreshable,__LONG32 *plId) = 0;
-    virtual HRESULT WINAPI StopRefreshing(IWbemRefresher *pRefresher,__LONG32 lId,__LONG32 lFlags) = 0;
-    virtual HRESULT WINAPI CreateRefreshableEnum(IWbemServices *pNamespace,LPCWSTR wszClass,IWbemRefresher *pRefresher,__LONG32 lFlags,IWbemContext *pContext,IWbemHiPerfEnum *pHiPerfEnum,__LONG32 *plId) = 0;
-    virtual HRESULT WINAPI GetObjects(IWbemServices *pNamespace,__LONG32 lNumObjects,IWbemObjectAccess **apObj,__LONG32 lFlags,IWbemContext *pContext) = 0;
-  };
-#else
-  typedef struct IWbemHiPerfProviderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemHiPerfProvider *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemHiPerfProvider *This);
-      ULONG (WINAPI *Release)(IWbemHiPerfProvider *This);
-      HRESULT (WINAPI *QueryInstances)(IWbemHiPerfProvider *This,IWbemServices *pNamespace,WCHAR *wszClass,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pSink);
-      HRESULT (WINAPI *CreateRefresher)(IWbemHiPerfProvider *This,IWbemServices *pNamespace,__LONG32 lFlags,IWbemRefresher **ppRefresher);
-      HRESULT (WINAPI *CreateRefreshableObject)(IWbemHiPerfProvider *This,IWbemServices *pNamespace,IWbemObjectAccess *pTemplate,IWbemRefresher *pRefresher,__LONG32 lFlags,IWbemContext *pContext,IWbemObjectAccess **ppRefreshable,__LONG32 *plId);
-      HRESULT (WINAPI *StopRefreshing)(IWbemHiPerfProvider *This,IWbemRefresher *pRefresher,__LONG32 lId,__LONG32 lFlags);
-      HRESULT (WINAPI *CreateRefreshableEnum)(IWbemHiPerfProvider *This,IWbemServices *pNamespace,LPCWSTR wszClass,IWbemRefresher *pRefresher,__LONG32 lFlags,IWbemContext *pContext,IWbemHiPerfEnum *pHiPerfEnum,__LONG32 *plId);
-      HRESULT (WINAPI *GetObjects)(IWbemHiPerfProvider *This,IWbemServices *pNamespace,__LONG32 lNumObjects,IWbemObjectAccess **apObj,__LONG32 lFlags,IWbemContext *pContext);
-    END_INTERFACE
-  } IWbemHiPerfProviderVtbl;
-  struct IWbemHiPerfProvider {
-    CONST_VTBL struct IWbemHiPerfProviderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemHiPerfProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemHiPerfProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemHiPerfProvider_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemHiPerfProvider_QueryInstances(This,pNamespace,wszClass,lFlags,pCtx,pSink) (This)->lpVtbl->QueryInstances(This,pNamespace,wszClass,lFlags,pCtx,pSink)
-#define IWbemHiPerfProvider_CreateRefresher(This,pNamespace,lFlags,ppRefresher) (This)->lpVtbl->CreateRefresher(This,pNamespace,lFlags,ppRefresher)
-#define IWbemHiPerfProvider_CreateRefreshableObject(This,pNamespace,pTemplate,pRefresher,lFlags,pContext,ppRefreshable,plId) (This)->lpVtbl->CreateRefreshableObject(This,pNamespace,pTemplate,pRefresher,lFlags,pContext,ppRefreshable,plId)
-#define IWbemHiPerfProvider_StopRefreshing(This,pRefresher,lId,lFlags) (This)->lpVtbl->StopRefreshing(This,pRefresher,lId,lFlags)
-#define IWbemHiPerfProvider_CreateRefreshableEnum(This,pNamespace,wszClass,pRefresher,lFlags,pContext,pHiPerfEnum,plId) (This)->lpVtbl->CreateRefreshableEnum(This,pNamespace,wszClass,pRefresher,lFlags,pContext,pHiPerfEnum,plId)
-#define IWbemHiPerfProvider_GetObjects(This,pNamespace,lNumObjects,apObj,lFlags,pContext) (This)->lpVtbl->GetObjects(This,pNamespace,lNumObjects,apObj,lFlags,pContext)
-#endif
-#endif
-  HRESULT WINAPI IWbemHiPerfProvider_QueryInstances_Proxy(IWbemHiPerfProvider *This,IWbemServices *pNamespace,WCHAR *wszClass,__LONG32 lFlags,IWbemContext *pCtx,IWbemObjectSink *pSink);
-  void __RPC_STUB IWbemHiPerfProvider_QueryInstances_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemHiPerfProvider_CreateRefresher_Proxy(IWbemHiPerfProvider *This,IWbemServices *pNamespace,__LONG32 lFlags,IWbemRefresher **ppRefresher);
-  void __RPC_STUB IWbemHiPerfProvider_CreateRefresher_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemHiPerfProvider_CreateRefreshableObject_Proxy(IWbemHiPerfProvider *This,IWbemServices *pNamespace,IWbemObjectAccess *pTemplate,IWbemRefresher *pRefresher,__LONG32 lFlags,IWbemContext *pContext,IWbemObjectAccess **ppRefreshable,__LONG32 *plId);
-  void __RPC_STUB IWbemHiPerfProvider_CreateRefreshableObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemHiPerfProvider_StopRefreshing_Proxy(IWbemHiPerfProvider *This,IWbemRefresher *pRefresher,__LONG32 lId,__LONG32 lFlags);
-  void __RPC_STUB IWbemHiPerfProvider_StopRefreshing_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemHiPerfProvider_CreateRefreshableEnum_Proxy(IWbemHiPerfProvider *This,IWbemServices *pNamespace,LPCWSTR wszClass,IWbemRefresher *pRefresher,__LONG32 lFlags,IWbemContext *pContext,IWbemHiPerfEnum *pHiPerfEnum,__LONG32 *plId);
-  void __RPC_STUB IWbemHiPerfProvider_CreateRefreshableEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemHiPerfProvider_GetObjects_Proxy(IWbemHiPerfProvider *This,IWbemServices *pNamespace,__LONG32 lNumObjects,IWbemObjectAccess **apObj,__LONG32 lFlags,IWbemContext *pContext);
-  void __RPC_STUB IWbemHiPerfProvider_GetObjects_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+#ifndef __IWbemDecoupledRegistrar_FWD_DEFINED__
+#define __IWbemDecoupledRegistrar_FWD_DEFINED__
+typedef interface IWbemDecoupledRegistrar IWbemDecoupledRegistrar;
 #endif
 
-#ifndef __IWbemDecoupledRegistrar_INTERFACE_DEFINED__
-#define __IWbemDecoupledRegistrar_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemDecoupledRegistrar;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemDecoupledRegistrar : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Register(__LONG32 a_Flags,IWbemContext *a_Context,LPCWSTR a_User,LPCWSTR a_Locale,LPCWSTR a_Scope,LPCWSTR a_Registration,IUnknown *a_Unknown) = 0;
-    virtual HRESULT WINAPI UnRegister(void) = 0;
-  };
-#else
-  typedef struct IWbemDecoupledRegistrarVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemDecoupledRegistrar *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemDecoupledRegistrar *This);
-      ULONG (WINAPI *Release)(IWbemDecoupledRegistrar *This);
-      HRESULT (WINAPI *Register)(IWbemDecoupledRegistrar *This,__LONG32 a_Flags,IWbemContext *a_Context,LPCWSTR a_User,LPCWSTR a_Locale,LPCWSTR a_Scope,LPCWSTR a_Registration,IUnknown *a_Unknown);
-      HRESULT (WINAPI *UnRegister)(IWbemDecoupledRegistrar *This);
-    END_INTERFACE
-  } IWbemDecoupledRegistrarVtbl;
-  struct IWbemDecoupledRegistrar {
-    CONST_VTBL struct IWbemDecoupledRegistrarVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemDecoupledRegistrar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemDecoupledRegistrar_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemDecoupledRegistrar_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemDecoupledRegistrar_Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,a_Unknown) (This)->lpVtbl->Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,a_Unknown)
-#define IWbemDecoupledRegistrar_UnRegister(This) (This)->lpVtbl->UnRegister(This)
-#endif
-#endif
-  HRESULT WINAPI IWbemDecoupledRegistrar_Register_Proxy(IWbemDecoupledRegistrar *This,__LONG32 a_Flags,IWbemContext *a_Context,LPCWSTR a_User,LPCWSTR a_Locale,LPCWSTR a_Scope,LPCWSTR a_Registration,IUnknown *a_Unknown);
-  void __RPC_STUB IWbemDecoupledRegistrar_Register_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemDecoupledRegistrar_UnRegister_Proxy(IWbemDecoupledRegistrar *This);
-  void __RPC_STUB IWbemDecoupledRegistrar_UnRegister_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-  EXTERN_C const CLSID CLSID_WbemAdministrativeLocator;
+DEFINE_GUID(LIBID_WbemProviders_v1, 0x092df710, 0x7010, 0x11d1, 0xad,0x90, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+
+/*****************************************************************************
+ * WbemAdministrativeLocator coclass
+ */
+
+DEFINE_GUID(CLSID_WbemAdministrativeLocator, 0xcb8555cc, 0x9128, 0x11d1, 0xad,0x9b, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+
 #ifdef __cplusplus
-  class WbemAdministrativeLocator;
-#endif
-  EXTERN_C const CLSID CLSID_WbemAuthenticatedLocator;
-#ifdef __cplusplus
-  class WbemAuthenticatedLocator;
-#endif
-  EXTERN_C const CLSID CLSID_WbemUnauthenticatedLocator;
-#ifdef __cplusplus
-  class WbemUnauthenticatedLocator;
-#endif
-  EXTERN_C const CLSID CLSID_WbemDecoupledRegistrar;
-#ifdef __cplusplus
-  class WbemDecoupledRegistrar;
-#endif
-  EXTERN_C const CLSID CLSID_WbemDecoupledBasicEventProvider;
-#ifdef __cplusplus
-  class WbemDecoupledBasicEventProvider;
+class DECLSPEC_UUID("cb8555cc-9128-11d1-ad9b-00c04fd8fdff") WbemAdministrativeLocator;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemAdministrativeLocator, 0xcb8555cc, 0x9128, 0x11d1, 0xad,0x9b, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
 #endif
 #endif
 
-#ifndef __IWbemProviderIdentity_INTERFACE_DEFINED__
-#define __IWbemProviderIdentity_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemProviderIdentity;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemProviderIdentity : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetRegistrationObject(__LONG32 lFlags,IWbemClassObject *pProvReg) = 0;
-  };
-#else
-  typedef struct IWbemProviderIdentityVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemProviderIdentity *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemProviderIdentity *This);
-      ULONG (WINAPI *Release)(IWbemProviderIdentity *This);
-      HRESULT (WINAPI *SetRegistrationObject)(IWbemProviderIdentity *This,__LONG32 lFlags,IWbemClassObject *pProvReg);
-    END_INTERFACE
-  } IWbemProviderIdentityVtbl;
-  struct IWbemProviderIdentity {
-    CONST_VTBL struct IWbemProviderIdentityVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemProviderIdentity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemProviderIdentity_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemProviderIdentity_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemProviderIdentity_SetRegistrationObject(This,lFlags,pProvReg) (This)->lpVtbl->SetRegistrationObject(This,lFlags,pProvReg)
+/*****************************************************************************
+ * WbemAuthenticatedLocator coclass
+ */
+
+DEFINE_GUID(CLSID_WbemAuthenticatedLocator, 0xcd184336, 0x9128, 0x11d1, 0xad,0x9b, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("cd184336-9128-11d1-ad9b-00c04fd8fdff") WbemAuthenticatedLocator;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemAuthenticatedLocator, 0xcd184336, 0x9128, 0x11d1, 0xad,0x9b, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
 #endif
 #endif
-  HRESULT WINAPI IWbemProviderIdentity_SetRegistrationObject_Proxy(IWbemProviderIdentity *This,__LONG32 lFlags,IWbemClassObject *pProvReg);
-  void __RPC_STUB IWbemProviderIdentity_SetRegistrationObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-  typedef enum tag_WBEM_EXTRA_RETURN_CODES {
+/*****************************************************************************
+ * WbemUnauthenticatedLocator coclass
+ */
+
+DEFINE_GUID(CLSID_WbemUnauthenticatedLocator, 0x443e7b79, 0xde31, 0x11d2, 0xb3,0x40, 0x00,0x10,0x4b,0xcc,0x4b,0x4a);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("443e7b79-de31-11d2-b340-00104bcc4b4a") WbemUnauthenticatedLocator;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemUnauthenticatedLocator, 0x443e7b79, 0xde31, 0x11d2, 0xb3,0x40, 0x00,0x10,0x4b,0xcc,0x4b,0x4a)
+#endif
+#endif
+
+/*****************************************************************************
+ * WbemDecoupledRegistrar coclass
+ */
+
+DEFINE_GUID(CLSID_WbemDecoupledRegistrar, 0x4cfc7932, 0x0f9d, 0x4bef, 0x9c,0x32, 0x8e,0xa2,0xa6,0xb5,0x6f,0xcb);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("4cfc7932-0f9d-4bef-9c32-8ea2a6b56fcb") WbemDecoupledRegistrar;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemDecoupledRegistrar, 0x4cfc7932, 0x0f9d, 0x4bef, 0x9c,0x32, 0x8e,0xa2,0xa6,0xb5,0x6f,0xcb)
+#endif
+#endif
+
+/*****************************************************************************
+ * WbemDecoupledBasicEventProvider coclass
+ */
+
+DEFINE_GUID(CLSID_WbemDecoupledBasicEventProvider, 0xf5f75737, 0x2843, 0x4f22, 0x93,0x3d, 0xc7,0x6a,0x97,0xcd,0xa6,0x2f);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("f5f75737-2843-4f22-933d-c76a97cda62f") WbemDecoupledBasicEventProvider;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemDecoupledBasicEventProvider, 0xf5f75737, 0x2843, 0x4f22, 0x93,0x3d, 0xc7,0x6a,0x97,0xcd,0xa6,0x2f)
+#endif
+#endif
+
+typedef enum tag_WBEM_BATCH_TYPE {
+    WBEM_FLAG_BATCH_IF_NEEDED = 0,
+    WBEM_FLAG_MUST_BATCH = 0x1,
+    WBEM_FLAG_MUST_NOT_BATCH = 0x2
+} WBEM_BATCH_TYPE;
+typedef enum tag_WBEM_PROVIDER_FLAGS {
+    WBEM_FLAG_OWNER_UPDATE = 0x10000
+} WBEM_PROVIDER_FLAGS;
+typedef enum tag_WBEM_EXTRA_RETURN_CODES {
     WBEM_S_INITIALIZED = 0,
     WBEM_S_LIMITED_SERVICE = 0x43001,
     WBEM_S_INDIRECTLY_UPDATED = 0x43002,
     WBEM_S_SUBJECT_TO_SDS = 0x43003,
     WBEM_E_RETRY_LATER = 0x80043001,
     WBEM_E_RESOURCE_CONTENTION = 0x80043002
-  } WBEM_EXTRA_RETURN_CODES;
+} WBEM_EXTRA_RETURN_CODES;
+/*****************************************************************************
+ * IWbemUnboundObjectSink interface
+ */
+#ifndef __IWbemUnboundObjectSink_INTERFACE_DEFINED__
+#define __IWbemUnboundObjectSink_INTERFACE_DEFINED__
 
-  typedef enum tag_WBEM_PROVIDER_FLAGS {
-    WBEM_FLAG_OWNER_UPDATE = 0x10000
-  } WBEM_PROVIDER_FLAGS;
+DEFINE_GUID(IID_IWbemUnboundObjectSink, 0xe246107b, 0xb06e, 0x11d0, 0xad,0x61, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e246107b-b06e-11d0-ad61-00c04fd8fdff")
+IWbemUnboundObjectSink : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE IndicateToConsumer(
+        IWbemClassObject *pLogicalConsumer,
+        LONG lNumObjects,
+        IWbemClassObject **apObjects) = 0;
 
-  extern RPC_IF_HANDLE __MIDL_itf_wbemprov_0169_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemprov_0169_v0_0_s_ifspec;
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemUnboundObjectSink, 0xe246107b, 0xb06e, 0x11d0, 0xad,0x61, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
+#else
+typedef struct IWbemUnboundObjectSinkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemUnboundObjectSink* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemUnboundObjectSink* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemUnboundObjectSink* This);
+
+    /*** IWbemUnboundObjectSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *IndicateToConsumer)(
+        IWbemUnboundObjectSink* This,
+        IWbemClassObject *pLogicalConsumer,
+        LONG lNumObjects,
+        IWbemClassObject **apObjects);
+
+    END_INTERFACE
+} IWbemUnboundObjectSinkVtbl;
+interface IWbemUnboundObjectSink {
+    CONST_VTBL IWbemUnboundObjectSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemUnboundObjectSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemUnboundObjectSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemUnboundObjectSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemUnboundObjectSink methods ***/
+#define IWbemUnboundObjectSink_IndicateToConsumer(This,pLogicalConsumer,lNumObjects,apObjects) (This)->lpVtbl->IndicateToConsumer(This,pLogicalConsumer,lNumObjects,apObjects)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemUnboundObjectSink_QueryInterface(IWbemUnboundObjectSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemUnboundObjectSink_AddRef(IWbemUnboundObjectSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemUnboundObjectSink_Release(IWbemUnboundObjectSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemUnboundObjectSink methods ***/
+static FORCEINLINE HRESULT IWbemUnboundObjectSink_IndicateToConsumer(IWbemUnboundObjectSink* This,IWbemClassObject *pLogicalConsumer,LONG lNumObjects,IWbemClassObject **apObjects) {
+    return This->lpVtbl->IndicateToConsumer(This,pLogicalConsumer,lNumObjects,apObjects);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemUnboundObjectSink_IndicateToConsumer_Proxy(
+    IWbemUnboundObjectSink* This,
+    IWbemClassObject *pLogicalConsumer,
+    LONG lNumObjects,
+    IWbemClassObject **apObjects);
+void __RPC_STUB IWbemUnboundObjectSink_IndicateToConsumer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemUnboundObjectSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemPropertyProvider interface
+ */
+#ifndef __IWbemPropertyProvider_INTERFACE_DEFINED__
+#define __IWbemPropertyProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemPropertyProvider, 0xce61e841, 0x65bc, 0x11d0, 0xb6,0xbd, 0x00,0xaa,0x00,0x32,0x40,0xc7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ce61e841-65bc-11d0-b6bd-00aa003240c7")
+IWbemPropertyProvider : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetProperty(
+        LONG lFlags,
+        const BSTR strLocale,
+        const BSTR strClassMapping,
+        const BSTR strInstMapping,
+        const BSTR strPropMapping,
+        VARIANT *pvValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PutProperty(
+        LONG lFlags,
+        const BSTR strLocale,
+        const BSTR strClassMapping,
+        const BSTR strInstMapping,
+        const BSTR strPropMapping,
+        const VARIANT *pvValue) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemPropertyProvider, 0xce61e841, 0x65bc, 0x11d0, 0xb6,0xbd, 0x00,0xaa,0x00,0x32,0x40,0xc7)
+#endif
+#else
+typedef struct IWbemPropertyProviderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemPropertyProvider* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemPropertyProvider* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemPropertyProvider* This);
+
+    /*** IWbemPropertyProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetProperty)(
+        IWbemPropertyProvider* This,
+        LONG lFlags,
+        const BSTR strLocale,
+        const BSTR strClassMapping,
+        const BSTR strInstMapping,
+        const BSTR strPropMapping,
+        VARIANT *pvValue);
+
+    HRESULT (STDMETHODCALLTYPE *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 {
+    CONST_VTBL IWbemPropertyProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemPropertyProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemPropertyProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemPropertyProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemPropertyProvider methods ***/
+#define IWbemPropertyProvider_GetProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue) (This)->lpVtbl->GetProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue)
+#define IWbemPropertyProvider_PutProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue) (This)->lpVtbl->PutProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemPropertyProvider_QueryInterface(IWbemPropertyProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemPropertyProvider_AddRef(IWbemPropertyProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemPropertyProvider_Release(IWbemPropertyProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemPropertyProvider methods ***/
+static FORCEINLINE HRESULT IWbemPropertyProvider_GetProperty(IWbemPropertyProvider* This,LONG lFlags,const BSTR strLocale,const BSTR strClassMapping,const BSTR strInstMapping,const BSTR strPropMapping,VARIANT *pvValue) {
+    return This->lpVtbl->GetProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue);
+}
+static FORCEINLINE HRESULT IWbemPropertyProvider_PutProperty(IWbemPropertyProvider* This,LONG lFlags,const BSTR strLocale,const BSTR strClassMapping,const BSTR strInstMapping,const BSTR strPropMapping,const VARIANT *pvValue) {
+    return This->lpVtbl->PutProperty(This,lFlags,strLocale,strClassMapping,strInstMapping,strPropMapping,pvValue);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemPropertyProvider_GetProperty_Proxy(
+    IWbemPropertyProvider* This,
+    LONG lFlags,
+    const BSTR strLocale,
+    const BSTR strClassMapping,
+    const BSTR strInstMapping,
+    const BSTR strPropMapping,
+    VARIANT *pvValue);
+void __RPC_STUB IWbemPropertyProvider_GetProperty_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemPropertyProvider_PutProperty_Proxy(
+    IWbemPropertyProvider* This,
+    LONG lFlags,
+    const BSTR strLocale,
+    const BSTR strClassMapping,
+    const BSTR strInstMapping,
+    const BSTR strPropMapping,
+    const VARIANT *pvValue);
+void __RPC_STUB IWbemPropertyProvider_PutProperty_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemPropertyProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemEventProvider interface
+ */
+#ifndef __IWbemEventProvider_INTERFACE_DEFINED__
+#define __IWbemEventProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemEventProvider, 0xe245105b, 0xb06e, 0x11d0, 0xad,0x61, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e245105b-b06e-11d0-ad61-00c04fd8fdff")
+IWbemEventProvider : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ProvideEvents(
+        IWbemObjectSink *pSink,
+        LONG lFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemEventProvider, 0xe245105b, 0xb06e, 0x11d0, 0xad,0x61, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
+#else
+typedef struct IWbemEventProviderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemEventProvider* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemEventProvider* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemEventProvider* This);
+
+    /*** IWbemEventProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *ProvideEvents)(
+        IWbemEventProvider* This,
+        IWbemObjectSink *pSink,
+        LONG lFlags);
+
+    END_INTERFACE
+} IWbemEventProviderVtbl;
+interface IWbemEventProvider {
+    CONST_VTBL IWbemEventProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemEventProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemEventProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemEventProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemEventProvider methods ***/
+#define IWbemEventProvider_ProvideEvents(This,pSink,lFlags) (This)->lpVtbl->ProvideEvents(This,pSink,lFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemEventProvider_QueryInterface(IWbemEventProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemEventProvider_AddRef(IWbemEventProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemEventProvider_Release(IWbemEventProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemEventProvider methods ***/
+static FORCEINLINE HRESULT IWbemEventProvider_ProvideEvents(IWbemEventProvider* This,IWbemObjectSink *pSink,LONG lFlags) {
+    return This->lpVtbl->ProvideEvents(This,pSink,lFlags);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemEventProvider_ProvideEvents_Proxy(
+    IWbemEventProvider* This,
+    IWbemObjectSink *pSink,
+    LONG lFlags);
+void __RPC_STUB IWbemEventProvider_ProvideEvents_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemEventProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemEventProviderQuerySink interface
+ */
+#ifndef __IWbemEventProviderQuerySink_INTERFACE_DEFINED__
+#define __IWbemEventProviderQuerySink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemEventProviderQuerySink, 0x580acaf8, 0xfa1c, 0x11d0, 0xad,0x72, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("580acaf8-fa1c-11d0-ad72-00c04fd8fdff")
+IWbemEventProviderQuerySink : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE NewQuery(
+        ULONG dwId,
+        WBEM_WSTR wszQueryLanguage,
+        WBEM_WSTR wszQuery) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CancelQuery(
+        ULONG dwId) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemEventProviderQuerySink, 0x580acaf8, 0xfa1c, 0x11d0, 0xad,0x72, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
+#else
+typedef struct IWbemEventProviderQuerySinkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemEventProviderQuerySink* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemEventProviderQuerySink* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemEventProviderQuerySink* This);
+
+    /*** IWbemEventProviderQuerySink methods ***/
+    HRESULT (STDMETHODCALLTYPE *NewQuery)(
+        IWbemEventProviderQuerySink* This,
+        ULONG dwId,
+        WBEM_WSTR wszQueryLanguage,
+        WBEM_WSTR wszQuery);
+
+    HRESULT (STDMETHODCALLTYPE *CancelQuery)(
+        IWbemEventProviderQuerySink* This,
+        ULONG dwId);
+
+    END_INTERFACE
+} IWbemEventProviderQuerySinkVtbl;
+interface IWbemEventProviderQuerySink {
+    CONST_VTBL IWbemEventProviderQuerySinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemEventProviderQuerySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemEventProviderQuerySink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemEventProviderQuerySink_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemEventProviderQuerySink methods ***/
+#define IWbemEventProviderQuerySink_NewQuery(This,dwId,wszQueryLanguage,wszQuery) (This)->lpVtbl->NewQuery(This,dwId,wszQueryLanguage,wszQuery)
+#define IWbemEventProviderQuerySink_CancelQuery(This,dwId) (This)->lpVtbl->CancelQuery(This,dwId)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemEventProviderQuerySink_QueryInterface(IWbemEventProviderQuerySink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemEventProviderQuerySink_AddRef(IWbemEventProviderQuerySink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemEventProviderQuerySink_Release(IWbemEventProviderQuerySink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemEventProviderQuerySink methods ***/
+static FORCEINLINE HRESULT IWbemEventProviderQuerySink_NewQuery(IWbemEventProviderQuerySink* This,ULONG dwId,WBEM_WSTR wszQueryLanguage,WBEM_WSTR wszQuery) {
+    return This->lpVtbl->NewQuery(This,dwId,wszQueryLanguage,wszQuery);
+}
+static FORCEINLINE HRESULT IWbemEventProviderQuerySink_CancelQuery(IWbemEventProviderQuerySink* This,ULONG dwId) {
+    return This->lpVtbl->CancelQuery(This,dwId);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemEventProviderQuerySink_NewQuery_Proxy(
+    IWbemEventProviderQuerySink* This,
+    ULONG dwId,
+    WBEM_WSTR wszQueryLanguage,
+    WBEM_WSTR wszQuery);
+void __RPC_STUB IWbemEventProviderQuerySink_NewQuery_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemEventProviderQuerySink_CancelQuery_Proxy(
+    IWbemEventProviderQuerySink* This,
+    ULONG dwId);
+void __RPC_STUB IWbemEventProviderQuerySink_CancelQuery_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemEventProviderQuerySink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemEventProviderSecurity interface
+ */
+#ifndef __IWbemEventProviderSecurity_INTERFACE_DEFINED__
+#define __IWbemEventProviderSecurity_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemEventProviderSecurity, 0x631f7d96, 0xd993, 0x11d2, 0xb3,0x39, 0x00,0x10,0x5a,0x1f,0x4a,0xaf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("631f7d96-d993-11d2-b339-00105a1f4aaf")
+IWbemEventProviderSecurity : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AccessCheck(
+        WBEM_CWSTR wszQueryLanguage,
+        WBEM_CWSTR wszQuery,
+        LONG lSidLength,
+        const BYTE *pSid) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemEventProviderSecurity, 0x631f7d96, 0xd993, 0x11d2, 0xb3,0x39, 0x00,0x10,0x5a,0x1f,0x4a,0xaf)
+#endif
+#else
+typedef struct IWbemEventProviderSecurityVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemEventProviderSecurity* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemEventProviderSecurity* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemEventProviderSecurity* This);
+
+    /*** IWbemEventProviderSecurity methods ***/
+    HRESULT (STDMETHODCALLTYPE *AccessCheck)(
+        IWbemEventProviderSecurity* This,
+        WBEM_CWSTR wszQueryLanguage,
+        WBEM_CWSTR wszQuery,
+        LONG lSidLength,
+        const BYTE *pSid);
+
+    END_INTERFACE
+} IWbemEventProviderSecurityVtbl;
+interface IWbemEventProviderSecurity {
+    CONST_VTBL IWbemEventProviderSecurityVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemEventProviderSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemEventProviderSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemEventProviderSecurity_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemEventProviderSecurity methods ***/
+#define IWbemEventProviderSecurity_AccessCheck(This,wszQueryLanguage,wszQuery,lSidLength,pSid) (This)->lpVtbl->AccessCheck(This,wszQueryLanguage,wszQuery,lSidLength,pSid)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemEventProviderSecurity_QueryInterface(IWbemEventProviderSecurity* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemEventProviderSecurity_AddRef(IWbemEventProviderSecurity* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemEventProviderSecurity_Release(IWbemEventProviderSecurity* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemEventProviderSecurity methods ***/
+static FORCEINLINE HRESULT IWbemEventProviderSecurity_AccessCheck(IWbemEventProviderSecurity* This,WBEM_CWSTR wszQueryLanguage,WBEM_CWSTR wszQuery,LONG lSidLength,const BYTE *pSid) {
+    return This->lpVtbl->AccessCheck(This,wszQueryLanguage,wszQuery,lSidLength,pSid);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemEventProviderSecurity_AccessCheck_Proxy(
+    IWbemEventProviderSecurity* This,
+    WBEM_CWSTR wszQueryLanguage,
+    WBEM_CWSTR wszQuery,
+    LONG lSidLength,
+    const BYTE *pSid);
+void __RPC_STUB IWbemEventProviderSecurity_AccessCheck_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemEventProviderSecurity_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemProviderIdentity interface
+ */
+#ifndef __IWbemProviderIdentity_INTERFACE_DEFINED__
+#define __IWbemProviderIdentity_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemProviderIdentity, 0x631f7d97, 0xd993, 0x11d2, 0xb3,0x39, 0x00,0x10,0x5a,0x1f,0x4a,0xaf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("631f7d97-d993-11d2-b339-00105a1f4aaf")
+IWbemProviderIdentity : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetRegistrationObject(
+        LONG lFlags,
+        IWbemClassObject *pProvReg) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemProviderIdentity, 0x631f7d97, 0xd993, 0x11d2, 0xb3,0x39, 0x00,0x10,0x5a,0x1f,0x4a,0xaf)
+#endif
+#else
+typedef struct IWbemProviderIdentityVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemProviderIdentity* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemProviderIdentity* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemProviderIdentity* This);
+
+    /*** IWbemProviderIdentity methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetRegistrationObject)(
+        IWbemProviderIdentity* This,
+        LONG lFlags,
+        IWbemClassObject *pProvReg);
+
+    END_INTERFACE
+} IWbemProviderIdentityVtbl;
+interface IWbemProviderIdentity {
+    CONST_VTBL IWbemProviderIdentityVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemProviderIdentity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemProviderIdentity_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemProviderIdentity_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemProviderIdentity methods ***/
+#define IWbemProviderIdentity_SetRegistrationObject(This,lFlags,pProvReg) (This)->lpVtbl->SetRegistrationObject(This,lFlags,pProvReg)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemProviderIdentity_QueryInterface(IWbemProviderIdentity* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemProviderIdentity_AddRef(IWbemProviderIdentity* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemProviderIdentity_Release(IWbemProviderIdentity* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemProviderIdentity methods ***/
+static FORCEINLINE HRESULT IWbemProviderIdentity_SetRegistrationObject(IWbemProviderIdentity* This,LONG lFlags,IWbemClassObject *pProvReg) {
+    return This->lpVtbl->SetRegistrationObject(This,lFlags,pProvReg);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemProviderIdentity_SetRegistrationObject_Proxy(
+    IWbemProviderIdentity* This,
+    LONG lFlags,
+    IWbemClassObject *pProvReg);
+void __RPC_STUB IWbemProviderIdentity_SetRegistrationObject_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemProviderIdentity_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemEventConsumerProvider interface
+ */
+#ifndef __IWbemEventConsumerProvider_INTERFACE_DEFINED__
+#define __IWbemEventConsumerProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemEventConsumerProvider, 0xe246107a, 0xb06e, 0x11d0, 0xad,0x61, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e246107a-b06e-11d0-ad61-00c04fd8fdff")
+IWbemEventConsumerProvider : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE FindConsumer(
+        IWbemClassObject *pLogicalConsumer,
+        IWbemUnboundObjectSink **ppConsumer) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemEventConsumerProvider, 0xe246107a, 0xb06e, 0x11d0, 0xad,0x61, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
+#else
+typedef struct IWbemEventConsumerProviderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemEventConsumerProvider* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemEventConsumerProvider* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemEventConsumerProvider* This);
+
+    /*** IWbemEventConsumerProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *FindConsumer)(
+        IWbemEventConsumerProvider* This,
+        IWbemClassObject *pLogicalConsumer,
+        IWbemUnboundObjectSink **ppConsumer);
+
+    END_INTERFACE
+} IWbemEventConsumerProviderVtbl;
+interface IWbemEventConsumerProvider {
+    CONST_VTBL IWbemEventConsumerProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemEventConsumerProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemEventConsumerProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemEventConsumerProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemEventConsumerProvider methods ***/
+#define IWbemEventConsumerProvider_FindConsumer(This,pLogicalConsumer,ppConsumer) (This)->lpVtbl->FindConsumer(This,pLogicalConsumer,ppConsumer)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemEventConsumerProvider_QueryInterface(IWbemEventConsumerProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemEventConsumerProvider_AddRef(IWbemEventConsumerProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemEventConsumerProvider_Release(IWbemEventConsumerProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemEventConsumerProvider methods ***/
+static FORCEINLINE HRESULT IWbemEventConsumerProvider_FindConsumer(IWbemEventConsumerProvider* This,IWbemClassObject *pLogicalConsumer,IWbemUnboundObjectSink **ppConsumer) {
+    return This->lpVtbl->FindConsumer(This,pLogicalConsumer,ppConsumer);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemEventConsumerProvider_FindConsumer_Proxy(
+    IWbemEventConsumerProvider* This,
+    IWbemClassObject *pLogicalConsumer,
+    IWbemUnboundObjectSink **ppConsumer);
+void __RPC_STUB IWbemEventConsumerProvider_FindConsumer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemEventConsumerProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemProviderInitSink interface
+ */
+#ifndef __IWbemProviderInitSink_INTERFACE_DEFINED__
+#define __IWbemProviderInitSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemProviderInitSink, 0x1be41571, 0x91dd, 0x11d1, 0xae,0xb2, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1be41571-91dd-11d1-aeb2-00c04fb68820")
+IWbemProviderInitSink : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetStatus(
+        LONG lStatus,
+        LONG lFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemProviderInitSink, 0x1be41571, 0x91dd, 0x11d1, 0xae,0xb2, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
+#else
+typedef struct IWbemProviderInitSinkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemProviderInitSink* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemProviderInitSink* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemProviderInitSink* This);
+
+    /*** IWbemProviderInitSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetStatus)(
+        IWbemProviderInitSink* This,
+        LONG lStatus,
+        LONG lFlags);
+
+    END_INTERFACE
+} IWbemProviderInitSinkVtbl;
+interface IWbemProviderInitSink {
+    CONST_VTBL IWbemProviderInitSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemProviderInitSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemProviderInitSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemProviderInitSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemProviderInitSink methods ***/
+#define IWbemProviderInitSink_SetStatus(This,lStatus,lFlags) (This)->lpVtbl->SetStatus(This,lStatus,lFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemProviderInitSink_QueryInterface(IWbemProviderInitSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemProviderInitSink_AddRef(IWbemProviderInitSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemProviderInitSink_Release(IWbemProviderInitSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemProviderInitSink methods ***/
+static FORCEINLINE HRESULT IWbemProviderInitSink_SetStatus(IWbemProviderInitSink* This,LONG lStatus,LONG lFlags) {
+    return This->lpVtbl->SetStatus(This,lStatus,lFlags);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemProviderInitSink_SetStatus_Proxy(
+    IWbemProviderInitSink* This,
+    LONG lStatus,
+    LONG lFlags);
+void __RPC_STUB IWbemProviderInitSink_SetStatus_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemProviderInitSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemProviderInit interface
+ */
+#ifndef __IWbemProviderInit_INTERFACE_DEFINED__
+#define __IWbemProviderInit_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemProviderInit, 0x1be41572, 0x91dd, 0x11d1, 0xae,0xb2, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1be41572-91dd-11d1-aeb2-00c04fb68820")
+IWbemProviderInit : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Initialize(
+        LPWSTR wszUser,
+        LONG lFlags,
+        LPWSTR wszNamespace,
+        LPWSTR wszLocale,
+        IWbemServices *pNamespace,
+        IWbemContext *pCtx,
+        IWbemProviderInitSink *pInitSink) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemProviderInit, 0x1be41572, 0x91dd, 0x11d1, 0xae,0xb2, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
+#else
+typedef struct IWbemProviderInitVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemProviderInit* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemProviderInit* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemProviderInit* This);
+
+    /*** IWbemProviderInit methods ***/
+    HRESULT (STDMETHODCALLTYPE *Initialize)(
+        IWbemProviderInit* This,
+        LPWSTR wszUser,
+        LONG lFlags,
+        LPWSTR wszNamespace,
+        LPWSTR wszLocale,
+        IWbemServices *pNamespace,
+        IWbemContext *pCtx,
+        IWbemProviderInitSink *pInitSink);
+
+    END_INTERFACE
+} IWbemProviderInitVtbl;
+interface IWbemProviderInit {
+    CONST_VTBL IWbemProviderInitVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemProviderInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemProviderInit_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemProviderInit_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemProviderInit methods ***/
+#define IWbemProviderInit_Initialize(This,wszUser,lFlags,wszNamespace,wszLocale,pNamespace,pCtx,pInitSink) (This)->lpVtbl->Initialize(This,wszUser,lFlags,wszNamespace,wszLocale,pNamespace,pCtx,pInitSink)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemProviderInit_QueryInterface(IWbemProviderInit* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemProviderInit_AddRef(IWbemProviderInit* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemProviderInit_Release(IWbemProviderInit* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemProviderInit methods ***/
+static FORCEINLINE HRESULT IWbemProviderInit_Initialize(IWbemProviderInit* This,LPWSTR wszUser,LONG lFlags,LPWSTR wszNamespace,LPWSTR wszLocale,IWbemServices *pNamespace,IWbemContext *pCtx,IWbemProviderInitSink *pInitSink) {
+    return This->lpVtbl->Initialize(This,wszUser,lFlags,wszNamespace,wszLocale,pNamespace,pCtx,pInitSink);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemProviderInit_Initialize_Proxy(
+    IWbemProviderInit* This,
+    LPWSTR wszUser,
+    LONG lFlags,
+    LPWSTR wszNamespace,
+    LPWSTR wszLocale,
+    IWbemServices *pNamespace,
+    IWbemContext *pCtx,
+    IWbemProviderInitSink *pInitSink);
+void __RPC_STUB IWbemProviderInit_Initialize_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemProviderInit_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemHiPerfProvider interface
+ */
+#ifndef __IWbemHiPerfProvider_INTERFACE_DEFINED__
+#define __IWbemHiPerfProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemHiPerfProvider, 0x49353c93, 0x516b, 0x11d1, 0xae,0xa6, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("49353c93-516b-11d1-aea6-00c04fb68820")
+IWbemHiPerfProvider : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE QueryInstances(
+        IWbemServices *pNamespace,
+        WCHAR *wszClass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateRefresher(
+        IWbemServices *pNamespace,
+        LONG lFlags,
+        IWbemRefresher **ppRefresher) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateRefreshableObject(
+        IWbemServices *pNamespace,
+        IWbemObjectAccess *pTemplate,
+        IWbemRefresher *pRefresher,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemObjectAccess **ppRefreshable,
+        LONG *plId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE StopRefreshing(
+        IWbemRefresher *pRefresher,
+        LONG lId,
+        LONG lFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateRefreshableEnum(
+        IWbemServices *pNamespace,
+        LPCWSTR wszClass,
+        IWbemRefresher *pRefresher,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemHiPerfEnum *pHiPerfEnum,
+        LONG *plId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetObjects(
+        IWbemServices *pNamespace,
+        LONG lNumObjects,
+        IWbemObjectAccess **apObj,
+        LONG lFlags,
+        IWbemContext *pContext) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemHiPerfProvider, 0x49353c93, 0x516b, 0x11d1, 0xae,0xa6, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
+#else
+typedef struct IWbemHiPerfProviderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemHiPerfProvider* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemHiPerfProvider* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemHiPerfProvider* This);
+
+    /*** IWbemHiPerfProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInstances)(
+        IWbemHiPerfProvider* This,
+        IWbemServices *pNamespace,
+        WCHAR *wszClass,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemObjectSink *pSink);
+
+    HRESULT (STDMETHODCALLTYPE *CreateRefresher)(
+        IWbemHiPerfProvider* This,
+        IWbemServices *pNamespace,
+        LONG lFlags,
+        IWbemRefresher **ppRefresher);
+
+    HRESULT (STDMETHODCALLTYPE *CreateRefreshableObject)(
+        IWbemHiPerfProvider* This,
+        IWbemServices *pNamespace,
+        IWbemObjectAccess *pTemplate,
+        IWbemRefresher *pRefresher,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemObjectAccess **ppRefreshable,
+        LONG *plId);
+
+    HRESULT (STDMETHODCALLTYPE *StopRefreshing)(
+        IWbemHiPerfProvider* This,
+        IWbemRefresher *pRefresher,
+        LONG lId,
+        LONG lFlags);
+
+    HRESULT (STDMETHODCALLTYPE *CreateRefreshableEnum)(
+        IWbemHiPerfProvider* This,
+        IWbemServices *pNamespace,
+        LPCWSTR wszClass,
+        IWbemRefresher *pRefresher,
+        LONG lFlags,
+        IWbemContext *pContext,
+        IWbemHiPerfEnum *pHiPerfEnum,
+        LONG *plId);
+
+    HRESULT (STDMETHODCALLTYPE *GetObjects)(
+        IWbemHiPerfProvider* This,
+        IWbemServices *pNamespace,
+        LONG lNumObjects,
+        IWbemObjectAccess **apObj,
+        LONG lFlags,
+        IWbemContext *pContext);
+
+    END_INTERFACE
+} IWbemHiPerfProviderVtbl;
+interface IWbemHiPerfProvider {
+    CONST_VTBL IWbemHiPerfProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemHiPerfProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemHiPerfProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemHiPerfProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemHiPerfProvider methods ***/
+#define IWbemHiPerfProvider_QueryInstances(This,pNamespace,wszClass,lFlags,pCtx,pSink) (This)->lpVtbl->QueryInstances(This,pNamespace,wszClass,lFlags,pCtx,pSink)
+#define IWbemHiPerfProvider_CreateRefresher(This,pNamespace,lFlags,ppRefresher) (This)->lpVtbl->CreateRefresher(This,pNamespace,lFlags,ppRefresher)
+#define IWbemHiPerfProvider_CreateRefreshableObject(This,pNamespace,pTemplate,pRefresher,lFlags,pContext,ppRefreshable,plId) (This)->lpVtbl->CreateRefreshableObject(This,pNamespace,pTemplate,pRefresher,lFlags,pContext,ppRefreshable,plId)
+#define IWbemHiPerfProvider_StopRefreshing(This,pRefresher,lId,lFlags) (This)->lpVtbl->StopRefreshing(This,pRefresher,lId,lFlags)
+#define IWbemHiPerfProvider_CreateRefreshableEnum(This,pNamespace,wszClass,pRefresher,lFlags,pContext,pHiPerfEnum,plId) (This)->lpVtbl->CreateRefreshableEnum(This,pNamespace,wszClass,pRefresher,lFlags,pContext,pHiPerfEnum,plId)
+#define IWbemHiPerfProvider_GetObjects(This,pNamespace,lNumObjects,apObj,lFlags,pContext) (This)->lpVtbl->GetObjects(This,pNamespace,lNumObjects,apObj,lFlags,pContext)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemHiPerfProvider_QueryInterface(IWbemHiPerfProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemHiPerfProvider_AddRef(IWbemHiPerfProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemHiPerfProvider_Release(IWbemHiPerfProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemHiPerfProvider methods ***/
+static FORCEINLINE HRESULT IWbemHiPerfProvider_QueryInstances(IWbemHiPerfProvider* This,IWbemServices *pNamespace,WCHAR *wszClass,LONG lFlags,IWbemContext *pCtx,IWbemObjectSink *pSink) {
+    return This->lpVtbl->QueryInstances(This,pNamespace,wszClass,lFlags,pCtx,pSink);
+}
+static FORCEINLINE HRESULT IWbemHiPerfProvider_CreateRefresher(IWbemHiPerfProvider* This,IWbemServices *pNamespace,LONG lFlags,IWbemRefresher **ppRefresher) {
+    return This->lpVtbl->CreateRefresher(This,pNamespace,lFlags,ppRefresher);
+}
+static FORCEINLINE HRESULT IWbemHiPerfProvider_CreateRefreshableObject(IWbemHiPerfProvider* This,IWbemServices *pNamespace,IWbemObjectAccess *pTemplate,IWbemRefresher *pRefresher,LONG lFlags,IWbemContext *pContext,IWbemObjectAccess **ppRefreshable,LONG *plId) {
+    return This->lpVtbl->CreateRefreshableObject(This,pNamespace,pTemplate,pRefresher,lFlags,pContext,ppRefreshable,plId);
+}
+static FORCEINLINE HRESULT IWbemHiPerfProvider_StopRefreshing(IWbemHiPerfProvider* This,IWbemRefresher *pRefresher,LONG lId,LONG lFlags) {
+    return This->lpVtbl->StopRefreshing(This,pRefresher,lId,lFlags);
+}
+static FORCEINLINE HRESULT IWbemHiPerfProvider_CreateRefreshableEnum(IWbemHiPerfProvider* This,IWbemServices *pNamespace,LPCWSTR wszClass,IWbemRefresher *pRefresher,LONG lFlags,IWbemContext *pContext,IWbemHiPerfEnum *pHiPerfEnum,LONG *plId) {
+    return This->lpVtbl->CreateRefreshableEnum(This,pNamespace,wszClass,pRefresher,lFlags,pContext,pHiPerfEnum,plId);
+}
+static FORCEINLINE HRESULT IWbemHiPerfProvider_GetObjects(IWbemHiPerfProvider* This,IWbemServices *pNamespace,LONG lNumObjects,IWbemObjectAccess **apObj,LONG lFlags,IWbemContext *pContext) {
+    return This->lpVtbl->GetObjects(This,pNamespace,lNumObjects,apObj,lFlags,pContext);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemHiPerfProvider_QueryInstances_Proxy(
+    IWbemHiPerfProvider* This,
+    IWbemServices *pNamespace,
+    WCHAR *wszClass,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemObjectSink *pSink);
+void __RPC_STUB IWbemHiPerfProvider_QueryInstances_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemHiPerfProvider_CreateRefresher_Proxy(
+    IWbemHiPerfProvider* This,
+    IWbemServices *pNamespace,
+    LONG lFlags,
+    IWbemRefresher **ppRefresher);
+void __RPC_STUB IWbemHiPerfProvider_CreateRefresher_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemHiPerfProvider_CreateRefreshableObject_Proxy(
+    IWbemHiPerfProvider* This,
+    IWbemServices *pNamespace,
+    IWbemObjectAccess *pTemplate,
+    IWbemRefresher *pRefresher,
+    LONG lFlags,
+    IWbemContext *pContext,
+    IWbemObjectAccess **ppRefreshable,
+    LONG *plId);
+void __RPC_STUB IWbemHiPerfProvider_CreateRefreshableObject_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemHiPerfProvider_StopRefreshing_Proxy(
+    IWbemHiPerfProvider* This,
+    IWbemRefresher *pRefresher,
+    LONG lId,
+    LONG lFlags);
+void __RPC_STUB IWbemHiPerfProvider_StopRefreshing_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemHiPerfProvider_CreateRefreshableEnum_Proxy(
+    IWbemHiPerfProvider* This,
+    IWbemServices *pNamespace,
+    LPCWSTR wszClass,
+    IWbemRefresher *pRefresher,
+    LONG lFlags,
+    IWbemContext *pContext,
+    IWbemHiPerfEnum *pHiPerfEnum,
+    LONG *plId);
+void __RPC_STUB IWbemHiPerfProvider_CreateRefreshableEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemHiPerfProvider_GetObjects_Proxy(
+    IWbemHiPerfProvider* This,
+    IWbemServices *pNamespace,
+    LONG lNumObjects,
+    IWbemObjectAccess **apObj,
+    LONG lFlags,
+    IWbemContext *pContext);
+void __RPC_STUB IWbemHiPerfProvider_GetObjects_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemHiPerfProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemDecoupledRegistrar interface
+ */
+#ifndef __IWbemDecoupledRegistrar_INTERFACE_DEFINED__
+#define __IWbemDecoupledRegistrar_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemDecoupledRegistrar, 0x1005cbcf, 0xe64f, 0x4646, 0xbc,0xd3, 0x3a,0x08,0x9d,0x8a,0x84,0xb4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1005cbcf-e64f-4646-bcd3-3a089d8a84b4")
+IWbemDecoupledRegistrar : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Register(
+        LONG a_Flags,
+        IWbemContext *a_Context,
+        LPCWSTR a_User,
+        LPCWSTR a_Locale,
+        LPCWSTR a_Scope,
+        LPCWSTR a_Registration,
+        IUnknown *pIUnknown) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UnRegister(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemDecoupledRegistrar, 0x1005cbcf, 0xe64f, 0x4646, 0xbc,0xd3, 0x3a,0x08,0x9d,0x8a,0x84,0xb4)
+#endif
+#else
+typedef struct IWbemDecoupledRegistrarVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemDecoupledRegistrar* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemDecoupledRegistrar* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemDecoupledRegistrar* This);
+
+    /*** IWbemDecoupledRegistrar methods ***/
+    HRESULT (STDMETHODCALLTYPE *Register)(
+        IWbemDecoupledRegistrar* This,
+        LONG a_Flags,
+        IWbemContext *a_Context,
+        LPCWSTR a_User,
+        LPCWSTR a_Locale,
+        LPCWSTR a_Scope,
+        LPCWSTR a_Registration,
+        IUnknown *pIUnknown);
+
+    HRESULT (STDMETHODCALLTYPE *UnRegister)(
+        IWbemDecoupledRegistrar* This);
+
+    END_INTERFACE
+} IWbemDecoupledRegistrarVtbl;
+interface IWbemDecoupledRegistrar {
+    CONST_VTBL IWbemDecoupledRegistrarVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemDecoupledRegistrar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemDecoupledRegistrar_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemDecoupledRegistrar_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemDecoupledRegistrar methods ***/
+#define IWbemDecoupledRegistrar_Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,pIUnknown) (This)->lpVtbl->Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,pIUnknown)
+#define IWbemDecoupledRegistrar_UnRegister(This) (This)->lpVtbl->UnRegister(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemDecoupledRegistrar_QueryInterface(IWbemDecoupledRegistrar* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemDecoupledRegistrar_AddRef(IWbemDecoupledRegistrar* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemDecoupledRegistrar_Release(IWbemDecoupledRegistrar* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemDecoupledRegistrar methods ***/
+static FORCEINLINE HRESULT IWbemDecoupledRegistrar_Register(IWbemDecoupledRegistrar* This,LONG a_Flags,IWbemContext *a_Context,LPCWSTR a_User,LPCWSTR a_Locale,LPCWSTR a_Scope,LPCWSTR a_Registration,IUnknown *pIUnknown) {
+    return This->lpVtbl->Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,pIUnknown);
+}
+static FORCEINLINE HRESULT IWbemDecoupledRegistrar_UnRegister(IWbemDecoupledRegistrar* This) {
+    return This->lpVtbl->UnRegister(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemDecoupledRegistrar_Register_Proxy(
+    IWbemDecoupledRegistrar* This,
+    LONG a_Flags,
+    IWbemContext *a_Context,
+    LPCWSTR a_User,
+    LPCWSTR a_Locale,
+    LPCWSTR a_Scope,
+    LPCWSTR a_Registration,
+    IUnknown *pIUnknown);
+void __RPC_STUB IWbemDecoupledRegistrar_Register_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemDecoupledRegistrar_UnRegister_Proxy(
+    IWbemDecoupledRegistrar* This);
+void __RPC_STUB IWbemDecoupledRegistrar_UnRegister_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemDecoupledRegistrar_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemDecoupledBasicEventProvider interface
+ */
 #ifndef __IWbemDecoupledBasicEventProvider_INTERFACE_DEFINED__
 #define __IWbemDecoupledBasicEventProvider_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemDecoupledBasicEventProvider;
+
+DEFINE_GUID(IID_IWbemDecoupledBasicEventProvider, 0x86336d20, 0xca11, 0x4786, 0x9e,0xf1, 0xbc,0x8a,0x94,0x6b,0x42,0xfc);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemDecoupledBasicEventProvider : public IWbemDecoupledRegistrar {
-  public:
-    virtual HRESULT WINAPI GetSink(__LONG32 a_Flags,IWbemContext *a_Context,IWbemObjectSink **a_Sink) = 0;
-    virtual HRESULT WINAPI GetService(__LONG32 a_Flags,IWbemContext *a_Context,IWbemServices **a_Service) = 0;
-  };
+MIDL_INTERFACE("86336d20-ca11-4786-9ef1-bc8a946b42fc")
+IWbemDecoupledBasicEventProvider : public IWbemDecoupledRegistrar
+{
+    virtual HRESULT STDMETHODCALLTYPE GetSink(
+        LONG a_Flags,
+        IWbemContext *a_Context,
+        IWbemObjectSink **a_Sink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetService(
+        LONG a_Flags,
+        IWbemContext *a_Context,
+        IWbemServices **a_Service) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemDecoupledBasicEventProvider, 0x86336d20, 0xca11, 0x4786, 0x9e,0xf1, 0xbc,0x8a,0x94,0x6b,0x42,0xfc)
+#endif
 #else
-  typedef struct IWbemDecoupledBasicEventProviderVtbl {
+typedef struct IWbemDecoupledBasicEventProviderVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemDecoupledBasicEventProvider *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemDecoupledBasicEventProvider *This);
-      ULONG (WINAPI *Release)(IWbemDecoupledBasicEventProvider *This);
-      HRESULT (WINAPI *Register)(IWbemDecoupledBasicEventProvider *This,__LONG32 a_Flags,IWbemContext *a_Context,LPCWSTR a_User,LPCWSTR a_Locale,LPCWSTR a_Scope,LPCWSTR a_Registration,IUnknown *a_Unknown);
-      HRESULT (WINAPI *UnRegister)(IWbemDecoupledBasicEventProvider *This);
-      HRESULT (WINAPI *GetSink)(IWbemDecoupledBasicEventProvider *This,__LONG32 a_Flags,IWbemContext *a_Context,IWbemObjectSink **a_Sink);
-      HRESULT (WINAPI *GetService)(IWbemDecoupledBasicEventProvider *This,__LONG32 a_Flags,IWbemContext *a_Context,IWbemServices **a_Service);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemDecoupledBasicEventProvider* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemDecoupledBasicEventProvider* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemDecoupledBasicEventProvider* This);
+
+    /*** IWbemDecoupledRegistrar methods ***/
+    HRESULT (STDMETHODCALLTYPE *Register)(
+        IWbemDecoupledBasicEventProvider* This,
+        LONG a_Flags,
+        IWbemContext *a_Context,
+        LPCWSTR a_User,
+        LPCWSTR a_Locale,
+        LPCWSTR a_Scope,
+        LPCWSTR a_Registration,
+        IUnknown *pIUnknown);
+
+    HRESULT (STDMETHODCALLTYPE *UnRegister)(
+        IWbemDecoupledBasicEventProvider* This);
+
+    /*** IWbemDecoupledBasicEventProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSink)(
+        IWbemDecoupledBasicEventProvider* This,
+        LONG a_Flags,
+        IWbemContext *a_Context,
+        IWbemObjectSink **a_Sink);
+
+    HRESULT (STDMETHODCALLTYPE *GetService)(
+        IWbemDecoupledBasicEventProvider* This,
+        LONG a_Flags,
+        IWbemContext *a_Context,
+        IWbemServices **a_Service);
+
     END_INTERFACE
-  } IWbemDecoupledBasicEventProviderVtbl;
-  struct IWbemDecoupledBasicEventProvider {
-    CONST_VTBL struct IWbemDecoupledBasicEventProviderVtbl *lpVtbl;
-  };
+} IWbemDecoupledBasicEventProviderVtbl;
+interface IWbemDecoupledBasicEventProvider {
+    CONST_VTBL IWbemDecoupledBasicEventProviderVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemDecoupledBasicEventProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemDecoupledBasicEventProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemDecoupledBasicEventProvider_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemDecoupledBasicEventProvider_Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,a_Unknown) (This)->lpVtbl->Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,a_Unknown)
+/*** IWbemDecoupledRegistrar methods ***/
+#define IWbemDecoupledBasicEventProvider_Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,pIUnknown) (This)->lpVtbl->Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,pIUnknown)
 #define IWbemDecoupledBasicEventProvider_UnRegister(This) (This)->lpVtbl->UnRegister(This)
+/*** IWbemDecoupledBasicEventProvider methods ***/
 #define IWbemDecoupledBasicEventProvider_GetSink(This,a_Flags,a_Context,a_Sink) (This)->lpVtbl->GetSink(This,a_Flags,a_Context,a_Sink)
 #define IWbemDecoupledBasicEventProvider_GetService(This,a_Flags,a_Context,a_Service) (This)->lpVtbl->GetService(This,a_Flags,a_Context,a_Service)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemDecoupledBasicEventProvider_QueryInterface(IWbemDecoupledBasicEventProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemDecoupledBasicEventProvider_AddRef(IWbemDecoupledBasicEventProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemDecoupledBasicEventProvider_Release(IWbemDecoupledBasicEventProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemDecoupledRegistrar methods ***/
+static FORCEINLINE HRESULT IWbemDecoupledBasicEventProvider_Register(IWbemDecoupledBasicEventProvider* This,LONG a_Flags,IWbemContext *a_Context,LPCWSTR a_User,LPCWSTR a_Locale,LPCWSTR a_Scope,LPCWSTR a_Registration,IUnknown *pIUnknown) {
+    return This->lpVtbl->Register(This,a_Flags,a_Context,a_User,a_Locale,a_Scope,a_Registration,pIUnknown);
+}
+static FORCEINLINE HRESULT IWbemDecoupledBasicEventProvider_UnRegister(IWbemDecoupledBasicEventProvider* This) {
+    return This->lpVtbl->UnRegister(This);
+}
+/*** IWbemDecoupledBasicEventProvider methods ***/
+static FORCEINLINE HRESULT IWbemDecoupledBasicEventProvider_GetSink(IWbemDecoupledBasicEventProvider* This,LONG a_Flags,IWbemContext *a_Context,IWbemObjectSink **a_Sink) {
+    return This->lpVtbl->GetSink(This,a_Flags,a_Context,a_Sink);
+}
+static FORCEINLINE HRESULT IWbemDecoupledBasicEventProvider_GetService(IWbemDecoupledBasicEventProvider* This,LONG a_Flags,IWbemContext *a_Context,IWbemServices **a_Service) {
+    return This->lpVtbl->GetService(This,a_Flags,a_Context,a_Service);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemDecoupledBasicEventProvider_GetSink_Proxy(IWbemDecoupledBasicEventProvider *This,__LONG32 a_Flags,IWbemContext *a_Context,IWbemObjectSink **a_Sink);
-  void __RPC_STUB IWbemDecoupledBasicEventProvider_GetSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemDecoupledBasicEventProvider_GetService_Proxy(IWbemDecoupledBasicEventProvider *This,__LONG32 a_Flags,IWbemContext *a_Context,IWbemServices **a_Service);
-  void __RPC_STUB IWbemDecoupledBasicEventProvider_GetService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-  typedef enum tag_WBEM_BATCH_TYPE {
-    WBEM_FLAG_BATCH_IF_NEEDED = 0,WBEM_FLAG_MUST_BATCH = 0x1,WBEM_FLAG_MUST_NOT_BATCH = 0x2
-  } WBEM_BATCH_TYPE;
+#endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_wbemprov_0174_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemprov_0174_v0_0_s_ifspec;
+HRESULT STDMETHODCALLTYPE IWbemDecoupledBasicEventProvider_GetSink_Proxy(
+    IWbemDecoupledBasicEventProvider* This,
+    LONG a_Flags,
+    IWbemContext *a_Context,
+    IWbemObjectSink **a_Sink);
+void __RPC_STUB IWbemDecoupledBasicEventProvider_GetSink_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemDecoupledBasicEventProvider_GetService_Proxy(
+    IWbemDecoupledBasicEventProvider* This,
+    LONG a_Flags,
+    IWbemContext *a_Context,
+    IWbemServices **a_Service);
+void __RPC_STUB IWbemDecoupledBasicEventProvider_GetService_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemDecoupledBasicEventProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemEventSink interface
+ */
 #ifndef __IWbemEventSink_INTERFACE_DEFINED__
 #define __IWbemEventSink_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemEventSink;
+
+DEFINE_GUID(IID_IWbemEventSink, 0x3ae0080a, 0x7e3a, 0x4366, 0xbf,0x89, 0x0f,0xee,0xdc,0x93,0x16,0x59);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemEventSink : public IWbemObjectSink {
-  public:
-    virtual HRESULT WINAPI SetSinkSecurity(__LONG32 lSDLength,BYTE *pSD) = 0;
-    virtual HRESULT WINAPI IsActive(void) = 0;
-    virtual HRESULT WINAPI GetRestrictedSink(__LONG32 lNumQueries,const LPCWSTR *awszQueries,IUnknown *pCallback,IWbemEventSink **ppSink) = 0;
-    virtual HRESULT WINAPI SetBatchingParameters(LONG lFlags,DWORD dwMaxBufferSize,DWORD dwMaxSendLatency) = 0;
-  };
+MIDL_INTERFACE("3ae0080a-7e3a-4366-bf89-0feedc931659")
+IWbemEventSink : public IWbemObjectSink
+{
+    virtual HRESULT STDMETHODCALLTYPE SetSinkSecurity(
+        LONG lSDLength,
+        BYTE *pSD) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsActive(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRestrictedSink(
+        LONG lNumQueries,
+        const LPCWSTR *awszQueries,
+        IUnknown *pCallback,
+        IWbemEventSink **ppSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetBatchingParameters(
+        LONG lFlags,
+        DWORD dwMaxBufferSize,
+        DWORD dwMaxSendLatency) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemEventSink, 0x3ae0080a, 0x7e3a, 0x4366, 0xbf,0x89, 0x0f,0xee,0xdc,0x93,0x16,0x59)
+#endif
 #else
-  typedef struct IWbemEventSinkVtbl {
+typedef struct IWbemEventSinkVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemEventSink *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemEventSink *This);
-      ULONG (WINAPI *Release)(IWbemEventSink *This);
-      HRESULT (WINAPI *Indicate)(IWbemEventSink *This,__LONG32 lObjectCount,IWbemClassObject **apObjArray);
-      HRESULT (WINAPI *SetStatus)(IWbemEventSink *This,__LONG32 lFlags,HRESULT hResult,BSTR strParam,IWbemClassObject *pObjParam);
-      HRESULT (WINAPI *SetSinkSecurity)(IWbemEventSink *This,__LONG32 lSDLength,BYTE *pSD);
-      HRESULT (WINAPI *IsActive)(IWbemEventSink *This);
-      HRESULT (WINAPI *GetRestrictedSink)(IWbemEventSink *This,__LONG32 lNumQueries,const LPCWSTR *awszQueries,IUnknown *pCallback,IWbemEventSink **ppSink);
-      HRESULT (WINAPI *SetBatchingParameters)(IWbemEventSink *This,LONG lFlags,DWORD dwMaxBufferSize,DWORD dwMaxSendLatency);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemEventSink* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemEventSink* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemEventSink* This);
+
+    /*** IWbemObjectSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *Indicate)(
+        IWbemEventSink* This,
+        LONG lObjectCount,
+        IWbemClassObject **apObjArray);
+
+    HRESULT (STDMETHODCALLTYPE *SetStatus)(
+        IWbemEventSink* This,
+        LONG lFlags,
+        HRESULT hResult,
+        BSTR strParam,
+        IWbemClassObject *pObjParam);
+
+    /*** IWbemEventSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetSinkSecurity)(
+        IWbemEventSink* This,
+        LONG lSDLength,
+        BYTE *pSD);
+
+    HRESULT (STDMETHODCALLTYPE *IsActive)(
+        IWbemEventSink* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetRestrictedSink)(
+        IWbemEventSink* This,
+        LONG lNumQueries,
+        const LPCWSTR *awszQueries,
+        IUnknown *pCallback,
+        IWbemEventSink **ppSink);
+
+    HRESULT (STDMETHODCALLTYPE *SetBatchingParameters)(
+        IWbemEventSink* This,
+        LONG lFlags,
+        DWORD dwMaxBufferSize,
+        DWORD dwMaxSendLatency);
+
     END_INTERFACE
-  } IWbemEventSinkVtbl;
-  struct IWbemEventSink {
-    CONST_VTBL struct IWbemEventSinkVtbl *lpVtbl;
-  };
+} IWbemEventSinkVtbl;
+interface IWbemEventSink {
+    CONST_VTBL IWbemEventSinkVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemEventSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemObjectSink methods ***/
 #define IWbemEventSink_Indicate(This,lObjectCount,apObjArray) (This)->lpVtbl->Indicate(This,lObjectCount,apObjArray)
 #define IWbemEventSink_SetStatus(This,lFlags,hResult,strParam,pObjParam) (This)->lpVtbl->SetStatus(This,lFlags,hResult,strParam,pObjParam)
+/*** IWbemEventSink methods ***/
 #define IWbemEventSink_SetSinkSecurity(This,lSDLength,pSD) (This)->lpVtbl->SetSinkSecurity(This,lSDLength,pSD)
 #define IWbemEventSink_IsActive(This) (This)->lpVtbl->IsActive(This)
 #define IWbemEventSink_GetRestrictedSink(This,lNumQueries,awszQueries,pCallback,ppSink) (This)->lpVtbl->GetRestrictedSink(This,lNumQueries,awszQueries,pCallback,ppSink)
 #define IWbemEventSink_SetBatchingParameters(This,lFlags,dwMaxBufferSize,dwMaxSendLatency) (This)->lpVtbl->SetBatchingParameters(This,lFlags,dwMaxBufferSize,dwMaxSendLatency)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemEventSink_QueryInterface(IWbemEventSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemEventSink_AddRef(IWbemEventSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemEventSink_Release(IWbemEventSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemObjectSink methods ***/
+static FORCEINLINE HRESULT IWbemEventSink_Indicate(IWbemEventSink* This,LONG lObjectCount,IWbemClassObject **apObjArray) {
+    return This->lpVtbl->Indicate(This,lObjectCount,apObjArray);
+}
+static FORCEINLINE HRESULT IWbemEventSink_SetStatus(IWbemEventSink* This,LONG lFlags,HRESULT hResult,BSTR strParam,IWbemClassObject *pObjParam) {
+    return This->lpVtbl->SetStatus(This,lFlags,hResult,strParam,pObjParam);
+}
+/*** IWbemEventSink methods ***/
+static FORCEINLINE HRESULT IWbemEventSink_SetSinkSecurity(IWbemEventSink* This,LONG lSDLength,BYTE *pSD) {
+    return This->lpVtbl->SetSinkSecurity(This,lSDLength,pSD);
+}
+static FORCEINLINE HRESULT IWbemEventSink_IsActive(IWbemEventSink* This) {
+    return This->lpVtbl->IsActive(This);
+}
+static FORCEINLINE HRESULT IWbemEventSink_GetRestrictedSink(IWbemEventSink* This,LONG lNumQueries,const LPCWSTR *awszQueries,IUnknown *pCallback,IWbemEventSink **ppSink) {
+    return This->lpVtbl->GetRestrictedSink(This,lNumQueries,awszQueries,pCallback,ppSink);
+}
+static FORCEINLINE HRESULT IWbemEventSink_SetBatchingParameters(IWbemEventSink* This,LONG lFlags,DWORD dwMaxBufferSize,DWORD dwMaxSendLatency) {
+    return This->lpVtbl->SetBatchingParameters(This,lFlags,dwMaxBufferSize,dwMaxSendLatency);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemEventSink_SetSinkSecurity_Proxy(IWbemEventSink *This,__LONG32 lSDLength,BYTE *pSD);
-  void __RPC_STUB IWbemEventSink_SetSinkSecurity_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemEventSink_IsActive_Proxy(IWbemEventSink *This);
-  void __RPC_STUB IWbemEventSink_IsActive_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemEventSink_GetRestrictedSink_Proxy(IWbemEventSink *This,__LONG32 lNumQueries,const LPCWSTR *awszQueries,IUnknown *pCallback,IWbemEventSink **ppSink);
-  void __RPC_STUB IWbemEventSink_GetRestrictedSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemEventSink_SetBatchingParameters_Proxy(IWbemEventSink *This,LONG lFlags,DWORD dwMaxBufferSize,DWORD dwMaxSendLatency);
-  void __RPC_STUB IWbemEventSink_SetBatchingParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-  ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
-  unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
-  unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
-  void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
-  ULONG __RPC_API VARIANT_UserSize(ULONG *,ULONG,VARIANT *);
-  unsigned char *__RPC_API VARIANT_UserMarshal(ULONG *,unsigned char *,VARIANT *);
-  unsigned char *__RPC_API VARIANT_UserUnmarshal(ULONG *,unsigned char *,VARIANT *);
-  void __RPC_API VARIANT_UserFree(ULONG *,VARIANT *);
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemEventSink_SetSinkSecurity_Proxy(
+    IWbemEventSink* This,
+    LONG lSDLength,
+    BYTE *pSD);
+void __RPC_STUB IWbemEventSink_SetSinkSecurity_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemEventSink_IsActive_Proxy(
+    IWbemEventSink* This);
+void __RPC_STUB IWbemEventSink_IsActive_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemEventSink_GetRestrictedSink_Proxy(
+    IWbemEventSink* This,
+    LONG lNumQueries,
+    const LPCWSTR *awszQueries,
+    IUnknown *pCallback,
+    IWbemEventSink **ppSink);
+void __RPC_STUB IWbemEventSink_GetRestrictedSink_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemEventSink_SetBatchingParameters_Proxy(
+    IWbemEventSink* This,
+    LONG lFlags,
+    DWORD dwMaxBufferSize,
+    DWORD dwMaxSendLatency);
+void __RPC_STUB IWbemEventSink_SetBatchingParameters_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemEventSink_INTERFACE_DEFINED__ */
+
+#endif
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
+void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
+
+/* End additional prototypes */
 
 #ifdef __cplusplus
 }
 #endif
-#endif
+
+#endif /* __wbemprov_h__ */
diff --git a/mingw-w64-headers/include/wbemtran.h b/mingw-w64-headers/include/wbemtran.h
index 2d03dd1..83fccaa 100644
--- a/mingw-w64-headers/include/wbemtran.h
+++ b/mingw-w64-headers/include/wbemtran.h
@@ -1,46 +1,21 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
+/*** Autogenerated by WIDL 1.6 from wbemtran.idl - Do not edit ***/
+
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
 
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error This stub requires an updated version of <rpcndr.h>
-#endif
+#include <rpc.h>
+#include <rpcndr.h>
 
 #ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
+#include <windows.h>
+#include <ole2.h>
 #endif
 
 #ifndef __wbemtran_h__
 #define __wbemtran_h__
 
-#ifndef __IWbemTransport_FWD_DEFINED__
-#define __IWbemTransport_FWD_DEFINED__
-typedef struct IWbemTransport IWbemTransport;
-#endif
-
-#ifndef __IWbemLevel1Login_FWD_DEFINED__
-#define __IWbemLevel1Login_FWD_DEFINED__
-typedef struct IWbemLevel1Login IWbemLevel1Login;
-#endif
-
-#ifndef __IWbemConnectorLogin_FWD_DEFINED__
-#define __IWbemConnectorLogin_FWD_DEFINED__
-typedef struct IWbemConnectorLogin IWbemConnectorLogin;
-#endif
-
-#ifndef __IWbemAddressResolution_FWD_DEFINED__
-#define __IWbemAddressResolution_FWD_DEFINED__
-typedef struct IWbemAddressResolution IWbemAddressResolution;
-#endif
+/* Forward declarations */
 
 #ifndef __WbemLevel1Login_FWD_DEFINED__
 #define __WbemLevel1Login_FWD_DEFINED__
@@ -48,8 +23,8 @@
 typedef class WbemLevel1Login WbemLevel1Login;
 #else
 typedef struct WbemLevel1Login WbemLevel1Login;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemLevel1Login_FWD_DEFINED__ */
 
 #ifndef __WbemLocalAddrRes_FWD_DEFINED__
 #define __WbemLocalAddrRes_FWD_DEFINED__
@@ -57,8 +32,8 @@
 typedef class WbemLocalAddrRes WbemLocalAddrRes;
 #else
 typedef struct WbemLocalAddrRes WbemLocalAddrRes;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemLocalAddrRes_FWD_DEFINED__ */
 
 #ifndef __WbemUninitializedClassObject_FWD_DEFINED__
 #define __WbemUninitializedClassObject_FWD_DEFINED__
@@ -66,18 +41,8 @@
 typedef class WbemUninitializedClassObject WbemUninitializedClassObject;
 #else
 typedef struct WbemUninitializedClassObject WbemUninitializedClassObject;
-#endif
-#endif
-
-#ifndef __IWbemClientTransport_FWD_DEFINED__
-#define __IWbemClientTransport_FWD_DEFINED__
-typedef struct IWbemClientTransport IWbemClientTransport;
-#endif
-
-#ifndef __IWbemClientConnectionTransport_FWD_DEFINED__
-#define __IWbemClientConnectionTransport_FWD_DEFINED__
-typedef struct IWbemClientConnectionTransport IWbemClientConnectionTransport;
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemUninitializedClassObject_FWD_DEFINED__ */
 
 #ifndef __WbemDCOMTransport_FWD_DEFINED__
 #define __WbemDCOMTransport_FWD_DEFINED__
@@ -85,349 +50,1070 @@
 typedef class WbemDCOMTransport WbemDCOMTransport;
 #else
 typedef struct WbemDCOMTransport WbemDCOMTransport;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __WbemDCOMTransport_FWD_DEFINED__ */
 
 #ifndef __IWbemLevel1Login_FWD_DEFINED__
 #define __IWbemLevel1Login_FWD_DEFINED__
-typedef struct IWbemLevel1Login IWbemLevel1Login;
+typedef interface IWbemLevel1Login IWbemLevel1Login;
 #endif
 
 #ifndef __IWbemConnectorLogin_FWD_DEFINED__
 #define __IWbemConnectorLogin_FWD_DEFINED__
-typedef struct IWbemConnectorLogin IWbemConnectorLogin;
+typedef interface IWbemConnectorLogin IWbemConnectorLogin;
 #endif
 
 #ifndef __IWbemAddressResolution_FWD_DEFINED__
 #define __IWbemAddressResolution_FWD_DEFINED__
-typedef struct IWbemAddressResolution IWbemAddressResolution;
+typedef interface IWbemAddressResolution IWbemAddressResolution;
 #endif
 
 #ifndef __IWbemTransport_FWD_DEFINED__
 #define __IWbemTransport_FWD_DEFINED__
-typedef struct IWbemTransport IWbemTransport;
+typedef interface IWbemTransport IWbemTransport;
 #endif
 
 #ifndef __IWbemConstructClassObject_FWD_DEFINED__
 #define __IWbemConstructClassObject_FWD_DEFINED__
-typedef struct IWbemConstructClassObject IWbemConstructClassObject;
+typedef interface IWbemConstructClassObject IWbemConstructClassObject;
 #endif
 
 #ifndef __IWbemClientTransport_FWD_DEFINED__
 #define __IWbemClientTransport_FWD_DEFINED__
-typedef struct IWbemClientTransport IWbemClientTransport;
+typedef interface IWbemClientTransport IWbemClientTransport;
 #endif
 
 #ifndef __IWbemClientConnectionTransport_FWD_DEFINED__
 #define __IWbemClientConnectionTransport_FWD_DEFINED__
-typedef struct IWbemClientConnectionTransport IWbemClientConnectionTransport;
+typedef interface IWbemClientConnectionTransport IWbemClientConnectionTransport;
 #endif
 
-#include "objidl.h"
-#include "oleidl.h"
-#include "oaidl.h"
-#include "wbemcli.h"
+/* Headers for imported files */
+
+#include <objidl.h>
+#include <oleidl.h>
+#include <oaidl.h>
+#include <wbemcli.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
-  void *__RPC_API MIDL_user_allocate(size_t);
-  void __RPC_API MIDL_user_free(void *);
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __IWbemTransport_FWD_DEFINED__
+#define __IWbemTransport_FWD_DEFINED__
+typedef interface IWbemTransport IWbemTransport;
 #endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_wbemtran_0000_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wbemtran_0000_v0_0_s_ifspec;
+#ifndef __IWbemLevel1Login_FWD_DEFINED__
+#define __IWbemLevel1Login_FWD_DEFINED__
+typedef interface IWbemLevel1Login IWbemLevel1Login;
+#endif
 
-#ifndef __WbemTransports_v1_LIBRARY_DEFINED__
-#define __WbemTransports_v1_LIBRARY_DEFINED__
-  typedef enum tag_WBEM_LOGIN_TYPE {
-    WBEM_FLAG_INPROC_LOGIN = 0,WBEM_FLAG_LOCAL_LOGIN = 1,WBEM_FLAG_REMOTE_LOGIN = 2,WBEM_AUTHENTICATION_METHOD_MASK = 0xf,
+#ifndef __IWbemConnectorLogin_FWD_DEFINED__
+#define __IWbemConnectorLogin_FWD_DEFINED__
+typedef interface IWbemConnectorLogin IWbemConnectorLogin;
+#endif
+
+#ifndef __IWbemAddressResolution_FWD_DEFINED__
+#define __IWbemAddressResolution_FWD_DEFINED__
+typedef interface IWbemAddressResolution IWbemAddressResolution;
+#endif
+
+#ifndef __IWbemClientTransport_FWD_DEFINED__
+#define __IWbemClientTransport_FWD_DEFINED__
+typedef interface IWbemClientTransport IWbemClientTransport;
+#endif
+
+#ifndef __IWbemClientConnectionTransport_FWD_DEFINED__
+#define __IWbemClientConnectionTransport_FWD_DEFINED__
+typedef interface IWbemClientConnectionTransport IWbemClientConnectionTransport;
+#endif
+
+typedef enum tag_WBEM_LOGIN_TYPE {
+    WBEM_FLAG_INPROC_LOGIN = 0,
+    WBEM_FLAG_LOCAL_LOGIN = 1,
+    WBEM_FLAG_REMOTE_LOGIN = 2,
+    WBEM_AUTHENTICATION_METHOD_MASK = 0xf,
     WBEM_FLAG_USE_MULTIPLE_CHALLENGES = 0x10
-  } WBEM_LOGIN_TYPE;
+} WBEM_LOGIN_TYPE;
+typedef BYTE *WBEM_128BITS;
 
-  typedef BYTE *WBEM_128BITS;
+DEFINE_GUID(LIBID_WbemTransports_v1, 0x027947f3, 0xd731, 0x11ce, 0xa3,0x57, 0x00,0x00,0x00,0x00,0x00,0x01);
 
-  EXTERN_C const IID LIBID_WbemTransports_v1;
-#ifndef __IWbemTransport_INTERFACE_DEFINED__
-#define __IWbemTransport_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemTransport;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemTransport : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Initialize(void) = 0;
-  };
-#else
-  typedef struct IWbemTransportVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemTransport *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemTransport *This);
-      ULONG (WINAPI *Release)(IWbemTransport *This);
-      HRESULT (WINAPI *Initialize)(IWbemTransport *This);
-    END_INTERFACE
-  } IWbemTransportVtbl;
-  struct IWbemTransport {
-    CONST_VTBL struct IWbemTransportVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemTransport_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemTransport_Initialize(This) (This)->lpVtbl->Initialize(This)
+/*****************************************************************************
+ * WbemLevel1Login coclass
+ */
+
+DEFINE_GUID(CLSID_WbemLevel1Login, 0x8bc3f05e, 0xd86b, 0x11d0, 0xa0,0x75, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("8bc3f05e-d86b-11d0-a075-00c04fb68820") WbemLevel1Login;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemLevel1Login, 0x8bc3f05e, 0xd86b, 0x11d0, 0xa0,0x75, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
 #endif
 #endif
-  HRESULT WINAPI IWbemTransport_Initialize_Proxy(IWbemTransport *This);
-  void __RPC_STUB IWbemTransport_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
+/*****************************************************************************
+ * WbemLocalAddrRes coclass
+ */
+
+DEFINE_GUID(CLSID_WbemLocalAddrRes, 0xa1044801, 0x8f7e, 0x11d1, 0x9e,0x7c, 0x00,0xc0,0x4f,0xc3,0x24,0xa8);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("a1044801-8f7e-11d1-9e7c-00c04fc324a8") WbemLocalAddrRes;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemLocalAddrRes, 0xa1044801, 0x8f7e, 0x11d1, 0x9e,0x7c, 0x00,0xc0,0x4f,0xc3,0x24,0xa8)
+#endif
 #endif
 
+/*****************************************************************************
+ * WbemUninitializedClassObject coclass
+ */
+
+DEFINE_GUID(CLSID_WbemUninitializedClassObject, 0x7a0227f6, 0x7108, 0x11d1, 0xad,0x90, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("7a0227f6-7108-11d1-ad90-00c04fd8fdff") WbemUninitializedClassObject;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemUninitializedClassObject, 0x7a0227f6, 0x7108, 0x11d1, 0xad,0x90, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
+#endif
+
+/*****************************************************************************
+ * WbemDCOMTransport coclass
+ */
+
+DEFINE_GUID(CLSID_WbemDCOMTransport, 0xf7ce2e13, 0x8c90, 0x11d1, 0x9e,0x7b, 0x00,0xc0,0x4f,0xc3,0x24,0xa8);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("f7ce2e13-8c90-11d1-9e7b-00c04fc324a8") WbemDCOMTransport;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WbemDCOMTransport, 0xf7ce2e13, 0x8c90, 0x11d1, 0x9e,0x7b, 0x00,0xc0,0x4f,0xc3,0x24,0xa8)
+#endif
+#endif
+
+/*****************************************************************************
+ * IWbemLevel1Login interface
+ */
 #ifndef __IWbemLevel1Login_INTERFACE_DEFINED__
 #define __IWbemLevel1Login_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemLevel1Login;
+
+DEFINE_GUID(IID_IWbemLevel1Login, 0xf309ad18, 0xd86a, 0x11d0, 0xa0,0x75, 0x00,0xc0,0x4f,0xb6,0x88,0x20);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemLevel1Login : public IUnknown {
-  public:
-    virtual HRESULT WINAPI EstablishPosition(LPWSTR wszClientMachineName,DWORD dwProcessId,DWORD *phAuthEventHandle) = 0;
-    virtual HRESULT WINAPI RequestChallenge(LPWSTR wszNetworkResource,LPWSTR wszUser,WBEM_128BITS Nonce) = 0;
-    virtual HRESULT WINAPI WBEMLogin(LPWSTR wszPreferredLocale,WBEM_128BITS AccessToken,__LONG32 lFlags,IWbemContext *pCtx,IWbemServices **ppNamespace) = 0;
-    virtual HRESULT WINAPI NTLMLogin(LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,__LONG32 lFlags,IWbemContext *pCtx,IWbemServices **ppNamespace) = 0;
-  };
+MIDL_INTERFACE("f309ad18-d86a-11d0-a075-00c04fb68820")
+IWbemLevel1Login : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE EstablishPosition(
+        LPWSTR wszLocaleList,
+        DWORD dwNumLocales,
+        DWORD *reserved) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RequestChallenge(
+        LPWSTR wszNetworkResource,
+        LPWSTR wszUser,
+        WBEM_128BITS Nonce) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WBEMLogin(
+        LPWSTR wszPreferredLocale,
+        WBEM_128BITS AccessToken,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemServices **ppNamespace) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NTLMLogin(
+        LPWSTR wszNetworkResource,
+        LPWSTR wszPreferredLocale,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemServices **ppNamespace) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemLevel1Login, 0xf309ad18, 0xd86a, 0x11d0, 0xa0,0x75, 0x00,0xc0,0x4f,0xb6,0x88,0x20)
+#endif
 #else
-  typedef struct IWbemLevel1LoginVtbl {
+typedef struct IWbemLevel1LoginVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemLevel1Login *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemLevel1Login *This);
-      ULONG (WINAPI *Release)(IWbemLevel1Login *This);
-      HRESULT (WINAPI *EstablishPosition)(IWbemLevel1Login *This,LPWSTR wszClientMachineName,DWORD dwProcessId,DWORD *phAuthEventHandle);
-      HRESULT (WINAPI *RequestChallenge)(IWbemLevel1Login *This,LPWSTR wszNetworkResource,LPWSTR wszUser,WBEM_128BITS Nonce);
-      HRESULT (WINAPI *WBEMLogin)(IWbemLevel1Login *This,LPWSTR wszPreferredLocale,WBEM_128BITS AccessToken,__LONG32 lFlags,IWbemContext *pCtx,IWbemServices **ppNamespace);
-      HRESULT (WINAPI *NTLMLogin)(IWbemLevel1Login *This,LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,__LONG32 lFlags,IWbemContext *pCtx,IWbemServices **ppNamespace);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemLevel1Login* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemLevel1Login* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemLevel1Login* This);
+
+    /*** IWbemLevel1Login methods ***/
+    HRESULT (STDMETHODCALLTYPE *EstablishPosition)(
+        IWbemLevel1Login* This,
+        LPWSTR wszLocaleList,
+        DWORD dwNumLocales,
+        DWORD *reserved);
+
+    HRESULT (STDMETHODCALLTYPE *RequestChallenge)(
+        IWbemLevel1Login* This,
+        LPWSTR wszNetworkResource,
+        LPWSTR wszUser,
+        WBEM_128BITS Nonce);
+
+    HRESULT (STDMETHODCALLTYPE *WBEMLogin)(
+        IWbemLevel1Login* This,
+        LPWSTR wszPreferredLocale,
+        WBEM_128BITS AccessToken,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemServices **ppNamespace);
+
+    HRESULT (STDMETHODCALLTYPE *NTLMLogin)(
+        IWbemLevel1Login* This,
+        LPWSTR wszNetworkResource,
+        LPWSTR wszPreferredLocale,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        IWbemServices **ppNamespace);
+
     END_INTERFACE
-  } IWbemLevel1LoginVtbl;
-  struct IWbemLevel1Login {
-    CONST_VTBL struct IWbemLevel1LoginVtbl *lpVtbl;
-  };
+} IWbemLevel1LoginVtbl;
+interface IWbemLevel1Login {
+    CONST_VTBL IWbemLevel1LoginVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemLevel1Login_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemLevel1Login_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemLevel1Login_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemLevel1Login_EstablishPosition(This,wszClientMachineName,dwProcessId,phAuthEventHandle) (This)->lpVtbl->EstablishPosition(This,wszClientMachineName,dwProcessId,phAuthEventHandle)
+/*** IWbemLevel1Login methods ***/
+#define IWbemLevel1Login_EstablishPosition(This,wszLocaleList,dwNumLocales,reserved) (This)->lpVtbl->EstablishPosition(This,wszLocaleList,dwNumLocales,reserved)
 #define IWbemLevel1Login_RequestChallenge(This,wszNetworkResource,wszUser,Nonce) (This)->lpVtbl->RequestChallenge(This,wszNetworkResource,wszUser,Nonce)
 #define IWbemLevel1Login_WBEMLogin(This,wszPreferredLocale,AccessToken,lFlags,pCtx,ppNamespace) (This)->lpVtbl->WBEMLogin(This,wszPreferredLocale,AccessToken,lFlags,pCtx,ppNamespace)
 #define IWbemLevel1Login_NTLMLogin(This,wszNetworkResource,wszPreferredLocale,lFlags,pCtx,ppNamespace) (This)->lpVtbl->NTLMLogin(This,wszNetworkResource,wszPreferredLocale,lFlags,pCtx,ppNamespace)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemLevel1Login_QueryInterface(IWbemLevel1Login* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemLevel1Login_AddRef(IWbemLevel1Login* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemLevel1Login_Release(IWbemLevel1Login* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemLevel1Login methods ***/
+static FORCEINLINE HRESULT IWbemLevel1Login_EstablishPosition(IWbemLevel1Login* This,LPWSTR wszLocaleList,DWORD dwNumLocales,DWORD *reserved) {
+    return This->lpVtbl->EstablishPosition(This,wszLocaleList,dwNumLocales,reserved);
+}
+static FORCEINLINE HRESULT IWbemLevel1Login_RequestChallenge(IWbemLevel1Login* This,LPWSTR wszNetworkResource,LPWSTR wszUser,WBEM_128BITS Nonce) {
+    return This->lpVtbl->RequestChallenge(This,wszNetworkResource,wszUser,Nonce);
+}
+static FORCEINLINE HRESULT IWbemLevel1Login_WBEMLogin(IWbemLevel1Login* This,LPWSTR wszPreferredLocale,WBEM_128BITS AccessToken,LONG lFlags,IWbemContext *pCtx,IWbemServices **ppNamespace) {
+    return This->lpVtbl->WBEMLogin(This,wszPreferredLocale,AccessToken,lFlags,pCtx,ppNamespace);
+}
+static FORCEINLINE HRESULT IWbemLevel1Login_NTLMLogin(IWbemLevel1Login* This,LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,LONG lFlags,IWbemContext *pCtx,IWbemServices **ppNamespace) {
+    return This->lpVtbl->NTLMLogin(This,wszNetworkResource,wszPreferredLocale,lFlags,pCtx,ppNamespace);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemLevel1Login_EstablishPosition_Proxy(IWbemLevel1Login *This,LPWSTR wszClientMachineName,DWORD dwProcessId,DWORD *phAuthEventHandle);
-  void __RPC_STUB IWbemLevel1Login_EstablishPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemLevel1Login_RequestChallenge_Proxy(IWbemLevel1Login *This,LPWSTR wszNetworkResource,LPWSTR wszUser,WBEM_128BITS Nonce);
-  void __RPC_STUB IWbemLevel1Login_RequestChallenge_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemLevel1Login_WBEMLogin_Proxy(IWbemLevel1Login *This,LPWSTR wszPreferredLocale,WBEM_128BITS AccessToken,__LONG32 lFlags,IWbemContext *pCtx,IWbemServices **ppNamespace);
-  void __RPC_STUB IWbemLevel1Login_WBEMLogin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemLevel1Login_NTLMLogin_Proxy(IWbemLevel1Login *This,LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,__LONG32 lFlags,IWbemContext *pCtx,IWbemServices **ppNamespace);
-  void __RPC_STUB IWbemLevel1Login_NTLMLogin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemLevel1Login_EstablishPosition_Proxy(
+    IWbemLevel1Login* This,
+    LPWSTR wszLocaleList,
+    DWORD dwNumLocales,
+    DWORD *reserved);
+void __RPC_STUB IWbemLevel1Login_EstablishPosition_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemLevel1Login_RequestChallenge_Proxy(
+    IWbemLevel1Login* This,
+    LPWSTR wszNetworkResource,
+    LPWSTR wszUser,
+    WBEM_128BITS Nonce);
+void __RPC_STUB IWbemLevel1Login_RequestChallenge_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemLevel1Login_WBEMLogin_Proxy(
+    IWbemLevel1Login* This,
+    LPWSTR wszPreferredLocale,
+    WBEM_128BITS AccessToken,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemServices **ppNamespace);
+void __RPC_STUB IWbemLevel1Login_WBEMLogin_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemLevel1Login_NTLMLogin_Proxy(
+    IWbemLevel1Login* This,
+    LPWSTR wszNetworkResource,
+    LPWSTR wszPreferredLocale,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    IWbemServices **ppNamespace);
+void __RPC_STUB IWbemLevel1Login_NTLMLogin_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemLevel1Login_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemConnectorLogin interface
+ */
 #ifndef __IWbemConnectorLogin_INTERFACE_DEFINED__
 #define __IWbemConnectorLogin_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemConnectorLogin;
+
+DEFINE_GUID(IID_IWbemConnectorLogin, 0xd8ec9cb1, 0xb135, 0x4f10, 0x8b,0x1b, 0xc7,0x18,0x8b,0xb0,0xd1,0x86);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemConnectorLogin : public IUnknown {
-  public:
-    virtual HRESULT WINAPI ConnectorLogin(LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,__LONG32 lFlags,IWbemContext *pCtx,REFIID riid,void **pInterface) = 0;
-  };
+MIDL_INTERFACE("d8ec9cb1-b135-4f10-8b1b-c7188bb0d186")
+IWbemConnectorLogin : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ConnectorLogin(
+        LPWSTR wszNetworkResource,
+        LPWSTR wszPreferredLocale,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        REFIID riid,
+        void **pInterface) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemConnectorLogin, 0xd8ec9cb1, 0xb135, 0x4f10, 0x8b,0x1b, 0xc7,0x18,0x8b,0xb0,0xd1,0x86)
+#endif
 #else
-  typedef struct IWbemConnectorLoginVtbl {
+typedef struct IWbemConnectorLoginVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemConnectorLogin *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemConnectorLogin *This);
-      ULONG (WINAPI *Release)(IWbemConnectorLogin *This);
-      HRESULT (WINAPI *ConnectorLogin)(IWbemConnectorLogin *This,LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,__LONG32 lFlags,IWbemContext *pCtx,REFIID riid,void **pInterface);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemConnectorLogin* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemConnectorLogin* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemConnectorLogin* This);
+
+    /*** IWbemConnectorLogin methods ***/
+    HRESULT (STDMETHODCALLTYPE *ConnectorLogin)(
+        IWbemConnectorLogin* This,
+        LPWSTR wszNetworkResource,
+        LPWSTR wszPreferredLocale,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        REFIID riid,
+        void **pInterface);
+
     END_INTERFACE
-  } IWbemConnectorLoginVtbl;
-  struct IWbemConnectorLogin {
-    CONST_VTBL struct IWbemConnectorLoginVtbl *lpVtbl;
-  };
+} IWbemConnectorLoginVtbl;
+interface IWbemConnectorLogin {
+    CONST_VTBL IWbemConnectorLoginVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemConnectorLogin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemConnectorLogin_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemConnectorLogin_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemConnectorLogin methods ***/
 #define IWbemConnectorLogin_ConnectorLogin(This,wszNetworkResource,wszPreferredLocale,lFlags,pCtx,riid,pInterface) (This)->lpVtbl->ConnectorLogin(This,wszNetworkResource,wszPreferredLocale,lFlags,pCtx,riid,pInterface)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemConnectorLogin_QueryInterface(IWbemConnectorLogin* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemConnectorLogin_AddRef(IWbemConnectorLogin* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemConnectorLogin_Release(IWbemConnectorLogin* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemConnectorLogin methods ***/
+static FORCEINLINE HRESULT IWbemConnectorLogin_ConnectorLogin(IWbemConnectorLogin* This,LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,LONG lFlags,IWbemContext *pCtx,REFIID riid,void **pInterface) {
+    return This->lpVtbl->ConnectorLogin(This,wszNetworkResource,wszPreferredLocale,lFlags,pCtx,riid,pInterface);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemConnectorLogin_ConnectorLogin_Proxy(IWbemConnectorLogin *This,LPWSTR wszNetworkResource,LPWSTR wszPreferredLocale,__LONG32 lFlags,IWbemContext *pCtx,REFIID riid,void **pInterface);
-  void __RPC_STUB IWbemConnectorLogin_ConnectorLogin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemConnectorLogin_ConnectorLogin_Proxy(
+    IWbemConnectorLogin* This,
+    LPWSTR wszNetworkResource,
+    LPWSTR wszPreferredLocale,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    REFIID riid,
+    void **pInterface);
+void __RPC_STUB IWbemConnectorLogin_ConnectorLogin_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemConnectorLogin_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemAddressResolution interface
+ */
 #ifndef __IWbemAddressResolution_INTERFACE_DEFINED__
 #define __IWbemAddressResolution_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemAddressResolution;
+
+DEFINE_GUID(IID_IWbemAddressResolution, 0xf7ce2e12, 0x8c90, 0x11d1, 0x9e,0x7b, 0x00,0xc0,0x4f,0xc3,0x24,0xa8);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemAddressResolution : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Resolve(LPWSTR wszNamespacePath,LPWSTR wszAddressType,DWORD *pdwAddressLength,BYTE **pabBinaryAddress) = 0;
-  };
+MIDL_INTERFACE("f7ce2e12-8c90-11d1-9e7b-00c04fc324a8")
+IWbemAddressResolution : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Resolve(
+        LPWSTR wszNamespacePath,
+        LPWSTR wszAddressType,
+        DWORD *pdwAddressLength,
+        BYTE **pabBinaryAddress) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemAddressResolution, 0xf7ce2e12, 0x8c90, 0x11d1, 0x9e,0x7b, 0x00,0xc0,0x4f,0xc3,0x24,0xa8)
+#endif
 #else
-  typedef struct IWbemAddressResolutionVtbl {
+typedef struct IWbemAddressResolutionVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemAddressResolution *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemAddressResolution *This);
-      ULONG (WINAPI *Release)(IWbemAddressResolution *This);
-      HRESULT (WINAPI *Resolve)(IWbemAddressResolution *This,LPWSTR wszNamespacePath,LPWSTR wszAddressType,DWORD *pdwAddressLength,BYTE **pabBinaryAddress);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemAddressResolution* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemAddressResolution* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemAddressResolution* This);
+
+    /*** IWbemAddressResolution methods ***/
+    HRESULT (STDMETHODCALLTYPE *Resolve)(
+        IWbemAddressResolution* This,
+        LPWSTR wszNamespacePath,
+        LPWSTR wszAddressType,
+        DWORD *pdwAddressLength,
+        BYTE **pabBinaryAddress);
+
     END_INTERFACE
-  } IWbemAddressResolutionVtbl;
-  struct IWbemAddressResolution {
-    CONST_VTBL struct IWbemAddressResolutionVtbl *lpVtbl;
-  };
+} IWbemAddressResolutionVtbl;
+interface IWbemAddressResolution {
+    CONST_VTBL IWbemAddressResolutionVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemAddressResolution_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemAddressResolution_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemAddressResolution_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemAddressResolution methods ***/
 #define IWbemAddressResolution_Resolve(This,wszNamespacePath,wszAddressType,pdwAddressLength,pabBinaryAddress) (This)->lpVtbl->Resolve(This,wszNamespacePath,wszAddressType,pdwAddressLength,pabBinaryAddress)
-#endif
-#endif
-  HRESULT WINAPI IWbemAddressResolution_Resolve_Proxy(IWbemAddressResolution *This,LPWSTR wszNamespacePath,LPWSTR wszAddressType,DWORD *pdwAddressLength,BYTE **pabBinaryAddress);
-  void __RPC_STUB IWbemAddressResolution_Resolve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  EXTERN_C const CLSID CLSID_WbemLevel1Login;
-#ifdef __cplusplus
-  class WbemLevel1Login;
-#endif
-  EXTERN_C const CLSID CLSID_WbemLocalAddrRes;
-#ifdef __cplusplus
-  class WbemLocalAddrRes;
-#endif
-  EXTERN_C const CLSID CLSID_WbemUninitializedClassObject;
-#ifdef __cplusplus
-  class WbemUninitializedClassObject;
-#endif
-
-#ifndef __IWbemClientTransport_INTERFACE_DEFINED__
-#define __IWbemClientTransport_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemClientTransport;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemClientTransport : public IUnknown {
-  public:
-    virtual HRESULT WINAPI ConnectServer(BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,BSTR strNetworkResource,BSTR strUser,BSTR strPassword,BSTR strLocale,__LONG32 lSecurityFlags,BSTR strAuthority,IWbemContext *pCtx,IWbemServices **ppNamespace) = 0;
-  };
 #else
-  typedef struct IWbemClientTransportVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemClientTransport *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemClientTransport *This);
-      ULONG (WINAPI *Release)(IWbemClientTransport *This);
-      HRESULT (WINAPI *ConnectServer)(IWbemClientTransport *This,BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,BSTR strNetworkResource,BSTR strUser,BSTR strPassword,BSTR strLocale,__LONG32 lSecurityFlags,BSTR strAuthority,IWbemContext *pCtx,IWbemServices **ppNamespace);
-    END_INTERFACE
-  } IWbemClientTransportVtbl;
-  struct IWbemClientTransport {
-    CONST_VTBL struct IWbemClientTransportVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWbemClientTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemClientTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemClientTransport_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemClientTransport_ConnectServer(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace) (This)->lpVtbl->ConnectServer(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace)
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemAddressResolution_QueryInterface(IWbemAddressResolution* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemAddressResolution_AddRef(IWbemAddressResolution* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemAddressResolution_Release(IWbemAddressResolution* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemAddressResolution methods ***/
+static FORCEINLINE HRESULT IWbemAddressResolution_Resolve(IWbemAddressResolution* This,LPWSTR wszNamespacePath,LPWSTR wszAddressType,DWORD *pdwAddressLength,BYTE **pabBinaryAddress) {
+    return This->lpVtbl->Resolve(This,wszNamespacePath,wszAddressType,pdwAddressLength,pabBinaryAddress);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemClientTransport_ConnectServer_Proxy(IWbemClientTransport *This,BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,BSTR strNetworkResource,BSTR strUser,BSTR strPassword,BSTR strLocale,__LONG32 lSecurityFlags,BSTR strAuthority,IWbemContext *pCtx,IWbemServices **ppNamespace);
-  void __RPC_STUB IWbemClientTransport_ConnectServer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-#ifndef __IWbemClientConnectionTransport_INTERFACE_DEFINED__
-#define __IWbemClientConnectionTransport_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemClientConnectionTransport;
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemAddressResolution_Resolve_Proxy(
+    IWbemAddressResolution* This,
+    LPWSTR wszNamespacePath,
+    LPWSTR wszAddressType,
+    DWORD *pdwAddressLength,
+    BYTE **pabBinaryAddress);
+void __RPC_STUB IWbemAddressResolution_Resolve_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemAddressResolution_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemTransport interface
+ */
+#ifndef __IWbemTransport_INTERFACE_DEFINED__
+#define __IWbemTransport_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemTransport, 0x553fe584, 0x2156, 0x11d0, 0xb6,0xae, 0x00,0xaa,0x00,0x32,0x40,0xc7);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemClientConnectionTransport : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Open(BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,const BSTR strObject,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,__LONG32 lFlags,IWbemContext *pCtx,REFIID riid,void **pInterface,IWbemCallResult **pCallRes) = 0;
-    virtual HRESULT WINAPI OpenAsync(BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,const BSTR strObject,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,__LONG32 lFlags,IWbemContext *pCtx,REFIID riid,IWbemObjectSink *pResponseHandler) = 0;
-    virtual HRESULT WINAPI Cancel(__LONG32 lFlags,IWbemObjectSink *pHandler) = 0;
-  };
+MIDL_INTERFACE("553fe584-2156-11d0-b6ae-00aa003240c7")
+IWbemTransport : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Initialize(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemTransport, 0x553fe584, 0x2156, 0x11d0, 0xb6,0xae, 0x00,0xaa,0x00,0x32,0x40,0xc7)
+#endif
 #else
-  typedef struct IWbemClientConnectionTransportVtbl {
+typedef struct IWbemTransportVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemClientConnectionTransport *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemClientConnectionTransport *This);
-      ULONG (WINAPI *Release)(IWbemClientConnectionTransport *This);
-      HRESULT (WINAPI *Open)(IWbemClientConnectionTransport *This,BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,const BSTR strObject,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,__LONG32 lFlags,IWbemContext *pCtx,REFIID riid,void **pInterface,IWbemCallResult **pCallRes);
-      HRESULT (WINAPI *OpenAsync)(IWbemClientConnectionTransport *This,BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,const BSTR strObject,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,__LONG32 lFlags,IWbemContext *pCtx,REFIID riid,IWbemObjectSink *pResponseHandler);
-      HRESULT (WINAPI *Cancel)(IWbemClientConnectionTransport *This,__LONG32 lFlags,IWbemObjectSink *pHandler);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemTransport* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemTransport* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemTransport* This);
+
+    /*** IWbemTransport methods ***/
+    HRESULT (STDMETHODCALLTYPE *Initialize)(
+        IWbemTransport* This);
+
     END_INTERFACE
-  } IWbemClientConnectionTransportVtbl;
-  struct IWbemClientConnectionTransport {
-    CONST_VTBL struct IWbemClientConnectionTransportVtbl *lpVtbl;
-  };
+} IWbemTransportVtbl;
+interface IWbemTransport {
+    CONST_VTBL IWbemTransportVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
-#define IWbemClientConnectionTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWbemClientConnectionTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWbemClientConnectionTransport_Release(This) (This)->lpVtbl->Release(This)
-#define IWbemClientConnectionTransport_Open(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pInterface,pCallRes) (This)->lpVtbl->Open(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pInterface,pCallRes)
-#define IWbemClientConnectionTransport_OpenAsync(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pResponseHandler) (This)->lpVtbl->OpenAsync(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pResponseHandler)
-#define IWbemClientConnectionTransport_Cancel(This,lFlags,pHandler) (This)->lpVtbl->Cancel(This,lFlags,pHandler)
-#endif
-#endif
-  HRESULT WINAPI IWbemClientConnectionTransport_Open_Proxy(IWbemClientConnectionTransport *This,BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,const BSTR strObject,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,__LONG32 lFlags,IWbemContext *pCtx,REFIID riid,void **pInterface,IWbemCallResult **pCallRes);
-  void __RPC_STUB IWbemClientConnectionTransport_Open_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClientConnectionTransport_OpenAsync_Proxy(IWbemClientConnectionTransport *This,BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,const BSTR strObject,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,__LONG32 lFlags,IWbemContext *pCtx,REFIID riid,IWbemObjectSink *pResponseHandler);
-  void __RPC_STUB IWbemClientConnectionTransport_OpenAsync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemClientConnectionTransport_Cancel_Proxy(IWbemClientConnectionTransport *This,__LONG32 lFlags,IWbemObjectSink *pHandler);
-  void __RPC_STUB IWbemClientConnectionTransport_Cancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  EXTERN_C const CLSID CLSID_WbemDCOMTransport;
-#ifdef __cplusplus
-  class WbemDCOMTransport;
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemTransport_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemTransport methods ***/
+#define IWbemTransport_Initialize(This) (This)->lpVtbl->Initialize(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemTransport_QueryInterface(IWbemTransport* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemTransport_AddRef(IWbemTransport* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemTransport_Release(IWbemTransport* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemTransport methods ***/
+static FORCEINLINE HRESULT IWbemTransport_Initialize(IWbemTransport* This) {
+    return This->lpVtbl->Initialize(This);
+}
 #endif
 #endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemTransport_Initialize_Proxy(
+    IWbemTransport* This);
+void __RPC_STUB IWbemTransport_Initialize_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemTransport_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemConstructClassObject interface
+ */
 #ifndef __IWbemConstructClassObject_INTERFACE_DEFINED__
 #define __IWbemConstructClassObject_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWbemConstructClassObject;
+
+DEFINE_GUID(IID_IWbemConstructClassObject, 0x9ef76194, 0x70d5, 0x11d1, 0xad,0x90, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWbemConstructClassObject : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetInheritanceChain(__LONG32 lNumAntecedents,LPWSTR *awszAntecedents) = 0;
-    virtual HRESULT WINAPI SetPropertyOrigin(LPCWSTR wszPropertyName,__LONG32 lOriginIndex) = 0;
-    virtual HRESULT WINAPI SetMethodOrigin(LPCWSTR wszMethodName,__LONG32 lOriginIndex) = 0;
-    virtual HRESULT WINAPI SetServerNamespace(LPCWSTR wszServer,LPCWSTR wszNamespace) = 0;
-  };
+MIDL_INTERFACE("9ef76194-70d5-11d1-ad90-00c04fd8fdff")
+IWbemConstructClassObject : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetInheritanceChain(
+        LONG lNumAntecedents,
+        LPWSTR *awszAntecedents) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetPropertyOrigin(
+        LPCWSTR wszPropertyName,
+        LONG lOriginIndex) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetMethodOrigin(
+        LPCWSTR wszMethodName,
+        LONG lOriginIndex) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetServerNamespace(
+        LPCWSTR wszServer,
+        LPCWSTR wszNamespace) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemConstructClassObject, 0x9ef76194, 0x70d5, 0x11d1, 0xad,0x90, 0x00,0xc0,0x4f,0xd8,0xfd,0xff)
+#endif
 #else
-  typedef struct IWbemConstructClassObjectVtbl {
+typedef struct IWbemConstructClassObjectVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWbemConstructClassObject *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWbemConstructClassObject *This);
-      ULONG (WINAPI *Release)(IWbemConstructClassObject *This);
-      HRESULT (WINAPI *SetInheritanceChain)(IWbemConstructClassObject *This,__LONG32 lNumAntecedents,LPWSTR *awszAntecedents);
-      HRESULT (WINAPI *SetPropertyOrigin)(IWbemConstructClassObject *This,LPCWSTR wszPropertyName,__LONG32 lOriginIndex);
-      HRESULT (WINAPI *SetMethodOrigin)(IWbemConstructClassObject *This,LPCWSTR wszMethodName,__LONG32 lOriginIndex);
-      HRESULT (WINAPI *SetServerNamespace)(IWbemConstructClassObject *This,LPCWSTR wszServer,LPCWSTR wszNamespace);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemConstructClassObject* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemConstructClassObject* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemConstructClassObject* This);
+
+    /*** IWbemConstructClassObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetInheritanceChain)(
+        IWbemConstructClassObject* This,
+        LONG lNumAntecedents,
+        LPWSTR *awszAntecedents);
+
+    HRESULT (STDMETHODCALLTYPE *SetPropertyOrigin)(
+        IWbemConstructClassObject* This,
+        LPCWSTR wszPropertyName,
+        LONG lOriginIndex);
+
+    HRESULT (STDMETHODCALLTYPE *SetMethodOrigin)(
+        IWbemConstructClassObject* This,
+        LPCWSTR wszMethodName,
+        LONG lOriginIndex);
+
+    HRESULT (STDMETHODCALLTYPE *SetServerNamespace)(
+        IWbemConstructClassObject* This,
+        LPCWSTR wszServer,
+        LPCWSTR wszNamespace);
+
     END_INTERFACE
-  } IWbemConstructClassObjectVtbl;
-  struct IWbemConstructClassObject {
-    CONST_VTBL struct IWbemConstructClassObjectVtbl *lpVtbl;
-  };
+} IWbemConstructClassObjectVtbl;
+interface IWbemConstructClassObject {
+    CONST_VTBL IWbemConstructClassObjectVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWbemConstructClassObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWbemConstructClassObject_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWbemConstructClassObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemConstructClassObject methods ***/
 #define IWbemConstructClassObject_SetInheritanceChain(This,lNumAntecedents,awszAntecedents) (This)->lpVtbl->SetInheritanceChain(This,lNumAntecedents,awszAntecedents)
 #define IWbemConstructClassObject_SetPropertyOrigin(This,wszPropertyName,lOriginIndex) (This)->lpVtbl->SetPropertyOrigin(This,wszPropertyName,lOriginIndex)
 #define IWbemConstructClassObject_SetMethodOrigin(This,wszMethodName,lOriginIndex) (This)->lpVtbl->SetMethodOrigin(This,wszMethodName,lOriginIndex)
 #define IWbemConstructClassObject_SetServerNamespace(This,wszServer,wszNamespace) (This)->lpVtbl->SetServerNamespace(This,wszServer,wszNamespace)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemConstructClassObject_QueryInterface(IWbemConstructClassObject* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemConstructClassObject_AddRef(IWbemConstructClassObject* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemConstructClassObject_Release(IWbemConstructClassObject* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemConstructClassObject methods ***/
+static FORCEINLINE HRESULT IWbemConstructClassObject_SetInheritanceChain(IWbemConstructClassObject* This,LONG lNumAntecedents,LPWSTR *awszAntecedents) {
+    return This->lpVtbl->SetInheritanceChain(This,lNumAntecedents,awszAntecedents);
+}
+static FORCEINLINE HRESULT IWbemConstructClassObject_SetPropertyOrigin(IWbemConstructClassObject* This,LPCWSTR wszPropertyName,LONG lOriginIndex) {
+    return This->lpVtbl->SetPropertyOrigin(This,wszPropertyName,lOriginIndex);
+}
+static FORCEINLINE HRESULT IWbemConstructClassObject_SetMethodOrigin(IWbemConstructClassObject* This,LPCWSTR wszMethodName,LONG lOriginIndex) {
+    return This->lpVtbl->SetMethodOrigin(This,wszMethodName,lOriginIndex);
+}
+static FORCEINLINE HRESULT IWbemConstructClassObject_SetServerNamespace(IWbemConstructClassObject* This,LPCWSTR wszServer,LPCWSTR wszNamespace) {
+    return This->lpVtbl->SetServerNamespace(This,wszServer,wszNamespace);
+}
 #endif
 #endif
-  HRESULT WINAPI IWbemConstructClassObject_SetInheritanceChain_Proxy(IWbemConstructClassObject *This,__LONG32 lNumAntecedents,LPWSTR *awszAntecedents);
-  void __RPC_STUB IWbemConstructClassObject_SetInheritanceChain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemConstructClassObject_SetPropertyOrigin_Proxy(IWbemConstructClassObject *This,LPCWSTR wszPropertyName,__LONG32 lOriginIndex);
-  void __RPC_STUB IWbemConstructClassObject_SetPropertyOrigin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemConstructClassObject_SetMethodOrigin_Proxy(IWbemConstructClassObject *This,LPCWSTR wszMethodName,__LONG32 lOriginIndex);
-  void __RPC_STUB IWbemConstructClassObject_SetMethodOrigin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWbemConstructClassObject_SetServerNamespace_Proxy(IWbemConstructClassObject *This,LPCWSTR wszServer,LPCWSTR wszNamespace);
-  void __RPC_STUB IWbemConstructClassObject_SetServerNamespace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
 #endif
 
+HRESULT STDMETHODCALLTYPE IWbemConstructClassObject_SetInheritanceChain_Proxy(
+    IWbemConstructClassObject* This,
+    LONG lNumAntecedents,
+    LPWSTR *awszAntecedents);
+void __RPC_STUB IWbemConstructClassObject_SetInheritanceChain_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemConstructClassObject_SetPropertyOrigin_Proxy(
+    IWbemConstructClassObject* This,
+    LPCWSTR wszPropertyName,
+    LONG lOriginIndex);
+void __RPC_STUB IWbemConstructClassObject_SetPropertyOrigin_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemConstructClassObject_SetMethodOrigin_Proxy(
+    IWbemConstructClassObject* This,
+    LPCWSTR wszMethodName,
+    LONG lOriginIndex);
+void __RPC_STUB IWbemConstructClassObject_SetMethodOrigin_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemConstructClassObject_SetServerNamespace_Proxy(
+    IWbemConstructClassObject* This,
+    LPCWSTR wszServer,
+    LPCWSTR wszNamespace);
+void __RPC_STUB IWbemConstructClassObject_SetServerNamespace_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemConstructClassObject_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemClientTransport interface
+ */
+#ifndef __IWbemClientTransport_INTERFACE_DEFINED__
+#define __IWbemClientTransport_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemClientTransport, 0xf7ce2e11, 0x8c90, 0x11d1, 0x9e,0x7b, 0x00,0xc0,0x4f,0xc3,0x24,0xa8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f7ce2e11-8c90-11d1-9e7b-00c04fc324a8")
+IWbemClientTransport : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ConnectServer(
+        BSTR strAddressType,
+        DWORD dwBinaryAddressLength,
+        BYTE *abBinaryAddress,
+        BSTR strNetworkResource,
+        BSTR strUser,
+        BSTR strPassword,
+        BSTR strLocale,
+        LONG lSecurityFlags,
+        BSTR strAuthority,
+        IWbemContext *pCtx,
+        IWbemServices **ppNamespace) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemClientTransport, 0xf7ce2e11, 0x8c90, 0x11d1, 0x9e,0x7b, 0x00,0xc0,0x4f,0xc3,0x24,0xa8)
+#endif
+#else
+typedef struct IWbemClientTransportVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemClientTransport* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemClientTransport* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemClientTransport* This);
+
+    /*** IWbemClientTransport methods ***/
+    HRESULT (STDMETHODCALLTYPE *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 {
+    CONST_VTBL IWbemClientTransportVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemClientTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemClientTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemClientTransport_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemClientTransport methods ***/
+#define IWbemClientTransport_ConnectServer(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace) (This)->lpVtbl->ConnectServer(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemClientTransport_QueryInterface(IWbemClientTransport* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemClientTransport_AddRef(IWbemClientTransport* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemClientTransport_Release(IWbemClientTransport* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemClientTransport methods ***/
+static FORCEINLINE HRESULT IWbemClientTransport_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) {
+    return This->lpVtbl->ConnectServer(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strNetworkResource,strUser,strPassword,strLocale,lSecurityFlags,strAuthority,pCtx,ppNamespace);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemClientTransport_ConnectServer_Proxy(
+    IWbemClientTransport* This,
+    BSTR strAddressType,
+    DWORD dwBinaryAddressLength,
+    BYTE *abBinaryAddress,
+    BSTR strNetworkResource,
+    BSTR strUser,
+    BSTR strPassword,
+    BSTR strLocale,
+    LONG lSecurityFlags,
+    BSTR strAuthority,
+    IWbemContext *pCtx,
+    IWbemServices **ppNamespace);
+void __RPC_STUB IWbemClientTransport_ConnectServer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemClientTransport_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWbemClientConnectionTransport interface
+ */
+#ifndef __IWbemClientConnectionTransport_INTERFACE_DEFINED__
+#define __IWbemClientConnectionTransport_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWbemClientConnectionTransport, 0xa889c72a, 0xfcc1, 0x4a9e, 0xaf,0x61, 0xed,0x07,0x13,0x33,0xfb,0x5b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a889c72a-fcc1-4a9e-af61-ed071333fb5b")
+IWbemClientConnectionTransport : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Open(
+        BSTR strAddressType,
+        DWORD dwBinaryAddressLength,
+        BYTE *abBinaryAddress,
+        const BSTR strObject,
+        const BSTR strUser,
+        const BSTR strPassword,
+        const BSTR strLocale,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        REFIID riid,
+        void **pInterface,
+        IWbemCallResult **pCallRes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OpenAsync(
+        BSTR strAddressType,
+        DWORD dwBinaryAddressLength,
+        BYTE *abBinaryAddress,
+        const BSTR strObject,
+        const BSTR strUser,
+        const BSTR strPassword,
+        const BSTR strLocale,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        REFIID riid,
+        IWbemObjectSink *pResponseHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Cancel(
+        LONG lFlags,
+        IWbemObjectSink *pHandler) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWbemClientConnectionTransport, 0xa889c72a, 0xfcc1, 0x4a9e, 0xaf,0x61, 0xed,0x07,0x13,0x33,0xfb,0x5b)
+#endif
+#else
+typedef struct IWbemClientConnectionTransportVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWbemClientConnectionTransport* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWbemClientConnectionTransport* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWbemClientConnectionTransport* This);
+
+    /*** IWbemClientConnectionTransport methods ***/
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IWbemClientConnectionTransport* This,
+        BSTR strAddressType,
+        DWORD dwBinaryAddressLength,
+        BYTE *abBinaryAddress,
+        const BSTR strObject,
+        const BSTR strUser,
+        const BSTR strPassword,
+        const BSTR strLocale,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        REFIID riid,
+        void **pInterface,
+        IWbemCallResult **pCallRes);
+
+    HRESULT (STDMETHODCALLTYPE *OpenAsync)(
+        IWbemClientConnectionTransport* This,
+        BSTR strAddressType,
+        DWORD dwBinaryAddressLength,
+        BYTE *abBinaryAddress,
+        const BSTR strObject,
+        const BSTR strUser,
+        const BSTR strPassword,
+        const BSTR strLocale,
+        LONG lFlags,
+        IWbemContext *pCtx,
+        REFIID riid,
+        IWbemObjectSink *pResponseHandler);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IWbemClientConnectionTransport* This,
+        LONG lFlags,
+        IWbemObjectSink *pHandler);
+
+    END_INTERFACE
+} IWbemClientConnectionTransportVtbl;
+interface IWbemClientConnectionTransport {
+    CONST_VTBL IWbemClientConnectionTransportVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWbemClientConnectionTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWbemClientConnectionTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWbemClientConnectionTransport_Release(This) (This)->lpVtbl->Release(This)
+/*** IWbemClientConnectionTransport methods ***/
+#define IWbemClientConnectionTransport_Open(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pInterface,pCallRes) (This)->lpVtbl->Open(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pInterface,pCallRes)
+#define IWbemClientConnectionTransport_OpenAsync(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pResponseHandler) (This)->lpVtbl->OpenAsync(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pResponseHandler)
+#define IWbemClientConnectionTransport_Cancel(This,lFlags,pHandler) (This)->lpVtbl->Cancel(This,lFlags,pHandler)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWbemClientConnectionTransport_QueryInterface(IWbemClientConnectionTransport* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWbemClientConnectionTransport_AddRef(IWbemClientConnectionTransport* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWbemClientConnectionTransport_Release(IWbemClientConnectionTransport* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWbemClientConnectionTransport methods ***/
+static FORCEINLINE HRESULT IWbemClientConnectionTransport_Open(IWbemClientConnectionTransport* This,BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,const BSTR strObject,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,LONG lFlags,IWbemContext *pCtx,REFIID riid,void **pInterface,IWbemCallResult **pCallRes) {
+    return This->lpVtbl->Open(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pInterface,pCallRes);
+}
+static FORCEINLINE HRESULT IWbemClientConnectionTransport_OpenAsync(IWbemClientConnectionTransport* This,BSTR strAddressType,DWORD dwBinaryAddressLength,BYTE *abBinaryAddress,const BSTR strObject,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,LONG lFlags,IWbemContext *pCtx,REFIID riid,IWbemObjectSink *pResponseHandler) {
+    return This->lpVtbl->OpenAsync(This,strAddressType,dwBinaryAddressLength,abBinaryAddress,strObject,strUser,strPassword,strLocale,lFlags,pCtx,riid,pResponseHandler);
+}
+static FORCEINLINE HRESULT IWbemClientConnectionTransport_Cancel(IWbemClientConnectionTransport* This,LONG lFlags,IWbemObjectSink *pHandler) {
+    return This->lpVtbl->Cancel(This,lFlags,pHandler);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWbemClientConnectionTransport_Open_Proxy(
+    IWbemClientConnectionTransport* This,
+    BSTR strAddressType,
+    DWORD dwBinaryAddressLength,
+    BYTE *abBinaryAddress,
+    const BSTR strObject,
+    const BSTR strUser,
+    const BSTR strPassword,
+    const BSTR strLocale,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    REFIID riid,
+    void **pInterface,
+    IWbemCallResult **pCallRes);
+void __RPC_STUB IWbemClientConnectionTransport_Open_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClientConnectionTransport_OpenAsync_Proxy(
+    IWbemClientConnectionTransport* This,
+    BSTR strAddressType,
+    DWORD dwBinaryAddressLength,
+    BYTE *abBinaryAddress,
+    const BSTR strObject,
+    const BSTR strUser,
+    const BSTR strPassword,
+    const BSTR strLocale,
+    LONG lFlags,
+    IWbemContext *pCtx,
+    REFIID riid,
+    IWbemObjectSink *pResponseHandler);
+void __RPC_STUB IWbemClientConnectionTransport_OpenAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWbemClientConnectionTransport_Cancel_Proxy(
+    IWbemClientConnectionTransport* This,
+    LONG lFlags,
+    IWbemObjectSink *pHandler);
+void __RPC_STUB IWbemClientConnectionTransport_Cancel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWbemClientConnectionTransport_INTERFACE_DEFINED__ */
+
+#endif
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
 #ifdef __cplusplus
 }
 #endif
-#endif
+
+#endif /* __wbemtran_h__ */