|
|
// Copyright (c) 1997-1999 Microsoft Corporation
#include "precomp.h"
#include "..\Common\ServiceThread.h"
#include "moredlg.h"
#ifdef EXT_DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
#include "resource.h"
#include "..\common\util.h"
#include "IDDlg.h"
#include "MoreDlg.h"
#include "NetUtility.h"
#include "NetHelpIDs.h"
static const DWORD _help_map[] = { IDC_DNS, IDH_IDENT_NAMES_DNS_NAME, IDC_CHANGE, IDH_IDENT_NAMES_CHANGE_DNS_CHECKBOX, IDC_NETBIOS, IDH_IDENT_NAMES_NETBIOS_NAME, 0, 0 };
//---------------------------------------------------------------------
MoreChangesDialog::MoreChangesDialog(WbemServiceThread *serviceThread, State &state) : WBEMPageHelper(serviceThread), m_state(state) { }
//-------------------------------------------------------------
MoreChangesDialog::~MoreChangesDialog() { }
//----------------------------------------------------------
void MoreChangesDialog::enable() { bool enabled = false;// = WasChanged(IDC_CHANGE) ||
// WasChanged(IDC_DNS) &&
// !GetTrimmedDlgItemText(m_hWnd, IDC_DNS).IsEmpty();
::EnableWindow(GetDlgItem(IDOK), enabled); }
//----------------------------------------------------------
LRESULT MoreChangesDialog::OnInit(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { m_hDlg = m_hWnd;
// Marshalling shouldn't happen here.
m_WbemServices = g_serviceThread->m_WbemServices;
SetDlgItemText(IDC_DNS, m_state.GetComputerDomainDNSName()); SetDlgItemText(IDC_NETBIOS, m_state.GetNetBIOSComputerName()); CheckDlgButton(IDC_CHANGE, (m_state.GetSyncDNSNames() ? BST_CHECKED : BST_UNCHECKED));
enable(); return S_OK; }
//----------------------------------------------------------
int MoreChangesDialog::onOKButton() { int end_code = 0;
// if(WasChanged(IDC_CHANGE))
{ m_state.SetSyncDNSNames(IsDlgButtonChecked(IDC_CHANGE) == BST_CHECKED); end_code = 1; } // if (WasChanged(IDC_DNS))
{ // compare the new value to the old one. If they're different,
// validate and save the new value
CHString new_domain = GetTrimmedDlgItemText(m_hWnd, IDC_DNS); CHString old_domain = m_state.GetComputerDomainDNSName();
if(new_domain.CompareNoCase(old_domain) != 0) { /* switch (DNS::ValidateDNSNameSyntax(new_domain))
{ case DNS::NON_RFC_NAME: { MessageBox(String::format(IDS_NON_RFC_NAME, new_domain.c_str()), String::load(IDS_APP_TITLE), MB_OK | MB_ICONWARNING); // fall-thru
} case DNS::VALID_NAME: { m_state.SetComputerDomainDNSName(new_domain); end_code = 1; break; } case DNS::INVALID_NAME: { end_code = -1; gripe(hwnd, IDC_DNS, String::format(IDS_BAD_DNS_SYNTAX, new_domain.c_str()), IDS_APP_TITLE); break; } case DNS::NAME_TOO_LONG: { end_code = -1; gripe(hwnd, IDC_DNS, String::format(IDS_DNS_NAME_TOO_LONG, new_domain.c_str(), DNS::MAX_NAME_LENGTH), IDS_APP_TITLE); break; } default: { assert(false); break; } } */ } }
return end_code; }
//----------------------------------------------------------
LRESULT MoreChangesDialog::OnCommand(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { switch (wID) { case IDOK: { if (wNotifyCode == BN_CLICKED) { int end_code = onOKButton(); if (end_code != -1) { EndDialog(end_code); } } break; } case IDCANCEL: { if (wNotifyCode == BN_CLICKED) { // 0 => no changes made
EndDialog(NO_CHANGES); } break; } case IDC_CHANGE: { if (wNotifyCode == BN_CLICKED) { enable(); } break; } case IDC_DNS: { if (wNotifyCode == EN_CHANGE) { enable(); } break; } default: { bHandled = false; break; } }
return S_OK; }
|