windows-nt/Source/XPSP1/NT/ds/security/services/ca/certif/ciexit.h
2020-09-26 16:20:57 +08:00

102 lines
2.6 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: ciexit.h
//
//--------------------------------------------------------------------------
// ciexit.h : Declaration of the CCertServerExit class
#include "cscomres.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CertIF
class CCertServerExit:
public IDispatchImpl<ICertServerExit, &IID_ICertServerExit, &LIBID_CERTCLIENTLib>,
public ISupportErrorInfoImpl<&IID_ICertServerExit>,
public CComObjectRoot,
public CComCoClass<CCertServerExit, &CLSID_CCertServerExit>
{
public:
CCertServerExit() { m_Context = 0; m_fExtensionValid = FALSE; }
~CCertServerExit();
BEGIN_COM_MAP(CCertServerExit)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY(ICertServerExit)
END_COM_MAP()
// Remove the comment from following the line if you don't want your object to
// support aggregation. The default is to support it.
DECLARE_NOT_AGGREGATABLE(CCertServerExit)
DECLARE_REGISTRY(
CCertServerExit,
wszCLASS_CERTSERVEREXIT TEXT(".1"),
wszCLASS_CERTSERVEREXIT,
IDS_CERTSERVERPOLICY_DESC,
THREADFLAGS_BOTH)
// ICertServerExit
public:
STDMETHOD(SetContext)(
IN LONG Context);
STDMETHOD(GetRequestProperty)(
IN BSTR const strPropertyName,
IN LONG PropertyType,
OUT VARIANT __RPC_FAR *pvarPropertyValue);
STDMETHOD(GetRequestAttribute)(
IN BSTR const strAttributeName,
OUT BSTR __RPC_FAR *pstrAttributeValue);
STDMETHOD(GetCertificateProperty)(
IN BSTR const strPropertyName,
IN LONG PropertyType,
OUT VARIANT __RPC_FAR *pvarPropertyValue);
STDMETHOD(GetCertificateExtension)(
IN BSTR const strExtensionName,
IN LONG Type,
OUT VARIANT __RPC_FAR *pvarValue);
STDMETHOD(GetCertificateExtensionFlags)(
OUT LONG __RPC_FAR *pFlags);
STDMETHOD(EnumerateExtensionsSetup)(
IN LONG Flags);
STDMETHOD(EnumerateExtensions)(
OUT BSTR *pstrExtensionName);
STDMETHOD(EnumerateExtensionsClose)(VOID);
STDMETHOD(EnumerateAttributesSetup)(
IN LONG Flags);
STDMETHOD(EnumerateAttributes)(
OUT BSTR *pstrAttributeName);
STDMETHOD(EnumerateAttributesClose)(VOID);
private:
HRESULT _SetErrorInfo(
IN HRESULT hrError,
IN WCHAR const *pwszDescription,
OPTIONAL IN WCHAR const *pwszPropName);
LONG m_Context;
LONG m_ExtFlags;
BOOL m_fExtensionValid;
CIENUM m_ciEnumExtensions;
CIENUM m_ciEnumAttributes;
};