// Copyright (c) 1997-2001 Microsoft Corporation // // File: NetworkServerPage.cpp // // Synopsis: Defines Network Server Page for the CYS // Wizard // // History: 02/06/2001 JeffJon Created #include "pch.h" #include "resource.h" #include "InstallationUnitProvider.h" #include "NetworkServerPage.h" #include "state.h" static PCWSTR NETWORKSERVER_PAGE_HELP = L"cys.chm::/sag_ADserverRoles.htm"; NetworkServerPage::NetworkServerPage() : CYSWizardPage( IDD_NETWORK_SERVER_PAGE, IDS_NETWORK_SERVER_TITLE, IDS_NETWORK_SERVER_SUBTITLE, NETWORKSERVER_PAGE_HELP) { LOG_CTOR(NetworkServerPage); } NetworkServerPage::~NetworkServerPage() { LOG_DTOR(NetworkServerPage); } void NetworkServerPage::OnInit() { LOG_FUNCTION(NetworkServerPage::OnInit); // Check and disable the checkboxes for services that are already installed // and configured bool isDHCPInstalled = InstallationUnitProvider::GetInstance().GetDHCPInstallationUnit().IsServiceInstalled(); bool isDHCPConfigured = InstallationUnitProvider::GetInstance().GetDHCPInstallationUnit().IsConfigured(); Win::Button_SetCheck( Win::GetDlgItem(hwnd, IDC_DHCP_CHECK), (isDHCPInstalled && isDHCPConfigured) ? BST_CHECKED : BST_UNCHECKED); Win::EnableWindow( Win::GetDlgItem(hwnd, IDC_DHCP_CHECK), !isDHCPInstalled && !isDHCPConfigured); bool isDNSInstalled = InstallationUnitProvider::GetInstance().GetDNSInstallationUnit().IsServiceInstalled(); Win::Button_SetCheck( Win::GetDlgItem(hwnd, IDC_DNS_CHECK), isDNSInstalled ? BST_CHECKED : BST_UNCHECKED); Win::EnableWindow( Win::GetDlgItem(hwnd, IDC_DNS_CHECK), !isDNSInstalled); bool isWINSInstalled = InstallationUnitProvider::GetInstance().GetWINSInstallationUnit().IsServiceInstalled(); Win::Button_SetCheck( Win::GetDlgItem(hwnd, IDC_WINS_CHECK), isWINSInstalled ? BST_CHECKED : BST_UNCHECKED); Win::EnableWindow( Win::GetDlgItem(hwnd, IDC_WINS_CHECK), !isWINSInstalled); bool isRRASInstalled = InstallationUnitProvider::GetInstance().GetRRASInstallationUnit().IsServiceInstalled(); bool isRRASConfigured = InstallationUnitProvider::GetInstance().GetRRASInstallationUnit().IsConfigured(); Win::Button_SetCheck( Win::GetDlgItem(hwnd, IDC_RRAS_CHECK), (isRRASInstalled && isRRASConfigured) ? BST_CHECKED : BST_UNCHECKED); Win::EnableWindow( Win::GetDlgItem(hwnd, IDC_RRAS_CHECK), !isRRASInstalled || !isRRASConfigured); } bool NetworkServerPage::OnSetActive() { LOG_FUNCTION(NetworkServerPage::OnSetActive); // Set the wizard buttons according to the state of the UI SetWizardButtons(); return true; } bool NetworkServerPage::OnCommand( HWND /*windowFrom*/, unsigned controlIDFrom, unsigned code) { // LOG_FUNCTION(NetworkServerPage::OnCommand); bool result = false; if (IDC_DHCP_CHECK == controlIDFrom || IDC_DNS_CHECK == controlIDFrom || IDC_WINS_CHECK == controlIDFrom || IDC_RRAS_CHECK == controlIDFrom) { // If at least one checkbox is checked then allow the next button to be enabled // NOTE: this does not take into account whether the service is already installed or not if (BN_CLICKED == code && IDC_DHCP_CHECK == controlIDFrom) { bool ischecked = Win::Button_GetCheck(Win::GetDlgItem(hwnd, IDC_DHCP_CHECK)); if (!InstallationUnitProvider::GetInstance().GetDHCPInstallationUnit().IsServiceInstalled()) { InstallationUnitProvider::GetInstance().GetNetworkServerInstallationUnit().SetDHCPInstall(ischecked); } } if (BN_CLICKED == code && IDC_DNS_CHECK == controlIDFrom) { bool ischecked = Win::Button_GetCheck(Win::GetDlgItem(hwnd, IDC_DNS_CHECK)); if (!InstallationUnitProvider::GetInstance().GetDNSInstallationUnit().IsServiceInstalled()) { InstallationUnitProvider::GetInstance().GetNetworkServerInstallationUnit().SetDNSInstall(ischecked); } } if (BN_CLICKED == code && IDC_WINS_CHECK == controlIDFrom) { bool ischecked = Win::Button_GetCheck(Win::GetDlgItem(hwnd, IDC_WINS_CHECK)); if (!InstallationUnitProvider::GetInstance().GetWINSInstallationUnit().IsServiceInstalled()) { InstallationUnitProvider::GetInstance().GetNetworkServerInstallationUnit().SetWINSInstall(ischecked); } } if (BN_CLICKED == code && IDC_RRAS_CHECK == controlIDFrom) { bool ischecked = Win::Button_GetCheck(Win::GetDlgItem(hwnd, IDC_RRAS_CHECK)); if (!InstallationUnitProvider::GetInstance().GetRRASInstallationUnit().IsServiceInstalled()) { InstallationUnitProvider::GetInstance().GetNetworkServerInstallationUnit().SetRRASInstall(ischecked); } } SetWizardButtons(); } return result; } void NetworkServerPage::SetWizardButtons() { // LOG_FUNCTION(NetworkServerPage::SetWizardButtons); // Enable the Next button only if one of the checkboxes have been checked bool enableNext = InstallationUnitProvider::GetInstance().GetNetworkServerInstallationUnit().GetDHCPInstall() || InstallationUnitProvider::GetInstance().GetNetworkServerInstallationUnit().GetDNSInstall() || InstallationUnitProvider::GetInstance().GetNetworkServerInstallationUnit().GetWINSInstall() || InstallationUnitProvider::GetInstance().GetNetworkServerInstallationUnit().GetRRASInstall(); Win::PropSheet_SetWizButtons( Win::GetParent(hwnd), enableNext ? PSWIZB_BACK | PSWIZB_NEXT : PSWIZB_BACK); } int NetworkServerPage::Validate() { LOG_FUNCTION(NetworkServerPage::Validate); return IDD_FINISH_PAGE; }