text: 
  
  /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  
  
   /* File created by MIDL compiler version 7.00.0555 */
  /* Compiler settings for casetup.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 __casetup_h__
  #define __casetup_h__
  
  #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  #pragma once
  #endif
  
  /* Forward Declarations */ 
  
  #ifndef __ICertSrvSetupKeyInformation_FWD_DEFINED__
  #define __ICertSrvSetupKeyInformation_FWD_DEFINED__
  typedef interface ICertSrvSetupKeyInformation ICertSrvSetupKeyInformation;
  #endif 	/* __ICertSrvSetupKeyInformation_FWD_DEFINED__ */
  
  
  #ifndef __ICertSrvSetupKeyInformationCollection_FWD_DEFINED__
  #define __ICertSrvSetupKeyInformationCollection_FWD_DEFINED__
  typedef interface ICertSrvSetupKeyInformationCollection ICertSrvSetupKeyInformationCollection;
  #endif 	/* __ICertSrvSetupKeyInformationCollection_FWD_DEFINED__ */
  
  
  #ifndef __ICertSrvSetup_FWD_DEFINED__
  #define __ICertSrvSetup_FWD_DEFINED__
  typedef interface ICertSrvSetup ICertSrvSetup;
  #endif 	/* __ICertSrvSetup_FWD_DEFINED__ */
  
  
  #ifndef __IMSCEPSetup_FWD_DEFINED__
  #define __IMSCEPSetup_FWD_DEFINED__
  typedef interface IMSCEPSetup IMSCEPSetup;
  #endif 	/* __IMSCEPSetup_FWD_DEFINED__ */
  
  
  #ifndef __ICertificateEnrollmentServerSetup_FWD_DEFINED__
  #define __ICertificateEnrollmentServerSetup_FWD_DEFINED__
  typedef interface ICertificateEnrollmentServerSetup ICertificateEnrollmentServerSetup;
  #endif 	/* __ICertificateEnrollmentServerSetup_FWD_DEFINED__ */
  
  
  #ifndef __ICertificateEnrollmentPolicyServerSetup_FWD_DEFINED__
  #define __ICertificateEnrollmentPolicyServerSetup_FWD_DEFINED__
  typedef interface ICertificateEnrollmentPolicyServerSetup ICertificateEnrollmentPolicyServerSetup;
  #endif 	/* __ICertificateEnrollmentPolicyServerSetup_FWD_DEFINED__ */
  
  
  #ifndef __CCertSrvSetupKeyInformation_FWD_DEFINED__
  #define __CCertSrvSetupKeyInformation_FWD_DEFINED__
  
  #ifdef __cplusplus
  typedef class CCertSrvSetupKeyInformation CCertSrvSetupKeyInformation;
  #else
  typedef struct CCertSrvSetupKeyInformation CCertSrvSetupKeyInformation;
  #endif /* __cplusplus */
  
  #endif 	/* __CCertSrvSetupKeyInformation_FWD_DEFINED__ */
  
  
  #ifndef __CCertSrvSetup_FWD_DEFINED__
  #define __CCertSrvSetup_FWD_DEFINED__
  
  #ifdef __cplusplus
  typedef class CCertSrvSetup CCertSrvSetup;
  #else
  typedef struct CCertSrvSetup CCertSrvSetup;
  #endif /* __cplusplus */
  
  #endif 	/* __CCertSrvSetup_FWD_DEFINED__ */
  
  
  #ifndef __CMSCEPSetup_FWD_DEFINED__
  #define __CMSCEPSetup_FWD_DEFINED__
  
  #ifdef __cplusplus
  typedef class CMSCEPSetup CMSCEPSetup;
  #else
  typedef struct CMSCEPSetup CMSCEPSetup;
  #endif /* __cplusplus */
  
  #endif 	/* __CMSCEPSetup_FWD_DEFINED__ */
  
  
  #ifndef __CCertificateEnrollmentServerSetup_FWD_DEFINED__
  #define __CCertificateEnrollmentServerSetup_FWD_DEFINED__
  
  #ifdef __cplusplus
  typedef class CCertificateEnrollmentServerSetup CCertificateEnrollmentServerSetup;
  #else
  typedef struct CCertificateEnrollmentServerSetup CCertificateEnrollmentServerSetup;
  #endif /* __cplusplus */
  
  #endif 	/* __CCertificateEnrollmentServerSetup_FWD_DEFINED__ */
  
  
  #ifndef __CCertificateEnrollmentPolicyServerSetup_FWD_DEFINED__
  #define __CCertificateEnrollmentPolicyServerSetup_FWD_DEFINED__
  
  #ifdef __cplusplus
  typedef class CCertificateEnrollmentPolicyServerSetup CCertificateEnrollmentPolicyServerSetup;
  #else
  typedef struct CCertificateEnrollmentPolicyServerSetup CCertificateEnrollmentPolicyServerSetup;
  #endif /* __cplusplus */
  
  #endif 	/* __CCertificateEnrollmentPolicyServerSetup_FWD_DEFINED__ */
  
  
  /* header files for imported files */
  #include "wtypes.h"
  #include "oaidl.h"
  
  #ifdef __cplusplus
  extern "C"{
  #endif 
  
  
  #ifndef __ICertSrvSetupKeyInformation_INTERFACE_DEFINED__
  #define __ICertSrvSetupKeyInformation_INTERFACE_DEFINED__
  
  /* interface ICertSrvSetupKeyInformation */
  /* [unique][dual][helpstring][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ICertSrvSetupKeyInformation;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("6ba73778-36da-4c39-8a85-bcfa7d000793")
      ICertSrvSetupKeyInformation : public IDispatch
      {
      public:
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ProviderName( 
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
          
          virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ProviderName( 
              /* [in] */ __RPC__in const BSTR bstrVal) = 0;
          
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Length( 
              /* [retval][out] */ __RPC__out LONG *pVal) = 0;
          
          virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Length( 
              /* [in] */ LONG lVal) = 0;
          
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Existing( 
              /* [retval][out] */ __RPC__out VARIANT_BOOL *pVal) = 0;
          
          virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Existing( 
              /* [in] */ VARIANT_BOOL bVal) = 0;
          
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ContainerName( 
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
          
          virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ContainerName( 
              /* [in] */ __RPC__in const BSTR bstrVal) = 0;
          
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_HashAlgorithm( 
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
          
          virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_HashAlgorithm( 
              /* [in] */ __RPC__in const BSTR bstrVal) = 0;
          
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExistingCACertificate( 
              /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
          
          virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ExistingCACertificate( 
              /* [in] */ VARIANT varVal) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct ICertSrvSetupKeyInformationVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [annotation][iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ICertSrvSetupKeyInformation * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ICertSrvSetupKeyInformation * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [out] */ __RPC__out UINT *pctinfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [in] */ UINT iTInfo,
              /* [in] */ LCID lcid,
              /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
              /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
              /* [in] */ LCID lcid,
              /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
          
          /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
              ICertSrvSetupKeyInformation * This,
              /* [in] */ DISPID dispIdMember,
              /* [in] */ REFIID riid,
              /* [in] */ LCID lcid,
              /* [in] */ WORD wFlags,
              /* [out][in] */ DISPPARAMS *pDispParams,
              /* [out] */ VARIANT *pVarResult,
              /* [out] */ EXCEPINFO *pExcepInfo,
              /* [out] */ UINT *puArgErr);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderName )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
          
          /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderName )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [in] */ __RPC__in const BSTR bstrVal);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [retval][out] */ __RPC__out LONG *pVal);
          
          /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Length )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [in] */ LONG lVal);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Existing )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [retval][out] */ __RPC__out VARIANT_BOOL *pVal);
          
          /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Existing )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [in] */ VARIANT_BOOL bVal);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerName )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
          
          /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerName )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [in] */ __RPC__in const BSTR bstrVal);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HashAlgorithm )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
          
          /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_HashAlgorithm )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [in] */ __RPC__in const BSTR bstrVal);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExistingCACertificate )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [retval][out] */ __RPC__out VARIANT *pVal);
          
          /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ExistingCACertificate )( 
              __RPC__in ICertSrvSetupKeyInformation * This,
              /* [in] */ VARIANT varVal);
          
          END_INTERFACE
      } ICertSrvSetupKeyInformationVtbl;
  
      interface ICertSrvSetupKeyInformation
      {
          CONST_VTBL struct ICertSrvSetupKeyInformationVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ICertSrvSetupKeyInformation_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ICertSrvSetupKeyInformation_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ICertSrvSetupKeyInformation_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ICertSrvSetupKeyInformation_GetTypeInfoCount(This,pctinfo)	\
      ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 
  
  #define ICertSrvSetupKeyInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
      ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 
  
  #define ICertSrvSetupKeyInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
      ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 
  
  #define ICertSrvSetupKeyInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
      ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 
  
  
  #define ICertSrvSetupKeyInformation_get_ProviderName(This,pVal)	\
      ( (This)->lpVtbl -> get_ProviderName(This,pVal) ) 
  
  #define ICertSrvSetupKeyInformation_put_ProviderName(This,bstrVal)	\
      ( (This)->lpVtbl -> put_ProviderName(This,bstrVal) ) 
  
  #define ICertSrvSetupKeyInformation_get_Length(This,pVal)	\
      ( (This)->lpVtbl -> get_Length(This,pVal) ) 
  
  #define ICertSrvSetupKeyInformation_put_Length(This,lVal)	\
      ( (This)->lpVtbl -> put_Length(This,lVal) ) 
  
  #define ICertSrvSetupKeyInformation_get_Existing(This,pVal)	\
      ( (This)->lpVtbl -> get_Existing(This,pVal) ) 
  
  #define ICertSrvSetupKeyInformation_put_Existing(This,bVal)	\
      ( (This)->lpVtbl -> put_Existing(This,bVal) ) 
  
  #define ICertSrvSetupKeyInformation_get_ContainerName(This,pVal)	\
      ( (This)->lpVtbl -> get_ContainerName(This,pVal) ) 
  
  #define ICertSrvSetupKeyInformation_put_ContainerName(This,bstrVal)	\
      ( (This)->lpVtbl -> put_ContainerName(This,bstrVal) ) 
  
  #define ICertSrvSetupKeyInformation_get_HashAlgorithm(This,pVal)	\
      ( (This)->lpVtbl -> get_HashAlgorithm(This,pVal) ) 
  
  #define ICertSrvSetupKeyInformation_put_HashAlgorithm(This,bstrVal)	\
      ( (This)->lpVtbl -> put_HashAlgorithm(This,bstrVal) ) 
  
  #define ICertSrvSetupKeyInformation_get_ExistingCACertificate(This,pVal)	\
      ( (This)->lpVtbl -> get_ExistingCACertificate(This,pVal) ) 
  
  #define ICertSrvSetupKeyInformation_put_ExistingCACertificate(This,varVal)	\
      ( (This)->lpVtbl -> put_ExistingCACertificate(This,varVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ICertSrvSetupKeyInformation_INTERFACE_DEFINED__ */
  
  
  #ifndef __ICertSrvSetupKeyInformationCollection_INTERFACE_DEFINED__
  #define __ICertSrvSetupKeyInformationCollection_INTERFACE_DEFINED__
  
  /* interface ICertSrvSetupKeyInformationCollection */
  /* [unique][helpstring][nonextensible][dual][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ICertSrvSetupKeyInformationCollection;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("e65c8b00-e58f-41f9-a9ec-a28d7427c844")
      ICertSrvSetupKeyInformationCollection : public IDispatch
      {
      public:
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
              /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppVal) = 0;
          
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
              /* [in] */ LONG Index,
              /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
          
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
              /* [retval][out] */ __RPC__out LONG *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Add( 
              /* [in] */ __RPC__in_opt ICertSrvSetupKeyInformation *pIKeyInformation) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct ICertSrvSetupKeyInformationCollectionVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [annotation][iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This,
              /* [out] */ __RPC__out UINT *pctinfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This,
              /* [in] */ UINT iTInfo,
              /* [in] */ LCID lcid,
              /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
              /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
              /* [in] */ LCID lcid,
              /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
          
          /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
              ICertSrvSetupKeyInformationCollection * This,
              /* [in] */ DISPID dispIdMember,
              /* [in] */ REFIID riid,
              /* [in] */ LCID lcid,
              /* [in] */ WORD wFlags,
              /* [out][in] */ DISPPARAMS *pDispParams,
              /* [out] */ VARIANT *pVarResult,
              /* [out] */ EXCEPINFO *pExcepInfo,
              /* [out] */ UINT *puArgErr);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This,
              /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppVal);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This,
              /* [in] */ LONG Index,
              /* [retval][out] */ __RPC__out VARIANT *pVal);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This,
              /* [retval][out] */ __RPC__out LONG *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *Add )( 
              __RPC__in ICertSrvSetupKeyInformationCollection * This,
              /* [in] */ __RPC__in_opt ICertSrvSetupKeyInformation *pIKeyInformation);
          
          END_INTERFACE
      } ICertSrvSetupKeyInformationCollectionVtbl;
  
      interface ICertSrvSetupKeyInformationCollection
      {
          CONST_VTBL struct ICertSrvSetupKeyInformationCollectionVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ICertSrvSetupKeyInformationCollection_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ICertSrvSetupKeyInformationCollection_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ICertSrvSetupKeyInformationCollection_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ICertSrvSetupKeyInformationCollection_GetTypeInfoCount(This,pctinfo)	\
      ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 
  
  #define ICertSrvSetupKeyInformationCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
      ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 
  
  #define ICertSrvSetupKeyInformationCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
      ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 
  
  #define ICertSrvSetupKeyInformationCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
      ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 
  
  
  #define ICertSrvSetupKeyInformationCollection_get__NewEnum(This,ppVal)	\
      ( (This)->lpVtbl -> get__NewEnum(This,ppVal) ) 
  
  #define ICertSrvSetupKeyInformationCollection_get_Item(This,Index,pVal)	\
      ( (This)->lpVtbl -> get_Item(This,Index,pVal) ) 
  
  #define ICertSrvSetupKeyInformationCollection_get_Count(This,pVal)	\
      ( (This)->lpVtbl -> get_Count(This,pVal) ) 
  
  #define ICertSrvSetupKeyInformationCollection_Add(This,pIKeyInformation)	\
      ( (This)->lpVtbl -> Add(This,pIKeyInformation) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ICertSrvSetupKeyInformationCollection_INTERFACE_DEFINED__ */
  
  
  /* interface __MIDL_itf_casetup_0000_0002 */
  /* [local] */ 
  
  typedef /* [public][public][public][public] */ 
  enum __MIDL___MIDL_itf_casetup_0000_0002_0001
      {	ENUM_SETUPPROP_INVALID	= -1,
  	ENUM_SETUPPROP_CATYPE	= 0,
  	ENUM_SETUPPROP_CAKEYINFORMATION	= 1,
  	ENUM_SETUPPROP_INTERACTIVE	= 2,
  	ENUM_SETUPPROP_CANAME	= 3,
  	ENUM_SETUPPROP_CADSSUFFIX	= 4,
  	ENUM_SETUPPROP_VALIDITYPERIOD	= 5,
  	ENUM_SETUPPROP_VALIDITYPERIODUNIT	= 6,
  	ENUM_SETUPPROP_EXPIRATIONDATE	= 7,
  	ENUM_SETUPPROP_PRESERVEDATABASE	= 8,
  	ENUM_SETUPPROP_DATABASEDIRECTORY	= 9,
  	ENUM_SETUPPROP_LOGDIRECTORY	= 10,
  	ENUM_SETUPPROP_SHAREDFOLDER	= 11,
  	ENUM_SETUPPROP_PARENTCAMACHINE	= 12,
  	ENUM_SETUPPROP_PARENTCANAME	= 13,
  	ENUM_SETUPPROP_REQUESTFILE	= 14,
  	ENUM_SETUPPROP_WEBCAMACHINE	= 15,
  	ENUM_SETUPPROP_WEBCANAME	= 16
      } 	CASetupProperty;
  
  
  
  extern RPC_IF_HANDLE __MIDL_itf_casetup_0000_0002_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_casetup_0000_0002_v0_0_s_ifspec;
  
  #ifndef __ICertSrvSetup_INTERFACE_DEFINED__
  #define __ICertSrvSetup_INTERFACE_DEFINED__
  
  /* interface ICertSrvSetup */
  /* [unique][dual][helpstring][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ICertSrvSetup;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("b760a1bb-4784-44c0-8f12-555f0780ff25")
      ICertSrvSetup : public IDispatch
      {
      public:
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CAErrorId( 
              /* [retval][out] */ __RPC__out LONG *pVal) = 0;
          
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CAErrorString( 
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE InitializeDefaults( 
              /* [in] */ VARIANT_BOOL bServer,
              /* [in] */ VARIANT_BOOL bClient) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetCASetupProperty( 
              /* [in] */ CASetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT *pPropertyValue) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetCASetupProperty( 
              /* [in] */ CASetupProperty propertyId,
              /* [in] */ __RPC__in VARIANT *pPropertyValue) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE IsPropertyEditable( 
              /* [in] */ CASetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT_BOOL *pbEditable) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetSupportedCATypes( 
              /* [retval][out] */ __RPC__out VARIANT *pCATypes) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetProviderNameList( 
              /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetKeyLengthList( 
              /* [in] */ __RPC__in const BSTR bstrProviderName,
              /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetHashAlgorithmList( 
              /* [in] */ __RPC__in const BSTR bstrProviderName,
              /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetPrivateKeyContainerList( 
              /* [in] */ __RPC__in const BSTR bstrProviderName,
              /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetExistingCACertificates( 
              /* [retval][out] */ __RPC__deref_out_opt ICertSrvSetupKeyInformationCollection **ppVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE CAImportPFX( 
              /* [in] */ __RPC__in const BSTR bstrFileName,
              /* [in] */ __RPC__in const BSTR bstrPasswd,
              /* [in] */ VARIANT_BOOL bOverwriteExistingKey,
              /* [retval][out] */ __RPC__deref_out_opt ICertSrvSetupKeyInformation **ppVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetCADistinguishedName( 
              /* [in] */ __RPC__in const BSTR bstrCADN,
              /* [in] */ VARIANT_BOOL bIgnoreUnicode,
              /* [in] */ VARIANT_BOOL bOverwriteExistingKey,
              /* [in] */ VARIANT_BOOL bOverwriteExistingCAInDS) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetDatabaseInformation( 
              /* [in] */ __RPC__in const BSTR bstrDBDirectory,
              /* [in] */ __RPC__in const BSTR bstrLogDirectory,
              /* [in] */ __RPC__in const BSTR bstrSharedFolder,
              /* [in] */ VARIANT_BOOL bForceOverwrite) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetParentCAInformation( 
              /* [in] */ __RPC__in const BSTR bstrCAConfiguration) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetWebCAInformation( 
              /* [in] */ __RPC__in const BSTR bstrCAConfiguration) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Install( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE PreUnInstall( 
              /* [in] */ VARIANT_BOOL bClientOnly) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE PostUnInstall( void) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct ICertSrvSetupVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [annotation][iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ICertSrvSetup * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ICertSrvSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
              __RPC__in ICertSrvSetup * This,
              /* [out] */ __RPC__out UINT *pctinfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ UINT iTInfo,
              /* [in] */ LCID lcid,
              /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
              /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
              /* [in] */ LCID lcid,
              /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
          
          /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
              ICertSrvSetup * This,
              /* [in] */ DISPID dispIdMember,
              /* [in] */ REFIID riid,
              /* [in] */ LCID lcid,
              /* [in] */ WORD wFlags,
              /* [out][in] */ DISPPARAMS *pDispParams,
              /* [out] */ VARIANT *pVarResult,
              /* [out] */ EXCEPINFO *pExcepInfo,
              /* [out] */ UINT *puArgErr);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CAErrorId )( 
              __RPC__in ICertSrvSetup * This,
              /* [retval][out] */ __RPC__out LONG *pVal);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CAErrorString )( 
              __RPC__in ICertSrvSetup * This,
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *InitializeDefaults )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ VARIANT_BOOL bServer,
              /* [in] */ VARIANT_BOOL bClient);
          
          HRESULT ( STDMETHODCALLTYPE *GetCASetupProperty )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ CASetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT *pPropertyValue);
          
          HRESULT ( STDMETHODCALLTYPE *SetCASetupProperty )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ CASetupProperty propertyId,
              /* [in] */ __RPC__in VARIANT *pPropertyValue);
          
          HRESULT ( STDMETHODCALLTYPE *IsPropertyEditable )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ CASetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT_BOOL *pbEditable);
          
          HRESULT ( STDMETHODCALLTYPE *GetSupportedCATypes )( 
              __RPC__in ICertSrvSetup * This,
              /* [retval][out] */ __RPC__out VARIANT *pCATypes);
          
          HRESULT ( STDMETHODCALLTYPE *GetProviderNameList )( 
              __RPC__in ICertSrvSetup * This,
              /* [retval][out] */ __RPC__out VARIANT *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *GetKeyLengthList )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in const BSTR bstrProviderName,
              /* [retval][out] */ __RPC__out VARIANT *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *GetHashAlgorithmList )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in const BSTR bstrProviderName,
              /* [retval][out] */ __RPC__out VARIANT *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *GetPrivateKeyContainerList )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in const BSTR bstrProviderName,
              /* [retval][out] */ __RPC__out VARIANT *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *GetExistingCACertificates )( 
              __RPC__in ICertSrvSetup * This,
              /* [retval][out] */ __RPC__deref_out_opt ICertSrvSetupKeyInformationCollection **ppVal);
          
          HRESULT ( STDMETHODCALLTYPE *CAImportPFX )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in const BSTR bstrFileName,
              /* [in] */ __RPC__in const BSTR bstrPasswd,
              /* [in] */ VARIANT_BOOL bOverwriteExistingKey,
              /* [retval][out] */ __RPC__deref_out_opt ICertSrvSetupKeyInformation **ppVal);
          
          HRESULT ( STDMETHODCALLTYPE *SetCADistinguishedName )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in const BSTR bstrCADN,
              /* [in] */ VARIANT_BOOL bIgnoreUnicode,
              /* [in] */ VARIANT_BOOL bOverwriteExistingKey,
              /* [in] */ VARIANT_BOOL bOverwriteExistingCAInDS);
          
          HRESULT ( STDMETHODCALLTYPE *SetDatabaseInformation )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in const BSTR bstrDBDirectory,
              /* [in] */ __RPC__in const BSTR bstrLogDirectory,
              /* [in] */ __RPC__in const BSTR bstrSharedFolder,
              /* [in] */ VARIANT_BOOL bForceOverwrite);
          
          HRESULT ( STDMETHODCALLTYPE *SetParentCAInformation )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in const BSTR bstrCAConfiguration);
          
          HRESULT ( STDMETHODCALLTYPE *SetWebCAInformation )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ __RPC__in const BSTR bstrCAConfiguration);
          
          HRESULT ( STDMETHODCALLTYPE *Install )( 
              __RPC__in ICertSrvSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *PreUnInstall )( 
              __RPC__in ICertSrvSetup * This,
              /* [in] */ VARIANT_BOOL bClientOnly);
          
          HRESULT ( STDMETHODCALLTYPE *PostUnInstall )( 
              __RPC__in ICertSrvSetup * This);
          
          END_INTERFACE
      } ICertSrvSetupVtbl;
  
      interface ICertSrvSetup
      {
          CONST_VTBL struct ICertSrvSetupVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ICertSrvSetup_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ICertSrvSetup_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ICertSrvSetup_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ICertSrvSetup_GetTypeInfoCount(This,pctinfo)	\
      ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 
  
  #define ICertSrvSetup_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
      ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 
  
  #define ICertSrvSetup_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
      ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 
  
  #define ICertSrvSetup_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
      ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 
  
  
  #define ICertSrvSetup_get_CAErrorId(This,pVal)	\
      ( (This)->lpVtbl -> get_CAErrorId(This,pVal) ) 
  
  #define ICertSrvSetup_get_CAErrorString(This,pVal)	\
      ( (This)->lpVtbl -> get_CAErrorString(This,pVal) ) 
  
  #define ICertSrvSetup_InitializeDefaults(This,bServer,bClient)	\
      ( (This)->lpVtbl -> InitializeDefaults(This,bServer,bClient) ) 
  
  #define ICertSrvSetup_GetCASetupProperty(This,propertyId,pPropertyValue)	\
      ( (This)->lpVtbl -> GetCASetupProperty(This,propertyId,pPropertyValue) ) 
  
  #define ICertSrvSetup_SetCASetupProperty(This,propertyId,pPropertyValue)	\
      ( (This)->lpVtbl -> SetCASetupProperty(This,propertyId,pPropertyValue) ) 
  
  #define ICertSrvSetup_IsPropertyEditable(This,propertyId,pbEditable)	\
      ( (This)->lpVtbl -> IsPropertyEditable(This,propertyId,pbEditable) ) 
  
  #define ICertSrvSetup_GetSupportedCATypes(This,pCATypes)	\
      ( (This)->lpVtbl -> GetSupportedCATypes(This,pCATypes) ) 
  
  #define ICertSrvSetup_GetProviderNameList(This,pVal)	\
      ( (This)->lpVtbl -> GetProviderNameList(This,pVal) ) 
  
  #define ICertSrvSetup_GetKeyLengthList(This,bstrProviderName,pVal)	\
      ( (This)->lpVtbl -> GetKeyLengthList(This,bstrProviderName,pVal) ) 
  
  #define ICertSrvSetup_GetHashAlgorithmList(This,bstrProviderName,pVal)	\
      ( (This)->lpVtbl -> GetHashAlgorithmList(This,bstrProviderName,pVal) ) 
  
  #define ICertSrvSetup_GetPrivateKeyContainerList(This,bstrProviderName,pVal)	\
      ( (This)->lpVtbl -> GetPrivateKeyContainerList(This,bstrProviderName,pVal) ) 
  
  #define ICertSrvSetup_GetExistingCACertificates(This,ppVal)	\
      ( (This)->lpVtbl -> GetExistingCACertificates(This,ppVal) ) 
  
  #define ICertSrvSetup_CAImportPFX(This,bstrFileName,bstrPasswd,bOverwriteExistingKey,ppVal)	\
      ( (This)->lpVtbl -> CAImportPFX(This,bstrFileName,bstrPasswd,bOverwriteExistingKey,ppVal) ) 
  
  #define ICertSrvSetup_SetCADistinguishedName(This,bstrCADN,bIgnoreUnicode,bOverwriteExistingKey,bOverwriteExistingCAInDS)	\
      ( (This)->lpVtbl -> SetCADistinguishedName(This,bstrCADN,bIgnoreUnicode,bOverwriteExistingKey,bOverwriteExistingCAInDS) ) 
  
  #define ICertSrvSetup_SetDatabaseInformation(This,bstrDBDirectory,bstrLogDirectory,bstrSharedFolder,bForceOverwrite)	\
      ( (This)->lpVtbl -> SetDatabaseInformation(This,bstrDBDirectory,bstrLogDirectory,bstrSharedFolder,bForceOverwrite) ) 
  
  #define ICertSrvSetup_SetParentCAInformation(This,bstrCAConfiguration)	\
      ( (This)->lpVtbl -> SetParentCAInformation(This,bstrCAConfiguration) ) 
  
  #define ICertSrvSetup_SetWebCAInformation(This,bstrCAConfiguration)	\
      ( (This)->lpVtbl -> SetWebCAInformation(This,bstrCAConfiguration) ) 
  
  #define ICertSrvSetup_Install(This)	\
      ( (This)->lpVtbl -> Install(This) ) 
  
  #define ICertSrvSetup_PreUnInstall(This,bClientOnly)	\
      ( (This)->lpVtbl -> PreUnInstall(This,bClientOnly) ) 
  
  #define ICertSrvSetup_PostUnInstall(This)	\
      ( (This)->lpVtbl -> PostUnInstall(This) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ICertSrvSetup_INTERFACE_DEFINED__ */
  
  
  /* interface __MIDL_itf_casetup_0000_0003 */
  /* [local] */ 
  
  typedef /* [public][public][public] */ 
  enum __MIDL___MIDL_itf_casetup_0000_0003_0001
      {	ENUM_CEPSETUPPROP_USELOCALSYSTEM	= 0,
  	ENUM_CEPSETUPPROP_USECHALLENGE	= 1,
  	ENUM_CEPSETUPPROP_RANAME_CN	= 2,
  	ENUM_CEPSETUPPROP_RANAME_EMAIL	= 3,
  	ENUM_CEPSETUPPROP_RANAME_COMPANY	= 4,
  	ENUM_CEPSETUPPROP_RANAME_DEPT	= 5,
  	ENUM_CEPSETUPPROP_RANAME_CITY	= 6,
  	ENUM_CEPSETUPPROP_RANAME_STATE	= 7,
  	ENUM_CEPSETUPPROP_RANAME_COUNTRY	= 8,
  	ENUM_CEPSETUPPROP_SIGNINGKEYINFORMATION	= 9,
  	ENUM_CEPSETUPPROP_EXCHANGEKEYINFORMATION	= 10,
  	ENUM_CEPSETUPPROP_CAINFORMATION	= 11,
  	ENUM_CEPSETUPPROP_MSCEPURL	= 12,
  	ENUM_CEPSETUPPROP_CHALLENGEURL	= 13
      } 	MSCEPSetupProperty;
  
  
  
  extern RPC_IF_HANDLE __MIDL_itf_casetup_0000_0003_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_casetup_0000_0003_v0_0_s_ifspec;
  
  #ifndef __IMSCEPSetup_INTERFACE_DEFINED__
  #define __IMSCEPSetup_INTERFACE_DEFINED__
  
  /* interface IMSCEPSetup */
  /* [unique][dual][helpstring][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IMSCEPSetup;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("4f7761bb-9f3b-4592-9ee0-9a73259c313e")
      IMSCEPSetup : public IDispatch
      {
      public:
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MSCEPErrorId( 
              /* [retval][out] */ __RPC__out LONG *pVal) = 0;
          
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MSCEPErrorString( 
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE InitializeDefaults( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetMSCEPSetupProperty( 
              /* [in] */ MSCEPSetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetMSCEPSetupProperty( 
              /* [in] */ MSCEPSetupProperty propertyId,
              /* [in] */ __RPC__in VARIANT *pPropertyValue) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetAccountInformation( 
              /* [in] */ __RPC__in const BSTR bstrUserName,
              /* [in] */ __RPC__in const BSTR bstrPassword) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE IsMSCEPStoreEmpty( 
              /* [retval][out] */ __RPC__out VARIANT_BOOL *pbEmpty) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetProviderNameList( 
              /* [in] */ VARIANT_BOOL bExchange,
              /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetKeyLengthList( 
              /* [in] */ VARIANT_BOOL bExchange,
              /* [in] */ __RPC__in const BSTR bstrProviderName,
              /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Install( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE PreUnInstall( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE PostUnInstall( void) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct IMSCEPSetupVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IMSCEPSetup * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [annotation][iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IMSCEPSetup * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IMSCEPSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
              __RPC__in IMSCEPSetup * This,
              /* [out] */ __RPC__out UINT *pctinfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
              __RPC__in IMSCEPSetup * This,
              /* [in] */ UINT iTInfo,
              /* [in] */ LCID lcid,
              /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
              __RPC__in IMSCEPSetup * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
              /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
              /* [in] */ LCID lcid,
              /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
          
          /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
              IMSCEPSetup * This,
              /* [in] */ DISPID dispIdMember,
              /* [in] */ REFIID riid,
              /* [in] */ LCID lcid,
              /* [in] */ WORD wFlags,
              /* [out][in] */ DISPPARAMS *pDispParams,
              /* [out] */ VARIANT *pVarResult,
              /* [out] */ EXCEPINFO *pExcepInfo,
              /* [out] */ UINT *puArgErr);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MSCEPErrorId )( 
              __RPC__in IMSCEPSetup * This,
              /* [retval][out] */ __RPC__out LONG *pVal);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MSCEPErrorString )( 
              __RPC__in IMSCEPSetup * This,
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *InitializeDefaults )( 
              __RPC__in IMSCEPSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetMSCEPSetupProperty )( 
              __RPC__in IMSCEPSetup * This,
              /* [in] */ MSCEPSetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *SetMSCEPSetupProperty )( 
              __RPC__in IMSCEPSetup * This,
              /* [in] */ MSCEPSetupProperty propertyId,
              /* [in] */ __RPC__in VARIANT *pPropertyValue);
          
          HRESULT ( STDMETHODCALLTYPE *SetAccountInformation )( 
              __RPC__in IMSCEPSetup * This,
              /* [in] */ __RPC__in const BSTR bstrUserName,
              /* [in] */ __RPC__in const BSTR bstrPassword);
          
          HRESULT ( STDMETHODCALLTYPE *IsMSCEPStoreEmpty )( 
              __RPC__in IMSCEPSetup * This,
              /* [retval][out] */ __RPC__out VARIANT_BOOL *pbEmpty);
          
          HRESULT ( STDMETHODCALLTYPE *GetProviderNameList )( 
              __RPC__in IMSCEPSetup * This,
              /* [in] */ VARIANT_BOOL bExchange,
              /* [retval][out] */ __RPC__out VARIANT *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *GetKeyLengthList )( 
              __RPC__in IMSCEPSetup * This,
              /* [in] */ VARIANT_BOOL bExchange,
              /* [in] */ __RPC__in const BSTR bstrProviderName,
              /* [retval][out] */ __RPC__out VARIANT *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *Install )( 
              __RPC__in IMSCEPSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *PreUnInstall )( 
              __RPC__in IMSCEPSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *PostUnInstall )( 
              __RPC__in IMSCEPSetup * This);
          
          END_INTERFACE
      } IMSCEPSetupVtbl;
  
      interface IMSCEPSetup
      {
          CONST_VTBL struct IMSCEPSetupVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IMSCEPSetup_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IMSCEPSetup_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IMSCEPSetup_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IMSCEPSetup_GetTypeInfoCount(This,pctinfo)	\
      ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 
  
  #define IMSCEPSetup_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
      ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 
  
  #define IMSCEPSetup_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
      ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 
  
  #define IMSCEPSetup_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
      ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 
  
  
  #define IMSCEPSetup_get_MSCEPErrorId(This,pVal)	\
      ( (This)->lpVtbl -> get_MSCEPErrorId(This,pVal) ) 
  
  #define IMSCEPSetup_get_MSCEPErrorString(This,pVal)	\
      ( (This)->lpVtbl -> get_MSCEPErrorString(This,pVal) ) 
  
  #define IMSCEPSetup_InitializeDefaults(This)	\
      ( (This)->lpVtbl -> InitializeDefaults(This) ) 
  
  #define IMSCEPSetup_GetMSCEPSetupProperty(This,propertyId,pVal)	\
      ( (This)->lpVtbl -> GetMSCEPSetupProperty(This,propertyId,pVal) ) 
  
  #define IMSCEPSetup_SetMSCEPSetupProperty(This,propertyId,pPropertyValue)	\
      ( (This)->lpVtbl -> SetMSCEPSetupProperty(This,propertyId,pPropertyValue) ) 
  
  #define IMSCEPSetup_SetAccountInformation(This,bstrUserName,bstrPassword)	\
      ( (This)->lpVtbl -> SetAccountInformation(This,bstrUserName,bstrPassword) ) 
  
  #define IMSCEPSetup_IsMSCEPStoreEmpty(This,pbEmpty)	\
      ( (This)->lpVtbl -> IsMSCEPStoreEmpty(This,pbEmpty) ) 
  
  #define IMSCEPSetup_GetProviderNameList(This,bExchange,pVal)	\
      ( (This)->lpVtbl -> GetProviderNameList(This,bExchange,pVal) ) 
  
  #define IMSCEPSetup_GetKeyLengthList(This,bExchange,bstrProviderName,pVal)	\
      ( (This)->lpVtbl -> GetKeyLengthList(This,bExchange,bstrProviderName,pVal) ) 
  
  #define IMSCEPSetup_Install(This)	\
      ( (This)->lpVtbl -> Install(This) ) 
  
  #define IMSCEPSetup_PreUnInstall(This)	\
      ( (This)->lpVtbl -> PreUnInstall(This) ) 
  
  #define IMSCEPSetup_PostUnInstall(This)	\
      ( (This)->lpVtbl -> PostUnInstall(This) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IMSCEPSetup_INTERFACE_DEFINED__ */
  
  
  /* interface __MIDL_itf_casetup_0000_0004 */
  /* [local] */ 
  
  typedef /* [public][public][public] */ 
  enum __MIDL___MIDL_itf_casetup_0000_0004_0001
      {	ENUM_CESSETUPPROP_USE_IISAPPPOOLIDENTITY	= 0,
  	ENUM_CESSETUPPROP_CACONFIG	= 1,
  	ENUM_CESSETUPPROP_AUTHENTICATION	= 2,
  	ENUM_CESSETUPPROP_SSLCERTHASH	= 3,
  	ENUM_CESSETUPPROP_URL	= 4,
  	ENUM_CESSETUPPROP_RENEWALONLY	= 5
      } 	CESSetupProperty;
  
  
  
  extern RPC_IF_HANDLE __MIDL_itf_casetup_0000_0004_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_casetup_0000_0004_v0_0_s_ifspec;
  
  #ifndef __ICertificateEnrollmentServerSetup_INTERFACE_DEFINED__
  #define __ICertificateEnrollmentServerSetup_INTERFACE_DEFINED__
  
  /* interface ICertificateEnrollmentServerSetup */
  /* [unique][dual][helpstring][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ICertificateEnrollmentServerSetup;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("70027FDB-9DD9-4921-8944-B35CB31BD2EC")
      ICertificateEnrollmentServerSetup : public IDispatch
      {
      public:
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ErrorString( 
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE InitializeInstallDefaults( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetProperty( 
              /* [in] */ CESSetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT *pPropertyValue) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetProperty( 
              /* [in] */ CESSetupProperty propertyId,
              /* [in] */ __RPC__in VARIANT *pPropertyValue) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetApplicationPoolCredentials( 
              /* [in] */ __RPC__in const BSTR bstrUsername,
              /* [in] */ __RPC__in const BSTR bstrPassword) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Install( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE UnInstall( 
              /* [optional][in] */ __RPC__in VARIANT *pCAConfig,
              /* [optional][in] */ __RPC__in VARIANT *pAuthentication) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct ICertificateEnrollmentServerSetupVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ICertificateEnrollmentServerSetup * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [annotation][iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ICertificateEnrollmentServerSetup * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ICertificateEnrollmentServerSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
              __RPC__in ICertificateEnrollmentServerSetup * This,
              /* [out] */ __RPC__out UINT *pctinfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
              __RPC__in ICertificateEnrollmentServerSetup * This,
              /* [in] */ UINT iTInfo,
              /* [in] */ LCID lcid,
              /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
              __RPC__in ICertificateEnrollmentServerSetup * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
              /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
              /* [in] */ LCID lcid,
              /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
          
          /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
              ICertificateEnrollmentServerSetup * This,
              /* [in] */ DISPID dispIdMember,
              /* [in] */ REFIID riid,
              /* [in] */ LCID lcid,
              /* [in] */ WORD wFlags,
              /* [out][in] */ DISPPARAMS *pDispParams,
              /* [out] */ VARIANT *pVarResult,
              /* [out] */ EXCEPINFO *pExcepInfo,
              /* [out] */ UINT *puArgErr);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ErrorString )( 
              __RPC__in ICertificateEnrollmentServerSetup * This,
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *InitializeInstallDefaults )( 
              __RPC__in ICertificateEnrollmentServerSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetProperty )( 
              __RPC__in ICertificateEnrollmentServerSetup * This,
              /* [in] */ CESSetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT *pPropertyValue);
          
          HRESULT ( STDMETHODCALLTYPE *SetProperty )( 
              __RPC__in ICertificateEnrollmentServerSetup * This,
              /* [in] */ CESSetupProperty propertyId,
              /* [in] */ __RPC__in VARIANT *pPropertyValue);
          
          HRESULT ( STDMETHODCALLTYPE *SetApplicationPoolCredentials )( 
              __RPC__in ICertificateEnrollmentServerSetup * This,
              /* [in] */ __RPC__in const BSTR bstrUsername,
              /* [in] */ __RPC__in const BSTR bstrPassword);
          
          HRESULT ( STDMETHODCALLTYPE *Install )( 
              __RPC__in ICertificateEnrollmentServerSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *UnInstall )( 
              __RPC__in ICertificateEnrollmentServerSetup * This,
              /* [optional][in] */ __RPC__in VARIANT *pCAConfig,
              /* [optional][in] */ __RPC__in VARIANT *pAuthentication);
          
          END_INTERFACE
      } ICertificateEnrollmentServerSetupVtbl;
  
      interface ICertificateEnrollmentServerSetup
      {
          CONST_VTBL struct ICertificateEnrollmentServerSetupVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ICertificateEnrollmentServerSetup_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ICertificateEnrollmentServerSetup_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ICertificateEnrollmentServerSetup_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ICertificateEnrollmentServerSetup_GetTypeInfoCount(This,pctinfo)	\
      ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 
  
  #define ICertificateEnrollmentServerSetup_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
      ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 
  
  #define ICertificateEnrollmentServerSetup_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
      ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 
  
  #define ICertificateEnrollmentServerSetup_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
      ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 
  
  
  #define ICertificateEnrollmentServerSetup_get_ErrorString(This,pVal)	\
      ( (This)->lpVtbl -> get_ErrorString(This,pVal) ) 
  
  #define ICertificateEnrollmentServerSetup_InitializeInstallDefaults(This)	\
      ( (This)->lpVtbl -> InitializeInstallDefaults(This) ) 
  
  #define ICertificateEnrollmentServerSetup_GetProperty(This,propertyId,pPropertyValue)	\
      ( (This)->lpVtbl -> GetProperty(This,propertyId,pPropertyValue) ) 
  
  #define ICertificateEnrollmentServerSetup_SetProperty(This,propertyId,pPropertyValue)	\
      ( (This)->lpVtbl -> SetProperty(This,propertyId,pPropertyValue) ) 
  
  #define ICertificateEnrollmentServerSetup_SetApplicationPoolCredentials(This,bstrUsername,bstrPassword)	\
      ( (This)->lpVtbl -> SetApplicationPoolCredentials(This,bstrUsername,bstrPassword) ) 
  
  #define ICertificateEnrollmentServerSetup_Install(This)	\
      ( (This)->lpVtbl -> Install(This) ) 
  
  #define ICertificateEnrollmentServerSetup_UnInstall(This,pCAConfig,pAuthentication)	\
      ( (This)->lpVtbl -> UnInstall(This,pCAConfig,pAuthentication) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ICertificateEnrollmentServerSetup_INTERFACE_DEFINED__ */
  
  
  /* interface __MIDL_itf_casetup_0000_0005 */
  /* [local] */ 
  
  typedef /* [public][public][public] */ 
  enum __MIDL___MIDL_itf_casetup_0000_0005_0001
      {	ENUM_CEPSETUPPROP_AUTHENTICATION	= 0,
  	ENUM_CEPSETUPPROP_SSLCERTHASH	= 1,
  	ENUM_CEPSETUPPROP_URL	= 2
      } 	CEPSetupProperty;
  
  
  
  extern RPC_IF_HANDLE __MIDL_itf_casetup_0000_0005_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_casetup_0000_0005_v0_0_s_ifspec;
  
  #ifndef __ICertificateEnrollmentPolicyServerSetup_INTERFACE_DEFINED__
  #define __ICertificateEnrollmentPolicyServerSetup_INTERFACE_DEFINED__
  
  /* interface ICertificateEnrollmentPolicyServerSetup */
  /* [unique][dual][helpstring][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ICertificateEnrollmentPolicyServerSetup;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("859252CC-238C-4a88-B8FD-A37E7D04E68B")
      ICertificateEnrollmentPolicyServerSetup : public IDispatch
      {
      public:
          virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ErrorString( 
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE InitializeInstallDefaults( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetProperty( 
              /* [in] */ CEPSetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT *pPropertyValue) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetProperty( 
              /* [in] */ CEPSetupProperty propertyId,
              /* [in] */ __RPC__in VARIANT *pPropertyValue) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Install( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE UnInstall( 
              /* [optional][in] */ __RPC__in VARIANT *pReserved) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct ICertificateEnrollmentPolicyServerSetupVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [annotation][iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This,
              /* [out] */ __RPC__out UINT *pctinfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This,
              /* [in] */ UINT iTInfo,
              /* [in] */ LCID lcid,
              /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
          
          HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This,
              /* [in] */ __RPC__in REFIID riid,
              /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
              /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
              /* [in] */ LCID lcid,
              /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
          
          /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
              ICertificateEnrollmentPolicyServerSetup * This,
              /* [in] */ DISPID dispIdMember,
              /* [in] */ REFIID riid,
              /* [in] */ LCID lcid,
              /* [in] */ WORD wFlags,
              /* [out][in] */ DISPPARAMS *pDispParams,
              /* [out] */ VARIANT *pVarResult,
              /* [out] */ EXCEPINFO *pExcepInfo,
              /* [out] */ UINT *puArgErr);
          
          /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ErrorString )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This,
              /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
          
          HRESULT ( STDMETHODCALLTYPE *InitializeInstallDefaults )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetProperty )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This,
              /* [in] */ CEPSetupProperty propertyId,
              /* [retval][out] */ __RPC__out VARIANT *pPropertyValue);
          
          HRESULT ( STDMETHODCALLTYPE *SetProperty )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This,
              /* [in] */ CEPSetupProperty propertyId,
              /* [in] */ __RPC__in VARIANT *pPropertyValue);
          
          HRESULT ( STDMETHODCALLTYPE *Install )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This);
          
          HRESULT ( STDMETHODCALLTYPE *UnInstall )( 
              __RPC__in ICertificateEnrollmentPolicyServerSetup * This,
              /* [optional][in] */ __RPC__in VARIANT *pReserved);
          
          END_INTERFACE
      } ICertificateEnrollmentPolicyServerSetupVtbl;
  
      interface ICertificateEnrollmentPolicyServerSetup
      {
          CONST_VTBL struct ICertificateEnrollmentPolicyServerSetupVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ICertificateEnrollmentPolicyServerSetup_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ICertificateEnrollmentPolicyServerSetup_GetTypeInfoCount(This,pctinfo)	\
      ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
      ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
      ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
      ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 
  
  
  #define ICertificateEnrollmentPolicyServerSetup_get_ErrorString(This,pVal)	\
      ( (This)->lpVtbl -> get_ErrorString(This,pVal) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_InitializeInstallDefaults(This)	\
      ( (This)->lpVtbl -> InitializeInstallDefaults(This) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_GetProperty(This,propertyId,pPropertyValue)	\
      ( (This)->lpVtbl -> GetProperty(This,propertyId,pPropertyValue) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_SetProperty(This,propertyId,pPropertyValue)	\
      ( (This)->lpVtbl -> SetProperty(This,propertyId,pPropertyValue) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_Install(This)	\
      ( (This)->lpVtbl -> Install(This) ) 
  
  #define ICertificateEnrollmentPolicyServerSetup_UnInstall(This,pReserved)	\
      ( (This)->lpVtbl -> UnInstall(This,pReserved) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ICertificateEnrollmentPolicyServerSetup_INTERFACE_DEFINED__ */
  
  
  
  #ifndef __CertSrvSetupLib_LIBRARY_DEFINED__
  #define __CertSrvSetupLib_LIBRARY_DEFINED__
  
  /* library CertSrvSetupLib */
  /* [helpstring][version][uuid] */ 
  
  
  EXTERN_C const IID LIBID_CertSrvSetupLib;
  
  EXTERN_C const CLSID CLSID_CCertSrvSetupKeyInformation;
  
  #ifdef __cplusplus
  
  class DECLSPEC_UUID("38373906-5433-4633-b0fb-29b7e78262e1")
  CCertSrvSetupKeyInformation;
  #endif
  
  EXTERN_C const CLSID CLSID_CCertSrvSetup;
  
  #ifdef __cplusplus
  
  class DECLSPEC_UUID("961f180f-f55c-413d-a9b3-7d2af4d8e42f")
  CCertSrvSetup;
  #endif
  
  EXTERN_C const CLSID CLSID_CMSCEPSetup;
  
  #ifdef __cplusplus
  
  class DECLSPEC_UUID("aa4f5c02-8e7c-49c4-94fa-67a5cc5eadb4")
  CMSCEPSetup;
  #endif
  
  EXTERN_C const CLSID CLSID_CCertificateEnrollmentServerSetup;
  
  #ifdef __cplusplus
  
  class DECLSPEC_UUID("9902F3BC-88AF-4cf8-AE62-7140531552B6")
  CCertificateEnrollmentServerSetup;
  #endif
  
  EXTERN_C const CLSID CLSID_CCertificateEnrollmentPolicyServerSetup;
  
  #ifdef __cplusplus
  
  class DECLSPEC_UUID("AFE2FA32-41B1-459d-A5DE-49ADD8A72182")
  CCertificateEnrollmentPolicyServerSetup;
  #endif
  #endif /* __CertSrvSetupLib_LIBRARY_DEFINED__ */
  
  /* Additional Prototypes for ALL interfaces */
  
  unsigned long             __RPC_USER  BSTR_UserSize(     __RPC__in unsigned long *, unsigned long            , __RPC__in BSTR * ); 
  unsigned char * __RPC_USER  BSTR_UserMarshal(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); 
  unsigned char * __RPC_USER  BSTR_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); 
  void                      __RPC_USER  BSTR_UserFree(     __RPC__in unsigned long *, __RPC__in BSTR * ); 
  
  unsigned long             __RPC_USER  VARIANT_UserSize(     __RPC__in unsigned long *, unsigned long            , __RPC__in VARIANT * ); 
  unsigned char * __RPC_USER  VARIANT_UserMarshal(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in VARIANT * ); 
  unsigned char * __RPC_USER  VARIANT_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out VARIANT * ); 
  void                      __RPC_USER  VARIANT_UserFree(     __RPC__in unsigned long *, __RPC__in VARIANT * ); 
  
  unsigned long             __RPC_USER  BSTR_UserSize64(     __RPC__in unsigned long *, unsigned long            , __RPC__in BSTR * ); 
  unsigned char * __RPC_USER  BSTR_UserMarshal64(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); 
  unsigned char * __RPC_USER  BSTR_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); 
  void                      __RPC_USER  BSTR_UserFree64(     __RPC__in unsigned long *, __RPC__in BSTR * ); 
  
  unsigned long             __RPC_USER  VARIANT_UserSize64(     __RPC__in unsigned long *, unsigned long            , __RPC__in VARIANT * ); 
  unsigned char * __RPC_USER  VARIANT_UserMarshal64(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in VARIANT * ); 
  unsigned char * __RPC_USER  VARIANT_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out VARIANT * ); 
  void                      __RPC_USER  VARIANT_UserFree64(     __RPC__in unsigned long *, __RPC__in VARIANT * ); 
  
  /* end of Additional Prototypes */
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif
  
  
  
  