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

272 lines
6.9 KiB
C++

// ChooseServerSitePages.cpp: implementation of the CChooseServerSitePages class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "certwiz.h"
#include "Certificat.h"
#include "Certutil.h"
#include "ChooseServerSite.h"
#include "ChooseServerSitePages.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
/////////////////////////////////////////////////////////////////////////////
// CChooseServerSitePages property page
IMPLEMENT_DYNCREATE(CChooseServerSitePages, CIISWizardPage)
CChooseServerSitePages::CChooseServerSitePages(CCertificate * pCert)
: CIISWizardPage(CChooseServerSitePages::IDD, IDS_CERTWIZ, TRUE),
m_pCert(pCert)
{
//{{AFX_DATA_INIT(CChooseServerSitePages)
m_ServerSiteInstance = 0;
m_ServerSiteInstancePath = _T("");
m_ServerSiteDescription = _T("");
//}}AFX_DATA_INIT
}
CChooseServerSitePages::~CChooseServerSitePages()
{
}
void CChooseServerSitePages::DoDataExchange(CDataExchange* pDX)
{
CIISWizardPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChooseServerSitePages)
DDX_Text(pDX, IDC_SERVER_SITE_NAME, m_ServerSiteInstance);
//}}AFX_DATA_MAP
}
LRESULT
CChooseServerSitePages::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.
--*/
{
return IDD_PAGE_PREV;
}
LRESULT
CChooseServerSitePages::OnWizardNext()
{
LRESULT lres = IDD_PAGE_NEXT;
UpdateData(TRUE);
// Get the site # and create an instance path
m_ServerSiteInstancePath.Format(_T("/LM/W3SVC/%d"),m_ServerSiteInstance);
m_pCert->m_WebSiteInstanceName_Remote = m_ServerSiteInstancePath;
if (m_pCert->m_DeleteAfterCopy)
{
lres = IDD_PAGE_NEXT2;
}
else
{
lres = IDD_PAGE_NEXT;
}
return lres;
}
BOOL
CChooseServerSitePages::OnSetActive()
{
ASSERT(m_pCert != NULL);
m_ServerSiteInstancePath = m_pCert->m_WebSiteInstanceName_Remote;
m_ServerSiteInstance = CMetabasePath::GetInstanceNumber(m_ServerSiteInstancePath);
UpdateData(FALSE);
SetWizardButtons(m_ServerSiteInstance <=0 ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT);
return CIISWizardPage::OnSetActive();
}
BOOL
CChooseServerSitePages::OnKillActive()
{
UpdateData();
m_pCert->m_WebSiteInstanceName_Remote = m_ServerSiteInstancePath;
return CIISWizardPage::OnKillActive();
}
BEGIN_MESSAGE_MAP(CChooseServerSitePages, CIISWizardPage)
//{{AFX_MSG_MAP(CChooseServerSitePages)
ON_EN_CHANGE(IDC_SERVER_SITE_NAME, OnEditchangeServerSiteName)
ON_BN_CLICKED(IDC_BROWSE_BTN, OnBrowseForMachineWebSite)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSiteNamePage message handlers
void CChooseServerSitePages::OnEditchangeServerSiteName()
{
UpdateData(TRUE);
SetWizardButtons(m_ServerSiteInstance <=0 ?
PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT);
CString str;
SetDlgItemText(IDC_ERROR_TEXT, str);
}
void CChooseServerSitePages::OnBrowseForMachineWebSite()
{
CString strWebSite;
CChooseServerSite dlg(TRUE,strWebSite,m_pCert);
if (dlg.DoModal() == IDOK)
{
// Get the one that they selected...
strWebSite = dlg.m_strSiteReturned;
m_ServerSiteInstancePath = strWebSite;
m_ServerSiteInstance = CMetabasePath::GetInstanceNumber(m_ServerSiteInstancePath);
CString Temp;
Temp.Format(_T("%d"),m_ServerSiteInstance);
SetDlgItemText(IDC_SERVER_SITE_NAME, Temp);
}
return;
}
/////////////////////////////////////////////////////////////////////////////
// CChooseServerSitePages property page
IMPLEMENT_DYNCREATE(CChooseServerSitePagesTo, CIISWizardPage)
CChooseServerSitePagesTo::CChooseServerSitePagesTo(CCertificate * pCert)
: CIISWizardPage(CChooseServerSitePagesTo::IDD, IDS_CERTWIZ, TRUE),
m_pCert(pCert)
{
//{{AFX_DATA_INIT(CChooseServerSitePagesTo)
m_ServerSiteInstance = 0;
m_ServerSiteInstancePath = _T("");
m_ServerSiteDescription = _T("");
//}}AFX_DATA_INIT
}
CChooseServerSitePagesTo::~CChooseServerSitePagesTo()
{
}
void CChooseServerSitePagesTo::DoDataExchange(CDataExchange* pDX)
{
CIISWizardPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChooseServerSitePagesTo)
DDX_Text(pDX, IDC_SERVER_SITE_NAME, m_ServerSiteInstance);
//}}AFX_DATA_MAP
}
LRESULT
CChooseServerSitePagesTo::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.
--*/
{
return IDD_PAGE_PREV;
}
LRESULT
CChooseServerSitePagesTo::OnWizardNext()
{
LRESULT lres = IDD_PAGE_NEXT;
UpdateData(TRUE);
// Get the site # and create an instance path
m_ServerSiteInstancePath.Format(_T("/LM/W3SVC/%d"),m_ServerSiteInstance);
m_pCert->m_WebSiteInstanceName_Remote = m_ServerSiteInstancePath;
if (m_pCert->m_DeleteAfterCopy)
{
lres = IDD_PAGE_NEXT2;
}
else
{
lres = IDD_PAGE_NEXT;
}
return lres;
}
BOOL
CChooseServerSitePagesTo::OnSetActive()
{
ASSERT(m_pCert != NULL);
m_ServerSiteInstancePath = m_pCert->m_WebSiteInstanceName_Remote;
m_ServerSiteInstance = CMetabasePath::GetInstanceNumber(m_ServerSiteInstancePath);
UpdateData(FALSE);
SetWizardButtons(m_ServerSiteInstance <=0 ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT);
return CIISWizardPage::OnSetActive();
}
BOOL
CChooseServerSitePagesTo::OnKillActive()
{
UpdateData();
m_pCert->m_WebSiteInstanceName_Remote = m_ServerSiteInstancePath;
return CIISWizardPage::OnKillActive();
}
BEGIN_MESSAGE_MAP(CChooseServerSitePagesTo, CIISWizardPage)
//{{AFX_MSG_MAP(CChooseServerSitePagesTo)
ON_EN_CHANGE(IDC_SERVER_SITE_NAME, OnEditchangeServerSiteName)
ON_BN_CLICKED(IDC_BROWSE_BTN, OnBrowseForMachineWebSite)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSiteNamePage message handlers
void CChooseServerSitePagesTo::OnEditchangeServerSiteName()
{
UpdateData(TRUE);
SetWizardButtons(m_ServerSiteInstance <=0 ?
PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT);
CString str;
SetDlgItemText(IDC_ERROR_TEXT, str);
}
void CChooseServerSitePagesTo::OnBrowseForMachineWebSite()
{
CString strWebSite;
CChooseServerSite dlg(FALSE,strWebSite,m_pCert);
if (dlg.DoModal() == IDOK)
{
// Get the one that they selected...
strWebSite = dlg.m_strSiteReturned;
m_ServerSiteInstancePath = strWebSite;
m_ServerSiteInstance = CMetabasePath::GetInstanceNumber(m_ServerSiteInstancePath);
CString Temp;
Temp.Format(_T("%d"),m_ServerSiteInstance);
SetDlgItemText(IDC_SERVER_SITE_NAME, Temp);
}
return;
}