/* * oeconprp . c p p * * Purpose: * Implements connection dialog tab page for OE * * Owner: * shaheedp. * * Copyright (C) Microsoft Corp. 1998. */ #include "pch.hxx" #include #include #include #include "acctman.h" #include "acctui.h" #include "connect.h" #include "dllmain.h" #include "resource.h" #include "accthelp.h" #include "server.h" #include "strconst.h" #include "oeconprp.h" #include "demand.h" ASSERTDATA /* * p r o t o t y p e s * */ TCHAR szLanConn[CCHMAX_CONNECTOID]; void UpdateControlStates(HWND hwnd) { BOOL fEnable, fLan; HWND hwndCombo; TCHAR szEntryName[CCHMAX_CONNECTOID]; int iSel; hwndCombo = GetDlgItem(hwnd, idcRasConnection); if (BST_CHECKED == IsDlgButtonChecked(hwnd, idcRasAndLan)) fEnable = TRUE; else fEnable = FALSE; EnableWindow(hwndCombo, fEnable); EnableWindow(GetDlgItem(hwnd, idcRasAdd), fEnable); if (fEnable) fEnable = ((iSel = ComboBox_GetCurSel(hwndCombo)) != CB_ERR); if (fEnable) { ComboBox_GetLBText(hwndCombo, iSel, szEntryName); //If it is Lan we don't want to enable props if (lstrcmp(szEntryName, szLanConn) == 0) fEnable = false; } EnableWindow(GetDlgItem(hwnd, idcRasProp), fEnable); } void OEConnProp_InitDialog(HWND hwnd, LPSTR szEntryName, DWORD iConnectType, BOOL fFirstInit) { HWND hwndCombo; int iSel; Assert(szEntryName != NULL); hwndCombo = GetDlgItem(hwnd, idcRasConnection); if (fFirstInit) { SetIntlFont(hwndCombo); HrFillRasCombo(hwndCombo, FALSE, NULL); //Add the the Local Area Network to the combo box ComboBox_AddString(hwndCombo, szLanConn); } if (iConnectType == CONNECTION_TYPE_LAN || iConnectType == CONNECTION_TYPE_RAS) { //CheckRadioButton(hwnd, idcInetSettings, idcRasAndLan, idcRasAndLan); CheckDlgButton(hwnd, idcRasAndLan, BST_CHECKED); if (iConnectType == CONNECTION_TYPE_LAN) { iSel = (*szLanConn != 0) ? ComboBox_FindStringExact(hwndCombo, -1, szLanConn) : 0; } else { iSel = (*szEntryName != 0) ? ComboBox_FindStringExact(hwndCombo, -1, szEntryName) : 0; } ComboBox_SetCurSel(hwndCombo, iSel); } else { Assert(iConnectType == CONNECTION_TYPE_INETSETTINGS); ComboBox_SetCurSel(hwndCombo, 0); } UpdateControlStates(hwnd); } // if pAcct is NULL, we're in the wizard, otherwise we're in the prop sheet void OEConnProp_WMCommand(HWND hwnd, HWND hwndCmd, int id, WORD wCmd, IImnAccount *pAcct) { BOOL fEnable; if (wCmd == BN_CLICKED) { switch (id) { case idcRasAdd: ConnectPage_MakeNewConnection(hwnd); EnableWindow(GetDlgItem(hwnd, idcRasProp), ComboBox_GetCurSel(GetDlgItem(hwnd, idcRasConnection)) != CB_ERR); UpdateControlStates(hwnd); break; case idcRasProp: ConnectPage_EditConnection(hwnd); break; default: UpdateControlStates(hwnd); if (pAcct != NULL) { PropSheet_Changed(GetParent(hwnd), hwnd); PropSheet_QuerySiblings(GetParent(hwnd), SM_SETDIRTY, PAGE_RAS); } break; } } else if (wCmd == CBN_SELENDOK && id == idcRasConnection) { UpdateControlStates(hwnd); if (pAcct != NULL) { PropSheet_Changed(GetParent(hwnd), hwnd); PropSheet_QuerySiblings(GetParent(hwnd), SM_SETDIRTY, PAGE_RAS); } } } //**** //Need to change these. const static HELPMAP g_rgCtxMapConnect[] = { {idcRasAndLan, 601}, {idcRasProp, IDH_NEWS_SERV_CNKT_PROPS}, {idcRasConnection, IDH_NEWS_SERV_CNKT_DIALUP_CONNECT}, {idcRasAdd, IDH_NEWS_SERV_CNKT_ADD}, {IDC_STATIC0, IDH_INETCOMM_GROUPBOX}, {IDC_STATIC1, IDH_INETCOMM_GROUPBOX}, {IDC_STATIC2, IDH_INETCOMM_GROUPBOX}, {IDC_STATIC3, IDH_INETCOMM_GROUPBOX}, {0,0}}; INT_PTR CALLBACK OEConnProp_DlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { ACCTTYPE type; NMHDR *pnmh; CAccount *pAcct; BOOL fModem; int iSel; HWND hwndModem, hwndCombo; SERVER_TYPE sfType; char *psz, szEntryName[CCHMAX_CONNECTOID], szBackup[CCHMAX_CONNECTOID]; TCHAR szRes[CCHMAX_STRINGRES]; DWORD dw; pAcct = (CAccount *)GetWindowLongPtr(hwnd, DWLP_USER); switch (uMsg) { case WM_INITDIALOG: LoadString(g_hInstRes, idsConnectionLAN, szLanConn, ARRAYSIZE(szLanConn)); // Get the ServerParams and store them in our extra bytes pAcct = (CAccount *)((PROPSHEETPAGE *)lParam)->lParam; SetWindowLongPtr(hwnd, DWLP_USER, (LPARAM)pAcct); Assert(pAcct); pAcct->GetAccountType(&type); Assert(type == ACCT_MAIL || type == ACCT_NEWS); // Get the connection info if (FAILED(pAcct->GetPropSz(AP_RAS_CONNECTOID, szEntryName, ARRAYSIZE(szEntryName)))) szEntryName[0] = 0; if (FAILED(pAcct->GetPropDw(AP_RAS_CONNECTION_TYPE, &dw))) { dw = CONNECTION_TYPE_INETSETTINGS; } OEConnProp_InitDialog(hwnd, szEntryName, dw, TRUE); if (FAILED(pAcct->GetPropDw(AP_RAS_CONNECTION_FLAGS, &dw))) dw = 0; PropSheet_QuerySiblings(GetParent(hwnd), SM_INITIALIZED, PAGE_RAS); PropSheet_UnChanged(GetParent(hwnd), hwnd); return (TRUE); case WM_HELP: case WM_CONTEXTMENU: return OnContextHelp(hwnd, uMsg, wParam, lParam, g_rgCtxMapConnect); case WM_COMMAND: OEConnProp_WMCommand(hwnd, GET_WM_COMMAND_HWND(wParam, lParam), GET_WM_COMMAND_ID(wParam, lParam), GET_WM_COMMAND_CMD(wParam, lParam), pAcct); return (TRUE); case WM_NOTIFY: pnmh = (NMHDR *)lParam; switch (pnmh->code) { case PSN_APPLY: hwndCombo = GetDlgItem(hwnd, idcRasConnection); if (IsDlgButtonChecked(hwnd, idcRasAndLan)) { iSel = ComboBox_GetCurSel(hwndCombo); if (iSel != CB_ERR) { ComboBox_GetLBText(hwndCombo, iSel, szEntryName); if (lstrcmp(szLanConn, szEntryName) == 0) { dw = CONNECTION_TYPE_LAN; EnableWindow(GetDlgItem(hwnd, idcRasProp), FALSE); } else { dw = CONNECTION_TYPE_RAS; pAcct->SetPropSz(AP_RAS_CONNECTOID, szEntryName); } } else { dw = CONNECTION_TYPE_INETSETTINGS; CheckDlgButton(hwnd, idcRasAndLan, BST_UNCHECKED); } } else { dw = CONNECTION_TYPE_INETSETTINGS; } if ((dw == CONNECTION_TYPE_LAN) || (dw == CONNECTION_TYPE_INETSETTINGS)) { pAcct->SetPropSz(AP_RAS_CONNECTOID, NULL); } pAcct->SetPropDw(AP_RAS_CONNECTION_TYPE, dw); PropSheet_UnChanged(GetParent(hwnd), hwnd); dw = PAGE_RAS; PropSheet_QuerySiblings(GetParent(hwnd), SM_SAVECHANGES, (LPARAM)&dw); if (dw == -1) { SetWindowLongPtr(hwnd, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); return(TRUE); } break; } return(TRUE); } return (FALSE); }