1117 lines
24 KiB
C
1117 lines
24 KiB
C
|
//+-------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
//
|
||
|
// Copyright (C) Microsoft Corporation, 1995 - 1999
|
||
|
//
|
||
|
// File: csdisp.h
|
||
|
//
|
||
|
// Contents: IDispatch helper functions
|
||
|
//
|
||
|
// History: 09-Dec-96 vich created
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
|
||
|
#ifndef __CSDISP_H__
|
||
|
#define __CSDISP_H__
|
||
|
|
||
|
typedef struct _DISPATCHTABLE
|
||
|
{
|
||
|
OLECHAR **apszNames;
|
||
|
DWORD cdispid;
|
||
|
DWORD idispid;
|
||
|
} DISPATCHTABLE;
|
||
|
|
||
|
class DISPATCHINTERFACE
|
||
|
{
|
||
|
public:
|
||
|
DISPATCHINTERFACE()
|
||
|
{
|
||
|
pDispatch = NULL;
|
||
|
pUnknown = NULL;
|
||
|
pDispatchTable = NULL;
|
||
|
m_cDispatchTable = 0;
|
||
|
m_fiidValid = FALSE;
|
||
|
m_adispid = NULL;
|
||
|
m_dwVersion = 0;
|
||
|
}
|
||
|
|
||
|
VOID SetIID(
|
||
|
OPTIONAL IN IID const *piid)
|
||
|
{
|
||
|
if (NULL != piid)
|
||
|
{
|
||
|
m_iid = *piid;
|
||
|
m_fiidValid = TRUE;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
IID const *GetIID() { return(m_fiidValid? &m_iid : NULL); }
|
||
|
|
||
|
IDispatch *pDispatch;
|
||
|
IUnknown *pUnknown;
|
||
|
DISPATCHTABLE *pDispatchTable;
|
||
|
DWORD m_cDispatchTable;
|
||
|
DWORD m_cdispid;
|
||
|
DISPID *m_adispid;
|
||
|
DWORD m_dwVersion;
|
||
|
DWORD m_ClassContext;
|
||
|
|
||
|
private:
|
||
|
IID m_iid;
|
||
|
BOOL m_fiidValid;
|
||
|
};
|
||
|
|
||
|
|
||
|
#define DECLARE_DISPATCH_ENTRY(apszMethod) \
|
||
|
{ apszMethod, ARRAYSIZE(apszMethod), },
|
||
|
|
||
|
|
||
|
// DispatchSetup Flags:
|
||
|
#define DISPSETUP_COM 0x00000000
|
||
|
#define DISPSETUP_IDISPATCH 0x00000001
|
||
|
#define DISPSETUP_COMFIRST 0x00000002 // Try COM, then IDispatch
|
||
|
|
||
|
HRESULT
|
||
|
DispatchInvoke(
|
||
|
IN DISPATCHINTERFACE *pDispatchInterface,
|
||
|
IN LONG MethodIndex,
|
||
|
IN DWORD cvar,
|
||
|
IN VARIANT avar[],
|
||
|
IN LONG Type,
|
||
|
OPTIONAL OUT VOID *pretval);
|
||
|
|
||
|
HRESULT
|
||
|
DispatchGetReturnValue(
|
||
|
IN OUT VARIANT *pvar,
|
||
|
IN LONG Type,
|
||
|
OUT VOID *pretval);
|
||
|
|
||
|
HRESULT
|
||
|
DispatchGetIds(
|
||
|
IN IDispatch *pDispatch,
|
||
|
IN DWORD cDispatchTable,
|
||
|
IN OUT DISPATCHTABLE *pDispatchTable,
|
||
|
IN OUT DISPATCHINTERFACE *pDispatchInterface);
|
||
|
|
||
|
HRESULT
|
||
|
DispatchSetup(
|
||
|
IN DWORD Flags,
|
||
|
IN DWORD ClassContext,
|
||
|
OPTIONAL IN TCHAR const *pszProgID, // for IDispatch
|
||
|
OPTIONAL IN CLSID const *pclsid, // for COM
|
||
|
OPTIONAL IN IID const *piid, // for COM
|
||
|
IN DWORD cDispatchTable,
|
||
|
IN OUT DISPATCHTABLE *pDispatchTable,
|
||
|
IN OUT DISPATCHINTERFACE *pDispatchInterface);
|
||
|
|
||
|
HRESULT
|
||
|
DispatchSetup2(
|
||
|
IN DWORD Flags,
|
||
|
IN DWORD ClassContext,
|
||
|
IN WCHAR const *pwszClass, // wszRegKeyAdminClsid
|
||
|
IN CLSID const *pclsid,
|
||
|
IN DWORD cver,
|
||
|
IN IID const * const *ppiid, // cver elements
|
||
|
IN DWORD const *pcDispatch, // cver elements
|
||
|
IN OUT DISPATCHTABLE *pDispatchTable,
|
||
|
IN OUT DISPATCHINTERFACE *pDispatchInterface);
|
||
|
|
||
|
VOID
|
||
|
DispatchRelease(
|
||
|
IN OUT DISPATCHINTERFACE *pDispatchInterface);
|
||
|
|
||
|
HRESULT
|
||
|
DispatchSetErrorInfo(
|
||
|
IN HRESULT hrError,
|
||
|
IN WCHAR const *pwszDescription,
|
||
|
OPTIONAL IN WCHAR const *pwszProgId,
|
||
|
OPTIONAL IN IID const *piid);
|
||
|
|
||
|
// Temporary:
|
||
|
#define ConvertWszToBstr myConvertWszToBstr
|
||
|
#define ConvertSzToBstr myConvertSzToBstr
|
||
|
#define ConvertWszToSz myConvertWszToSz
|
||
|
#define ConvertSzToWsz myConvertSzToWsz
|
||
|
|
||
|
BOOL
|
||
|
myConvertWszToBstr(
|
||
|
OUT BSTR *pbstr,
|
||
|
IN WCHAR const *pwc,
|
||
|
IN LONG cb);
|
||
|
|
||
|
BOOL
|
||
|
myConvertSzToBstr(
|
||
|
OUT BSTR *pbstr,
|
||
|
IN CHAR const *pch,
|
||
|
IN LONG cch);
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// ICertConfig dispatch support
|
||
|
|
||
|
HRESULT
|
||
|
Config_Init(
|
||
|
IN DWORD Flags, // See DispatchSetup() Flags
|
||
|
IN OUT DISPATCHINTERFACE *pdiConfig);
|
||
|
|
||
|
VOID
|
||
|
Config_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiConfig);
|
||
|
|
||
|
HRESULT
|
||
|
Config_Reset(
|
||
|
IN DISPATCHINTERFACE *pdiConfig,
|
||
|
IN LONG Index,
|
||
|
OUT LONG *pcount);
|
||
|
|
||
|
HRESULT
|
||
|
Config_Next(
|
||
|
IN DISPATCHINTERFACE *pdiConfig,
|
||
|
OUT LONG *pcount);
|
||
|
|
||
|
HRESULT
|
||
|
Config_GetField(
|
||
|
IN DISPATCHINTERFACE *pdiConfig,
|
||
|
IN WCHAR const *pwszField,
|
||
|
OUT BSTR *pbstr);
|
||
|
|
||
|
HRESULT
|
||
|
Config_GetConfig(
|
||
|
IN DISPATCHINTERFACE *pdiConfig,
|
||
|
IN LONG Flags,
|
||
|
OUT BSTR *pbstrConfig);
|
||
|
|
||
|
HRESULT
|
||
|
Config2_SetSharedFolder(
|
||
|
IN DISPATCHINTERFACE *pdiConfig,
|
||
|
IN WCHAR const *pwszSharedFolder);
|
||
|
|
||
|
|
||
|
HRESULT
|
||
|
ConfigDump(
|
||
|
IN DWORD Flags, // See DispatchSetup() Flags
|
||
|
IN WCHAR const *pwszEntry, // localized L"Entry"
|
||
|
OPTIONAL IN WCHAR const *pwszLocalSuffix, // localized L"(Local)"
|
||
|
OPTIONAL IN WCHAR const *pwszMach1,
|
||
|
OPTIONAL IN WCHAR const *pwszMach2);
|
||
|
|
||
|
HRESULT
|
||
|
ConfigDumpSetDisplayNames(
|
||
|
IN WCHAR const * const *apwszFieldNames,
|
||
|
IN WCHAR const * const *apwszDisplayNames,
|
||
|
IN DWORD cNames);
|
||
|
|
||
|
HRESULT
|
||
|
ConfigDumpEntry(
|
||
|
IN DISPATCHINTERFACE *pdiConfig,
|
||
|
IN WCHAR const *pwszEntry, // localized L"Entry"
|
||
|
IN LONG Index, // less than 0 skip index, entry, & suffix print
|
||
|
OPTIONAL IN WCHAR const *pwszSuffix);
|
||
|
|
||
|
HRESULT
|
||
|
ConfigGetConfig(
|
||
|
IN DWORD Flags, // See DispatchSetup() Flags
|
||
|
IN DWORD dwDefault, // see CC_ defines in certcli.h
|
||
|
OUT BSTR *pstrConfig);
|
||
|
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// ICertRequest dispatch support
|
||
|
|
||
|
HRESULT
|
||
|
Request_Init(
|
||
|
IN DWORD Flags, // See DispatchSetup() Flags
|
||
|
IN OUT DISPATCHINTERFACE *pdiRequest);
|
||
|
|
||
|
VOID
|
||
|
Request_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiRequest);
|
||
|
|
||
|
HRESULT
|
||
|
Request_Submit(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
IN LONG Flags,
|
||
|
IN WCHAR const *pwszRequest,
|
||
|
IN DWORD cbRequest,
|
||
|
IN WCHAR const *pwszAttributes,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
OUT LONG *pDisposition);
|
||
|
|
||
|
HRESULT
|
||
|
Request_RetrievePending(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
IN LONG RequestId,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
OUT LONG *pDisposition);
|
||
|
|
||
|
HRESULT
|
||
|
Request_GetLastStatus(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
OUT LONG *pLastStatus);
|
||
|
|
||
|
HRESULT
|
||
|
Request_GetRequestId(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
OUT LONG *pRequestId);
|
||
|
|
||
|
HRESULT
|
||
|
Request_GetDispositionMessage(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
OUT BSTR *pstrMessage);
|
||
|
|
||
|
HRESULT
|
||
|
Request_GetCertificate(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
IN DWORD Flags,
|
||
|
OUT BSTR *pstrCert);
|
||
|
|
||
|
HRESULT
|
||
|
Request_GetCACertificate(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
IN LONG fExchangeCertificate,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN DWORD Flags,
|
||
|
OUT BSTR *pstrCert);
|
||
|
|
||
|
HRESULT
|
||
|
Request2_GetIssuedCertificate(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG RequestId,
|
||
|
IN WCHAR const *pwszSerialNumber,
|
||
|
OUT LONG *pDisposition);
|
||
|
|
||
|
HRESULT
|
||
|
Request2_GetErrorMessageText(
|
||
|
IN LONG hrMessage,
|
||
|
IN LONG Flags,
|
||
|
OUT BSTR *pstrErrorMessageText);
|
||
|
|
||
|
HRESULT
|
||
|
Request2_GetCAProperty(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG PropId,
|
||
|
IN LONG PropIndex,
|
||
|
IN LONG PropType,
|
||
|
IN LONG Flags,
|
||
|
OUT VOID *pPropertyValue);
|
||
|
|
||
|
HRESULT
|
||
|
Request2_GetCAPropertyFlags(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG PropId,
|
||
|
OUT LONG *pPropFlags);
|
||
|
|
||
|
HRESULT
|
||
|
Request2_GetCAPropertyDisplayName(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG PropId,
|
||
|
OUT BSTR *pstrDisplayName);
|
||
|
|
||
|
HRESULT
|
||
|
Request2_GetFullResponseProperty(
|
||
|
IN DISPATCHINTERFACE *pdiRequest,
|
||
|
IN LONG PropId,
|
||
|
IN LONG PropIndex,
|
||
|
IN LONG PropType,
|
||
|
IN LONG Flags,
|
||
|
OUT VOID *pPropertyValue);
|
||
|
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// ICertServerExit dispatch support
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_Init(
|
||
|
IN DWORD Flags, // See DispatchSetup() Flags
|
||
|
IN OUT DISPATCHINTERFACE *pdiCIExit);
|
||
|
|
||
|
VOID
|
||
|
CIExit_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiCIExit);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_SetContext(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
IN LONG Context);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_GetRequestProperty(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
IN WCHAR const *pwszPropName,
|
||
|
IN LONG PropertyType,
|
||
|
OUT BSTR *pbstrPropValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_GetRequestAttribute(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
IN WCHAR const *pwszPropName,
|
||
|
OUT BSTR *pbstrPropValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_GetCertificateProperty(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
IN WCHAR const *pwszPropName,
|
||
|
IN LONG PropertyType,
|
||
|
OUT BSTR *pbstrPropValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_GetCertificateExtension(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
IN WCHAR const *pwszExtensionName,
|
||
|
IN LONG Type,
|
||
|
OUT BSTR *pbstrValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_GetCertificateExtensionFlags(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
OUT LONG *pExtFlags);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_EnumerateExtensionsSetup(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
IN LONG Flags);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_EnumerateExtensions(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
OUT BSTR *pstrExtensionName);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_EnumerateExtensionsClose(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_EnumerateAttributesSetup(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
IN LONG Flags);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_EnumerateAttributes(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit,
|
||
|
OUT BSTR *pstrAttributeName);
|
||
|
|
||
|
HRESULT
|
||
|
CIExit_EnumerateAttributesClose(
|
||
|
IN DISPATCHINTERFACE *pdiCIExit);
|
||
|
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// ICertServerPolicy dispatch support
|
||
|
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_Init(
|
||
|
IN DWORD Flags, // See DispatchSetup() Flags
|
||
|
IN OUT DISPATCHINTERFACE *pdiCIPolicy);
|
||
|
|
||
|
VOID
|
||
|
CIPolicy_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiCIPolicy);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_SetContext(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
IN LONG Context);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_GetRequestProperty(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
IN WCHAR const *pwszPropName,
|
||
|
IN LONG PropertyType,
|
||
|
OUT BSTR *pbstrPropValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_GetRequestAttribute(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
IN WCHAR const *pwszPropName,
|
||
|
OUT BSTR *pbstrPropValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_GetCertificateProperty(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
IN WCHAR const *pwszPropName,
|
||
|
IN LONG PropertyType,
|
||
|
OUT BSTR *pbstrPropValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_SetCertificateProperty(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
IN WCHAR const *pwszPropName,
|
||
|
IN LONG PropertyType,
|
||
|
IN WCHAR const *pwszPropValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_GetCertificateExtension(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
IN WCHAR const *pwszExtensionName,
|
||
|
IN LONG Type,
|
||
|
OUT BSTR *pbstrValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_GetCertificateExtensionFlags(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
OUT LONG *pExtFlags);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_SetCertificateExtension(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
IN WCHAR const *pwszExtensionName,
|
||
|
IN LONG Type,
|
||
|
IN LONG ExtFlags,
|
||
|
IN void const *pvValue);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_EnumerateExtensionsSetup(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
IN LONG Flags);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_EnumerateExtensions(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
OUT BSTR *pstrExtensionName);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_EnumerateExtensionsClose(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_EnumerateAttributesSetup(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
IN LONG Flags);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_EnumerateAttributes(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy,
|
||
|
OUT BSTR *pstrAttributeName);
|
||
|
|
||
|
HRESULT
|
||
|
CIPolicy_EnumerateAttributesClose(
|
||
|
IN DISPATCHINTERFACE *pdiCIPolicy);
|
||
|
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// ICertAdmin dispatch support
|
||
|
|
||
|
HRESULT
|
||
|
Admin_Init(
|
||
|
IN DWORD Flags, // See DispatchSetup() Flags
|
||
|
IN OUT DISPATCHINTERFACE *pdiAdmin);
|
||
|
|
||
|
VOID
|
||
|
Admin_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiAdmin);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_IsValidCertificate(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN WCHAR const *pwszSerialNumber,
|
||
|
OUT LONG *pDisposition);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_GetRevocationReason(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
OUT LONG *pReason);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_RevokeCertificate(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN WCHAR const *pwszSerialNumber,
|
||
|
IN LONG Reason,
|
||
|
IN DATE Date);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_SetRequestAttributes(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG RequestId,
|
||
|
IN WCHAR const *pwszAttributes);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_SetCertificateExtension(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG RequestId,
|
||
|
IN WCHAR const *pwszExtensionName,
|
||
|
IN LONG Type,
|
||
|
IN LONG Flags,
|
||
|
IN VARIANT const *pvarValue);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_DenyRequest(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG RequestId);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_ResubmitRequest(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG RequestId,
|
||
|
OUT LONG *pDisposition);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_PublishCRL(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN DATE Date);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_GetCRL(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG Flags,
|
||
|
OUT BSTR *pstrCRL);
|
||
|
|
||
|
HRESULT
|
||
|
Admin_ImportCertificate(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN WCHAR const *pwszCertificate,
|
||
|
IN DWORD cbCertificate,
|
||
|
IN LONG dwFlags,
|
||
|
OUT LONG *RequestId);
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_PublishCRLs(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN DATE Date,
|
||
|
IN LONG CRLFlags); // CA_CRL_*
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_GetCAProperty(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG PropId,
|
||
|
IN LONG PropIndex,
|
||
|
IN LONG PropType,
|
||
|
IN LONG Flags,
|
||
|
OUT VOID *pPropertyValue);
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_SetCAProperty(
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG PropId, // CR_PROP_*
|
||
|
IN LONG PropIndex,
|
||
|
IN LONG PropType, // PROPTYPE_*
|
||
|
IN VARIANT *pvarPropertyValue);
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_GetCAPropertyFlags(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG PropId,
|
||
|
OUT LONG *pPropFlags);
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_GetCAPropertyDisplayName(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG PropId,
|
||
|
OUT BSTR *pstrDisplayName);
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_GetArchivedKey(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG RequestId,
|
||
|
IN LONG Flags, // CR_OUT_*
|
||
|
OUT BSTR *pstrArchivedKey);
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_GetConfigEntry(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN WCHAR const *pwszNodePath,
|
||
|
IN WCHAR const *pwszEntryName,
|
||
|
OUT VARIANT *pvarEntry);
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_SetConfigEntry(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN WCHAR const *pwszNodePath,
|
||
|
IN WCHAR const *pwszEntryName,
|
||
|
IN VARIANT const *pvarEntry);
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_ImportKey(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG RequestId,
|
||
|
IN WCHAR const *pwszCertHash,
|
||
|
IN LONG Flags,
|
||
|
IN WCHAR const *pwszKey,
|
||
|
IN DWORD cbKey);
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_GetMyRoles(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
OUT LONG *pRoles); // CA_ACCESS_*
|
||
|
|
||
|
HRESULT
|
||
|
Admin2_DeleteRow(
|
||
|
IN DISPATCHINTERFACE *pdiAdmin,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG Flags, // CDR_*
|
||
|
IN DATE Date,
|
||
|
IN LONG Table, // CVRC_TABLE_*
|
||
|
IN LONG RowId,
|
||
|
OUT LONG *pcDeleted);
|
||
|
|
||
|
HRESULT
|
||
|
AdminRevokeCertificate(
|
||
|
IN DWORD Flags,
|
||
|
OPTIONAL IN WCHAR const *pwszConfig,
|
||
|
IN WCHAR const *pwszSerialNumber,
|
||
|
IN LONG Reason,
|
||
|
IN DATE Date);
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// ICertView dispatch support
|
||
|
|
||
|
HRESULT
|
||
|
View_Init(
|
||
|
IN DWORD Flags, // See DispatchSetup() Flags
|
||
|
IN OUT DISPATCHINTERFACE *pdiView);
|
||
|
|
||
|
VOID
|
||
|
View_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiView);
|
||
|
|
||
|
HRESULT
|
||
|
View_OpenConnection(
|
||
|
IN DISPATCHINTERFACE *pdiView,
|
||
|
IN WCHAR const *pwszConfig);
|
||
|
|
||
|
HRESULT
|
||
|
View_EnumCertViewColumn(
|
||
|
IN DISPATCHINTERFACE *pdiView,
|
||
|
IN LONG fResultColumn,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewColumn);
|
||
|
|
||
|
HRESULT
|
||
|
View_GetColumnCount(
|
||
|
IN DISPATCHINTERFACE *pdiView,
|
||
|
IN LONG fResultColumn,
|
||
|
OUT LONG *pcColumn);
|
||
|
|
||
|
HRESULT
|
||
|
View_GetColumnIndex(
|
||
|
IN DISPATCHINTERFACE *pdiView,
|
||
|
IN LONG fResultColumn,
|
||
|
IN WCHAR const *pwszColumnName,
|
||
|
OUT LONG *pColumnIndex);
|
||
|
|
||
|
HRESULT
|
||
|
View_SetResultColumnCount(
|
||
|
IN DISPATCHINTERFACE *pdiView,
|
||
|
IN LONG cResultColumn);
|
||
|
|
||
|
HRESULT
|
||
|
View_SetResultColumn(
|
||
|
IN DISPATCHINTERFACE *pdiView,
|
||
|
IN LONG ColumnIndex);
|
||
|
|
||
|
HRESULT
|
||
|
View_SetRestriction(
|
||
|
IN DISPATCHINTERFACE *pdiView,
|
||
|
IN LONG ColumnIndex,
|
||
|
IN LONG SeekOperator,
|
||
|
IN LONG SortOrder,
|
||
|
IN VARIANT const *pvarValue);
|
||
|
|
||
|
HRESULT
|
||
|
View_OpenView(
|
||
|
IN DISPATCHINTERFACE *pdiView,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewRow);
|
||
|
|
||
|
HRESULT
|
||
|
View2_SetTable(
|
||
|
IN DISPATCHINTERFACE *pdiView,
|
||
|
IN LONG Table);
|
||
|
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// IEnumCERTVIEWCOLUMN dispatch support
|
||
|
|
||
|
interface IEnumCERTVIEWCOLUMN;
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_Init2(
|
||
|
IN BOOL fIDispatch,
|
||
|
IN IEnumCERTVIEWCOLUMN *pEnumColumn,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewColumn);
|
||
|
|
||
|
VOID
|
||
|
ViewColumn_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewColumn);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_Next(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn,
|
||
|
OUT LONG *pIndex);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_GetName(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn,
|
||
|
OUT BSTR *pstrOut);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_GetDisplayName(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn,
|
||
|
OUT BSTR *pstrOut);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_GetType(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn,
|
||
|
OUT LONG *pType);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_IsIndexed(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn,
|
||
|
OUT LONG *pIndexed);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_GetMaxLength(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn,
|
||
|
OUT LONG *pMaxLength);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_GetValue(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn,
|
||
|
IN LONG Flags,
|
||
|
IN LONG ColumnType,
|
||
|
OUT VOID *pColumnValue);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_Skip(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn,
|
||
|
IN LONG celt);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_Reset(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn);
|
||
|
|
||
|
HRESULT
|
||
|
ViewColumn_Clone(
|
||
|
IN DISPATCHINTERFACE *pdiViewColumn,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewColumnClone);
|
||
|
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// IEnumCERTVIEWATTRIBUTE dispatch support
|
||
|
|
||
|
interface IEnumCERTVIEWATTRIBUTE;
|
||
|
|
||
|
HRESULT
|
||
|
ViewAttribute_Init2(
|
||
|
IN BOOL fIDispatch,
|
||
|
IN IEnumCERTVIEWATTRIBUTE *pEnumAttribute,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewAttribute);
|
||
|
|
||
|
VOID
|
||
|
ViewAttribute_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewAttribute);
|
||
|
|
||
|
HRESULT
|
||
|
ViewAttribute_Next(
|
||
|
IN DISPATCHINTERFACE *pdiViewAttribute,
|
||
|
OUT LONG *pIndex);
|
||
|
|
||
|
HRESULT
|
||
|
ViewAttribute_GetName(
|
||
|
IN DISPATCHINTERFACE *pdiViewAttribute,
|
||
|
OUT BSTR *pstrOut);
|
||
|
|
||
|
HRESULT
|
||
|
ViewAttribute_GetValue(
|
||
|
IN DISPATCHINTERFACE *pdiViewAttribute,
|
||
|
OUT BSTR *pstrOut);
|
||
|
|
||
|
HRESULT
|
||
|
ViewAttribute_Skip(
|
||
|
IN DISPATCHINTERFACE *pdiViewAttribute,
|
||
|
IN LONG celt);
|
||
|
|
||
|
HRESULT
|
||
|
ViewAttribute_Reset(
|
||
|
IN DISPATCHINTERFACE *pdiViewAttribute);
|
||
|
|
||
|
HRESULT
|
||
|
ViewAttribute_Clone(
|
||
|
IN DISPATCHINTERFACE *pdiViewAttribute,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewAttributeClone);
|
||
|
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// IEnumCERTVIEWEXTENSION dispatch support
|
||
|
|
||
|
interface IEnumCERTVIEWEXTENSION;
|
||
|
|
||
|
HRESULT
|
||
|
ViewExtension_Init2(
|
||
|
IN BOOL fIDispatch,
|
||
|
IN IEnumCERTVIEWEXTENSION *pEnumExtension,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewExtension);
|
||
|
|
||
|
VOID
|
||
|
ViewExtension_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewExtension);
|
||
|
|
||
|
HRESULT
|
||
|
ViewExtension_Next(
|
||
|
IN DISPATCHINTERFACE *pdiViewExtension,
|
||
|
OUT LONG *pIndex);
|
||
|
|
||
|
HRESULT
|
||
|
ViewExtension_GetName(
|
||
|
IN DISPATCHINTERFACE *pdiViewExtension,
|
||
|
OUT BSTR *pstrOut);
|
||
|
|
||
|
HRESULT
|
||
|
ViewExtension_GetFlags(
|
||
|
IN DISPATCHINTERFACE *pdiViewExtension,
|
||
|
OUT LONG *pFlags);
|
||
|
|
||
|
HRESULT
|
||
|
ViewExtension_GetValue(
|
||
|
IN DISPATCHINTERFACE *pdiViewExtension,
|
||
|
IN LONG Type,
|
||
|
IN LONG Flags,
|
||
|
OUT VOID *pValue);
|
||
|
|
||
|
HRESULT
|
||
|
ViewExtension_Skip(
|
||
|
IN DISPATCHINTERFACE *pdiViewExtension,
|
||
|
IN LONG celt);
|
||
|
|
||
|
HRESULT
|
||
|
ViewExtension_Reset(
|
||
|
IN DISPATCHINTERFACE *pdiViewExtension);
|
||
|
|
||
|
HRESULT
|
||
|
ViewExtension_Clone(
|
||
|
IN DISPATCHINTERFACE *pdiViewExtension,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewExtensionClone);
|
||
|
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// IEnumCERTVIEWROW dispatch support
|
||
|
|
||
|
interface IEnumCERTVIEWROW;
|
||
|
|
||
|
HRESULT
|
||
|
ViewRow_Init2(
|
||
|
IN BOOL fIDispatch,
|
||
|
IN IEnumCERTVIEWROW *pEnumRow,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewRow);
|
||
|
|
||
|
VOID
|
||
|
ViewRow_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewRow);
|
||
|
|
||
|
HRESULT
|
||
|
ViewRow_Next(
|
||
|
IN DISPATCHINTERFACE *pdiViewRow,
|
||
|
OUT LONG *pIndex);
|
||
|
|
||
|
HRESULT
|
||
|
ViewRow_GetMaxIndex(
|
||
|
IN DISPATCHINTERFACE *pdiViewRow,
|
||
|
OUT LONG *pIndex);
|
||
|
|
||
|
HRESULT
|
||
|
ViewRow_EnumCertViewColumn(
|
||
|
IN DISPATCHINTERFACE *pdiViewRow,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewColumn);
|
||
|
|
||
|
HRESULT
|
||
|
ViewRow_EnumCertViewAttribute(
|
||
|
IN DISPATCHINTERFACE *pdiViewRow,
|
||
|
IN LONG Flags,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewAttribute);
|
||
|
|
||
|
HRESULT
|
||
|
ViewRow_EnumCertViewExtension(
|
||
|
IN DISPATCHINTERFACE *pdiViewRow,
|
||
|
IN LONG Flags,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewExtension);
|
||
|
|
||
|
HRESULT
|
||
|
ViewRow_Skip(
|
||
|
IN DISPATCHINTERFACE *pdiViewRow,
|
||
|
IN LONG celt);
|
||
|
|
||
|
HRESULT
|
||
|
ViewRow_Reset(
|
||
|
IN DISPATCHINTERFACE *pdiViewRow);
|
||
|
|
||
|
HRESULT
|
||
|
ViewRow_Clone(
|
||
|
IN DISPATCHINTERFACE *pdiViewRow,
|
||
|
IN OUT DISPATCHINTERFACE *pdiViewRowClone);
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// IManageModule dispatch support
|
||
|
HRESULT
|
||
|
ManageModule_Init(
|
||
|
IN DWORD Flags,
|
||
|
IN WCHAR const *pszProgID,
|
||
|
IN CLSID const *pclsid,
|
||
|
IN OUT DISPATCHINTERFACE *pdiManage);
|
||
|
|
||
|
HRESULT
|
||
|
ManageModule_Init2(
|
||
|
IN BOOL fIDispatch,
|
||
|
IN ICertManageModule *pManage,
|
||
|
OUT DISPATCHINTERFACE *pdiManage);
|
||
|
|
||
|
VOID
|
||
|
ManageModule_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiManage);
|
||
|
|
||
|
HRESULT
|
||
|
ManageModule_GetProperty(
|
||
|
IN DISPATCHINTERFACE *pdiManage,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN WCHAR const *pwszStorageLocation,
|
||
|
IN WCHAR const *pwszPropertyName,
|
||
|
IN DWORD dwFlags,
|
||
|
IN LONG PropertyType,
|
||
|
OUT VOID *pProperty);
|
||
|
|
||
|
HRESULT
|
||
|
ManageModule_SetProperty(
|
||
|
IN DISPATCHINTERFACE *pdiManage,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN WCHAR const *pwszStorageLocation,
|
||
|
IN WCHAR const *pwszPropertyName,
|
||
|
IN DWORD dwFlags,
|
||
|
IN LONG PropertyType,
|
||
|
IN VOID *pProperty);
|
||
|
|
||
|
HRESULT
|
||
|
ManageModule_Configure(
|
||
|
IN DISPATCHINTERFACE *pdiManage,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN WCHAR const *pwszStorageLocation,
|
||
|
IN DWORD dwFlags);
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// ICertPolicy dispatch support
|
||
|
|
||
|
#define POLICY_VERIFYREQUEST 0
|
||
|
#define POLICY_GETDESCRIPTION 1
|
||
|
#define POLICY_INITIALIZE 2
|
||
|
#define POLICY_SHUTDOWN 3
|
||
|
#define POLICY2_GETMANAGEMODULE 4
|
||
|
|
||
|
#define CPOLICYDISPATCH_V1 POLICY2_GETMANAGEMODULE
|
||
|
#define CPOLICYDISPATCH_V2 CPOLICYDISPATCH
|
||
|
|
||
|
extern DWORD s_acPolicyDispatch[2];
|
||
|
extern IID const *s_apPolicyiid[2];
|
||
|
extern DISPATCHTABLE g_adtPolicy[];
|
||
|
extern DWORD CPOLICYDISPATCH;
|
||
|
|
||
|
HRESULT
|
||
|
Policy_Initialize(
|
||
|
IN DISPATCHINTERFACE *pdiPolicy,
|
||
|
IN WCHAR const *pwszConfig);
|
||
|
|
||
|
HRESULT
|
||
|
Policy_ShutDown(
|
||
|
IN DISPATCHINTERFACE *pdiPolicy);
|
||
|
|
||
|
HRESULT
|
||
|
Policy_VerifyRequest(
|
||
|
IN DISPATCHINTERFACE *pdiPolicy,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
IN LONG Context,
|
||
|
IN LONG bNewRequest,
|
||
|
IN LONG Flags,
|
||
|
OUT LONG *pResult);
|
||
|
|
||
|
HRESULT
|
||
|
Policy_GetDescription(
|
||
|
IN DISPATCHINTERFACE *pdiPolicy,
|
||
|
OUT BSTR *pstrDescription);
|
||
|
|
||
|
HRESULT
|
||
|
Policy2_GetManageModule(
|
||
|
IN DISPATCHINTERFACE *pdiPolicy,
|
||
|
OUT DISPATCHINTERFACE *pdiManageModule);
|
||
|
|
||
|
HRESULT
|
||
|
Policy_Init(
|
||
|
IN DWORD Flags,
|
||
|
IN LPCWSTR pcwszProgID,
|
||
|
IN CLSID const *pclsid,
|
||
|
OUT DISPATCHINTERFACE *pdiCIPolicy);
|
||
|
|
||
|
VOID
|
||
|
Policy_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiManage);
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
// ICertExit dispatch support
|
||
|
|
||
|
#define EXIT_INITIALIZE 0
|
||
|
#define EXIT_NOTIFY 1
|
||
|
#define EXIT_GETDESCRIPTION 2
|
||
|
#define EXIT2_GETMANAGEMODULE 3
|
||
|
|
||
|
#define CEXITDISPATCH_V1 EXIT2_GETMANAGEMODULE
|
||
|
#define CEXITDISPATCH_V2 CEXITDISPATCH
|
||
|
|
||
|
extern DISPATCHTABLE g_adtExit[];
|
||
|
extern DWORD CEXITDISPATCH;
|
||
|
extern DWORD s_acExitDispatch[2];
|
||
|
extern IID const *s_apExitiid[2];
|
||
|
|
||
|
HRESULT
|
||
|
Exit_Init(
|
||
|
IN DWORD Flags,
|
||
|
IN LPCWSTR pcwszProgID,
|
||
|
IN CLSID const *pclsid,
|
||
|
OUT DISPATCHINTERFACE *pdi);
|
||
|
|
||
|
VOID
|
||
|
Exit_Release(
|
||
|
IN OUT DISPATCHINTERFACE *pdiManage);
|
||
|
|
||
|
HRESULT
|
||
|
Exit_Initialize(
|
||
|
IN DISPATCHINTERFACE *pdiExit,
|
||
|
IN BSTR strDescription,
|
||
|
IN WCHAR const *pwszConfig,
|
||
|
OUT LONG *pEventMask);
|
||
|
|
||
|
HRESULT
|
||
|
Exit_Notify(
|
||
|
IN DISPATCHINTERFACE *pdiExit,
|
||
|
IN BSTR strDescription,
|
||
|
IN LONG ExitEvent,
|
||
|
IN LONG Context);
|
||
|
|
||
|
HRESULT
|
||
|
Exit_GetDescription(
|
||
|
IN DISPATCHINTERFACE *pdiExit,
|
||
|
OUT BSTR *pstrDescription);
|
||
|
|
||
|
HRESULT
|
||
|
Exit2_GetManageModule(
|
||
|
IN DISPATCHINTERFACE *pdiExit,
|
||
|
OUT DISPATCHINTERFACE *pdiManageModule);
|
||
|
|
||
|
|
||
|
#endif // __CSDISP_H__
|