|
|
//
// AUTOCNFG.CPP
//
#include "pch.h"
INT_PTR CALLBACK QueryAutoConfigDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { TCHAR szAutoConfigURL[MAX_URL], szAutoProxyURL[MAX_URL], szAutoConfigTime[7]; BOOL fDetectConfig, fUseAutoConfig, fCheckDirtyOnly;
switch (uMsg) { case WM_INITDIALOG: // warn the user that settings on this page will override imported connection settings
if (InsGetBool(IS_CONNECTSET, IK_OPTION, FALSE, g_szInsFile)) ErrorMessageBox(hDlg, IDS_CONNECTSET_WARN);
DisableDBCSChars(hDlg, IDE_AUTOCONFIGTIME);
EnableDBCSChars(hDlg, IDE_AUTOCONFIGURL); EnableDBCSChars(hDlg, IDE_AUTOPROXYURL);
Edit_LimitText(GetDlgItem(hDlg, IDE_AUTOCONFIGTIME), countof(szAutoConfigTime) - 1); Edit_LimitText(GetDlgItem(hDlg, IDE_AUTOCONFIGURL), countof(szAutoConfigURL) - 1); Edit_LimitText(GetDlgItem(hDlg, IDE_AUTOPROXYURL), countof(szAutoProxyURL) - 1);
fDetectConfig = FALSE; if (IsWindowEnabled(GetDlgItem(hDlg, IDC_AUTODETECT))) { fDetectConfig = InsGetBool(IS_URL, IK_DETECTCONFIG, TRUE, g_szInsFile); CheckDlgButton(hDlg, IDC_AUTODETECT, fDetectConfig ? BST_CHECKED : BST_UNCHECKED); }
fUseAutoConfig = InsGetBool(IS_URL, IK_USEAUTOCONF, FALSE, g_szInsFile); CheckDlgButton(hDlg, IDC_YESAUTOCON, fUseAutoConfig ? BST_CHECKED : BST_UNCHECKED);
GetPrivateProfileString(IS_URL, IK_AUTOCONFTIME, TEXT(""), szAutoConfigTime, countof(szAutoConfigTime), g_szInsFile); SetDlgItemText(hDlg, IDE_AUTOCONFIGTIME, szAutoConfigTime); EnableDlgItem2(hDlg, IDE_AUTOCONFIGTIME, fUseAutoConfig); EnableDlgItem2(hDlg, IDC_AUTOCONFIGTEXT2, fUseAutoConfig); EnableDlgItem2(hDlg, IDC_AUTOCONFIGTEXT3, fUseAutoConfig);
GetPrivateProfileString(IS_URL, IK_AUTOCONFURL, TEXT(""), szAutoConfigURL, countof(szAutoConfigURL), g_szInsFile); SetDlgItemText(hDlg, IDE_AUTOCONFIGURL, szAutoConfigURL); EnableDlgItem2(hDlg, IDE_AUTOCONFIGURL, fUseAutoConfig); EnableDlgItem2(hDlg, IDC_AUTOCONFIGURL_TXT, fUseAutoConfig);
GetPrivateProfileString(IS_URL, IK_AUTOCONFURLJS, TEXT(""), szAutoProxyURL, countof(szAutoProxyURL), g_szInsFile); SetDlgItemText(hDlg, IDE_AUTOPROXYURL, szAutoProxyURL); EnableDlgItem2(hDlg, IDE_AUTOPROXYURL, fUseAutoConfig); EnableDlgItem2(hDlg, IDC_AUTOPROXYURL_TXT, fUseAutoConfig); return TRUE;
case UM_SAVE: fCheckDirtyOnly = (BOOL) lParam;
fDetectConfig = (IsDlgButtonChecked(hDlg, IDC_AUTODETECT) == BST_CHECKED); fUseAutoConfig = (IsDlgButtonChecked(hDlg, IDC_YESAUTOCON) == BST_CHECKED);
GetDlgItemText(hDlg, IDE_AUTOCONFIGTIME, szAutoConfigTime, countof(szAutoConfigTime)); GetDlgItemText(hDlg, IDE_AUTOCONFIGURL, szAutoConfigURL, countof(szAutoConfigURL)); GetDlgItemText(hDlg, IDE_AUTOPROXYURL, szAutoProxyURL, countof(szAutoProxyURL));
if (fCheckDirtyOnly) { TCHAR szTmp[MAX_URL]; BOOL fTemp;
if (!g_fInsDirty) { fTemp = InsGetBool(IS_URL, IK_DETECTCONFIG, FALSE, g_szInsFile); g_fInsDirty = (fTemp != fDetectConfig); }
if (!g_fInsDirty) { fTemp = InsGetBool(IS_URL, IK_USEAUTOCONF, FALSE, g_szInsFile); g_fInsDirty = (fTemp != fUseAutoConfig); }
if (!g_fInsDirty) { GetPrivateProfileString(IS_URL, IK_AUTOCONFTIME, TEXT(""), szTmp, countof(szTmp), g_szInsFile); g_fInsDirty = (0 != StrCmpI(szTmp, szAutoConfigTime)); }
if (!g_fInsDirty) { GetPrivateProfileString(IS_URL, IK_AUTOCONFURL, TEXT(""), szTmp, countof(szTmp), g_szInsFile); g_fInsDirty = (0 != StrCmpI(szTmp, szAutoConfigURL)); }
if (!g_fInsDirty) { GetPrivateProfileString(IS_URL, IK_AUTOCONFURLJS, TEXT(""), szTmp, countof(szTmp), g_szInsFile); g_fInsDirty = (0 != StrCmpI(szTmp, szAutoProxyURL)); } } else { // do error checking
if (fUseAutoConfig) { if (IsWindowEnabled(GetDlgItem(hDlg, IDE_AUTOCONFIGTIME)) && !CheckField(hDlg, IDE_AUTOCONFIGTIME, FC_NUMBER)) return FALSE;
if (*szAutoConfigURL == TEXT('\0') && *szAutoProxyURL == TEXT('\0')) { ErrorMessageBox(hDlg, IDS_AUTOCONFIG_NULL); SetFocus(GetDlgItem(hDlg, IDE_AUTOCONFIGURL)); return FALSE; }
if (!CheckField(hDlg, IDE_AUTOCONFIGURL, FC_URL) || !CheckField(hDlg, IDE_AUTOPROXYURL, FC_URL)) return FALSE; }
// write the values to the INS file
InsWriteBoolEx(IS_URL, IK_DETECTCONFIG, fDetectConfig, g_szInsFile); InsWriteBoolEx(IS_URL, IK_USEAUTOCONF, fUseAutoConfig, g_szInsFile); InsWriteString(IS_URL, IK_AUTOCONFTIME, szAutoConfigTime, g_szInsFile); InsWriteString(IS_URL, IK_AUTOCONFURL, szAutoConfigURL, g_szInsFile); InsWriteString(IS_URL, IK_AUTOCONFURLJS, szAutoProxyURL, g_szInsFile); }
*((LPBOOL) wParam) = TRUE; return TRUE;
case WM_COMMAND: switch (HIWORD(wParam)) { case BN_CLICKED: switch(LOWORD(wParam)) { case IDC_YESAUTOCON: fUseAutoConfig = (IsDlgButtonChecked(hDlg, IDC_YESAUTOCON) == BST_CHECKED);
EnableDlgItem2(hDlg, IDE_AUTOCONFIGTIME, fUseAutoConfig); EnableDlgItem2(hDlg, IDC_AUTOCONFIGTEXT2, fUseAutoConfig); EnableDlgItem2(hDlg, IDC_AUTOCONFIGTEXT3, fUseAutoConfig); EnableDlgItem2(hDlg, IDE_AUTOCONFIGURL, fUseAutoConfig); EnableDlgItem2(hDlg, IDC_AUTOCONFIGURL_TXT, fUseAutoConfig); EnableDlgItem2(hDlg, IDE_AUTOPROXYURL, fUseAutoConfig); EnableDlgItem2(hDlg, IDC_AUTOPROXYURL_TXT, fUseAutoConfig); return TRUE; } break; } break;
case WM_CLOSE: DestroyWindow(hDlg); break; }
return FALSE; }
|