fix loading of current values for ip and dhcp

svn path=/trunk/; revision=23441
This commit is contained in:
Ged Murphy 2006-08-03 22:20:44 +00:00
parent 2175834be0
commit 6777e6905f

View file

@ -61,12 +61,12 @@ DWORD APIENTRY DhcpNotifyConfigChange(LPWSTR ServerName, LPWSTR AdapterName,
static void static void
ManualDNS(HWND Dlg, BOOL Enabled) { ManualDNS(HWND Dlg, BOOL Enabled, UINT uCmd) {
PTCPIP_PROPERTIES_DATA DlgData = PTCPIP_PROPERTIES_DATA DlgData =
(PTCPIP_PROPERTIES_DATA) GetWindowLongPtrW(Dlg, GWL_USERDATA); (PTCPIP_PROPERTIES_DATA) GetWindowLongPtrW(Dlg, GWL_USERDATA);
if (! DlgData->OldDhcpEnabled) if (! DlgData->OldDhcpEnabled &&
{ (uCmd == IDC_USEDHCP || uCmd == IDC_NODHCP)) {
if (INADDR_NONE != DlgData->OldIpAddress) { if (INADDR_NONE != DlgData->OldIpAddress) {
SendDlgItemMessage(Dlg, IDC_IPADDR, IPM_SETADDRESS, 0, SendDlgItemMessage(Dlg, IDC_IPADDR, IPM_SETADDRESS, 0,
ntohl(DlgData->OldIpAddress)); ntohl(DlgData->OldIpAddress));
@ -81,6 +81,16 @@ ManualDNS(HWND Dlg, BOOL Enabled) {
} }
} }
if (INADDR_NONE != DlgData->OldDns1 &&
(uCmd == IDC_FIXEDDNS || uCmd == IDC_AUTODNS || IDC_NODHCP)) {
SendDlgItemMessage(Dlg, IDC_DNS1, IPM_SETADDRESS, 0,
ntohl(DlgData->OldDns1));
if (INADDR_NONE != DlgData->OldDns2) {
SendDlgItemMessage(Dlg, IDC_DNS2, IPM_SETADDRESS, 0,
ntohl(DlgData->OldDns2));
}
}
CheckDlgButton(Dlg, IDC_FIXEDDNS, CheckDlgButton(Dlg, IDC_FIXEDDNS,
Enabled ? BST_CHECKED : BST_UNCHECKED); Enabled ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(Dlg, IDC_AUTODNS, CheckDlgButton(Dlg, IDC_AUTODNS,
@ -95,7 +105,7 @@ ManualDNS(HWND Dlg, BOOL Enabled) {
} }
static void static void
EnableDHCP(HWND Dlg, BOOL Enabled) { EnableDHCP(HWND Dlg, BOOL Enabled, UINT uCmd) {
CheckDlgButton(Dlg, IDC_USEDHCP, Enabled ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(Dlg, IDC_USEDHCP, Enabled ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(Dlg, IDC_NODHCP, Enabled ? BST_UNCHECKED : BST_CHECKED); CheckDlgButton(Dlg, IDC_NODHCP, Enabled ? BST_UNCHECKED : BST_CHECKED);
EnableWindow(GetDlgItem(Dlg, IDC_IPADDR), ! Enabled); EnableWindow(GetDlgItem(Dlg, IDC_IPADDR), ! Enabled);
@ -107,7 +117,7 @@ EnableDHCP(HWND Dlg, BOOL Enabled) {
SendDlgItemMessage(Dlg, IDC_SUBNETMASK, IPM_CLEARADDRESS, 0, 0); SendDlgItemMessage(Dlg, IDC_SUBNETMASK, IPM_CLEARADDRESS, 0, 0);
SendDlgItemMessage(Dlg, IDC_DEFGATEWAY, IPM_CLEARADDRESS, 0, 0); SendDlgItemMessage(Dlg, IDC_DEFGATEWAY, IPM_CLEARADDRESS, 0, 0);
} else { } else {
ManualDNS(Dlg, TRUE); ManualDNS(Dlg, TRUE, uCmd);
} }
} }
@ -354,7 +364,7 @@ TCPIPPropertyPageProc(HWND Dlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
EnableWindow(GetDlgItem(Dlg, IDC_ADVANCED), FALSE); EnableWindow(GetDlgItem(Dlg, IDC_ADVANCED), FALSE);
EnableDHCP(Dlg, DlgData->OldDhcpEnabled); EnableDHCP(Dlg, DlgData->OldDhcpEnabled, 0);
if (! DlgData->OldDhcpEnabled) if (! DlgData->OldDhcpEnabled)
{ {
@ -380,25 +390,25 @@ TCPIPPropertyPageProc(HWND Dlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
ntohl(DlgData->OldDns2)); ntohl(DlgData->OldDns2));
} }
} }
ManualDNS(Dlg, INADDR_NONE != DlgData->OldDns1); ManualDNS(Dlg, INADDR_NONE != DlgData->OldDns1, 0);
break; break;
case WM_COMMAND: case WM_COMMAND:
switch(LOWORD(wParam)) { switch(LOWORD(wParam)) {
case IDC_FIXEDDNS: case IDC_FIXEDDNS:
ManualDNS(Dlg, TRUE); ManualDNS(Dlg, TRUE, LOWORD(wParam));
return TRUE; return TRUE;
case IDC_AUTODNS: case IDC_AUTODNS:
ManualDNS(Dlg, FALSE); ManualDNS(Dlg, FALSE, LOWORD(wParam));
return TRUE; return TRUE;
case IDC_USEDHCP: case IDC_USEDHCP:
EnableDHCP(Dlg, TRUE); EnableDHCP(Dlg, TRUE, LOWORD(wParam));
return TRUE; return TRUE;
case IDC_NODHCP: case IDC_NODHCP:
EnableDHCP(Dlg, FALSE); EnableDHCP(Dlg, FALSE, LOWORD(wParam));
return TRUE; return TRUE;
} }
break; break;