#pragma option push -b -a8 -pc -A- -w-pun /*P_O_Push*/


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


 /* File created by MIDL compiler version 8.00.0611 */
/* @@MIDL_FILE_HEADING(  ) */



/* 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 __certadm_h__
#define __certadm_h__

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

/* Forward Declarations */ 

#ifndef __ICertAdmin_FWD_DEFINED__
#define __ICertAdmin_FWD_DEFINED__
typedef interface ICertAdmin ICertAdmin;

#endif 	/* __ICertAdmin_FWD_DEFINED__ */


#ifndef __ICertAdmin2_FWD_DEFINED__
#define __ICertAdmin2_FWD_DEFINED__
typedef interface ICertAdmin2 ICertAdmin2;

#endif 	/* __ICertAdmin2_FWD_DEFINED__ */


#ifndef __IOCSPProperty_FWD_DEFINED__
#define __IOCSPProperty_FWD_DEFINED__
typedef interface IOCSPProperty IOCSPProperty;

#endif 	/* __IOCSPProperty_FWD_DEFINED__ */


#ifndef __IOCSPPropertyCollection_FWD_DEFINED__
#define __IOCSPPropertyCollection_FWD_DEFINED__
typedef interface IOCSPPropertyCollection IOCSPPropertyCollection;

#endif 	/* __IOCSPPropertyCollection_FWD_DEFINED__ */


#ifndef __IOCSPCAConfiguration_FWD_DEFINED__
#define __IOCSPCAConfiguration_FWD_DEFINED__
typedef interface IOCSPCAConfiguration IOCSPCAConfiguration;

#endif 	/* __IOCSPCAConfiguration_FWD_DEFINED__ */


#ifndef __IOCSPCAConfigurationCollection_FWD_DEFINED__
#define __IOCSPCAConfigurationCollection_FWD_DEFINED__
typedef interface IOCSPCAConfigurationCollection IOCSPCAConfigurationCollection;

#endif 	/* __IOCSPCAConfigurationCollection_FWD_DEFINED__ */


#ifndef __IOCSPAdmin_FWD_DEFINED__
#define __IOCSPAdmin_FWD_DEFINED__
typedef interface IOCSPAdmin IOCSPAdmin;

#endif 	/* __IOCSPAdmin_FWD_DEFINED__ */


#ifndef __CCertAdmin_FWD_DEFINED__
#define __CCertAdmin_FWD_DEFINED__

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

#endif 	/* __CCertAdmin_FWD_DEFINED__ */


#ifndef __CCertView_FWD_DEFINED__
#define __CCertView_FWD_DEFINED__

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

#endif 	/* __CCertView_FWD_DEFINED__ */


#ifndef __OCSPPropertyCollection_FWD_DEFINED__
#define __OCSPPropertyCollection_FWD_DEFINED__

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

#endif 	/* __OCSPPropertyCollection_FWD_DEFINED__ */


#ifndef __OCSPAdmin_FWD_DEFINED__
#define __OCSPAdmin_FWD_DEFINED__

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

#endif 	/* __OCSPAdmin_FWD_DEFINED__ */


/* header files for imported files */
#include "wtypes.h"
#include "certview.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_certadm_0000_0000 */
/* [local] */ 

#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define	CA_DISP_INCOMPLETE	( 0 )

#define	CA_DISP_ERROR	( 0x1 )

#define	CA_DISP_REVOKED	( 0x2 )

#define	CA_DISP_VALID	( 0x3 )

#define	CA_DISP_INVALID	( 0x4 )

#define	CA_DISP_UNDER_SUBMISSION	( 0x5 )

#define	KRA_DISP_EXPIRED	( 0 )

#define	KRA_DISP_NOTFOUND	( 0x1 )

#define	KRA_DISP_REVOKED	( 0x2 )

#define	KRA_DISP_VALID	( 0x3 )

#define	KRA_DISP_INVALID	( 0x4 )

#define	KRA_DISP_UNTRUSTED	( 0x5 )

#define	KRA_DISP_NOTLOADED	( 0x6 )

#define	CA_ACCESS_ADMIN	( 0x1 )

#define	CA_ACCESS_OFFICER	( 0x2 )

#define	CA_ACCESS_AUDITOR	( 0x4 )

#define	CA_ACCESS_OPERATOR	( 0x8 )

#define	CA_ACCESS_MASKROLES	( 0xff )

#define	CA_ACCESS_READ	( 0x100 )

#define	CA_ACCESS_ENROLL	( 0x200 )



extern RPC_IF_HANDLE __MIDL_itf_certadm_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_certadm_0000_0000_v0_0_s_ifspec;

#ifndef __ICertAdmin_INTERFACE_DEFINED__
#define __ICertAdmin_INTERFACE_DEFINED__

/* interface ICertAdmin */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ICertAdmin;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("34df6950-7fb6-11d0-8817-00a0c903b83c")
    ICertAdmin : public IDispatch
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE IsValidCertificate( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strSerialNumber,
            /* [retval][out] */ __RPC__out LONG *pDisposition) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetRevocationReason( 
            /* [retval][out] */ __RPC__out LONG *pReason) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RevokeCertificate( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strSerialNumber,
            /* [in] */ LONG Reason,
            /* [in] */ DATE Date) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetRequestAttributes( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ __RPC__in const BSTR strAttributes) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetCertificateExtension( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ __RPC__in const BSTR strExtensionName,
            /* [in] */ LONG Type,
            /* [in] */ LONG Flags,
            /* [in] */ __RPC__in const VARIANT *pvarValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DenyRequest( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ResubmitRequest( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [retval][out] */ __RPC__out LONG *pDisposition) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PublishCRL( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ DATE Date) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCRL( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pstrCRL) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ImportCertificate( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strCertificate,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__out LONG *pRequestId) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct ICertAdminVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ICertAdmin * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ICertAdmin * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in ICertAdmin * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in ICertAdmin * 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 )( 
            ICertAdmin * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        HRESULT ( STDMETHODCALLTYPE *IsValidCertificate )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strSerialNumber,
            /* [retval][out] */ __RPC__out LONG *pDisposition);
        
        HRESULT ( STDMETHODCALLTYPE *GetRevocationReason )( 
            __RPC__in ICertAdmin * This,
            /* [retval][out] */ __RPC__out LONG *pReason);
        
        HRESULT ( STDMETHODCALLTYPE *RevokeCertificate )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strSerialNumber,
            /* [in] */ LONG Reason,
            /* [in] */ DATE Date);
        
        HRESULT ( STDMETHODCALLTYPE *SetRequestAttributes )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ __RPC__in const BSTR strAttributes);
        
        HRESULT ( STDMETHODCALLTYPE *SetCertificateExtension )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ __RPC__in const BSTR strExtensionName,
            /* [in] */ LONG Type,
            /* [in] */ LONG Flags,
            /* [in] */ __RPC__in const VARIANT *pvarValue);
        
        HRESULT ( STDMETHODCALLTYPE *DenyRequest )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId);
        
        HRESULT ( STDMETHODCALLTYPE *ResubmitRequest )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [retval][out] */ __RPC__out LONG *pDisposition);
        
        HRESULT ( STDMETHODCALLTYPE *PublishCRL )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ DATE Date);
        
        HRESULT ( STDMETHODCALLTYPE *GetCRL )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pstrCRL);
        
        HRESULT ( STDMETHODCALLTYPE *ImportCertificate )( 
            __RPC__in ICertAdmin * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strCertificate,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__out LONG *pRequestId);
        
        END_INTERFACE
    } ICertAdminVtbl;

    interface ICertAdmin
    {
        CONST_VTBL struct ICertAdminVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICertAdmin_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ICertAdmin_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ICertAdmin_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ICertAdmin_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ICertAdmin_IsValidCertificate(This,strConfig,strSerialNumber,pDisposition)	\
    ( (This)->lpVtbl -> IsValidCertificate(This,strConfig,strSerialNumber,pDisposition) ) 

#define ICertAdmin_GetRevocationReason(This,pReason)	\
    ( (This)->lpVtbl -> GetRevocationReason(This,pReason) ) 

#define ICertAdmin_RevokeCertificate(This,strConfig,strSerialNumber,Reason,Date)	\
    ( (This)->lpVtbl -> RevokeCertificate(This,strConfig,strSerialNumber,Reason,Date) ) 

#define ICertAdmin_SetRequestAttributes(This,strConfig,RequestId,strAttributes)	\
    ( (This)->lpVtbl -> SetRequestAttributes(This,strConfig,RequestId,strAttributes) ) 

#define ICertAdmin_SetCertificateExtension(This,strConfig,RequestId,strExtensionName,Type,Flags,pvarValue)	\
    ( (This)->lpVtbl -> SetCertificateExtension(This,strConfig,RequestId,strExtensionName,Type,Flags,pvarValue) ) 

#define ICertAdmin_DenyRequest(This,strConfig,RequestId)	\
    ( (This)->lpVtbl -> DenyRequest(This,strConfig,RequestId) ) 

#define ICertAdmin_ResubmitRequest(This,strConfig,RequestId,pDisposition)	\
    ( (This)->lpVtbl -> ResubmitRequest(This,strConfig,RequestId,pDisposition) ) 

#define ICertAdmin_PublishCRL(This,strConfig,Date)	\
    ( (This)->lpVtbl -> PublishCRL(This,strConfig,Date) ) 

#define ICertAdmin_GetCRL(This,strConfig,Flags,pstrCRL)	\
    ( (This)->lpVtbl -> GetCRL(This,strConfig,Flags,pstrCRL) ) 

#define ICertAdmin_ImportCertificate(This,strConfig,strCertificate,Flags,pRequestId)	\
    ( (This)->lpVtbl -> ImportCertificate(This,strConfig,strCertificate,Flags,pRequestId) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ICertAdmin_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_certadm_0000_0001 */
/* [local] */ 

#define	CA_CRL_BASE	( 0x1 )

#define	CA_CRL_DELTA	( 0x2 )

#define	CA_CRL_REPUBLISH	( 0x10 )

#define	ICF_ALLOWFOREIGN	( 0x10000 )

#define	ICF_EXISTINGROW	( 0x20000 )

#define	IKF_OVERWRITE	( 0x10000 )

#define	CDR_EXPIRED	( 1 )

#define	CDR_REQUEST_LAST_CHANGED	( 2 )



extern RPC_IF_HANDLE __MIDL_itf_certadm_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_certadm_0000_0001_v0_0_s_ifspec;

#ifndef __ICertAdmin2_INTERFACE_DEFINED__
#define __ICertAdmin2_INTERFACE_DEFINED__

/* interface ICertAdmin2 */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ICertAdmin2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("f7c3ac41-b8ce-4fb4-aa58-3d1dc0e36b39")
    ICertAdmin2 : public ICertAdmin
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE PublishCRLs( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ DATE Date,
            /* [in] */ LONG CRLFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCAProperty( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG PropId,
            /* [in] */ LONG PropIndex,
            /* [in] */ LONG PropType,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__out VARIANT *pvarPropertyValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetCAProperty( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG PropId,
            /* [in] */ LONG PropIndex,
            /* [in] */ LONG PropType,
            /* [in] */ __RPC__in VARIANT *pvarPropertyValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCAPropertyFlags( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG PropId,
            /* [retval][out] */ __RPC__out LONG *pPropFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCAPropertyDisplayName( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG PropId,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pstrDisplayName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetArchivedKey( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pstrArchivedKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetConfigEntry( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strNodePath,
            /* [in] */ __RPC__in const BSTR strEntryName,
            /* [retval][out] */ __RPC__out VARIANT *pvarEntry) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetConfigEntry( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strNodePath,
            /* [in] */ __RPC__in const BSTR strEntryName,
            /* [in] */ __RPC__in VARIANT *pvarEntry) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ImportKey( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ __RPC__in const BSTR strCertHash,
            /* [in] */ LONG Flags,
            /* [in] */ __RPC__in const BSTR strKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMyRoles( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [retval][out] */ __RPC__out LONG *pRoles) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteRow( 
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG Flags,
            /* [in] */ DATE Date,
            /* [in] */ LONG Table,
            /* [in] */ LONG RowId,
            /* [retval][out] */ __RPC__out LONG *pcDeleted) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct ICertAdmin2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ICertAdmin2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ICertAdmin2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in ICertAdmin2 * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in ICertAdmin2 * 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 )( 
            ICertAdmin2 * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        HRESULT ( STDMETHODCALLTYPE *IsValidCertificate )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strSerialNumber,
            /* [retval][out] */ __RPC__out LONG *pDisposition);
        
        HRESULT ( STDMETHODCALLTYPE *GetRevocationReason )( 
            __RPC__in ICertAdmin2 * This,
            /* [retval][out] */ __RPC__out LONG *pReason);
        
        HRESULT ( STDMETHODCALLTYPE *RevokeCertificate )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strSerialNumber,
            /* [in] */ LONG Reason,
            /* [in] */ DATE Date);
        
        HRESULT ( STDMETHODCALLTYPE *SetRequestAttributes )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ __RPC__in const BSTR strAttributes);
        
        HRESULT ( STDMETHODCALLTYPE *SetCertificateExtension )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ __RPC__in const BSTR strExtensionName,
            /* [in] */ LONG Type,
            /* [in] */ LONG Flags,
            /* [in] */ __RPC__in const VARIANT *pvarValue);
        
        HRESULT ( STDMETHODCALLTYPE *DenyRequest )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId);
        
        HRESULT ( STDMETHODCALLTYPE *ResubmitRequest )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [retval][out] */ __RPC__out LONG *pDisposition);
        
        HRESULT ( STDMETHODCALLTYPE *PublishCRL )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ DATE Date);
        
        HRESULT ( STDMETHODCALLTYPE *GetCRL )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pstrCRL);
        
        HRESULT ( STDMETHODCALLTYPE *ImportCertificate )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strCertificate,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__out LONG *pRequestId);
        
        HRESULT ( STDMETHODCALLTYPE *PublishCRLs )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ DATE Date,
            /* [in] */ LONG CRLFlags);
        
        HRESULT ( STDMETHODCALLTYPE *GetCAProperty )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG PropId,
            /* [in] */ LONG PropIndex,
            /* [in] */ LONG PropType,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__out VARIANT *pvarPropertyValue);
        
        HRESULT ( STDMETHODCALLTYPE *SetCAProperty )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG PropId,
            /* [in] */ LONG PropIndex,
            /* [in] */ LONG PropType,
            /* [in] */ __RPC__in VARIANT *pvarPropertyValue);
        
        HRESULT ( STDMETHODCALLTYPE *GetCAPropertyFlags )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG PropId,
            /* [retval][out] */ __RPC__out LONG *pPropFlags);
        
        HRESULT ( STDMETHODCALLTYPE *GetCAPropertyDisplayName )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG PropId,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pstrDisplayName);
        
        HRESULT ( STDMETHODCALLTYPE *GetArchivedKey )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ LONG Flags,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pstrArchivedKey);
        
        HRESULT ( STDMETHODCALLTYPE *GetConfigEntry )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strNodePath,
            /* [in] */ __RPC__in const BSTR strEntryName,
            /* [retval][out] */ __RPC__out VARIANT *pvarEntry);
        
        HRESULT ( STDMETHODCALLTYPE *SetConfigEntry )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ __RPC__in const BSTR strNodePath,
            /* [in] */ __RPC__in const BSTR strEntryName,
            /* [in] */ __RPC__in VARIANT *pvarEntry);
        
        HRESULT ( STDMETHODCALLTYPE *ImportKey )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG RequestId,
            /* [in] */ __RPC__in const BSTR strCertHash,
            /* [in] */ LONG Flags,
            /* [in] */ __RPC__in const BSTR strKey);
        
        HRESULT ( STDMETHODCALLTYPE *GetMyRoles )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [retval][out] */ __RPC__out LONG *pRoles);
        
        HRESULT ( STDMETHODCALLTYPE *DeleteRow )( 
            __RPC__in ICertAdmin2 * This,
            /* [in] */ __RPC__in const BSTR strConfig,
            /* [in] */ LONG Flags,
            /* [in] */ DATE Date,
            /* [in] */ LONG Table,
            /* [in] */ LONG RowId,
            /* [retval][out] */ __RPC__out LONG *pcDeleted);
        
        END_INTERFACE
    } ICertAdmin2Vtbl;

    interface ICertAdmin2
    {
        CONST_VTBL struct ICertAdmin2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICertAdmin2_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ICertAdmin2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ICertAdmin2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ICertAdmin2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ICertAdmin2_IsValidCertificate(This,strConfig,strSerialNumber,pDisposition)	\
    ( (This)->lpVtbl -> IsValidCertificate(This,strConfig,strSerialNumber,pDisposition) ) 

#define ICertAdmin2_GetRevocationReason(This,pReason)	\
    ( (This)->lpVtbl -> GetRevocationReason(This,pReason) ) 

#define ICertAdmin2_RevokeCertificate(This,strConfig,strSerialNumber,Reason,Date)	\
    ( (This)->lpVtbl -> RevokeCertificate(This,strConfig,strSerialNumber,Reason,Date) ) 

#define ICertAdmin2_SetRequestAttributes(This,strConfig,RequestId,strAttributes)	\
    ( (This)->lpVtbl -> SetRequestAttributes(This,strConfig,RequestId,strAttributes) ) 

#define ICertAdmin2_SetCertificateExtension(This,strConfig,RequestId,strExtensionName,Type,Flags,pvarValue)	\
    ( (This)->lpVtbl -> SetCertificateExtension(This,strConfig,RequestId,strExtensionName,Type,Flags,pvarValue) ) 

#define ICertAdmin2_DenyRequest(This,strConfig,RequestId)	\
    ( (This)->lpVtbl -> DenyRequest(This,strConfig,RequestId) ) 

#define ICertAdmin2_ResubmitRequest(This,strConfig,RequestId,pDisposition)	\
    ( (This)->lpVtbl -> ResubmitRequest(This,strConfig,RequestId,pDisposition) ) 

#define ICertAdmin2_PublishCRL(This,strConfig,Date)	\
    ( (This)->lpVtbl -> PublishCRL(This,strConfig,Date) ) 

#define ICertAdmin2_GetCRL(This,strConfig,Flags,pstrCRL)	\
    ( (This)->lpVtbl -> GetCRL(This,strConfig,Flags,pstrCRL) ) 

#define ICertAdmin2_ImportCertificate(This,strConfig,strCertificate,Flags,pRequestId)	\
    ( (This)->lpVtbl -> ImportCertificate(This,strConfig,strCertificate,Flags,pRequestId) ) 


#define ICertAdmin2_PublishCRLs(This,strConfig,Date,CRLFlags)	\
    ( (This)->lpVtbl -> PublishCRLs(This,strConfig,Date,CRLFlags) ) 

#define ICertAdmin2_GetCAProperty(This,strConfig,PropId,PropIndex,PropType,Flags,pvarPropertyValue)	\
    ( (This)->lpVtbl -> GetCAProperty(This,strConfig,PropId,PropIndex,PropType,Flags,pvarPropertyValue) ) 

#define ICertAdmin2_SetCAProperty(This,strConfig,PropId,PropIndex,PropType,pvarPropertyValue)	\
    ( (This)->lpVtbl -> SetCAProperty(This,strConfig,PropId,PropIndex,PropType,pvarPropertyValue) ) 

#define ICertAdmin2_GetCAPropertyFlags(This,strConfig,PropId,pPropFlags)	\
    ( (This)->lpVtbl -> GetCAPropertyFlags(This,strConfig,PropId,pPropFlags) ) 

#define ICertAdmin2_GetCAPropertyDisplayName(This,strConfig,PropId,pstrDisplayName)	\
    ( (This)->lpVtbl -> GetCAPropertyDisplayName(This,strConfig,PropId,pstrDisplayName) ) 

#define ICertAdmin2_GetArchivedKey(This,strConfig,RequestId,Flags,pstrArchivedKey)	\
    ( (This)->lpVtbl -> GetArchivedKey(This,strConfig,RequestId,Flags,pstrArchivedKey) ) 

#define ICertAdmin2_GetConfigEntry(This,strConfig,strNodePath,strEntryName,pvarEntry)	\
    ( (This)->lpVtbl -> GetConfigEntry(This,strConfig,strNodePath,strEntryName,pvarEntry) ) 

#define ICertAdmin2_SetConfigEntry(This,strConfig,strNodePath,strEntryName,pvarEntry)	\
    ( (This)->lpVtbl -> SetConfigEntry(This,strConfig,strNodePath,strEntryName,pvarEntry) ) 

#define ICertAdmin2_ImportKey(This,strConfig,RequestId,strCertHash,Flags,strKey)	\
    ( (This)->lpVtbl -> ImportKey(This,strConfig,RequestId,strCertHash,Flags,strKey) ) 

#define ICertAdmin2_GetMyRoles(This,strConfig,pRoles)	\
    ( (This)->lpVtbl -> GetMyRoles(This,strConfig,pRoles) ) 

#define ICertAdmin2_DeleteRow(This,strConfig,Flags,Date,Table,RowId,pcDeleted)	\
    ( (This)->lpVtbl -> DeleteRow(This,strConfig,Flags,Date,Table,RowId,pcDeleted) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ICertAdmin2_INTERFACE_DEFINED__ */


#ifndef __IOCSPProperty_INTERFACE_DEFINED__
#define __IOCSPProperty_INTERFACE_DEFINED__

/* interface IOCSPProperty */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IOCSPProperty;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("66FB7839-5F04-4C25-AD18-9FF1A8376EE0")
    IOCSPProperty : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ VARIANT newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Modified( 
            /* [retval][out] */ __RPC__out VARIANT_BOOL *pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IOCSPPropertyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in IOCSPProperty * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in IOCSPProperty * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in IOCSPProperty * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in IOCSPProperty * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in IOCSPProperty * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in IOCSPProperty * 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 )( 
            IOCSPProperty * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            __RPC__in IOCSPProperty * This,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            __RPC__in IOCSPProperty * This,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            __RPC__in IOCSPProperty * This,
            /* [in] */ VARIANT newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Modified )( 
            __RPC__in IOCSPProperty * This,
            /* [retval][out] */ __RPC__out VARIANT_BOOL *pVal);
        
        END_INTERFACE
    } IOCSPPropertyVtbl;

    interface IOCSPProperty
    {
        CONST_VTBL struct IOCSPPropertyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IOCSPProperty_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IOCSPProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IOCSPProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IOCSPProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IOCSPProperty_get_Name(This,pVal)	\
    ( (This)->lpVtbl -> get_Name(This,pVal) ) 

#define IOCSPProperty_get_Value(This,pVal)	\
    ( (This)->lpVtbl -> get_Value(This,pVal) ) 

#define IOCSPProperty_put_Value(This,newVal)	\
    ( (This)->lpVtbl -> put_Value(This,newVal) ) 

#define IOCSPProperty_get_Modified(This,pVal)	\
    ( (This)->lpVtbl -> get_Modified(This,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IOCSPProperty_INTERFACE_DEFINED__ */


#ifndef __IOCSPPropertyCollection_INTERFACE_DEFINED__
#define __IOCSPPropertyCollection_INTERFACE_DEFINED__

/* interface IOCSPPropertyCollection */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IOCSPPropertyCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2597C18D-54E6-4B74-9FA9-A6BFDA99CBBE")
    IOCSPPropertyCollection : 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 /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ItemByName( 
            /* [in] */ __RPC__in const BSTR bstrPropName,
            /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateProperty( 
            /* [in] */ __RPC__in const BSTR bstrPropName,
            /* [in] */ __RPC__in const VARIANT *pVarPropValue,
            /* [retval][out] */ __RPC__deref_out_opt IOCSPProperty **ppVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteProperty( 
            /* [in] */ __RPC__in const BSTR bstrPropName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InitializeFromProperties( 
            /* [in] */ __RPC__in const VARIANT *pVarProperties) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAllProperties( 
            /* [retval][out] */ __RPC__out VARIANT *pVarProperties) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IOCSPPropertyCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in IOCSPPropertyCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in IOCSPPropertyCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in IOCSPPropertyCollection * 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 )( 
            IOCSPPropertyCollection * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [in] */ LONG Index,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [retval][out] */ __RPC__out LONG *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemByName )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [in] */ __RPC__in const BSTR bstrPropName,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateProperty )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [in] */ __RPC__in const BSTR bstrPropName,
            /* [in] */ __RPC__in const VARIANT *pVarPropValue,
            /* [retval][out] */ __RPC__deref_out_opt IOCSPProperty **ppVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteProperty )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [in] */ __RPC__in const BSTR bstrPropName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InitializeFromProperties )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [in] */ __RPC__in const VARIANT *pVarProperties);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAllProperties )( 
            __RPC__in IOCSPPropertyCollection * This,
            /* [retval][out] */ __RPC__out VARIANT *pVarProperties);
        
        END_INTERFACE
    } IOCSPPropertyCollectionVtbl;

    interface IOCSPPropertyCollection
    {
        CONST_VTBL struct IOCSPPropertyCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IOCSPPropertyCollection_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IOCSPPropertyCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IOCSPPropertyCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IOCSPPropertyCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IOCSPPropertyCollection_get__NewEnum(This,ppVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,ppVal) ) 

#define IOCSPPropertyCollection_get_Item(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Item(This,Index,pVal) ) 

#define IOCSPPropertyCollection_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IOCSPPropertyCollection_get_ItemByName(This,bstrPropName,pVal)	\
    ( (This)->lpVtbl -> get_ItemByName(This,bstrPropName,pVal) ) 

#define IOCSPPropertyCollection_CreateProperty(This,bstrPropName,pVarPropValue,ppVal)	\
    ( (This)->lpVtbl -> CreateProperty(This,bstrPropName,pVarPropValue,ppVal) ) 

#define IOCSPPropertyCollection_DeleteProperty(This,bstrPropName)	\
    ( (This)->lpVtbl -> DeleteProperty(This,bstrPropName) ) 

#define IOCSPPropertyCollection_InitializeFromProperties(This,pVarProperties)	\
    ( (This)->lpVtbl -> InitializeFromProperties(This,pVarProperties) ) 

#define IOCSPPropertyCollection_GetAllProperties(This,pVarProperties)	\
    ( (This)->lpVtbl -> GetAllProperties(This,pVarProperties) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IOCSPPropertyCollection_INTERFACE_DEFINED__ */


#ifndef __IOCSPCAConfiguration_INTERFACE_DEFINED__
#define __IOCSPCAConfiguration_INTERFACE_DEFINED__

/* interface IOCSPCAConfiguration */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IOCSPCAConfiguration;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AEC92B40-3D46-433F-87D1-B84D5C1E790D")
    IOCSPCAConfiguration : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Identifier( 
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CACertificate( 
            /* [retval][out] */ __RPC__out VARIANT *pVal) = 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 newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SigningFlags( 
            /* [retval][out] */ __RPC__out ULONG *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SigningFlags( 
            /* [in] */ ULONG newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SigningCertificate( 
            /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SigningCertificate( 
            /* [in] */ VARIANT newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ReminderDuration( 
            /* [retval][out] */ __RPC__out ULONG *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ReminderDuration( 
            /* [in] */ ULONG newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ErrorCode( 
            /* [retval][out] */ __RPC__out ULONG *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CSPName( 
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_KeySpec( 
            /* [retval][out] */ __RPC__out ULONG *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ProviderCLSID( 
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ProviderCLSID( 
            /* [in] */ __RPC__in const BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ProviderProperties( 
            /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ProviderProperties( 
            /* [in] */ VARIANT newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Modified( 
            /* [retval][out] */ __RPC__out VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LocalRevocationInformation( 
            /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LocalRevocationInformation( 
            /* [in] */ VARIANT newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SigningCertificateTemplate( 
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SigningCertificateTemplate( 
            /* [in] */ __RPC__in const BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CAConfig( 
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CAConfig( 
            /* [in] */ __RPC__in const BSTR newVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IOCSPCAConfigurationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in IOCSPCAConfiguration * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in IOCSPCAConfiguration * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in IOCSPCAConfiguration * 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 )( 
            IOCSPCAConfiguration * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Identifier )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CACertificate )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HashAlgorithm )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_HashAlgorithm )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ __RPC__in const BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SigningFlags )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__out ULONG *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SigningFlags )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ ULONG newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SigningCertificate )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SigningCertificate )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ VARIANT newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReminderDuration )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__out ULONG *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReminderDuration )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ ULONG newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ErrorCode )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__out ULONG *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CSPName )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeySpec )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__out ULONG *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderCLSID )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderCLSID )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ __RPC__in const BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderProperties )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderProperties )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ VARIANT newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Modified )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__out VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LocalRevocationInformation )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LocalRevocationInformation )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ VARIANT newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SigningCertificateTemplate )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SigningCertificateTemplate )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ __RPC__in const BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CAConfig )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CAConfig )( 
            __RPC__in IOCSPCAConfiguration * This,
            /* [in] */ __RPC__in const BSTR newVal);
        
        END_INTERFACE
    } IOCSPCAConfigurationVtbl;

    interface IOCSPCAConfiguration
    {
        CONST_VTBL struct IOCSPCAConfigurationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IOCSPCAConfiguration_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IOCSPCAConfiguration_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IOCSPCAConfiguration_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IOCSPCAConfiguration_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IOCSPCAConfiguration_get_Identifier(This,pVal)	\
    ( (This)->lpVtbl -> get_Identifier(This,pVal) ) 

#define IOCSPCAConfiguration_get_CACertificate(This,pVal)	\
    ( (This)->lpVtbl -> get_CACertificate(This,pVal) ) 

#define IOCSPCAConfiguration_get_HashAlgorithm(This,pVal)	\
    ( (This)->lpVtbl -> get_HashAlgorithm(This,pVal) ) 

#define IOCSPCAConfiguration_put_HashAlgorithm(This,newVal)	\
    ( (This)->lpVtbl -> put_HashAlgorithm(This,newVal) ) 

#define IOCSPCAConfiguration_get_SigningFlags(This,pVal)	\
    ( (This)->lpVtbl -> get_SigningFlags(This,pVal) ) 

#define IOCSPCAConfiguration_put_SigningFlags(This,newVal)	\
    ( (This)->lpVtbl -> put_SigningFlags(This,newVal) ) 

#define IOCSPCAConfiguration_get_SigningCertificate(This,pVal)	\
    ( (This)->lpVtbl -> get_SigningCertificate(This,pVal) ) 

#define IOCSPCAConfiguration_put_SigningCertificate(This,newVal)	\
    ( (This)->lpVtbl -> put_SigningCertificate(This,newVal) ) 

#define IOCSPCAConfiguration_get_ReminderDuration(This,pVal)	\
    ( (This)->lpVtbl -> get_ReminderDuration(This,pVal) ) 

#define IOCSPCAConfiguration_put_ReminderDuration(This,newVal)	\
    ( (This)->lpVtbl -> put_ReminderDuration(This,newVal) ) 

#define IOCSPCAConfiguration_get_ErrorCode(This,pVal)	\
    ( (This)->lpVtbl -> get_ErrorCode(This,pVal) ) 

#define IOCSPCAConfiguration_get_CSPName(This,pVal)	\
    ( (This)->lpVtbl -> get_CSPName(This,pVal) ) 

#define IOCSPCAConfiguration_get_KeySpec(This,pVal)	\
    ( (This)->lpVtbl -> get_KeySpec(This,pVal) ) 

#define IOCSPCAConfiguration_get_ProviderCLSID(This,pVal)	\
    ( (This)->lpVtbl -> get_ProviderCLSID(This,pVal) ) 

#define IOCSPCAConfiguration_put_ProviderCLSID(This,newVal)	\
    ( (This)->lpVtbl -> put_ProviderCLSID(This,newVal) ) 

#define IOCSPCAConfiguration_get_ProviderProperties(This,pVal)	\
    ( (This)->lpVtbl -> get_ProviderProperties(This,pVal) ) 

#define IOCSPCAConfiguration_put_ProviderProperties(This,newVal)	\
    ( (This)->lpVtbl -> put_ProviderProperties(This,newVal) ) 

#define IOCSPCAConfiguration_get_Modified(This,pVal)	\
    ( (This)->lpVtbl -> get_Modified(This,pVal) ) 

#define IOCSPCAConfiguration_get_LocalRevocationInformation(This,pVal)	\
    ( (This)->lpVtbl -> get_LocalRevocationInformation(This,pVal) ) 

#define IOCSPCAConfiguration_put_LocalRevocationInformation(This,newVal)	\
    ( (This)->lpVtbl -> put_LocalRevocationInformation(This,newVal) ) 

#define IOCSPCAConfiguration_get_SigningCertificateTemplate(This,pVal)	\
    ( (This)->lpVtbl -> get_SigningCertificateTemplate(This,pVal) ) 

#define IOCSPCAConfiguration_put_SigningCertificateTemplate(This,newVal)	\
    ( (This)->lpVtbl -> put_SigningCertificateTemplate(This,newVal) ) 

#define IOCSPCAConfiguration_get_CAConfig(This,pVal)	\
    ( (This)->lpVtbl -> get_CAConfig(This,pVal) ) 

#define IOCSPCAConfiguration_put_CAConfig(This,newVal)	\
    ( (This)->lpVtbl -> put_CAConfig(This,newVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IOCSPCAConfiguration_INTERFACE_DEFINED__ */


#ifndef __IOCSPCAConfigurationCollection_INTERFACE_DEFINED__
#define __IOCSPCAConfigurationCollection_INTERFACE_DEFINED__

/* interface IOCSPCAConfigurationCollection */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IOCSPCAConfigurationCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2BEBEA0B-5ECE-4F28-A91C-86B4BB20F0D3")
    IOCSPCAConfigurationCollection : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **pVal) = 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 /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ItemByName( 
            /* [in] */ __RPC__in const BSTR bstrIdentifier,
            /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateCAConfiguration( 
            /* [in] */ __RPC__in const BSTR bstrIdentifier,
            /* [in] */ VARIANT varCACert,
            /* [retval][out] */ __RPC__deref_out_opt IOCSPCAConfiguration **ppVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteCAConfiguration( 
            /* [in] */ __RPC__in const BSTR bstrIdentifier) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IOCSPCAConfigurationCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in IOCSPCAConfigurationCollection * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in IOCSPCAConfigurationCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in IOCSPCAConfigurationCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in IOCSPCAConfigurationCollection * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in IOCSPCAConfigurationCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in IOCSPCAConfigurationCollection * 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 )( 
            IOCSPCAConfigurationCollection * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            __RPC__in IOCSPCAConfigurationCollection * This,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
            __RPC__in IOCSPCAConfigurationCollection * This,
            /* [in] */ LONG Index,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            __RPC__in IOCSPCAConfigurationCollection * This,
            /* [retval][out] */ __RPC__out LONG *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemByName )( 
            __RPC__in IOCSPCAConfigurationCollection * This,
            /* [in] */ __RPC__in const BSTR bstrIdentifier,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateCAConfiguration )( 
            __RPC__in IOCSPCAConfigurationCollection * This,
            /* [in] */ __RPC__in const BSTR bstrIdentifier,
            /* [in] */ VARIANT varCACert,
            /* [retval][out] */ __RPC__deref_out_opt IOCSPCAConfiguration **ppVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteCAConfiguration )( 
            __RPC__in IOCSPCAConfigurationCollection * This,
            /* [in] */ __RPC__in const BSTR bstrIdentifier);
        
        END_INTERFACE
    } IOCSPCAConfigurationCollectionVtbl;

    interface IOCSPCAConfigurationCollection
    {
        CONST_VTBL struct IOCSPCAConfigurationCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IOCSPCAConfigurationCollection_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IOCSPCAConfigurationCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IOCSPCAConfigurationCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IOCSPCAConfigurationCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IOCSPCAConfigurationCollection_get__NewEnum(This,pVal)	\
    ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) 

#define IOCSPCAConfigurationCollection_get_Item(This,Index,pVal)	\
    ( (This)->lpVtbl -> get_Item(This,Index,pVal) ) 

#define IOCSPCAConfigurationCollection_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define IOCSPCAConfigurationCollection_get_ItemByName(This,bstrIdentifier,pVal)	\
    ( (This)->lpVtbl -> get_ItemByName(This,bstrIdentifier,pVal) ) 

#define IOCSPCAConfigurationCollection_CreateCAConfiguration(This,bstrIdentifier,varCACert,ppVal)	\
    ( (This)->lpVtbl -> CreateCAConfiguration(This,bstrIdentifier,varCACert,ppVal) ) 

#define IOCSPCAConfigurationCollection_DeleteCAConfiguration(This,bstrIdentifier)	\
    ( (This)->lpVtbl -> DeleteCAConfiguration(This,bstrIdentifier) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IOCSPCAConfigurationCollection_INTERFACE_DEFINED__ */


#ifndef __IOCSPAdmin_INTERFACE_DEFINED__
#define __IOCSPAdmin_INTERFACE_DEFINED__

/* interface IOCSPAdmin */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IOCSPAdmin;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("322E830D-67DB-4FE9-9577-4596D9F09294")
    IOCSPAdmin : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OCSPServiceProperties( 
            /* [retval][out] */ __RPC__deref_out_opt IOCSPPropertyCollection **ppVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OCSPCAConfigurationCollection( 
            /* [retval][out] */ __RPC__deref_out_opt IOCSPCAConfigurationCollection **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetConfiguration( 
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ VARIANT_BOOL bForce) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetConfiguration( 
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ VARIANT_BOOL bForce) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMyRoles( 
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [retval][out] */ __RPC__out LONG *pRoles) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Ping( 
            /* [in] */ __RPC__in const BSTR bstrServerName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSecurity( 
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ __RPC__in const BSTR bstrVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSecurity( 
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSigningCertificates( 
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ __RPC__in const VARIANT *pCACertVar,
            /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetHashAlgorithms( 
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ __RPC__in const BSTR bstrCAId,
            /* [retval][out] */ __RPC__out VARIANT *pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IOCSPAdminVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in IOCSPAdmin * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in IOCSPAdmin * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in IOCSPAdmin * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in IOCSPAdmin * 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 )( 
            IOCSPAdmin * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OCSPServiceProperties )( 
            __RPC__in IOCSPAdmin * This,
            /* [retval][out] */ __RPC__deref_out_opt IOCSPPropertyCollection **ppVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OCSPCAConfigurationCollection )( 
            __RPC__in IOCSPAdmin * This,
            /* [retval][out] */ __RPC__deref_out_opt IOCSPCAConfigurationCollection **pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConfiguration )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ VARIANT_BOOL bForce);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetConfiguration )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ VARIANT_BOOL bForce);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMyRoles )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [retval][out] */ __RPC__out LONG *pRoles);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Ping )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ __RPC__in const BSTR bstrServerName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSecurity )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ __RPC__in const BSTR bstrVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSecurity )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSigningCertificates )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ __RPC__in const VARIANT *pCACertVar,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetHashAlgorithms )( 
            __RPC__in IOCSPAdmin * This,
            /* [in] */ __RPC__in const BSTR bstrServerName,
            /* [in] */ __RPC__in const BSTR bstrCAId,
            /* [retval][out] */ __RPC__out VARIANT *pVal);
        
        END_INTERFACE
    } IOCSPAdminVtbl;

    interface IOCSPAdmin
    {
        CONST_VTBL struct IOCSPAdminVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IOCSPAdmin_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IOCSPAdmin_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IOCSPAdmin_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IOCSPAdmin_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IOCSPAdmin_get_OCSPServiceProperties(This,ppVal)	\
    ( (This)->lpVtbl -> get_OCSPServiceProperties(This,ppVal) ) 

#define IOCSPAdmin_get_OCSPCAConfigurationCollection(This,pVal)	\
    ( (This)->lpVtbl -> get_OCSPCAConfigurationCollection(This,pVal) ) 

#define IOCSPAdmin_GetConfiguration(This,bstrServerName,bForce)	\
    ( (This)->lpVtbl -> GetConfiguration(This,bstrServerName,bForce) ) 

#define IOCSPAdmin_SetConfiguration(This,bstrServerName,bForce)	\
    ( (This)->lpVtbl -> SetConfiguration(This,bstrServerName,bForce) ) 

#define IOCSPAdmin_GetMyRoles(This,bstrServerName,pRoles)	\
    ( (This)->lpVtbl -> GetMyRoles(This,bstrServerName,pRoles) ) 

#define IOCSPAdmin_Ping(This,bstrServerName)	\
    ( (This)->lpVtbl -> Ping(This,bstrServerName) ) 

#define IOCSPAdmin_SetSecurity(This,bstrServerName,bstrVal)	\
    ( (This)->lpVtbl -> SetSecurity(This,bstrServerName,bstrVal) ) 

#define IOCSPAdmin_GetSecurity(This,bstrServerName,pVal)	\
    ( (This)->lpVtbl -> GetSecurity(This,bstrServerName,pVal) ) 

#define IOCSPAdmin_GetSigningCertificates(This,bstrServerName,pCACertVar,pVal)	\
    ( (This)->lpVtbl -> GetSigningCertificates(This,bstrServerName,pCACertVar,pVal) ) 

#define IOCSPAdmin_GetHashAlgorithms(This,bstrServerName,bstrCAId,pVal)	\
    ( (This)->lpVtbl -> GetHashAlgorithms(This,bstrServerName,bstrCAId,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IOCSPAdmin_INTERFACE_DEFINED__ */



#ifndef __CERTADMINLib_LIBRARY_DEFINED__
#define __CERTADMINLib_LIBRARY_DEFINED__

/* library CERTADMINLib */
/* [helpstring][version][uuid] */ 


enum OCSPSigningFlag
    {
        OCSP_SF_SILENT	= 0x1,
        OCSP_SF_USE_CACERT	= 0x2,
        OCSP_SF_ALLOW_SIGNINGCERT_AUTORENEWAL	= 0x4,
        OCSP_SF_FORCE_SIGNINGCERT_ISSUER_ISCA	= 0x8,
        OCSP_SF_AUTODISCOVER_SIGNINGCERT	= 0x10,
        OCSP_SF_MANUAL_ASSIGN_SIGNINGCERT	= 0x20,
        OCSP_SF_RESPONDER_ID_KEYHASH	= 0x40,
        OCSP_SF_RESPONDER_ID_NAME	= 0x80,
        OCSP_SF_ALLOW_NONCE_EXTENSION	= 0x100,
        OCSP_SF_ALLOW_SIGNINGCERT_AUTOENROLLMENT	= 0x200
    } ;

enum OCSPRequestFlag
    {
        OCSP_RF_REJECT_SIGNED_REQUESTS	= 0x1
    } ;
#define wszOCSPCAPROP_CACERTIFICATE		L"CACertificate"
#define wszOCSPCAPROP_HASHALGORITHMID		L"HashAlgorithmId"
#define wszOCSPCAPROP_SIGNINGFLAGS		L"SigningFlags"
#define wszOCSPCAPROP_REMINDERDURATION		L"ReminderDuration"
#define wszOCSPCAPROP_SIGNINGCERTIFICATE		L"SigningCertificate"
#define wszOCSPCAPROP_CSPNAME			L"CSPName"
#define wszOCSPCAPROP_KEYSPEC			L"KeySpec"
#define wszOCSPCAPROP_ERRORCODE			L"ErrorCode"
#define wszOCSPCAPROP_PROVIDERCLSID		L"ProviderCLSID"
#define wszOCSPCAPROP_PROVIDERPROPERTIES		L"Provider"
#define wszOCSPCAPROP_LOCALREVOCATIONINFORMATION	L"LocalRevocationInformation"
#define wszOCSPCAPROP_SIGNINGCERTIFICATETEMPLATE	L"SigningCertificateTemplate"
#define wszOCSPCAPROP_CACONFIG	L"CAConfig"
#define wszOCSPPROP_LOGLEVEL  			L"LogLevel"
#define wszOCSPPROP_DEBUG                  	L"Debug"
#define wszOCSPPROP_AUDITFILTER			L"AuditFilter"
#define wszOCSPPROP_ARRAYCONTROLLER		L"ArrayController"
#define wszOCSPPROP_ARRAYMEMBERS		    L"ArrayMembers"
#define wszOCSPPROP_ENROLLPOLLINTERVAL   L"EnrollPollInterval"
#define wszOCSPISAPIPROP_VIRTUALROOTNAME		L"VirtualRootName"
#define wszOCSPISAPIPROP_NUMOFTHREADS		L"NumOfThreads"
#define wszOCSPISAPIPROP_NUMOFBACKENDCONNECTIONS	L"NumOfBackendConnections"
#define wszOCSPISAPIPROP_REFRESHRATE		L"RefreshRate"
#define wszOCSPISAPIPROP_MAXNUMOFCACHEENTRIES	L"MaxNumOfCacheEntries"
#define wszOCSPISAPIPROP_MAXAGE			L"MaxAge"
#define wszOCSPISAPIPROP_DEBUG			L"ISAPIDebug"
#define wszOCSPCOMMONPROP_REQFLAGS			        L"RequestFlags"
#define wszOCSPCOMMONPROP_MAXINCOMINGMESSAGESIZE	    L"MaxIncomingMessageSize"
#define wszOCSPREVPROP_CRLURLTIMEOUT		L"CrlUrlTimeOut"
#define wszOCSPREVPROP_BASECRLURLS		L"BaseCrlUrls"
#define wszOCSPREVPROP_BASECRL			L"BaseCrl"
#define wszOCSPREVPROP_DELTACRLURLS		L"DeltaCrlUrls"
#define wszOCSPREVPROP_DELTACRL			L"DeltaCrl"
#define wszOCSPREVPROP_REFRESHTIMEOUT	L"RefreshTimeOut"
#define wszOCSPREVPROP_ERRORCODE			L"RevocationErrorCode"

EXTERN_C const IID LIBID_CERTADMINLib;

EXTERN_C const CLSID CLSID_CCertAdmin;

#ifdef __cplusplus

class DECLSPEC_UUID("37eabaf0-7fb6-11d0-8817-00a0c903b83c")
CCertAdmin;
#endif

EXTERN_C const CLSID CLSID_CCertView;

#ifdef __cplusplus

class DECLSPEC_UUID("a12d0f7a-1e84-11d1-9bd6-00c04fb683fa")
CCertView;
#endif

EXTERN_C const CLSID CLSID_OCSPPropertyCollection;

#ifdef __cplusplus

class DECLSPEC_UUID("F935A528-BA8A-4DD9-BA79-F283275CB2DE")
OCSPPropertyCollection;
#endif

EXTERN_C const CLSID CLSID_OCSPAdmin;

#ifdef __cplusplus

class DECLSPEC_UUID("D3F73511-92C9-47CB-8FF2-8D891A7C4DE4")
OCSPAdmin;
#endif
#endif /* __CERTADMINLib_LIBRARY_DEFINED__ */

/* interface __MIDL_itf_certadm_0000_0008 */
/* [local] */ 

#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion


extern RPC_IF_HANDLE __MIDL_itf_certadm_0000_0008_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_certadm_0000_0008_v0_0_s_ifspec;

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


#pragma option pop /*P_O_Pop*/
