

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 7.00.0555 */
/* Compiler settings for wcmconfig.idl:
    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __wcmconfig_h__
#define __wcmconfig_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IItemEnumerator_FWD_DEFINED__
#define __IItemEnumerator_FWD_DEFINED__
typedef interface IItemEnumerator IItemEnumerator;
#endif 	/* __IItemEnumerator_FWD_DEFINED__ */


#ifndef __ISettingsIdentity_FWD_DEFINED__
#define __ISettingsIdentity_FWD_DEFINED__
typedef interface ISettingsIdentity ISettingsIdentity;
#endif 	/* __ISettingsIdentity_FWD_DEFINED__ */


#ifndef __ITargetInfo_FWD_DEFINED__
#define __ITargetInfo_FWD_DEFINED__
typedef interface ITargetInfo ITargetInfo;
#endif 	/* __ITargetInfo_FWD_DEFINED__ */


#ifndef __ISettingsEngine_FWD_DEFINED__
#define __ISettingsEngine_FWD_DEFINED__
typedef interface ISettingsEngine ISettingsEngine;
#endif 	/* __ISettingsEngine_FWD_DEFINED__ */


#ifndef __ISettingsItem_FWD_DEFINED__
#define __ISettingsItem_FWD_DEFINED__
typedef interface ISettingsItem ISettingsItem;
#endif 	/* __ISettingsItem_FWD_DEFINED__ */


#ifndef __ISettingsNamespace_FWD_DEFINED__
#define __ISettingsNamespace_FWD_DEFINED__
typedef interface ISettingsNamespace ISettingsNamespace;
#endif 	/* __ISettingsNamespace_FWD_DEFINED__ */


#ifndef __ISettingsResult_FWD_DEFINED__
#define __ISettingsResult_FWD_DEFINED__
typedef interface ISettingsResult ISettingsResult;
#endif 	/* __ISettingsResult_FWD_DEFINED__ */


#ifndef __ISettingsContext_FWD_DEFINED__
#define __ISettingsContext_FWD_DEFINED__
typedef interface ISettingsContext ISettingsContext;
#endif 	/* __ISettingsContext_FWD_DEFINED__ */


#ifndef __SettingsEngine_FWD_DEFINED__
#define __SettingsEngine_FWD_DEFINED__

#ifdef __cplusplus
typedef class SettingsEngine SettingsEngine;
#else
typedef struct SettingsEngine SettingsEngine;
#endif /* __cplusplus */

#endif 	/* __SettingsEngine_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_wcmconfig_0000_0000 */
/* [local] */ 









typedef /* [public][public][public] */ 
enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0001
    {	OfflineMode	= 1,
	OnlineMode	= 2
    } 	WcmTargetMode;

typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0002
    {	SharedEnumeration	= 1,
	UserEnumeration	= 2,
	AllEnumeration	= ( SharedEnumeration | UserEnumeration ) 
    } 	WcmNamespaceEnumerationFlags;

typedef /* [public][public][public] */ 
enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0003
    {	dataTypeByte	= 1,
	dataTypeSByte	= 2,
	dataTypeUInt16	= 3,
	dataTypeInt16	= 4,
	dataTypeUInt32	= 5,
	dataTypeInt32	= 6,
	dataTypeUInt64	= 7,
	dataTypeInt64	= 8,
	dataTypeBoolean	= 11,
	dataTypeString	= 12,
	dataTypeFlagArray	= 0x8000
    } 	WcmDataType;

typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0004
    {	settingTypeScalar	= 1,
	settingTypeComplex	= 2,
	settingTypeList	= 3
    } 	WcmSettingType;

typedef /* [public][public][public] */ 
enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0005
    {	restrictionFacetMaxLength	= 0x1,
	restrictionFacetEnumeration	= 0x2,
	restrictionFacetMaxInclusive	= 0x4,
	restrictionFacetMinInclusive	= 0x8
    } 	WcmRestrictionFacets;

typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0006
    {	UnknownStatus	= 0,
	UserRegistered	= 1,
	UserUnregistered	= 2,
	UserLoaded	= 3,
	UserUnloaded	= 4
    } 	WcmUserStatus;

typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0007
    {	ReadOnlyAccess	= 1,
	ReadWriteAccess	= 2
    } 	WcmNamespaceAccess;



extern RPC_IF_HANDLE __MIDL_itf_wcmconfig_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_wcmconfig_0000_0000_v0_0_s_ifspec;

#ifndef __IItemEnumerator_INTERFACE_DEFINED__
#define __IItemEnumerator_INTERFACE_DEFINED__

/* interface IItemEnumerator */
/* [helpstring][uuid][unique][nonextensible][object][local] */ 


EXTERN_C const IID IID_IItemEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F7D7BB7-20B3-11DA-81A5-0030F1642E3C")
    IItemEnumerator : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Current( 
            /* [retval][out] */ VARIANT *Item) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ BOOL *ItemValid) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IItemEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IItemEnumerator * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IItemEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IItemEnumerator * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Current )( 
            IItemEnumerator * This,
            /* [retval][out] */ VARIANT *Item);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            IItemEnumerator * This,
            /* [retval][out] */ BOOL *ItemValid);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IItemEnumerator * This);
        
        END_INTERFACE
    } IItemEnumeratorVtbl;

    interface IItemEnumerator
    {
        CONST_VTBL struct IItemEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IItemEnumerator_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IItemEnumerator_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IItemEnumerator_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IItemEnumerator_Current(This,Item)	\
    ( (This)->lpVtbl -> Current(This,Item) ) 

#define IItemEnumerator_MoveNext(This,ItemValid)	\
    ( (This)->lpVtbl -> MoveNext(This,ItemValid) ) 

#define IItemEnumerator_Reset(This)	\
    ( (This)->lpVtbl -> Reset(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IItemEnumerator_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_wcmconfig_0000_0001 */
/* [local] */ 

#define WCM_SETTINGS_ID_NAME                L"name"
#define WCM_SETTINGS_ID_VERSION             L"version"
#define WCM_SETTINGS_ID_LANGUAGE            L"language"
#define WCM_SETTINGS_ID_ARCHITECTURE        L"architecture"
#define WCM_SETTINGS_ID_TOKEN               L"token"
#define WCM_SETTINGS_ID_URI                 L"uri"
#define WCM_SETTINGS_ID_VERSION_SCOPE       L"versionScope"
#define WCM_SETTINGS_ID_FLAG_REFERENCE     0x00000000
#define WCM_SETTINGS_ID_FLAG_DEFINITION    0x00000001


extern RPC_IF_HANDLE __MIDL_itf_wcmconfig_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_wcmconfig_0000_0001_v0_0_s_ifspec;

#ifndef __ISettingsIdentity_INTERFACE_DEFINED__
#define __ISettingsIdentity_INTERFACE_DEFINED__

/* interface ISettingsIdentity */
/* [helpstring][uuid][unique][nonextensible][object][local] */ 


EXTERN_C const IID IID_ISettingsIdentity;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F7D7BB6-20B3-11DA-81A5-0030F1642E3C")
    ISettingsIdentity : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAttribute( 
            /* [in] */ void *Reserved,
            /* [string][in] */ const WCHAR *Name,
            /* [retval][out] */ BSTR *Value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAttribute( 
            /* [in] */ void *Reserved,
            /* [string][in] */ const WCHAR *Name,
            /* [string][in] */ const WCHAR *Value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFlags( 
            /* [retval][out] */ DWORD *Flags) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetFlags( 
            /* [in] */ DWORD Flags) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISettingsIdentityVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISettingsIdentity * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISettingsIdentity * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISettingsIdentity * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAttribute )( 
            ISettingsIdentity * This,
            /* [in] */ void *Reserved,
            /* [string][in] */ const WCHAR *Name,
            /* [retval][out] */ BSTR *Value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
            ISettingsIdentity * This,
            /* [in] */ void *Reserved,
            /* [string][in] */ const WCHAR *Name,
            /* [string][in] */ const WCHAR *Value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFlags )( 
            ISettingsIdentity * This,
            /* [retval][out] */ DWORD *Flags);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetFlags )( 
            ISettingsIdentity * This,
            /* [in] */ DWORD Flags);
        
        END_INTERFACE
    } ISettingsIdentityVtbl;

    interface ISettingsIdentity
    {
        CONST_VTBL struct ISettingsIdentityVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISettingsIdentity_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISettingsIdentity_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISettingsIdentity_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISettingsIdentity_GetAttribute(This,Reserved,Name,Value)	\
    ( (This)->lpVtbl -> GetAttribute(This,Reserved,Name,Value) ) 

#define ISettingsIdentity_SetAttribute(This,Reserved,Name,Value)	\
    ( (This)->lpVtbl -> SetAttribute(This,Reserved,Name,Value) ) 

#define ISettingsIdentity_GetFlags(This,Flags)	\
    ( (This)->lpVtbl -> GetFlags(This,Flags) ) 

#define ISettingsIdentity_SetFlags(This,Flags)	\
    ( (This)->lpVtbl -> SetFlags(This,Flags) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISettingsIdentity_INTERFACE_DEFINED__ */


#ifndef __ITargetInfo_INTERFACE_DEFINED__
#define __ITargetInfo_INTERFACE_DEFINED__

/* interface ITargetInfo */
/* [helpstring][uuid][unique][nonextensible][object][local] */ 


EXTERN_C const IID IID_ITargetInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F7D7BB8-20B3-11DA-81A5-0030F1642E3C")
    ITargetInfo : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTargetMode( 
            /* [retval][out] */ WcmTargetMode *TargetMode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTargetMode( 
            /* [in] */ WcmTargetMode TargetMode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTemporaryStoreLocation( 
            /* [retval][out] */ BSTR *TemporaryStoreLocation) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTemporaryStoreLocation( 
            /* [string][in] */ const WCHAR *TemporaryStoreLocation) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTargetID( 
            /* [retval][out] */ BSTR *TargetID) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTargetID( 
            /* [in] */ GUID TargetID) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTargetProcessorArchitecture( 
            /* [retval][out] */ BSTR *ProcessorArchitecture) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTargetProcessorArchitecture( 
            /* [string][in] */ const WCHAR *ProcessorArchitecture) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetProperty( 
            /* [in] */ BOOL Offline,
            /* [string][in] */ const WCHAR *Property,
            /* [retval][out] */ BSTR *Value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetProperty( 
            /* [in] */ BOOL Offline,
            /* [string][in] */ const WCHAR *Property,
            /* [string][in] */ const WCHAR *Value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetEnumerator( 
            /* [retval][out] */ IItemEnumerator **Enumerator) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExpandTarget( 
            /* [in] */ BOOL Offline,
            /* [string][in] */ const WCHAR *Location,
            /* [retval][out] */ BSTR *ExpandedLocation) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExpandTargetPath( 
            /* [in] */ BOOL Offline,
            /* [string][in] */ const WCHAR *Location,
            /* [retval][out] */ BSTR *ExpandedLocation) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetModulePath( 
            /* [string][in] */ const WCHAR *Module,
            /* [string][in] */ const WCHAR *Path) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadModule( 
            /* [string][in] */ const WCHAR *Module,
            /* [retval][out] */ HMODULE *ModuleHandle) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetWow64Context( 
            /* [string][in] */ const WCHAR *InstallerModule,
            /* [in] */ BYTE *Wow64Context) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TranslateWow64( 
            /* [string][in] */ const WCHAR *ClientArchitecture,
            /* [string][in] */ const WCHAR *Value,
            /* [retval][out] */ BSTR *TranslatedValue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSchemaHiveLocation( 
            /* [in] */ LPCWSTR pwzHiveDir) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSchemaHiveLocation( 
            /* [retval][out] */ BSTR *pHiveLocation) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSchemaHiveMountName( 
            /* [in] */ LPCWSTR pwzMountName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSchemaHiveMountName( 
            /* [retval][out] */ BSTR *pMountName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITargetInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITargetInfo * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITargetInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITargetInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTargetMode )( 
            ITargetInfo * This,
            /* [retval][out] */ WcmTargetMode *TargetMode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTargetMode )( 
            ITargetInfo * This,
            /* [in] */ WcmTargetMode TargetMode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTemporaryStoreLocation )( 
            ITargetInfo * This,
            /* [retval][out] */ BSTR *TemporaryStoreLocation);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTemporaryStoreLocation )( 
            ITargetInfo * This,
            /* [string][in] */ const WCHAR *TemporaryStoreLocation);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTargetID )( 
            ITargetInfo * This,
            /* [retval][out] */ BSTR *TargetID);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTargetID )( 
            ITargetInfo * This,
            /* [in] */ GUID TargetID);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTargetProcessorArchitecture )( 
            ITargetInfo * This,
            /* [retval][out] */ BSTR *ProcessorArchitecture);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTargetProcessorArchitecture )( 
            ITargetInfo * This,
            /* [string][in] */ const WCHAR *ProcessorArchitecture);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetProperty )( 
            ITargetInfo * This,
            /* [in] */ BOOL Offline,
            /* [string][in] */ const WCHAR *Property,
            /* [retval][out] */ BSTR *Value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetProperty )( 
            ITargetInfo * This,
            /* [in] */ BOOL Offline,
            /* [string][in] */ const WCHAR *Property,
            /* [string][in] */ const WCHAR *Value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetEnumerator )( 
            ITargetInfo * This,
            /* [retval][out] */ IItemEnumerator **Enumerator);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExpandTarget )( 
            ITargetInfo * This,
            /* [in] */ BOOL Offline,
            /* [string][in] */ const WCHAR *Location,
            /* [retval][out] */ BSTR *ExpandedLocation);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExpandTargetPath )( 
            ITargetInfo * This,
            /* [in] */ BOOL Offline,
            /* [string][in] */ const WCHAR *Location,
            /* [retval][out] */ BSTR *ExpandedLocation);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetModulePath )( 
            ITargetInfo * This,
            /* [string][in] */ const WCHAR *Module,
            /* [string][in] */ const WCHAR *Path);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadModule )( 
            ITargetInfo * This,
            /* [string][in] */ const WCHAR *Module,
            /* [retval][out] */ HMODULE *ModuleHandle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetWow64Context )( 
            ITargetInfo * This,
            /* [string][in] */ const WCHAR *InstallerModule,
            /* [in] */ BYTE *Wow64Context);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TranslateWow64 )( 
            ITargetInfo * This,
            /* [string][in] */ const WCHAR *ClientArchitecture,
            /* [string][in] */ const WCHAR *Value,
            /* [retval][out] */ BSTR *TranslatedValue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSchemaHiveLocation )( 
            ITargetInfo * This,
            /* [in] */ LPCWSTR pwzHiveDir);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSchemaHiveLocation )( 
            ITargetInfo * This,
            /* [retval][out] */ BSTR *pHiveLocation);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSchemaHiveMountName )( 
            ITargetInfo * This,
            /* [in] */ LPCWSTR pwzMountName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSchemaHiveMountName )( 
            ITargetInfo * This,
            /* [retval][out] */ BSTR *pMountName);
        
        END_INTERFACE
    } ITargetInfoVtbl;

    interface ITargetInfo
    {
        CONST_VTBL struct ITargetInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ITargetInfo_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ITargetInfo_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ITargetInfo_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ITargetInfo_GetTargetMode(This,TargetMode)	\
    ( (This)->lpVtbl -> GetTargetMode(This,TargetMode) ) 

#define ITargetInfo_SetTargetMode(This,TargetMode)	\
    ( (This)->lpVtbl -> SetTargetMode(This,TargetMode) ) 

#define ITargetInfo_GetTemporaryStoreLocation(This,TemporaryStoreLocation)	\
    ( (This)->lpVtbl -> GetTemporaryStoreLocation(This,TemporaryStoreLocation) ) 

#define ITargetInfo_SetTemporaryStoreLocation(This,TemporaryStoreLocation)	\
    ( (This)->lpVtbl -> SetTemporaryStoreLocation(This,TemporaryStoreLocation) ) 

#define ITargetInfo_GetTargetID(This,TargetID)	\
    ( (This)->lpVtbl -> GetTargetID(This,TargetID) ) 

#define ITargetInfo_SetTargetID(This,TargetID)	\
    ( (This)->lpVtbl -> SetTargetID(This,TargetID) ) 

#define ITargetInfo_GetTargetProcessorArchitecture(This,ProcessorArchitecture)	\
    ( (This)->lpVtbl -> GetTargetProcessorArchitecture(This,ProcessorArchitecture) ) 

#define ITargetInfo_SetTargetProcessorArchitecture(This,ProcessorArchitecture)	\
    ( (This)->lpVtbl -> SetTargetProcessorArchitecture(This,ProcessorArchitecture) ) 

#define ITargetInfo_GetProperty(This,Offline,Property,Value)	\
    ( (This)->lpVtbl -> GetProperty(This,Offline,Property,Value) ) 

#define ITargetInfo_SetProperty(This,Offline,Property,Value)	\
    ( (This)->lpVtbl -> SetProperty(This,Offline,Property,Value) ) 

#define ITargetInfo_GetEnumerator(This,Enumerator)	\
    ( (This)->lpVtbl -> GetEnumerator(This,Enumerator) ) 

#define ITargetInfo_ExpandTarget(This,Offline,Location,ExpandedLocation)	\
    ( (This)->lpVtbl -> ExpandTarget(This,Offline,Location,ExpandedLocation) ) 

#define ITargetInfo_ExpandTargetPath(This,Offline,Location,ExpandedLocation)	\
    ( (This)->lpVtbl -> ExpandTargetPath(This,Offline,Location,ExpandedLocation) ) 

#define ITargetInfo_SetModulePath(This,Module,Path)	\
    ( (This)->lpVtbl -> SetModulePath(This,Module,Path) ) 

#define ITargetInfo_LoadModule(This,Module,ModuleHandle)	\
    ( (This)->lpVtbl -> LoadModule(This,Module,ModuleHandle) ) 

#define ITargetInfo_SetWow64Context(This,InstallerModule,Wow64Context)	\
    ( (This)->lpVtbl -> SetWow64Context(This,InstallerModule,Wow64Context) ) 

#define ITargetInfo_TranslateWow64(This,ClientArchitecture,Value,TranslatedValue)	\
    ( (This)->lpVtbl -> TranslateWow64(This,ClientArchitecture,Value,TranslatedValue) ) 

#define ITargetInfo_SetSchemaHiveLocation(This,pwzHiveDir)	\
    ( (This)->lpVtbl -> SetSchemaHiveLocation(This,pwzHiveDir) ) 

#define ITargetInfo_GetSchemaHiveLocation(This,pHiveLocation)	\
    ( (This)->lpVtbl -> GetSchemaHiveLocation(This,pHiveLocation) ) 

#define ITargetInfo_SetSchemaHiveMountName(This,pwzMountName)	\
    ( (This)->lpVtbl -> SetSchemaHiveMountName(This,pwzMountName) ) 

#define ITargetInfo_GetSchemaHiveMountName(This,pMountName)	\
    ( (This)->lpVtbl -> GetSchemaHiveMountName(This,pMountName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ITargetInfo_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_wcmconfig_0000_0003 */
/* [local] */ 

#define LINK_STORE_TO_ENGINE_INSTANCE    0x00000001


extern RPC_IF_HANDLE __MIDL_itf_wcmconfig_0000_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_wcmconfig_0000_0003_v0_0_s_ifspec;

#ifndef __ISettingsEngine_INTERFACE_DEFINED__
#define __ISettingsEngine_INTERFACE_DEFINED__

/* interface ISettingsEngine */
/* [helpstring][uuid][unique][nonextensible][object][local] */ 


EXTERN_C const IID IID_ISettingsEngine;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F7D7BB9-20B3-11DA-81A5-0030F1642E3C")
    ISettingsEngine : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNamespaces( 
            /* [in] */ WcmNamespaceEnumerationFlags Flags,
            /* [in] */ void *Reserved,
            /* [retval][out] */ IItemEnumerator **Namespaces) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNamespace( 
            /* [in] */ ISettingsIdentity *SettingsID,
            /* [in] */ WcmNamespaceAccess Access,
            /* [in] */ void *Reserved,
            /* [retval][out] */ ISettingsNamespace **NamespaceItem) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetErrorDescription( 
            /* [in] */ LONG HResult,
            /* [retval][out] */ BSTR *Message) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateSettingsIdentity( 
            /* [retval][out] */ ISettingsIdentity **SettingsID) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStoreStatus( 
            /* [in] */ void *Reserved,
            /* [out] */ WcmUserStatus *Status) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadStore( 
            /* [in] */ DWORD Flags) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnloadStore( 
            /* [in] */ void *Reserved) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterNamespace( 
            /* [in] */ ISettingsIdentity *SettingsID,
            /* [in] */ IStream *Stream,
            /* [in] */ BOOL PushSettings,
            /* [retval][out] */ VARIANT *Results) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnregisterNamespace( 
            /* [in] */ ISettingsIdentity *SettingsID,
            /* [in] */ BOOL RemoveSettings) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateTargetInfo( 
            /* [retval][out] */ ITargetInfo **Target) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTargetInfo( 
            /* [retval][out] */ ITargetInfo **Target) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTargetInfo( 
            /* [in] */ ITargetInfo *Target) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateSettingsContext( 
            /* [in] */ DWORD Flags,
            /* [in] */ void *Reserved,
            /* [retval][out] */ ISettingsContext **SettingsContext) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSettingsContext( 
            /* [in] */ ISettingsContext *SettingsContext) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ApplySettingsContext( 
            /* [in] */ ISettingsContext *SettingsContext,
            /* [annotation][size_is][size_is][out] */ 
            __deref_out_ecount(*pcIdentities)  LPWSTR **pppwzIdentities,
            /* [retval][out] */ SIZE_T *pcIdentities) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSettingsContext( 
            /* [retval][out] */ ISettingsContext **SettingsContext) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISettingsEngineVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISettingsEngine * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISettingsEngine * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISettingsEngine * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNamespaces )( 
            ISettingsEngine * This,
            /* [in] */ WcmNamespaceEnumerationFlags Flags,
            /* [in] */ void *Reserved,
            /* [retval][out] */ IItemEnumerator **Namespaces);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNamespace )( 
            ISettingsEngine * This,
            /* [in] */ ISettingsIdentity *SettingsID,
            /* [in] */ WcmNamespaceAccess Access,
            /* [in] */ void *Reserved,
            /* [retval][out] */ ISettingsNamespace **NamespaceItem);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetErrorDescription )( 
            ISettingsEngine * This,
            /* [in] */ LONG HResult,
            /* [retval][out] */ BSTR *Message);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateSettingsIdentity )( 
            ISettingsEngine * This,
            /* [retval][out] */ ISettingsIdentity **SettingsID);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStoreStatus )( 
            ISettingsEngine * This,
            /* [in] */ void *Reserved,
            /* [out] */ WcmUserStatus *Status);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadStore )( 
            ISettingsEngine * This,
            /* [in] */ DWORD Flags);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnloadStore )( 
            ISettingsEngine * This,
            /* [in] */ void *Reserved);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterNamespace )( 
            ISettingsEngine * This,
            /* [in] */ ISettingsIdentity *SettingsID,
            /* [in] */ IStream *Stream,
            /* [in] */ BOOL PushSettings,
            /* [retval][out] */ VARIANT *Results);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnregisterNamespace )( 
            ISettingsEngine * This,
            /* [in] */ ISettingsIdentity *SettingsID,
            /* [in] */ BOOL RemoveSettings);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateTargetInfo )( 
            ISettingsEngine * This,
            /* [retval][out] */ ITargetInfo **Target);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTargetInfo )( 
            ISettingsEngine * This,
            /* [retval][out] */ ITargetInfo **Target);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTargetInfo )( 
            ISettingsEngine * This,
            /* [in] */ ITargetInfo *Target);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateSettingsContext )( 
            ISettingsEngine * This,
            /* [in] */ DWORD Flags,
            /* [in] */ void *Reserved,
            /* [retval][out] */ ISettingsContext **SettingsContext);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSettingsContext )( 
            ISettingsEngine * This,
            /* [in] */ ISettingsContext *SettingsContext);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ApplySettingsContext )( 
            ISettingsEngine * This,
            /* [in] */ ISettingsContext *SettingsContext,
            /* [annotation][size_is][size_is][out] */ 
            __deref_out_ecount(*pcIdentities)  LPWSTR **pppwzIdentities,
            /* [retval][out] */ SIZE_T *pcIdentities);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSettingsContext )( 
            ISettingsEngine * This,
            /* [retval][out] */ ISettingsContext **SettingsContext);
        
        END_INTERFACE
    } ISettingsEngineVtbl;

    interface ISettingsEngine
    {
        CONST_VTBL struct ISettingsEngineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISettingsEngine_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISettingsEngine_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISettingsEngine_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISettingsEngine_GetNamespaces(This,Flags,Reserved,Namespaces)	\
    ( (This)->lpVtbl -> GetNamespaces(This,Flags,Reserved,Namespaces) ) 

#define ISettingsEngine_GetNamespace(This,SettingsID,Access,Reserved,NamespaceItem)	\
    ( (This)->lpVtbl -> GetNamespace(This,SettingsID,Access,Reserved,NamespaceItem) ) 

#define ISettingsEngine_GetErrorDescription(This,HResult,Message)	\
    ( (This)->lpVtbl -> GetErrorDescription(This,HResult,Message) ) 

#define ISettingsEngine_CreateSettingsIdentity(This,SettingsID)	\
    ( (This)->lpVtbl -> CreateSettingsIdentity(This,SettingsID) ) 

#define ISettingsEngine_GetStoreStatus(This,Reserved,Status)	\
    ( (This)->lpVtbl -> GetStoreStatus(This,Reserved,Status) ) 

#define ISettingsEngine_LoadStore(This,Flags)	\
    ( (This)->lpVtbl -> LoadStore(This,Flags) ) 

#define ISettingsEngine_UnloadStore(This,Reserved)	\
    ( (This)->lpVtbl -> UnloadStore(This,Reserved) ) 

#define ISettingsEngine_RegisterNamespace(This,SettingsID,Stream,PushSettings,Results)	\
    ( (This)->lpVtbl -> RegisterNamespace(This,SettingsID,Stream,PushSettings,Results) ) 

#define ISettingsEngine_UnregisterNamespace(This,SettingsID,RemoveSettings)	\
    ( (This)->lpVtbl -> UnregisterNamespace(This,SettingsID,RemoveSettings) ) 

#define ISettingsEngine_CreateTargetInfo(This,Target)	\
    ( (This)->lpVtbl -> CreateTargetInfo(This,Target) ) 

#define ISettingsEngine_GetTargetInfo(This,Target)	\
    ( (This)->lpVtbl -> GetTargetInfo(This,Target) ) 

#define ISettingsEngine_SetTargetInfo(This,Target)	\
    ( (This)->lpVtbl -> SetTargetInfo(This,Target) ) 

#define ISettingsEngine_CreateSettingsContext(This,Flags,Reserved,SettingsContext)	\
    ( (This)->lpVtbl -> CreateSettingsContext(This,Flags,Reserved,SettingsContext) ) 

#define ISettingsEngine_SetSettingsContext(This,SettingsContext)	\
    ( (This)->lpVtbl -> SetSettingsContext(This,SettingsContext) ) 

#define ISettingsEngine_ApplySettingsContext(This,SettingsContext,pppwzIdentities,pcIdentities)	\
    ( (This)->lpVtbl -> ApplySettingsContext(This,SettingsContext,pppwzIdentities,pcIdentities) ) 

#define ISettingsEngine_GetSettingsContext(This,SettingsContext)	\
    ( (This)->lpVtbl -> GetSettingsContext(This,SettingsContext) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISettingsEngine_INTERFACE_DEFINED__ */


#ifndef __ISettingsItem_INTERFACE_DEFINED__
#define __ISettingsItem_INTERFACE_DEFINED__

/* interface ISettingsItem */
/* [helpstring][uuid][unique][nonextensible][object][local] */ 


EXTERN_C const IID IID_ISettingsItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F7D7BBB-20B3-11DA-81A5-0030F1642E3C")
    ISettingsItem : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetName( 
            /* [retval][out] */ BSTR *Name) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetValue( 
            /* [retval][out] */ VARIANT *Value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetValue( 
            /* [in] */ const VARIANT *Value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSettingType( 
            /* [retval][out] */ WcmSettingType *Type) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDataType( 
            /* [retval][out] */ WcmDataType *Type) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetValueRaw( 
            /* [size_is][size_is][out] */ BYTE **Data,
            /* [retval][out] */ ULONG *DataSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetValueRaw( 
            /* [in] */ LONG DataType,
            /* [size_is][in] */ const BYTE *Data,
            /* [in] */ ULONG DataSize) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE HasChild( 
            /* [retval][out] */ BOOL *ItemHasChild) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Children( 
            /* [retval][out] */ IItemEnumerator **Children) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChild( 
            /* [string][in] */ const WCHAR *Name,
            /* [retval][out] */ ISettingsItem **Child) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSettingByPath( 
            /* [string][in] */ const WCHAR *Path,
            /* [retval][out] */ ISettingsItem **Setting) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateSettingByPath( 
            /* [string][in] */ const WCHAR *Path,
            /* [retval][out] */ ISettingsItem **Setting) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveSettingByPath( 
            /* [string][in] */ const WCHAR *Path) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetListKeyInformation( 
            /* [out] */ BSTR *KeyName,
            /* [retval][out] */ WcmDataType *DataType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateListElement( 
            /* [in] */ const VARIANT *KeyData,
            /* [retval][out] */ ISettingsItem **Child) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveListElement( 
            /* [string][in] */ LPCWSTR ElementName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Attributes( 
            /* [retval][out] */ IItemEnumerator **Attributes) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAttribute( 
            /* [string][in] */ const WCHAR *Name,
            /* [retval][out] */ VARIANT *Value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPath( 
            /* [retval][out] */ BSTR *Path) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRestrictionFacets( 
            /* [retval][out] */ WcmRestrictionFacets *RestrictionFacets) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRestriction( 
            /* [in] */ WcmRestrictionFacets RestrictionFacet,
            /* [retval][out] */ VARIANT *FacetData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetKeyValue( 
            /* [retval][out] */ VARIANT *Value) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISettingsItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISettingsItem * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISettingsItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISettingsItem * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetName )( 
            ISettingsItem * This,
            /* [retval][out] */ BSTR *Name);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetValue )( 
            ISettingsItem * This,
            /* [retval][out] */ VARIANT *Value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetValue )( 
            ISettingsItem * This,
            /* [in] */ const VARIANT *Value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSettingType )( 
            ISettingsItem * This,
            /* [retval][out] */ WcmSettingType *Type);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDataType )( 
            ISettingsItem * This,
            /* [retval][out] */ WcmDataType *Type);
        
        HRESULT ( STDMETHODCALLTYPE *GetValueRaw )( 
            ISettingsItem * This,
            /* [size_is][size_is][out] */ BYTE **Data,
            /* [retval][out] */ ULONG *DataSize);
        
        HRESULT ( STDMETHODCALLTYPE *SetValueRaw )( 
            ISettingsItem * This,
            /* [in] */ LONG DataType,
            /* [size_is][in] */ const BYTE *Data,
            /* [in] */ ULONG DataSize);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *HasChild )( 
            ISettingsItem * This,
            /* [retval][out] */ BOOL *ItemHasChild);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Children )( 
            ISettingsItem * This,
            /* [retval][out] */ IItemEnumerator **Children);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChild )( 
            ISettingsItem * This,
            /* [string][in] */ const WCHAR *Name,
            /* [retval][out] */ ISettingsItem **Child);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSettingByPath )( 
            ISettingsItem * This,
            /* [string][in] */ const WCHAR *Path,
            /* [retval][out] */ ISettingsItem **Setting);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateSettingByPath )( 
            ISettingsItem * This,
            /* [string][in] */ const WCHAR *Path,
            /* [retval][out] */ ISettingsItem **Setting);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveSettingByPath )( 
            ISettingsItem * This,
            /* [string][in] */ const WCHAR *Path);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetListKeyInformation )( 
            ISettingsItem * This,
            /* [out] */ BSTR *KeyName,
            /* [retval][out] */ WcmDataType *DataType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateListElement )( 
            ISettingsItem * This,
            /* [in] */ const VARIANT *KeyData,
            /* [retval][out] */ ISettingsItem **Child);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveListElement )( 
            ISettingsItem * This,
            /* [string][in] */ LPCWSTR ElementName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Attributes )( 
            ISettingsItem * This,
            /* [retval][out] */ IItemEnumerator **Attributes);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAttribute )( 
            ISettingsItem * This,
            /* [string][in] */ const WCHAR *Name,
            /* [retval][out] */ VARIANT *Value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPath )( 
            ISettingsItem * This,
            /* [retval][out] */ BSTR *Path);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRestrictionFacets )( 
            ISettingsItem * This,
            /* [retval][out] */ WcmRestrictionFacets *RestrictionFacets);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRestriction )( 
            ISettingsItem * This,
            /* [in] */ WcmRestrictionFacets RestrictionFacet,
            /* [retval][out] */ VARIANT *FacetData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetKeyValue )( 
            ISettingsItem * This,
            /* [retval][out] */ VARIANT *Value);
        
        END_INTERFACE
    } ISettingsItemVtbl;

    interface ISettingsItem
    {
        CONST_VTBL struct ISettingsItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISettingsItem_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISettingsItem_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISettingsItem_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISettingsItem_GetName(This,Name)	\
    ( (This)->lpVtbl -> GetName(This,Name) ) 

#define ISettingsItem_GetValue(This,Value)	\
    ( (This)->lpVtbl -> GetValue(This,Value) ) 

#define ISettingsItem_SetValue(This,Value)	\
    ( (This)->lpVtbl -> SetValue(This,Value) ) 

#define ISettingsItem_GetSettingType(This,Type)	\
    ( (This)->lpVtbl -> GetSettingType(This,Type) ) 

#define ISettingsItem_GetDataType(This,Type)	\
    ( (This)->lpVtbl -> GetDataType(This,Type) ) 

#define ISettingsItem_GetValueRaw(This,Data,DataSize)	\
    ( (This)->lpVtbl -> GetValueRaw(This,Data,DataSize) ) 

#define ISettingsItem_SetValueRaw(This,DataType,Data,DataSize)	\
    ( (This)->lpVtbl -> SetValueRaw(This,DataType,Data,DataSize) ) 

#define ISettingsItem_HasChild(This,ItemHasChild)	\
    ( (This)->lpVtbl -> HasChild(This,ItemHasChild) ) 

#define ISettingsItem_Children(This,Children)	\
    ( (This)->lpVtbl -> Children(This,Children) ) 

#define ISettingsItem_GetChild(This,Name,Child)	\
    ( (This)->lpVtbl -> GetChild(This,Name,Child) ) 

#define ISettingsItem_GetSettingByPath(This,Path,Setting)	\
    ( (This)->lpVtbl -> GetSettingByPath(This,Path,Setting) ) 

#define ISettingsItem_CreateSettingByPath(This,Path,Setting)	\
    ( (This)->lpVtbl -> CreateSettingByPath(This,Path,Setting) ) 

#define ISettingsItem_RemoveSettingByPath(This,Path)	\
    ( (This)->lpVtbl -> RemoveSettingByPath(This,Path) ) 

#define ISettingsItem_GetListKeyInformation(This,KeyName,DataType)	\
    ( (This)->lpVtbl -> GetListKeyInformation(This,KeyName,DataType) ) 

#define ISettingsItem_CreateListElement(This,KeyData,Child)	\
    ( (This)->lpVtbl -> CreateListElement(This,KeyData,Child) ) 

#define ISettingsItem_RemoveListElement(This,ElementName)	\
    ( (This)->lpVtbl -> RemoveListElement(This,ElementName) ) 

#define ISettingsItem_Attributes(This,Attributes)	\
    ( (This)->lpVtbl -> Attributes(This,Attributes) ) 

#define ISettingsItem_GetAttribute(This,Name,Value)	\
    ( (This)->lpVtbl -> GetAttribute(This,Name,Value) ) 

#define ISettingsItem_GetPath(This,Path)	\
    ( (This)->lpVtbl -> GetPath(This,Path) ) 

#define ISettingsItem_GetRestrictionFacets(This,RestrictionFacets)	\
    ( (This)->lpVtbl -> GetRestrictionFacets(This,RestrictionFacets) ) 

#define ISettingsItem_GetRestriction(This,RestrictionFacet,FacetData)	\
    ( (This)->lpVtbl -> GetRestriction(This,RestrictionFacet,FacetData) ) 

#define ISettingsItem_GetKeyValue(This,Value)	\
    ( (This)->lpVtbl -> GetKeyValue(This,Value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISettingsItem_INTERFACE_DEFINED__ */


#ifndef __ISettingsNamespace_INTERFACE_DEFINED__
#define __ISettingsNamespace_INTERFACE_DEFINED__

/* interface ISettingsNamespace */
/* [helpstring][uuid][unique][nonextensible][object][local] */ 


EXTERN_C const IID IID_ISettingsNamespace;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F7D7BBA-20B3-11DA-81A5-0030F1642E3C")
    ISettingsNamespace : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetIdentity( 
            /* [retval][out] */ ISettingsIdentity **SettingsID) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Settings( 
            /* [retval][out] */ IItemEnumerator **Settings) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Save( 
            /* [in] */ BOOL PushSettings,
            /* [retval][out] */ ISettingsResult **Result) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSettingByPath( 
            /* [string][in] */ const WCHAR *Path,
            /* [retval][out] */ ISettingsItem **Setting) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateSettingByPath( 
            /* [string][in] */ const WCHAR *Path,
            /* [retval][out] */ ISettingsItem **Setting) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveSettingByPath( 
            /* [string][in] */ const WCHAR *Path) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAttribute( 
            /* [string][in] */ const WCHAR *Name,
            /* [retval][out] */ VARIANT *Value) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISettingsNamespaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISettingsNamespace * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISettingsNamespace * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISettingsNamespace * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetIdentity )( 
            ISettingsNamespace * This,
            /* [retval][out] */ ISettingsIdentity **SettingsID);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Settings )( 
            ISettingsNamespace * This,
            /* [retval][out] */ IItemEnumerator **Settings);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Save )( 
            ISettingsNamespace * This,
            /* [in] */ BOOL PushSettings,
            /* [retval][out] */ ISettingsResult **Result);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSettingByPath )( 
            ISettingsNamespace * This,
            /* [string][in] */ const WCHAR *Path,
            /* [retval][out] */ ISettingsItem **Setting);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateSettingByPath )( 
            ISettingsNamespace * This,
            /* [string][in] */ const WCHAR *Path,
            /* [retval][out] */ ISettingsItem **Setting);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveSettingByPath )( 
            ISettingsNamespace * This,
            /* [string][in] */ const WCHAR *Path);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAttribute )( 
            ISettingsNamespace * This,
            /* [string][in] */ const WCHAR *Name,
            /* [retval][out] */ VARIANT *Value);
        
        END_INTERFACE
    } ISettingsNamespaceVtbl;

    interface ISettingsNamespace
    {
        CONST_VTBL struct ISettingsNamespaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISettingsNamespace_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISettingsNamespace_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISettingsNamespace_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISettingsNamespace_GetIdentity(This,SettingsID)	\
    ( (This)->lpVtbl -> GetIdentity(This,SettingsID) ) 

#define ISettingsNamespace_Settings(This,Settings)	\
    ( (This)->lpVtbl -> Settings(This,Settings) ) 

#define ISettingsNamespace_Save(This,PushSettings,Result)	\
    ( (This)->lpVtbl -> Save(This,PushSettings,Result) ) 

#define ISettingsNamespace_GetSettingByPath(This,Path,Setting)	\
    ( (This)->lpVtbl -> GetSettingByPath(This,Path,Setting) ) 

#define ISettingsNamespace_CreateSettingByPath(This,Path,Setting)	\
    ( (This)->lpVtbl -> CreateSettingByPath(This,Path,Setting) ) 

#define ISettingsNamespace_RemoveSettingByPath(This,Path)	\
    ( (This)->lpVtbl -> RemoveSettingByPath(This,Path) ) 

#define ISettingsNamespace_GetAttribute(This,Name,Value)	\
    ( (This)->lpVtbl -> GetAttribute(This,Name,Value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISettingsNamespace_INTERFACE_DEFINED__ */


#ifndef __ISettingsResult_INTERFACE_DEFINED__
#define __ISettingsResult_INTERFACE_DEFINED__

/* interface ISettingsResult */
/* [helpstring][uuid][unique][nonextensible][object][local] */ 


EXTERN_C const IID IID_ISettingsResult;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F7D7BBC-20B3-11DA-81A5-0030F1642E3C")
    ISettingsResult : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDescription( 
            /* [retval][out] */ BSTR *description) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetErrorCode( 
            /* [retval][out] */ HRESULT *hrOut) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetContextDescription( 
            /* [retval][out] */ BSTR *description) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetLine( 
            /* [retval][out] */ DWORD *dwLine) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetColumn( 
            /* [retval][out] */ DWORD *dwColumn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSource( 
            /* [retval][out] */ BSTR *file) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISettingsResultVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISettingsResult * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISettingsResult * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISettingsResult * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDescription )( 
            ISettingsResult * This,
            /* [retval][out] */ BSTR *description);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetErrorCode )( 
            ISettingsResult * This,
            /* [retval][out] */ HRESULT *hrOut);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetContextDescription )( 
            ISettingsResult * This,
            /* [retval][out] */ BSTR *description);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetLine )( 
            ISettingsResult * This,
            /* [retval][out] */ DWORD *dwLine);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetColumn )( 
            ISettingsResult * This,
            /* [retval][out] */ DWORD *dwColumn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSource )( 
            ISettingsResult * This,
            /* [retval][out] */ BSTR *file);
        
        END_INTERFACE
    } ISettingsResultVtbl;

    interface ISettingsResult
    {
        CONST_VTBL struct ISettingsResultVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISettingsResult_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISettingsResult_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISettingsResult_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISettingsResult_GetDescription(This,description)	\
    ( (This)->lpVtbl -> GetDescription(This,description) ) 

#define ISettingsResult_GetErrorCode(This,hrOut)	\
    ( (This)->lpVtbl -> GetErrorCode(This,hrOut) ) 

#define ISettingsResult_GetContextDescription(This,description)	\
    ( (This)->lpVtbl -> GetContextDescription(This,description) ) 

#define ISettingsResult_GetLine(This,dwLine)	\
    ( (This)->lpVtbl -> GetLine(This,dwLine) ) 

#define ISettingsResult_GetColumn(This,dwColumn)	\
    ( (This)->lpVtbl -> GetColumn(This,dwColumn) ) 

#define ISettingsResult_GetSource(This,file)	\
    ( (This)->lpVtbl -> GetSource(This,file) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISettingsResult_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_wcmconfig_0000_0007 */
/* [local] */ 

#define LIMITED_VALIDATION_MODE    0x00000001


extern RPC_IF_HANDLE __MIDL_itf_wcmconfig_0000_0007_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_wcmconfig_0000_0007_v0_0_s_ifspec;

#ifndef __ISettingsContext_INTERFACE_DEFINED__
#define __ISettingsContext_INTERFACE_DEFINED__

/* interface ISettingsContext */
/* [helpstring][uuid][unique][nonextensible][object][local] */ 


EXTERN_C const IID IID_ISettingsContext;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F7D7BBD-20B3-11DA-81A5-0030F1642E3C")
    ISettingsContext : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Serialize( 
            /* [in] */ IStream *pStream,
            /* [in] */ ITargetInfo *pTarget) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Deserialize( 
            /* [in] */ IStream *pStream,
            /* [in] */ ITargetInfo *pTarget,
            /* [size_is][size_is][out] */ ISettingsResult ***pppResults,
            /* [retval][out] */ SIZE_T *pcResultCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetUserData( 
            /* [in] */ void *pUserData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetUserData( 
            /* [retval][out] */ void **pUserData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNamespaces( 
            /* [retval][out] */ IItemEnumerator **ppNamespaceIds) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStoredSettings( 
            /* [in] */ ISettingsIdentity *pIdentity,
            /* [out] */ IItemEnumerator **ppAddedSettings,
            /* [out] */ IItemEnumerator **ppModifiedSettings,
            /* [out] */ IItemEnumerator **ppDeletedSettings) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RevertSetting( 
            /* [in] */ ISettingsIdentity *pIdentity,
            /* [in] */ LPCWSTR pwzSetting) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISettingsContextVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISettingsContext * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISettingsContext * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISettingsContext * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Serialize )( 
            ISettingsContext * This,
            /* [in] */ IStream *pStream,
            /* [in] */ ITargetInfo *pTarget);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Deserialize )( 
            ISettingsContext * This,
            /* [in] */ IStream *pStream,
            /* [in] */ ITargetInfo *pTarget,
            /* [size_is][size_is][out] */ ISettingsResult ***pppResults,
            /* [retval][out] */ SIZE_T *pcResultCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetUserData )( 
            ISettingsContext * This,
            /* [in] */ void *pUserData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetUserData )( 
            ISettingsContext * This,
            /* [retval][out] */ void **pUserData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNamespaces )( 
            ISettingsContext * This,
            /* [retval][out] */ IItemEnumerator **ppNamespaceIds);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStoredSettings )( 
            ISettingsContext * This,
            /* [in] */ ISettingsIdentity *pIdentity,
            /* [out] */ IItemEnumerator **ppAddedSettings,
            /* [out] */ IItemEnumerator **ppModifiedSettings,
            /* [out] */ IItemEnumerator **ppDeletedSettings);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RevertSetting )( 
            ISettingsContext * This,
            /* [in] */ ISettingsIdentity *pIdentity,
            /* [in] */ LPCWSTR pwzSetting);
        
        END_INTERFACE
    } ISettingsContextVtbl;

    interface ISettingsContext
    {
        CONST_VTBL struct ISettingsContextVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISettingsContext_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISettingsContext_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISettingsContext_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISettingsContext_Serialize(This,pStream,pTarget)	\
    ( (This)->lpVtbl -> Serialize(This,pStream,pTarget) ) 

#define ISettingsContext_Deserialize(This,pStream,pTarget,pppResults,pcResultCount)	\
    ( (This)->lpVtbl -> Deserialize(This,pStream,pTarget,pppResults,pcResultCount) ) 

#define ISettingsContext_SetUserData(This,pUserData)	\
    ( (This)->lpVtbl -> SetUserData(This,pUserData) ) 

#define ISettingsContext_GetUserData(This,pUserData)	\
    ( (This)->lpVtbl -> GetUserData(This,pUserData) ) 

#define ISettingsContext_GetNamespaces(This,ppNamespaceIds)	\
    ( (This)->lpVtbl -> GetNamespaces(This,ppNamespaceIds) ) 

#define ISettingsContext_GetStoredSettings(This,pIdentity,ppAddedSettings,ppModifiedSettings,ppDeletedSettings)	\
    ( (This)->lpVtbl -> GetStoredSettings(This,pIdentity,ppAddedSettings,ppModifiedSettings,ppDeletedSettings) ) 

#define ISettingsContext_RevertSetting(This,pIdentity,pwzSetting)	\
    ( (This)->lpVtbl -> RevertSetting(This,pIdentity,pwzSetting) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISettingsContext_INTERFACE_DEFINED__ */



#ifndef __Wcm_LIBRARY_DEFINED__
#define __Wcm_LIBRARY_DEFINED__

/* library Wcm */
/* [version][lcid][helpstring][helpfile][uuid] */ 


EXTERN_C const IID LIBID_Wcm;

EXTERN_C const CLSID CLSID_SettingsEngine;

#ifdef __cplusplus

class DECLSPEC_UUID("9F7D7BB5-20B3-11DA-81A5-0030F1642E3C")
SettingsEngine;
#endif
#endif /* __Wcm_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif



