windows-nt/Source/XPSP1/NT/inetsrv/iis/admin/certwiz/chooseonlinepage.cpp
2020-09-26 16:20:57 +08:00

124 lines
2.8 KiB
C++

// ChooseCAPage.cpp : implementation file
//
#include "stdafx.h"
#include "CertWiz.h"
#include "ChooseOnlinePage.h"
#include "Certificat.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChooseOnlinePage property page
IMPLEMENT_DYNCREATE(CChooseOnlinePage, CIISWizardPage)
CChooseOnlinePage::CChooseOnlinePage(CCertificate * pCert)
: CIISWizardPage(CChooseOnlinePage::IDD, IDS_CERTWIZ, TRUE),
m_pCert(pCert)
{
//{{AFX_DATA_INIT(CChooseOnlinePage)
m_CAIndex = -1;
//}}AFX_DATA_INIT
}
CChooseOnlinePage::~CChooseOnlinePage()
{
}
void CChooseOnlinePage::DoDataExchange(CDataExchange* pDX)
{
CIISWizardPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChooseOnlinePage)
DDX_CBIndex(pDX, IDC_CA_ONLINE_LIST, m_CAIndex);
//}}AFX_DATA_MAP
}
LRESULT
CChooseOnlinePage::OnWizardBack()
/*++
Routine Description:
Prev button handler
Arguments:
None
Return Value:
0 to automatically advance to the prev page;
1 to prevent the page from changing.
To jump to a page other than the prev one,
return the identifier of the dialog to be displayed.
--*/
{
if (m_pCert->GetStatusCode() == CCertificate::REQUEST_RENEW_CERT)
return IDD_PAGE_PREV_RENEW;
else if (m_pCert->GetStatusCode() == CCertificate::REQUEST_NEW_CERT)
return IDD_PAGE_PREV_NEW;
else
return 1;
}
LRESULT
CChooseOnlinePage::OnWizardNext()
/*++
Routine Description:
Next button handler
Arguments:
None
Return Value:
0 to automatically advance to the next page;
1 to prevent the page from changing.
To jump to a page other than the next one,
return the identifier of the dialog to be displayed.
--*/
{
UpdateData();
CComboBox * pCombo = (CComboBox *)CWnd::FromHandle(
GetDlgItem(IDC_CA_ONLINE_LIST)->m_hWnd);
pCombo->GetLBText(m_CAIndex, m_pCert->m_ConfigCA);
return IDD_PAGE_NEXT;
}
BEGIN_MESSAGE_MAP(CChooseOnlinePage, CIISWizardPage)
//{{AFX_MSG_MAP(CChooseCAPage)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChooseCAPage message handlers
BOOL CChooseOnlinePage::OnInitDialog()
{
m_CAIndex = 0;
// We need to create controls first
CIISWizardPage::OnInitDialog();
ASSERT(m_pCert != NULL);
GetDlgItem(IDC_CA_ONLINE_LIST)->SetFocus();
CComboBox * pCombo = (CComboBox *)CWnd::FromHandle(
GetDlgItem(IDC_CA_ONLINE_LIST)->m_hWnd);
CString str;
POSITION pos = m_pCert->m_OnlineCAList.GetHeadPosition();
while (pos != NULL)
{
str = m_pCert->m_OnlineCAList.GetNext(pos);
pCombo->AddString(str);
}
int idx;
if ( !m_pCert->m_ConfigCA.IsEmpty()
&& CB_ERR != (idx = pCombo->FindString(-1, m_pCert->m_ConfigCA))
)
{
pCombo->SetCurSel(idx);
}
else
pCombo->SetCurSel(0);
return FALSE;
}