// OrgInfoPage.cpp : implementation file // #include "stdafx.h" #include "CertWiz.h" #include "OrgInfoPage.h" #include "Certificat.h" #include "mru.h" #include "strutil.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif void DDV_MaxCharsCombo(CDataExchange* pDX, UINT ControlID, CString const& value, int nChars) { ASSERT(nChars >= 1); // allow them something if (pDX->m_bSaveAndValidate && value.GetLength() > nChars) { DDV_MaxChars(pDX, value, nChars); } else { // limit the control max-chars automatically pDX->m_pDlgWnd->SendDlgItemMessage(ControlID, CB_LIMITTEXT, nChars, 0); } } ///////////////////////////////////////////////////////////////////////////// // COrgInfoPage property page IMPLEMENT_DYNCREATE(COrgInfoPage, CIISWizardPage) COrgInfoPage::COrgInfoPage(CCertificate * pCert) : CIISWizardPage(COrgInfoPage::IDD, IDS_CERTWIZ, TRUE), m_pCert(pCert) { //{{AFX_DATA_INIT(COrgInfoPage) m_OrgName = _T(""); m_OrgUnit = _T(""); //}}AFX_DATA_INIT } COrgInfoPage::~COrgInfoPage() { } void COrgInfoPage::DoDataExchange(CDataExchange* pDX) { CIISWizardPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(COrgInfoPage) DDX_Text(pDX, IDC_NEWKEY_ORG, m_OrgName); DDV_MaxCharsCombo(pDX, IDC_NEWKEY_ORG, m_OrgName, 64); DDX_Text(pDX, IDC_NEWKEY_ORGUNIT, m_OrgUnit); DDV_MaxCharsCombo(pDX, IDC_NEWKEY_ORGUNIT, m_OrgUnit, 64); //}}AFX_DATA_MAP } LRESULT COrgInfoPage::OnWizardBack() { return m_pCert->m_DefaultCSP ? IDD_PAGE_PREV : IDD_PREV_CSP; } LRESULT COrgInfoPage::OnWizardNext() { LRESULT lret = 1; UpdateData(TRUE); m_pCert->m_Organization = m_OrgName; m_pCert->m_OrganizationUnit = m_OrgUnit; CString buf; buf.LoadString(IDS_INVALID_X500_CHARACTERS); if (!IsValidX500Chars(m_OrgName)) { GetDlgItem(IDC_NEWKEY_ORG)->SetFocus(); AfxMessageBox(buf, MB_OK); } else if (!IsValidX500Chars(m_OrgUnit)) { GetDlgItem(IDC_NEWKEY_ORGUNIT)->SetFocus(); AfxMessageBox(buf, MB_OK); } else { lret = IDD_PAGE_NEXT; } return lret; } BOOL COrgInfoPage::OnSetActive() { SetButtons(); return CIISWizardPage::OnSetActive(); } void COrgInfoPage::SetButtons() { UpdateData(TRUE); SetWizardButtons(m_OrgName.IsEmpty() || m_OrgUnit.IsEmpty() ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); } BEGIN_MESSAGE_MAP(COrgInfoPage, CIISWizardPage) //{{AFX_MSG_MAP(COrgInfoPage) ON_CBN_EDITCHANGE(IDC_NEWKEY_ORG, OnChangeName) ON_CBN_EDITCHANGE(IDC_NEWKEY_ORGUNIT, OnChangeName) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // COrgInfoPage message handlers BOOL COrgInfoPage::OnInitDialog() { ASSERT(m_pCert != NULL); m_OrgName = m_pCert->m_Organization; m_OrgUnit = m_pCert->m_OrganizationUnit; CIISWizardPage::OnInitDialog(); // Load MRU names LoadMRUToCombo(this, IDC_NEWKEY_ORG, szOrganizationMRU, m_OrgName, MAX_MRU); LoadMRUToCombo(this, IDC_NEWKEY_ORGUNIT, szOrganizationUnitMRU, m_OrgUnit, MAX_MRU); GetDlgItem(IDC_NEWKEY_ORG)->SetFocus(); return FALSE; } void COrgInfoPage::OnChangeName() { SetButtons(); }