#include "stdafx.h" #include "compdata.h" #include "wizinfo.hpp" #include "ncgen.hpp" const DWORD NewClassGeneralPage::help_map[] = { IDC_CREATE_CLASS_CN, IDH_CREATE_CLASS_CN, IDC_CREATE_CLASS_LDN, IDH_CREATE_CLASS_LDN, IDC_CREATE_CLASS_OID, IDH_CREATE_CLASS_OID, IDC_DESCRIPTION_EDIT, IDH_CLASS_GENERAL_DESCRIPTION_EDIT, IDC_CREATE_CLASS_PARENT, IDH_CREATE_CLASS_PARENT, IDC_CREATE_CLASS_TYPE, IDH_CREATE_CLASS_TYPE, 0,0 }; BEGIN_MESSAGE_MAP(NewClassGeneralPage, CPropertyPage) ON_MESSAGE(WM_HELP, OnHelp) ON_MESSAGE(WM_CONTEXTMENU, OnContextHelp) END_MESSAGE_MAP() NewClassGeneralPage::NewClassGeneralPage(CreateClassWizardInfo* pWi) : CPropertyPage(IDD_CREATE_CLASS_GENERAL), m_editOID( CParsedEdit::EDIT_TYPE_OID ) { ASSERT( pWi ); pWiz_info = pWi; } BOOL NewClassGeneralPage::OnInitDialog() { CPropertyPage::OnInitDialog(); // load the combo box HWND combo = ::GetDlgItem(m_hWnd, IDC_CREATE_CLASS_TYPE); ASSERT( combo ); ComboBox_AddString(combo, g_StructuralClass); ComboBox_AddString(combo, g_AbstractClass); ComboBox_AddString(combo, g_AuxClass); ComboBox_SetCurSel(combo, 0); // set boundaries Edit_LimitText(::GetDlgItem(m_hWnd, IDC_CREATE_CLASS_CN), 64); Edit_LimitText(::GetDlgItem(m_hWnd, IDC_CREATE_CLASS_LDN), 256); Edit_LimitText(::GetDlgItem(m_hWnd, IDC_CREATE_CLASS_PARENT), 256); Edit_LimitText(::GetDlgItem(m_hWnd, IDC_DESCRIPTION_EDIT), 256); m_editOID.SubclassEdit( IDC_CREATE_CLASS_OID, this, cchMaxOID ); return FALSE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } BOOL NewClassGeneralPage::OnSetActive() { CPropertySheet* parent = (CPropertySheet*) GetParent(); parent->SetWizardButtons(PSWIZB_NEXT); return TRUE; } void Gripe(HWND parent, CEdit* edit, unsigned messageResID) { ASSERT(edit); DoErrMsgBox(parent, TRUE, messageResID); edit->SetFocus(); edit->SetSel(0, -1); } BOOL NewClassGeneralPage::OnKillActive() { // save the settings GetDlgItemText(IDC_CREATE_CLASS_CN, pWiz_info->cn); GetDlgItemText(IDC_CREATE_CLASS_LDN, pWiz_info->ldapDisplayName); GetDlgItemText(IDC_CREATE_CLASS_OID, pWiz_info->oid); GetDlgItemText(IDC_DESCRIPTION_EDIT, pWiz_info->description); GetDlgItemText(IDC_CREATE_CLASS_PARENT, pWiz_info->parentClass); pWiz_info->type = ComboBox_GetCurSel(::GetDlgItem(m_hWnd, IDC_CREATE_CLASS_TYPE)); // validate // do cn first, as it appears at the top of the page if (pWiz_info->cn.IsEmpty()) { Gripe(m_hWnd, (CEdit*) GetDlgItem(IDC_CREATE_CLASS_CN), IDS_MUST_ENTER_CN); return FALSE; } if (pWiz_info->oid.IsEmpty()) { Gripe(m_hWnd, (CEdit*) GetDlgItem(IDC_CREATE_CLASS_OID), IDS_MUST_ENTER_OID); return FALSE; } // // Check for valid OID // if (pWiz_info->oid.Left(1) == L"." || pWiz_info->oid.Right(1) == L"." || pWiz_info->oid.Find(L"..") != -1) { Gripe( m_hWnd, (CEdit*) GetDlgItem(IDC_CREATE_CLASS_OID), IDS_ERR_CREATE_INVALID_OID ); return FALSE; } return TRUE; }