windows-nt/Source/XPSP1/NT/ds/security/services/ca/certmmc/genpage.h

894 lines
20 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: genpage.h
//
//--------------------------------------------------------------------------
// genpage.h : header file
//
#define SERVERSETTINGS_PROPPAGE_GENERAL 0x1
#define SERVERSETTINGS_PROPPAGE_POLICY 0x2
#define SERVERSETTINGS_PROPPAGE_EXIT 0x4
#define SERVERSETTINGS_PROPPAGE_STORAGE 0x8
#define SERVERSETTINGS_PROPPAGE_KRA 0x10
/////////////////////////////////////////////////////////////////////////////
// CGeneralPage dialog
#include "chooser.h"
#include "csw97ppg.h"
#include "urls.h"
#include "officer.h"
//////////////////////////////
// hand-hewn pages
class CSvrSettingsGeneralPage : public CAutoDeletePropPage
{
public:
enum { IID_DEFAULT = IDD_CERTSRV_PROPPAGE1 };
// Construction
public:
CSvrSettingsGeneralPage(CertSvrCA* pCA, UINT uIDD = IID_DEFAULT);
virtual ~CSvrSettingsGeneralPage();
// Dialog Data
CString m_cstrCAName;
CString m_cstrOrg;
CString m_cstrDescription;
CString m_cstrProvName;
CString m_cstrHashAlg;
// Overrides
public:
virtual BOOL OnApply();
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
void OnDestroy();
void OnEditChange();
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
void OnViewCert(HWND hwnd);
BOOL OnNotify(UINT idCtrl, NMHDR* pnmh);
public:
void NeedServiceRestart(WORD wPage) { m_fRestartServer = TRUE; m_wRestart |= wPage; }
void TryServiceRestart(WORD wPage);
void SetAllocedSecurityInfo(LPSECURITYINFO pToBeReleased) {m_pReleaseMe = pToBeReleased; }
LONG_PTR m_hConsoleHandle; // Handle given to the snap-in by the console
CertSvrCA* m_pCA;
private:
BOOL m_bUpdate;
BOOL m_fRestartServer;
WORD m_wRestart;
BOOL m_fWin2kCA;
LPSECURITYINFO m_pReleaseMe;
ICertAdmin2 *m_pAdmin;
};
class CSvrSettingsPolicyPage : public CAutoDeletePropPage
{
public:
enum { IID_DEFAULT = IDD_CERTSRV_PROPPAGE2 };
// Construction
public:
CSvrSettingsPolicyPage(CSvrSettingsGeneralPage* pControlPage, UINT uIDD = IID_DEFAULT);
virtual ~CSvrSettingsPolicyPage();
// Dialog Data
CString m_cstrModuleName;
CString m_cstrModuleDescr;
CString m_cstrModuleVersion;
CString m_cstrModuleCopyright;
BOOL m_fLoadedActiveModule;
LPOLESTR m_pszprogidPolicyModule;
CLSID m_clsidPolicyModule;
// Overrides
public:
virtual BOOL OnApply();
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
void OnDestroy();
void OnSetActiveModule();
void OnConfigureModule();
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
HRESULT GetCurrentModuleProperties();
public:
CSvrSettingsGeneralPage* m_pControlPage;
private:
BOOL m_bUpdate;
};
// everything you could want to describe a policy/exit module
typedef struct _COM_CERTSRV_MODULEDEFN
{
LPOLESTR szModuleProgID;
CLSID clsidModule;
} COM_CERTSRV_MODULEDEFN, *PCOM_CERTSRV_MODULEDEFN;
class CSvrSettingsExitPage : public CAutoDeletePropPage
{
public:
enum { IID_DEFAULT = IDD_CERTSRV_PROPPAGE3 };
// Construction
public:
CSvrSettingsExitPage(CSvrSettingsGeneralPage* pControlPage, UINT uIDD = IID_DEFAULT);
virtual ~CSvrSettingsExitPage();
// Dialog Data
CString m_cstrModuleName;
CString m_cstrModuleDescr;
CString m_cstrModuleVersion;
CString m_cstrModuleCopyright;
BOOL m_fLoadedActiveModule;
int m_iSelected;
CArray<COM_CERTSRV_MODULEDEFN, COM_CERTSRV_MODULEDEFN> m_arrExitModules;
// Overrides
public:
virtual BOOL OnApply();
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
void OnDestroy();
BOOL UpdateSelectedModule();
void OnAddActiveModule();
void OnRemoveActiveModule();
void OnConfigureModule();
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
HRESULT InitializeExitLB();
public:
CSvrSettingsGeneralPage* m_pControlPage;
private:
BOOL m_bUpdate;
};
typedef struct _EXTENSIONWIZ_DATA
{
int idExtensionName; //resource id of extension name
int idExtensionExplain;//resource id of extension explaination
WCHAR *wszRegName; //value name in registry
DWORD dwFlagsMask; //flag mask of compatible bits
CSURLTEMPLATENODE *pURLList; //list of url templates
} EXTENSIONWIZ_DATA;
class CSvrSettingsExtensionPage : public CAutoDeletePropPage
{
public:
enum { IID_DEFAULT = IDD_CERTSRV_PROPPAGE4 };
// Construction
public:
CSvrSettingsExtensionPage(
CertSvrCA *pCA,
CSvrSettingsGeneralPage *pControlPage,
UINT uIDD = IID_DEFAULT);
virtual ~CSvrSettingsExtensionPage();
// Dialog Data
// Overrides
public:
virtual BOOL OnApply();
virtual BOOL OnInitDialog();
// Implementation
protected:
void OnDestroy();
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
CSvrSettingsGeneralPage* m_pControlPage;
private:
void UpdateURLFlags(
IN EXTENSIONWIZ_DATA *pExt,
IN OPTIONAL CSURLTEMPLATENODE *pURLNode);
void UpdateURLFlagControl(
IN int idCtrl,
IN DWORD dwFlag,
IN EXTENSIONWIZ_DATA *pExt,
IN CSURLTEMPLATENODE *pURLNode);
void OnExtensionChange();
void OnURLChange();
void OnFlagChange(DWORD dwFlag);
BOOL OnURLRemove();
BOOL OnURLAdd();
CSURLTEMPLATENODE *GetCurrentURL(LRESULT *pnIndex);
EXTENSIONWIZ_DATA *GetCurrentExtension();
BOOL m_bUpdate;
EXTENSIONWIZ_DATA *m_pExtData; // point to array of extensions
CertSvrCA* m_pCA;
};
class CSvrSettingsStoragePage : public CAutoDeletePropPage
{
public:
enum { IID_DEFAULT = IDD_CERTSRV_PROPPAGE5 };
// Construction
public:
CSvrSettingsStoragePage(CSvrSettingsGeneralPage* pControlPage, UINT uIDD = IID_DEFAULT);
virtual ~CSvrSettingsStoragePage();
// Dialog Data
CString m_cstrDatabasePath;
CString m_cstrLogPath;
CString m_cstrSharedFolder;
// Overrides
public:
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
public:
CSvrSettingsGeneralPage* m_pControlPage;
private:
BOOL m_bUpdate;
};
typedef struct _KRA_NODE
{
CERT_CONTEXT const *pCert;
DWORD dwDisposition;
DWORD dwFlags;
struct _KRA_NODE *next;
} KRA_NODE;
class CSvrSettingsKRAPage : public CAutoDeletePropPage
{
public:
enum { IID_DEFAULT = IDD_CERTSRV_PROPPAGE_CHOOSE_KRA };
// Construction
public:
CSvrSettingsKRAPage(
CertSvrCA *pCA,
CSvrSettingsGeneralPage* pControlPage,
UINT uIDD = IID_DEFAULT);
virtual ~CSvrSettingsKRAPage();
// Dialog Data
// Overrides
public:
virtual BOOL OnApply();
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
static LPCWSTR MapDispositionToString(DWORD dwDisp);
// Implementation
protected:
void OnDestroy();
void OnAddKRA();
void OnRemoveKRA();
void OnViewKRA();
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
void EnableKRARemoveViewListButtons(BOOL fEnabled);
void EnableKRAAddListButton(BOOL fEnabled);
void EnableKRARadioButtons(BOOL fMoreThanZero);
void EnableKRAListView(BOOL fEnabled);
void EnableKRAEdit(BOOL fEnabled);
void UpdateKRARadioControls();
void LoadKRADispositions();
BOOL OnNotify(UINT idCtrl, NMHDR* pnmh);
HRESULT SaveKRAList(ICertAdmin2 *pAdmin);
HRESULT LoadKRAList(ICertAdmin2 *pAdmin);
bool IsCurrentItemValidCert();
public:
CSvrSettingsGeneralPage* m_pControlPage;
private:
BOOL m_fDirty;
BOOL m_fArchiveKey;
BOOL m_fCountUpdate;
BOOL m_fKRAUpdate;
KRA_NODE *m_pKRAList; //list of KRAs
CertSvrCA *m_pCA;
DWORD m_dwKRAUsedCount;
DWORD m_dwKRACount;
static CString m_strDispositions[];
};
/////////////////////////////////////////
// CCRLPropPage
class CCRLPropPage : public CAutoDeletePropPage
{
public:
enum { IID_DEFAULT = IDD_CRL_PROPPAGE };
// Construction
public:
CCRLPropPage(CertSvrCA* pCA, UINT uIDD = IID_DEFAULT);
virtual ~CCRLPropPage();
// Dialog Data
CString m_cstrPublishPeriodCount;
CComboBox m_cboxPublishPeriodString;
CString m_cstrLastCRLPublish;
// int m_iNoAutoPublish;
CString m_cstrDeltaPublishPeriodCount;
CComboBox m_cboxDeltaPublishPeriodString;
CString m_cstrDeltaLastCRLPublish;
int m_iDeltaPublish;
// Overrides
public:
virtual BOOL OnApply();
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
void OnDestroy();
void OnEditChange();
void OnCheckBoxChange(BOOL fDisableBaseCRL);
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
void GetDeltaNextPublish();
public:
LONG_PTR m_hConsoleHandle; // Handle given to the snap-in by the console
CertSvrCA* m_pCA;
private:
BOOL m_bUpdate;
};
/////////////////////////////////////////
// CCRLViewPage
class CCRLViewPage : public CAutoDeletePropPage
{
public:
enum { IID_DEFAULT = IDD_CRL_VIEWPAGE };
// Construction
public:
CCRLViewPage(CCRLPropPage* pControlPage, UINT uIDD = IID_DEFAULT);
virtual ~CCRLViewPage();
// Dialog Data
// Overrides
public:
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
void OnViewCRL(BOOL fViewBaseCRL);
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
void OnDestroy();
BOOL OnNotify(UINT idCtrl, NMHDR* pnmh);
public:
CCRLPropPage* m_pControlPage;
};
typedef struct _BACKUPWIZ_STATE
{
CertSvrCA* pCA;
BOOL fBackupKeyCert;
BOOL fBackupLogs;
BOOL fIncremental;
LPWSTR szLogsPath;
LPWSTR szPassword;
} BACKUPWIZ_STATE, *PBACKUPWIZ_STATE;
/////////////////////////////////////////
// CBackupWizPage
class CBackupWizPage1 : public CWizard97PropertyPage
{
public:
enum { IID_DEFAULT = IDD_BACKUPWIZ_WELCOME };
// Construction
public:
CBackupWizPage1(PBACKUPWIZ_STATE pState, CWizard97PropertySheet *pcDlg, UINT uIDD = IID_DEFAULT);
~CBackupWizPage1();
// Dialog Data
// Overrides
public:
virtual BOOL OnInitDialog();
virtual BOOL OnSetActive();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
PBACKUPWIZ_STATE m_pState;
CWizard97PropertySheet* m_pParentSheet;
};
/////////////////////////////////////////
// CBackupWizPage2
class CBackupWizPage2 : public CWizard97PropertyPage
{
public:
enum { IID_DEFAULT = IDD_BACKUPWIZ_SELECT_DATA};
// Construction
public:
CBackupWizPage2(PBACKUPWIZ_STATE pState, CWizard97PropertySheet *pcDlg, UINT uIDD = IID_DEFAULT);
// Dialog Data
CString m_cstrLogsPath;
int m_iKeyCertCheck;
int m_iLogsCheck;
int m_iIncrementalCheck;
BOOL m_fIncrementalAllowed;
// Overrides
public:
virtual BOOL OnInitDialog();
virtual LRESULT OnWizardNext();
virtual BOOL OnSetActive();
void OnBrowse();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
HRESULT ConvertLogsPathToFullPath();
public:
PBACKUPWIZ_STATE m_pState;
CWizard97PropertySheet* m_pParentSheet;
};
/////////////////////////////////////////
// CBackupWizPage3
class CBackupWizPage3 : public CWizard97PropertyPage
{
public:
enum { IID_DEFAULT = IDD_BACKUPWIZ_SELECT_PASSWORD};
// Construction
public:
CBackupWizPage3(PBACKUPWIZ_STATE pState, CWizard97PropertySheet *pcDlg, UINT uIDD = IID_DEFAULT);
// Dialog Data
CString m_cstrPwd;
CString m_cstrPwdVerify;
// Overrides
public:
virtual BOOL OnInitDialog();
virtual LRESULT OnWizardNext();
virtual BOOL OnSetActive();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
PBACKUPWIZ_STATE m_pState;
CWizard97PropertySheet* m_pParentSheet;
};
/////////////////////////////////////////
// CBackupWizPage5
class CBackupWizPage5 : public CWizard97PropertyPage
{
public:
enum { IID_DEFAULT = IDD_BACKUPWIZ_COMPLETION };
// Construction
public:
CBackupWizPage5(PBACKUPWIZ_STATE pState, CWizard97PropertySheet *pcDlg, UINT uIDD = IID_DEFAULT);
// Dialog Data
// Overrides
public:
virtual BOOL OnInitDialog();
virtual LRESULT OnWizardBack();
virtual BOOL OnSetActive();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
PBACKUPWIZ_STATE m_pState;
CWizard97PropertySheet* m_pParentSheet;
};
typedef struct _RESTOREWIZ_STATE
{
CertSvrCA* pCA;
BOOL fRestoreKeyCert;
LPWSTR szKeyCertPath;
LPWSTR szConfigPath;
BOOL fRestoreLogs;
LPWSTR szLogsPath;
LPWSTR szPassword;
BOOL fIncremental;
} RESTOREWIZ_STATE, *PRESTOREWIZ_STATE;
/////////////////////////////////////////
// CRestoreWizPage
class CRestoreWizPage1 : public CWizard97PropertyPage
{
public:
enum { IID_DEFAULT = IDD_RESTOREWIZ_WELCOME };
// Construction
public:
CRestoreWizPage1(PRESTOREWIZ_STATE pState, CWizard97PropertySheet *pcDlg, UINT uIDD = IID_DEFAULT);
~CRestoreWizPage1();
// Dialog Data
// Overrides
public:
virtual BOOL OnInitDialog();
virtual BOOL OnSetActive();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
PRESTOREWIZ_STATE m_pState;
CWizard97PropertySheet* m_pParentSheet;
};
/////////////////////////////////////////
// CRestoreWizPage2
class CRestoreWizPage2 : public CWizard97PropertyPage
{
public:
enum { IID_DEFAULT = IDD_RESTOREWIZ_SELECT_DATA};
// Construction
public:
CRestoreWizPage2(PRESTOREWIZ_STATE pState, CWizard97PropertySheet *pcDlg, UINT uIDD = IID_DEFAULT);
// Dialog Data
CString m_cstrLogsPath;
int m_iKeyCertCheck;
int m_iLogsCheck;
// Overrides
public:
virtual BOOL OnInitDialog();
virtual LRESULT OnWizardNext();
virtual BOOL OnSetActive();
void OnBrowse();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
PRESTOREWIZ_STATE m_pState;
CWizard97PropertySheet* m_pParentSheet;
};
/////////////////////////////////////////
// CRestoreWizPage3
class CRestoreWizPage3 : public CWizard97PropertyPage
{
public:
enum { IID_DEFAULT = IDD_RESTOREWIZ_SELECT_PASSWORD};
// Construction
public:
CRestoreWizPage3(PRESTOREWIZ_STATE pState, CWizard97PropertySheet *pcDlg, UINT uIDD = IID_DEFAULT);
// Dialog Data
CString m_cstrPwd;
// Overrides
public:
virtual BOOL OnInitDialog();
virtual LRESULT OnWizardNext();
virtual BOOL OnSetActive();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
PRESTOREWIZ_STATE m_pState;
CWizard97PropertySheet* m_pParentSheet;
};
/////////////////////////////////////////
// CRestoreWizPage5
class CRestoreWizPage5 : public CWizard97PropertyPage
{
public:
enum { IID_DEFAULT = IDD_RESTOREWIZ_COMPLETION };
// Construction
public:
CRestoreWizPage5(PRESTOREWIZ_STATE pState, CWizard97PropertySheet *pcDlg, UINT uIDD = IID_DEFAULT);
// Dialog Data
// Overrides
public:
virtual BOOL OnInitDialog();
virtual LRESULT OnWizardBack();
virtual BOOL OnSetActive();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
PRESTOREWIZ_STATE m_pState;
CWizard97PropertySheet* m_pParentSheet;
};
/////////////////////////////////////////
// CViewAttrib
class CViewAttrib : public CAutoDeletePropPage
{
enum { IID_DEFAULT = IDD_ATTR_PROPPAGE };
public:
CViewAttrib(UINT uIDD = IID_DEFAULT);
// Dialog Data
// Overrides
public:
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
IEnumCERTVIEWATTRIBUTE* m_pAttr;
};
/////////////////////////////////////////
// CViewExtn
class CViewExtn : public CAutoDeletePropPage
{
enum { IID_DEFAULT = IDD_EXTN_PROPPAGE };
public:
CViewExtn(UINT uIDD = IID_DEFAULT);
~CViewExtn();
// Dialog Data
// Overrides
public:
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnNotify(UINT idCtrl, NMHDR* pnmh);
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
void OnReselectItem();
public:
IEnumCERTVIEWEXTENSION* m_pExtn;
CArray<CString*, CString*> m_carrExtnValues;
};
/////////////////////////////////////////
// CSvrSettingsCertManagersPage
class CSvrSettingsCertManagersPage : public CAutoDeletePropPage
{
enum { IID_DEFAULT = IDD_CERTSRV_PROPPAGE6 };
public:
CSvrSettingsCertManagersPage(CSvrSettingsGeneralPage* pControlPage, UINT uIDD = IID_DEFAULT);
~CSvrSettingsCertManagersPage();
// Dialog Data
// Overrides
public:
virtual BOOL OnApply();
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
// Implementation
protected:
BOOL OnNotify(UINT idCtrl, NMHDR* pnmh);
void OnDestroy();
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
void OnAddSubject();
void OnRemoveSubject();
void OnOfficerListSelChange(DWORD dwIndexSelected);
void OnAllowDeny();
void OnEnableOfficers(bool fEnable);
void OnOfficerChange();
void SetDirty()
{
SendMessage (GetParent(), PSM_CHANGED, (WPARAM) m_hWnd, 0);
m_fDirty = TRUE;
}
void ClearDirty() { m_fDirty = FALSE; }
BOOL IsDirty() { return m_fDirty; }
HRESULT BrowseForSubject(HWND hwnd, PSID &rpSid);
HRESULT GetOfficerRights();
HRESULT SetOfficerRights();
HRESULT BuildVirtualOfficerRights();
void FillOfficerList();
void FillClientList(DWORD dwOfficerIndex);
void SetAllowDeny();
void EnableControls();
DWORD GetCurrentOfficerIndex()
{
LRESULT lSel = SendMessage(
GetDlgItem(m_hWnd, IDC_LIST_CERTMANAGERS),
CB_GETCURSEL,
0,
0);
return (CB_ERR == lSel) ? 0 : (DWORD)lSel;
}
DWORD GetCurrentClientIndex()
{
LRESULT lSel = ListView_GetNextItem(
GetDlgItem(m_hWnd, IDC_LIST_SUBJECTS), -1, LVNI_SELECTED);
return (-1==lSel) ? 0 : (DWORD)lSel;
}
CSvrSettingsGeneralPage* m_pControlPage;
CertSrv::COfficerRightsList m_OfficerRightsList;
BOOL m_fEnabled;
BOOL m_fDirty;
static CString m_strButtonAllow;
static CString m_strButtonDeny;
static CString m_strTextAllow;
static CString m_strTextDeny;
};
/////////////////////////////////////////
// CSvrSettingsAuditFilterPage
class CSvrSettingsAuditFilterPage : public CAutoDeletePropPage
{
public:
enum { IID_DEFAULT = IDD_CERTSRV_PROPPAGE7 };
// Construction
public:
CSvrSettingsAuditFilterPage(CSvrSettingsGeneralPage* pControlPage, UINT uIDD = IID_DEFAULT);
virtual ~CSvrSettingsAuditFilterPage();
// Overrides
public:
virtual BOOL OnApply();
virtual BOOL OnInitDialog();
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
HRESULT GetAuditFilter();
HRESULT SetAuditFilter();
// Implementation
protected:
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
CSvrSettingsGeneralPage* m_pControlPage;
private:
BOOL m_fDirty;
DWORD m_dwFilter;
static int m_iCheckboxID[];
};
// Wizard pages
DWORD PublishCRLWizard(CertSvrCA* pCertCA, HWND hwnd);
DWORD CertAdminRevokeCert(CertSvrCA* pCertCA, ICertAdmin* pAdmin, LONG lReason, LPWSTR szCertSerNum);
DWORD CertAdminResubmitRequest(CertSvrCA* pCertCA, ICertAdmin* pAdmin, LONG lRequestID);
DWORD CertAdminDenyRequest(CertSvrCA* pCertCA, ICertAdmin* pAdmin, LONG lRequestID);
DWORD CABackupWizard(CertSvrCA* pCertCA, HWND hwnd);
DWORD CARestoreWizard(CertSvrCA* pCertCA, HWND hwnd);
DWORD CARequestInstallHierarchyWizard(CertSvrCA* pCertCA, HWND hwnd, BOOL fRenewal, BOOL fAttemptRestart);
// misc dialogs
DWORD ModifyQueryFilter(HWND hwnd, CertViewRowEnum* pRowEnum, CComponentDataImpl* pCompData);
DWORD GetUserConfirmRevocationReason(LONG* plReasonCode, HWND hwnd);
DWORD ViewRowAttributesExtensions(HWND hwnd, IEnumCERTVIEWATTRIBUTE* pAttr, IEnumCERTVIEWEXTENSION* pExtn, LPCWSTR szReqID);
DWORD ViewRowRequestASN(HWND hwnd, LPCWSTR szTempFileName, PBYTE pbReq, DWORD cbReq, IN BOOL fSaveToFile);
DWORD ChooseBinaryColumnToDump(IN HWND hwnd, IN CComponentDataImpl* pComp, OUT LPCWSTR* pcwszColumn, OUT BOOL* pfSaveToFileOnly);