|
|
//+-------------------------------------------------------------------------
//
// 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__
|