Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 1769 of file tcpipconf_notify.c.
Referenced by LaunchAdvancedTcpipSettings().
{ TcpipConfNotifyImpl * This; LPPROPSHEETPAGE page; TcpipDnsSettings Dns; LRESULT lIndex, lLength; TcpipSuffixSettings Suffix; LPPSHNOTIFY lppsn; WCHAR szSuffix[100]; WCHAR szFormat[200]; WCHAR szBuffer[300]; switch(uMsg) { case WM_INITDIALOG: page = (LPPROPSHEETPAGE)lParam; This = (TcpipConfNotifyImpl*)page->lParam; SetWindowLongPtr(hwndDlg, DWLP_USER, (INT_PTR)This); InitializeTcpipAdvancedDNSDlg(hwndDlg, This); ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSADDRLIST), IDC_DNSADDRUP, IDC_DNSADDRDOWN, IDC_DNSADDRMOD, IDC_DNSADDRDEL); ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST), IDC_DNSSUFFIXUP, IDC_DNSSUFFIXDOWN, IDC_DNSSUFFIXMOD, IDC_DNSSUFFIXDEL); return TRUE; case WM_NOTIFY: lppsn = (LPPSHNOTIFY) lParam; if (lppsn->hdr.code == PSN_KILLACTIVE) { if (SendDlgItemMessageW(hwndDlg, IDC_SELSUFFIX, BM_GETCHECK, 0, 0) == BST_CHECKED && SendDlgItemMessageW(hwndDlg, IDC_DNSSUFFIXLIST, LB_GETCOUNT, 0, 0) == 0) { DisplayError(IDS_NO_SUFFIX, IDS_TCPIP, MB_ICONWARNING); SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, TRUE); return TRUE; } if (SendDlgItemMessageW(hwndDlg, IDC_SUFFIX, WM_GETTEXT, sizeof(szSuffix)/sizeof(WCHAR), (LPARAM)szSuffix)) { szSuffix[(sizeof(szSuffix)/sizeof(WCHAR))-1] = L'\0'; if (VerifyDNSSuffix(szSuffix) == FALSE) { if (LoadStringW(netcfgx_hInstance, IDS_DNS_SUFFIX, szFormat, sizeof(szFormat)/sizeof(WCHAR))) { szFormat[(sizeof(szFormat)/sizeof(WCHAR))-1] = L'\0'; swprintf(szBuffer, szFormat, szSuffix); if (LoadStringW(netcfgx_hInstance, IDS_TCPIP, szFormat, sizeof(szFormat)/sizeof(WCHAR))) szFormat[(sizeof(szFormat)/sizeof(WCHAR))-1] = L'\0'; else szFormat[0] = L'\0'; MessageBoxW(hwndDlg, szBuffer, szFormat, MB_ICONWARNING); SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, TRUE); SetFocus(GetDlgItem(hwndDlg, IDC_SUFFIX)); return TRUE; } } } } else if (lppsn->hdr.code == PSN_APPLY) { This = (TcpipConfNotifyImpl*)GetWindowLongPtr(hwndDlg, DWLP_USER); if (!This->pCurrentConfig->pDNS) break; StoreDNSSettings(GetDlgItem(hwndDlg, IDC_DNSADDRLIST), This); if (SendDlgItemMessageW(hwndDlg, IDC_PRIMSUFFIX, BM_GETCHECK, 0, 0) == BST_CHECKED) { CoTaskMemFree(This->pCurrentConfig->pDNS->szSearchList); This->pCurrentConfig->pDNS->szSearchList = NULL; if (SendDlgItemMessageW(hwndDlg, IDC_TOPPRIMSUFFIX, BM_GETCHECK, 0, 0) == BST_CHECKED) This->pCurrentConfig->pDNS->UseDomainNameDevolution = TRUE; else This->pCurrentConfig->pDNS->UseDomainNameDevolution = FALSE; } else { CoTaskMemFree(This->pCurrentConfig->pDNS->szSearchList); This->pCurrentConfig->pDNS->szSearchList = NULL; This->pCurrentConfig->pDNS->UseDomainNameDevolution = FALSE; This->pCurrentConfig->pDNS->szSearchList = GetListViewEntries(GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST)); } if (SendDlgItemMessageW(hwndDlg, IDC_REGSUFFIX, BM_GETCHECK, 0, 0) == BST_CHECKED) { This->pCurrentConfig->pDNS->RegisterAdapterName = TRUE; if (SendDlgItemMessageW(hwndDlg, IDC_USESUFFIX, BM_GETCHECK, 0, 0) == BST_CHECKED) This->pCurrentConfig->pDNS->RegistrationEnabled = TRUE; else This->pCurrentConfig->pDNS->RegistrationEnabled = FALSE; } else { This->pCurrentConfig->pDNS->RegisterAdapterName = FALSE; This->pCurrentConfig->pDNS->RegistrationEnabled = FALSE; } } break; case WM_COMMAND: if (LOWORD(wParam) == IDC_DNSADDRLIST && HIWORD(wParam) == LBN_SELCHANGE) { ToggleUpDown(hwndDlg, (HWND)lParam, IDC_DNSADDRUP, IDC_DNSADDRDOWN, IDC_DNSADDRMOD, IDC_DNSADDRDEL); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; } else if (LOWORD(wParam) == IDC_DNSSUFFIXLIST && HIWORD(wParam) == LBN_SELCHANGE) { ToggleUpDown(hwndDlg, (HWND)lParam, IDC_DNSSUFFIXUP, IDC_DNSSUFFIXDOWN, IDC_DNSSUFFIXMOD, IDC_DNSSUFFIXDEL); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; } else if (LOWORD(wParam) == IDC_PRIMSUFFIX && HIWORD(wParam) == BN_CLICKED) { if (SendMessageW((HWND)lParam, BM_GETCHECK, 0, 0) == BST_CHECKED) { EnableWindow(GetDlgItem(hwndDlg, IDC_DNSSUFFIXUP), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DNSSUFFIXDOWN), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DNSSUFFIXADD), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DNSSUFFIXMOD), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DNSSUFFIXDEL), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_TOPPRIMSUFFIX), TRUE); SendDlgItemMessageW(hwndDlg, IDC_DNSSUFFIXLIST, LB_RESETCONTENT, 0, 0); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); } } else if (LOWORD(wParam) == IDC_SELSUFFIX && HIWORD(wParam) == BN_CLICKED) { if (SendMessageW((HWND)lParam, BM_GETCHECK, 0, 0) == BST_CHECKED) { EnableWindow(GetDlgItem(hwndDlg, IDC_DNSSUFFIXADD), TRUE); EnableWindow(GetDlgItem(hwndDlg, IDC_TOPPRIMSUFFIX), FALSE); ToggleUpDown(hwndDlg, (HWND)lParam, IDC_DNSSUFFIXUP, IDC_DNSSUFFIXDOWN, IDC_DNSSUFFIXMOD, IDC_DNSSUFFIXDEL); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); } break; } else if (LOWORD(wParam) == IDC_REGSUFFIX && HIWORD(wParam) == BN_CLICKED) { if (SendMessageW((HWND)lParam, BM_GETCHECK, 0, 0) == BST_CHECKED) EnableWindow(GetDlgItem(hwndDlg, IDC_USESUFFIX), TRUE); else EnableWindow(GetDlgItem(hwndDlg, IDC_USESUFFIX), FALSE); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); } else if (LOWORD(wParam) == IDC_DNSADDRUP && HIWORD(wParam) == BN_CLICKED) { MoveItem(GetDlgItem(hwndDlg, IDC_DNSADDRLIST), -1); ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSADDRLIST), IDC_DNSADDRUP, IDC_DNSADDRDOWN, IDC_DNSADDRMOD, IDC_DNSADDRDEL); SetFocus(GetDlgItem(hwndDlg, IDC_DNSADDRLIST)); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; } else if (LOWORD(wParam) == IDC_DNSADDRDOWN && HIWORD(wParam) == BN_CLICKED) { MoveItem(GetDlgItem(hwndDlg, IDC_DNSADDRLIST), 1); ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSADDRLIST), IDC_DNSADDRUP, IDC_DNSADDRDOWN, IDC_DNSADDRMOD, IDC_DNSADDRDEL); SetFocus(GetDlgItem(hwndDlg, IDC_DNSADDRLIST)); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; } else if (LOWORD(wParam) == IDC_DNSSUFFIXUP && HIWORD(wParam) == BN_CLICKED) { MoveItem(GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST), -1); ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST), IDC_DNSSUFFIXUP, IDC_DNSSUFFIXDOWN, IDC_DNSSUFFIXMOD, IDC_DNSSUFFIXDEL); SetFocus(GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST)); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; } else if (LOWORD(wParam) == IDC_DNSSUFFIXDOWN && HIWORD(wParam) == BN_CLICKED) { MoveItem(GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST), 1); ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST), IDC_DNSSUFFIXUP, IDC_DNSSUFFIXDOWN, IDC_DNSSUFFIXMOD, IDC_DNSSUFFIXDEL); SetFocus(GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST)); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; } else if (LOWORD(wParam) == IDC_DNSADDRDEL && HIWORD(wParam) == BN_CLICKED) { RemoveItem(GetDlgItem(hwndDlg, IDC_DNSADDRLIST)); ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSADDRLIST), IDC_DNSADDRUP, IDC_DNSADDRDOWN, IDC_DNSADDRMOD, IDC_DNSADDRDEL); SetFocus(GetDlgItem(hwndDlg, IDC_DNSADDRLIST)); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; } else if (LOWORD(wParam) == IDC_DNSSUFFIXDEL && HIWORD(wParam) == BN_CLICKED) { RemoveItem(GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST)); ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST), IDC_DNSSUFFIXUP, IDC_DNSSUFFIXDOWN, IDC_DNSSUFFIXMOD, IDC_DNSSUFFIXDEL); SetFocus(GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST)); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; } else if (LOWORD(wParam) == IDC_DNSADDRADD && HIWORD(wParam) == BN_CLICKED) { Dns.bAdd = TRUE; Dns.hDlgCtrl = GetDlgItem(hwndDlg, IDC_DNSADDRLIST); if (DialogBoxParamW(netcfgx_hInstance, MAKEINTRESOURCEW(IDD_TCPIPDNS_DLG), NULL, TcpipAddDNSDlg, (LPARAM)&Dns)) { ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSADDRLIST), IDC_DNSADDRUP, IDC_DNSADDRDOWN, IDC_DNSADDRMOD, IDC_DNSADDRDEL); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); } break; } else if (LOWORD(wParam) == IDC_DNSADDRMOD && HIWORD(wParam) == BN_CLICKED) { lIndex = SendDlgItemMessage(hwndDlg, IDC_DNSADDRLIST, LB_GETCURSEL, 0, 0); if (lIndex != LB_ERR) { Dns.bAdd = FALSE; Dns.hDlgCtrl = GetDlgItem(hwndDlg, IDC_DNSADDRLIST); SendDlgItemMessageW(hwndDlg, IDC_DNSADDRLIST, LB_GETTEXT, (WPARAM)lIndex, (LPARAM)Dns.szIP); if (DialogBoxParamW(netcfgx_hInstance, MAKEINTRESOURCEW(IDD_TCPIPDNS_DLG), NULL, TcpipAddDNSDlg, (LPARAM)&Dns)) { SendDlgItemMessageW(hwndDlg, IDC_DNSADDRLIST, LB_DELETESTRING, lIndex, 0); SendDlgItemMessageW(hwndDlg, IDC_DNSADDRLIST, LB_INSERTSTRING, lIndex, (LPARAM)Dns.szIP); SendDlgItemMessageW(hwndDlg, IDC_DNSADDRLIST, LB_SETCURSEL, lIndex, 0); SetFocus(GetDlgItem(hwndDlg, IDC_DNSADDRLIST)); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); } } break; } else if (LOWORD(wParam) == IDC_DNSSUFFIXADD && HIWORD(wParam) == BN_CLICKED) { Suffix.bAdd = TRUE; Suffix.hDlgCtrl = GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST); Suffix.Suffix = NULL; if (DialogBoxParamW(netcfgx_hInstance, MAKEINTRESOURCEW(IDD_TCPIPSUFFIX_DLG), NULL, TcpipAddSuffixDlg, (LPARAM)&Suffix)) { ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST), IDC_DNSSUFFIXUP, IDC_DNSSUFFIXDOWN, IDC_DNSSUFFIXMOD, IDC_DNSSUFFIXDEL); lIndex = SendDlgItemMessageW(hwndDlg, IDC_DNSSUFFIXLIST, LB_ADDSTRING, 0, (LPARAM)Suffix.Suffix); if (lIndex != LB_ERR) SendDlgItemMessageW(hwndDlg, IDC_DNSSUFFIXLIST, LB_SETCURSEL, lIndex, 0); SetFocus(GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST)); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); CoTaskMemFree(Suffix.Suffix); } break; } else if (LOWORD(wParam) == IDC_DNSSUFFIXMOD && HIWORD(wParam) == BN_CLICKED) { lIndex = SendDlgItemMessage(hwndDlg, IDC_DNSSUFFIXLIST, LB_GETCURSEL, 0, 0); if (lIndex != LB_ERR) { Suffix.bAdd = FALSE; Suffix.hDlgCtrl = GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST); lLength = SendMessageW(Suffix.hDlgCtrl, LB_GETTEXTLEN, lIndex, 0); if (lLength != LB_ERR) { Suffix.Suffix = (LPWSTR)CoTaskMemAlloc((lLength + 1) * sizeof(WCHAR)); if (Suffix.Suffix) { SendMessageW(Suffix.hDlgCtrl, LB_GETTEXT, lIndex, (LPARAM)Suffix.Suffix); Suffix.Suffix[lLength] = L'\0'; if (DialogBoxParamW(netcfgx_hInstance, MAKEINTRESOURCEW(IDD_TCPIPSUFFIX_DLG), NULL, TcpipAddSuffixDlg, (LPARAM)&Suffix)) { if (Suffix.Suffix) { SendDlgItemMessageW(hwndDlg, IDC_DNSSUFFIXLIST, LB_DELETESTRING, lIndex, 0); SendDlgItemMessageW(hwndDlg, IDC_DNSSUFFIXLIST, LB_INSERTSTRING, lIndex, (LPARAM)Suffix.Suffix); SendDlgItemMessageW(hwndDlg, IDC_DNSSUFFIXLIST, LB_SETCURSEL, lIndex, 0); SetFocus(GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST)); CoTaskMemFree(Suffix.Suffix); } ToggleUpDown(hwndDlg, GetDlgItem(hwndDlg, IDC_DNSSUFFIXLIST), IDC_DNSSUFFIXUP, IDC_DNSSUFFIXDOWN, IDC_DNSSUFFIXMOD, IDC_DNSSUFFIXDEL); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); } } } } break; } } return FALSE; }