/*** Autogenerated by WIDL 5.11 from ../../wine/include/wbemdisp.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __wbemdisp_h__
#define __wbemdisp_h__

/* Forward declarations */

#ifndef __ISWbemEventSource_FWD_DEFINED__
#define __ISWbemEventSource_FWD_DEFINED__
typedef interface ISWbemEventSource ISWbemEventSource;
#ifdef __cplusplus
interface ISWbemEventSource;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemLocator_FWD_DEFINED__
#define __ISWbemLocator_FWD_DEFINED__
typedef interface ISWbemLocator ISWbemLocator;
#ifdef __cplusplus
interface ISWbemLocator;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemMethod_FWD_DEFINED__
#define __ISWbemMethod_FWD_DEFINED__
typedef interface ISWbemMethod ISWbemMethod;
#ifdef __cplusplus
interface ISWbemMethod;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemMethodSet_FWD_DEFINED__
#define __ISWbemMethodSet_FWD_DEFINED__
typedef interface ISWbemMethodSet ISWbemMethodSet;
#ifdef __cplusplus
interface ISWbemMethodSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemNamedValue_FWD_DEFINED__
#define __ISWbemNamedValue_FWD_DEFINED__
typedef interface ISWbemNamedValue ISWbemNamedValue;
#ifdef __cplusplus
interface ISWbemNamedValue;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemNamedValueSet_FWD_DEFINED__
#define __ISWbemNamedValueSet_FWD_DEFINED__
typedef interface ISWbemNamedValueSet ISWbemNamedValueSet;
#ifdef __cplusplus
interface ISWbemNamedValueSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemObject_FWD_DEFINED__
#define __ISWbemObject_FWD_DEFINED__
typedef interface ISWbemObject ISWbemObject;
#ifdef __cplusplus
interface ISWbemObject;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemObjectPath_FWD_DEFINED__
#define __ISWbemObjectPath_FWD_DEFINED__
typedef interface ISWbemObjectPath ISWbemObjectPath;
#ifdef __cplusplus
interface ISWbemObjectPath;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemObjectSet_FWD_DEFINED__
#define __ISWbemObjectSet_FWD_DEFINED__
typedef interface ISWbemObjectSet ISWbemObjectSet;
#ifdef __cplusplus
interface ISWbemObjectSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemPrivilege_FWD_DEFINED__
#define __ISWbemPrivilege_FWD_DEFINED__
typedef interface ISWbemPrivilege ISWbemPrivilege;
#ifdef __cplusplus
interface ISWbemPrivilege;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemPrivilegeSet_FWD_DEFINED__
#define __ISWbemPrivilegeSet_FWD_DEFINED__
typedef interface ISWbemPrivilegeSet ISWbemPrivilegeSet;
#ifdef __cplusplus
interface ISWbemPrivilegeSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemProperty_FWD_DEFINED__
#define __ISWbemProperty_FWD_DEFINED__
typedef interface ISWbemProperty ISWbemProperty;
#ifdef __cplusplus
interface ISWbemProperty;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemPropertySet_FWD_DEFINED__
#define __ISWbemPropertySet_FWD_DEFINED__
typedef interface ISWbemPropertySet ISWbemPropertySet;
#ifdef __cplusplus
interface ISWbemPropertySet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemQualifier_FWD_DEFINED__
#define __ISWbemQualifier_FWD_DEFINED__
typedef interface ISWbemQualifier ISWbemQualifier;
#ifdef __cplusplus
interface ISWbemQualifier;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemQualifierSet_FWD_DEFINED__
#define __ISWbemQualifierSet_FWD_DEFINED__
typedef interface ISWbemQualifierSet ISWbemQualifierSet;
#ifdef __cplusplus
interface ISWbemQualifierSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemSecurity_FWD_DEFINED__
#define __ISWbemSecurity_FWD_DEFINED__
typedef interface ISWbemSecurity ISWbemSecurity;
#ifdef __cplusplus
interface ISWbemSecurity;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemServices_FWD_DEFINED__
#define __ISWbemServices_FWD_DEFINED__
typedef interface ISWbemServices ISWbemServices;
#ifdef __cplusplus
interface ISWbemServices;
#endif /* __cplusplus */
#endif

#ifndef __SWbemLocator_FWD_DEFINED__
#define __SWbemLocator_FWD_DEFINED__
#ifdef __cplusplus
typedef class SWbemLocator SWbemLocator;
#else
typedef struct SWbemLocator SWbemLocator;
#endif /* defined __cplusplus */
#endif /* defined __SWbemLocator_FWD_DEFINED__ */

/* Headers for imported files */

#include <dispex.h>

#ifdef __cplusplus
extern "C" {
#endif


DEFINE_GUID(LIBID_WbemScripting, 0x565783c6, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);

#ifndef __ISWbemEventSource_FWD_DEFINED__
#define __ISWbemEventSource_FWD_DEFINED__
typedef interface ISWbemEventSource ISWbemEventSource;
#ifdef __cplusplus
interface ISWbemEventSource;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemLocator_FWD_DEFINED__
#define __ISWbemLocator_FWD_DEFINED__
typedef interface ISWbemLocator ISWbemLocator;
#ifdef __cplusplus
interface ISWbemLocator;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemMethod_FWD_DEFINED__
#define __ISWbemMethod_FWD_DEFINED__
typedef interface ISWbemMethod ISWbemMethod;
#ifdef __cplusplus
interface ISWbemMethod;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemMethodSet_FWD_DEFINED__
#define __ISWbemMethodSet_FWD_DEFINED__
typedef interface ISWbemMethodSet ISWbemMethodSet;
#ifdef __cplusplus
interface ISWbemMethodSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemNamedValue_FWD_DEFINED__
#define __ISWbemNamedValue_FWD_DEFINED__
typedef interface ISWbemNamedValue ISWbemNamedValue;
#ifdef __cplusplus
interface ISWbemNamedValue;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemNamedValueSet_FWD_DEFINED__
#define __ISWbemNamedValueSet_FWD_DEFINED__
typedef interface ISWbemNamedValueSet ISWbemNamedValueSet;
#ifdef __cplusplus
interface ISWbemNamedValueSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemObject_FWD_DEFINED__
#define __ISWbemObject_FWD_DEFINED__
typedef interface ISWbemObject ISWbemObject;
#ifdef __cplusplus
interface ISWbemObject;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemObjectPath_FWD_DEFINED__
#define __ISWbemObjectPath_FWD_DEFINED__
typedef interface ISWbemObjectPath ISWbemObjectPath;
#ifdef __cplusplus
interface ISWbemObjectPath;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemObjectSet_FWD_DEFINED__
#define __ISWbemObjectSet_FWD_DEFINED__
typedef interface ISWbemObjectSet ISWbemObjectSet;
#ifdef __cplusplus
interface ISWbemObjectSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemPrivilege_FWD_DEFINED__
#define __ISWbemPrivilege_FWD_DEFINED__
typedef interface ISWbemPrivilege ISWbemPrivilege;
#ifdef __cplusplus
interface ISWbemPrivilege;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemPrivilegeSet_FWD_DEFINED__
#define __ISWbemPrivilegeSet_FWD_DEFINED__
typedef interface ISWbemPrivilegeSet ISWbemPrivilegeSet;
#ifdef __cplusplus
interface ISWbemPrivilegeSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemProperty_FWD_DEFINED__
#define __ISWbemProperty_FWD_DEFINED__
typedef interface ISWbemProperty ISWbemProperty;
#ifdef __cplusplus
interface ISWbemProperty;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemPropertySet_FWD_DEFINED__
#define __ISWbemPropertySet_FWD_DEFINED__
typedef interface ISWbemPropertySet ISWbemPropertySet;
#ifdef __cplusplus
interface ISWbemPropertySet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemQualifier_FWD_DEFINED__
#define __ISWbemQualifier_FWD_DEFINED__
typedef interface ISWbemQualifier ISWbemQualifier;
#ifdef __cplusplus
interface ISWbemQualifier;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemQualifierSet_FWD_DEFINED__
#define __ISWbemQualifierSet_FWD_DEFINED__
typedef interface ISWbemQualifierSet ISWbemQualifierSet;
#ifdef __cplusplus
interface ISWbemQualifierSet;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemSecurity_FWD_DEFINED__
#define __ISWbemSecurity_FWD_DEFINED__
typedef interface ISWbemSecurity ISWbemSecurity;
#ifdef __cplusplus
interface ISWbemSecurity;
#endif /* __cplusplus */
#endif

#ifndef __ISWbemServices_FWD_DEFINED__
#define __ISWbemServices_FWD_DEFINED__
typedef interface ISWbemServices ISWbemServices;
#ifdef __cplusplus
interface ISWbemServices;
#endif /* __cplusplus */
#endif

typedef enum WbemTimeout {
    wbemTimeoutInfinite = 0xffffffff
} WbemTimeout;
typedef enum WbemChangeFlagEnum {
    wbemChangeFlagCreateOrUpdate = 0,
    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 WbemComparisonFlagEnum {
    wbemComparisonFlagIncludeAll = 0,
    wbemComparisonFlagIgnoreQualifiers = 1,
    wbemComparisonFlagIgnoreObjectSource = 2,
    wbemComparisonFlagIgnoreDefaultValues = 4,
    wbemComparisonFlagIgnoreClass = 8,
    wbemComparisonFlagIgnoreCase = 16,
    wbemComparisonFlagIgnoreFlavor = 32
} WbemComparisonFlagEnum;
/*****************************************************************************
 * 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,
        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


#endif  /* __ISWbemEventSource_INTERFACE_DEFINED__ */

/*****************************************************************************
 * 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,
        IDispatch *objWbemNamedValueSet,
        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


#endif  /* __ISWbemLocator_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


#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,
        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


#endif  /* __ISWbemMethodSet_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


#endif  /* __ISWbemNamedValue_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,
        ISWbemNamedValue **objWbemNamedValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Count(
        LONG *iCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE Add(
        BSTR strName,
        VARIANT *varValue,
        LONG iFlags,
        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


#endif  /* __ISWbemNamedValueSet_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISWbemObject interface
 */
#ifndef __ISWbemObject_INTERFACE_DEFINED__
#define __ISWbemObject_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISWbemObject, 0x76a6415a, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("76a6415a-cb41-11d1-8b02-00600806d9b6")
ISWbemObject : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE Put_(
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        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,
        IDispatch *objWbemNamedValueSet,
        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,
        IDispatch *objWbemNamedValueSet,
        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,
        VARIANT_BOOL bSchemaOnly,
        BSTR strRequiredAssocQualifier,
        BSTR strRequiredQualifier,
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        ISWbemObjectSet **objWbemObjectSet) = 0;

    virtual HRESULT STDMETHODCALLTYPE 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"",
        LONG iFlags = 0,
        IDispatch *objWbemNamedValueSet = 0,
        IDispatch *objWbemAsyncContext = 0) = 0;

    virtual HRESULT STDMETHODCALLTYPE References_(
        BSTR strResultClass,
        BSTR strRole,
        VARIANT_BOOL bClassesOnly,
        VARIANT_BOOL bSchemaOnly,
        BSTR strRequiredQualifier,
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        ISWbemObjectSet **objWbemObjectSet) = 0;

    virtual HRESULT STDMETHODCALLTYPE ReferencesAsync_(
        IDispatch *objWbemSink,
        BSTR strResultClass = L"",
        BSTR strRole = L"",
        VARIANT_BOOL bClassesOnly = FALSE,
        VARIANT_BOOL bSchemaOnly = FALSE,
        BSTR strRequiredQualifier = L"",
        LONG iFlags = 0,
        IDispatch *objWbemNamedValueSet = 0,
        IDispatch *objWbemAsyncContext = 0) = 0;

    virtual HRESULT STDMETHODCALLTYPE ExecMethod_(
        BSTR strMethodName,
        IDispatch *objWbemInParameters,
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        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,
        BSTR *strObjectText) = 0;

    virtual HRESULT STDMETHODCALLTYPE SpawnDerivedClass_(
        LONG iFlags,
        ISWbemObject **objWbemObject) = 0;

    virtual HRESULT STDMETHODCALLTYPE SpawnInstance_(
        LONG iFlags,
        ISWbemObject **objWbemObject) = 0;

    virtual HRESULT STDMETHODCALLTYPE CompareTo_(
        IDispatch *objWbemObject,
        LONG iFlags,
        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 {
    BEGIN_INTERFACE

    /*** 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;

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)
#define ISWbemObject_DeleteAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->DeleteAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
#define ISWbemObject_Instances_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->Instances_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet)
#define ISWbemObject_InstancesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->InstancesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
#define ISWbemObject_Subclasses_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->Subclasses_(This,iFlags,objWbemNamedValueSet,objWbemObjectSet)
#define ISWbemObject_SubclassesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->SubclassesAsync_(This,objWbemSink,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
#define ISWbemObject_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 ISWbemObject_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 ISWbemObject_References_(This,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->References_(This,strResultClass,strRole,bClassesOnly,bSchemaOnly,strRequiredQualifier,iFlags,objWbemNamedValueSet,objWbemObjectSet)
#define ISWbemObject_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 ISWbemObject_ExecMethod_(This,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters) (This)->lpVtbl->ExecMethod_(This,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemOutParameters)
#define ISWbemObject_ExecMethodAsync_(This,objWbemSink,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecMethodAsync_(This,objWbemSink,strMethodName,objWbemInParameters,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
#define ISWbemObject_Clone_(This,objWbemObject) (This)->lpVtbl->Clone_(This,objWbemObject)
#define ISWbemObject_GetObjectText_(This,iFlags,strObjectText) (This)->lpVtbl->GetObjectText_(This,iFlags,strObjectText)
#define ISWbemObject_SpawnDerivedClass_(This,iFlags,objWbemObject) (This)->lpVtbl->SpawnDerivedClass_(This,iFlags,objWbemObject)
#define ISWbemObject_SpawnInstance_(This,iFlags,objWbemObject) (This)->lpVtbl->SpawnInstance_(This,iFlags,objWbemObject)
#define ISWbemObject_CompareTo_(This,objWbemObject,iFlags,bResult) (This)->lpVtbl->CompareTo_(This,objWbemObject,iFlags,bResult)
#define ISWbemObject_get_Qualifiers_(This,objWbemQualifierSet) (This)->lpVtbl->get_Qualifiers_(This,objWbemQualifierSet)
#define ISWbemObject_get_Properties_(This,objWbemPropertySet) (This)->lpVtbl->get_Properties_(This,objWbemPropertySet)
#define ISWbemObject_get_Methods_(This,objWbemMethodSet) (This)->lpVtbl->get_Methods_(This,objWbemMethodSet)
#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)
#else
/*** 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

#endif


#endif  /* __ISWbemObject_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


#endif  /* __ISWbemObjectPath_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,
        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


#endif  /* __ISWbemObjectSet_INTERFACE_DEFINED__ */

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;
/*****************************************************************************
 * 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


#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,
        ISWbemPrivilege **objWbemPrivilege) = 0;

    virtual HRESULT STDMETHODCALLTYPE Remove(
        WbemPrivilegeEnum iPrivilege) = 0;

    virtual HRESULT STDMETHODCALLTYPE DeleteAll(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE AddAsString(
        BSTR strPrivilege,
        VARIANT_BOOL bIsEnabled,
        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


#endif  /* __ISWbemPrivilegeSet_INTERFACE_DEFINED__ */

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;
/*****************************************************************************
 * 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


#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,
        ISWbemProperty **objWbemProperty) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Count(
        LONG *iCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE Add(
        BSTR strName,
        WbemCimtypeEnum iCIMType,
        VARIANT_BOOL bIsArray,
        LONG iFlags,
        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


#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


#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,
        ISWbemQualifier **objWbemQualifier) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Count(
        LONG *iCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE Add(
        BSTR strName,
        VARIANT *varVal,
        VARIANT_BOOL bPropagatesToSubclass,
        VARIANT_BOOL bPropagatesToInstance,
        VARIANT_BOOL bIsOverridable,
        LONG iFlags,
        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


#endif  /* __ISWbemQualifierSet_INTERFACE_DEFINED__ */

typedef enum WbemImpersonationLevelEnum {
    wbemImpersonationLevelAnonymous = 1,
    wbemImpersonationLevelIdentify = 2,
    wbemImpersonationLevelImpersonate = 3,
    wbemImpersonationLevelDelegate = 4
} WbemImpersonationLevelEnum;
typedef enum WbemAuthenticationLevelEnum {
    wbemAuthenticationLevelDefault = 0,
    wbemAuthenticationLevelNone = 1,
    wbemAuthenticationLevelConnect = 2,
    wbemAuthenticationLevelCall = 3,
    wbemAuthenticationLevelPkt = 4,
    wbemAuthenticationLevelPktIntegrity = 5,
    wbemAuthenticationLevelPktPrivacy = 6
} WbemAuthenticationLevelEnum;
/*****************************************************************************
 * 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


#endif  /* __ISWbemSecurity_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISWbemServices interface
 */
#ifndef __ISWbemServices_INTERFACE_DEFINED__
#define __ISWbemServices_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISWbemServices, 0x76a6415c, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("76a6415c-cb41-11d1-8b02-00600806d9b6")
ISWbemServices : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE Get(
        BSTR strObjectPath,
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        ISWbemObject **objWbemObject) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetAsync(
        IDispatch *objWbemSink,
        BSTR strObjectPath = L"",
        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,
        IDispatch *objWbemNamedValueSet,
        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,
        IDispatch *objWbemNamedValueSet,
        ISWbemObjectSet **objWbemObjectSet) = 0;

    virtual HRESULT STDMETHODCALLTYPE SubclassesOfAsync(
        IDispatch *objWbemSink,
        BSTR strSuperclass = L"",
        LONG iFlags = wbemQueryFlagDeep,
        IDispatch *objWbemNamedValueSet = 0,
        IDispatch *objWbemAsyncContext = 0) = 0;

    virtual HRESULT STDMETHODCALLTYPE ExecQuery(
        BSTR strQuery,
        BSTR strQueryLanguage,
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        ISWbemObjectSet **objWbemObjectSet) = 0;

    virtual HRESULT STDMETHODCALLTYPE ExecQueryAsync(
        IDispatch *objWbemSink,
        BSTR strQuery,
        BSTR strQueryLanguage = L"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,
        VARIANT_BOOL bSchemaOnly,
        BSTR strRequiredAssocQualifier,
        BSTR strRequiredQualifier,
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        ISWbemObjectSet **objWbemObjectSet) = 0;

    virtual HRESULT STDMETHODCALLTYPE 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"",
        LONG iFlags = 0,
        IDispatch *objWbemNamedValueSet = 0,
        IDispatch *objWbemAsyncContext = 0) = 0;

    virtual HRESULT STDMETHODCALLTYPE ReferencesTo(
        BSTR strObjectPath,
        BSTR strResultClass,
        BSTR strRole,
        VARIANT_BOOL bClassesOnly,
        VARIANT_BOOL bSchemaOnly,
        BSTR strRequiredQualifier,
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        ISWbemObjectSet **objWbemObjectSet) = 0;

    virtual HRESULT STDMETHODCALLTYPE ReferencesToAsync(
        IDispatch *objWbemSink,
        BSTR strObjectPath,
        BSTR strResultClass = L"",
        BSTR strRole = L"",
        VARIANT_BOOL bClassesOnly = FALSE,
        VARIANT_BOOL bSchemaOnly = FALSE,
        BSTR strRequiredQualifier = L"",
        LONG iFlags = 0,
        IDispatch *objWbemNamedValueSet = 0,
        IDispatch *objWbemAsyncContext = 0) = 0;

    virtual HRESULT STDMETHODCALLTYPE ExecNotificationQuery(
        BSTR strQuery,
        BSTR strQueryLanguage,
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        ISWbemEventSource **objWbemEventSource) = 0;

    virtual HRESULT STDMETHODCALLTYPE ExecNotificationQueryAsync(
        IDispatch *objWbemSink,
        BSTR strQuery,
        BSTR strQueryLanguage = L"WQL",
        LONG iFlags = 0,
        IDispatch *objWbemNamedValueSet = 0,
        IDispatch *objWbemAsyncContext = 0) = 0;

    virtual HRESULT STDMETHODCALLTYPE ExecMethod(
        BSTR strObjectPath,
        BSTR strMethodName,
        IDispatch *objWbemInParameters,
        LONG iFlags,
        IDispatch *objWbemNamedValueSet,
        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 {
    BEGIN_INTERFACE

    /*** 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;

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)
#define ISWbemServices_DeleteAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->DeleteAsync(This,objWbemSink,strObjectPath,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
#define ISWbemServices_InstancesOf(This,strClass,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->InstancesOf(This,strClass,iFlags,objWbemNamedValueSet,objWbemObjectSet)
#define ISWbemServices_InstancesOfAsync(This,objWbemSink,strClass,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->InstancesOfAsync(This,objWbemSink,strClass,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
#define ISWbemServices_SubclassesOf(This,strSuperclass,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->SubclassesOf(This,strSuperclass,iFlags,objWbemNamedValueSet,objWbemObjectSet)
#define ISWbemServices_SubclassesOfAsync(This,objWbemSink,strSuperclass,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->SubclassesOfAsync(This,objWbemSink,strSuperclass,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
#define ISWbemServices_ExecQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemObjectSet) (This)->lpVtbl->ExecQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemObjectSet)
#define ISWbemServices_ExecQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,lFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,lFlags,objWbemNamedValueSet,objWbemAsyncContext)
#define ISWbemServices_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 ISWbemServices_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 ISWbemServices_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 ISWbemServices_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 ISWbemServices_ExecNotificationQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemEventSource) (This)->lpVtbl->ExecNotificationQuery(This,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemEventSource)
#define ISWbemServices_ExecNotificationQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemAsyncContext) (This)->lpVtbl->ExecNotificationQueryAsync(This,objWbemSink,strQuery,strQueryLanguage,iFlags,objWbemNamedValueSet,objWbemAsyncContext)
#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)
#else
/*** 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

#endif


#endif  /* __ISWbemServices_INTERFACE_DEFINED__ */

/*****************************************************************************
 * 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

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __wbemdisp_h__ */
