Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

139 lines
3.1 KiB

// ChooseCAPage.cpp : implementation file
//
#include "stdafx.h"
#include "CertWiz.h"
#include "ChooseOnlinePage.h"
#include "Certificat.h"
#include "CertUtil.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.
--*/
{
LRESULT id = 1;
switch (m_pCert->GetStatusCode())
{
case CCertificate::REQUEST_RENEW_CERT:
id = IDD_PAGE_PREV_RENEW;
break;
case CCertificate::REQUEST_NEW_CERT:
id = IDD_PAGE_PREV_NEW;
#ifdef ENABLE_W3SVC_SSL_PAGE
if (IsWebServerType(m_pCert->m_WebSiteInstanceName))
{
id = IDD_PAGE_PREV_INSTALL_W3SVC_ONLY;
}
#endif
break;
default:
id = 1;
}
return id;
}
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;
}