void CProxySettings::OnOK() { CString proxyUser, proxyPassword; CString s1; _bstr_t bst; bool cancelSave = false; OutlookConfig* conf = (OutlookConfig*)getConfig(); GetDlgItemText(IDC_PROXY_EDIT_USER,proxyUser); GetDlgItemText(IDC_PROXY_EDIT_PASS,proxyPassword); if( (checkEnable.GetCheck() == BST_CHECKED) && (checkAuth.GetCheck() == BST_CHECKED)) { if (proxyUser == "") { s1.LoadString(IDS_ERROR_PROXY_USERNAME); wsafeMessageBox(s1); cancelSave = true; goto finally; }; if (proxyPassword == "") { s1.LoadString(IDS_ERROR_PROXY_PASSWORD); wsafeMessageBox(s1); cancelSave = true; goto finally; }; } if(checkEnable.GetCheck() == BST_CHECKED) conf->getAccessConfig().setUseProxy(TRUE); else conf->getAccessConfig().setUseProxy(FALSE); if(checkAuth.GetCheck() == BST_CHECKED) { // Note: use 'toMultibyte' which uses charset UTF-8. char* tmp = toMultibyte(proxyUser.GetBuffer()); if (tmp) { conf->getAccessConfig().setProxyUsername(tmp); delete [] tmp; } // Note: use 'toMultibyte' which uses charset UTF-8. tmp = toMultibyte(proxyPassword.GetBuffer()); if (tmp) { conf->getAccessConfig().setProxyPassword(tmp); delete [] tmp; } } else { conf->getAccessConfig().setProxyUsername(""); conf->getAccessConfig().setProxyPassword(""); } // save values finally: if(!cancelSave) { conf->save(); CDialog::OnOK(); } }
/** * Error messages prompted to the user are managed only inside this function. * A message box will be displayed, based on the error code passed. * if messagebox has question? returns the answer */ int manageSyncErrorMsg(long code) { CString s1(""); UINT msgboxFlags = 0; bool showMessage = true; switch(code) { case WIN_ERR_NONE: { // 0: No error return -1; } case WIN_ERR_GENERIC: { // 1: Generic error -> see log. s1.LoadString(IDS_ERROR_SYNC_NOT_COMPLETED); break; } case WIN_ERR_SYNC_CANCELED: { // 2: Aborted -> no msgbox return -1; } case WIN_ERR_THREAD_TERMINATED: // 4 -> force exit the plugin! { s1.LoadString(IDS_ERROR_SYNC_TERMINATED); wsafeMessageBox(s1.GetBuffer()); return -1; } case WIN_ERR_FULL_SYNC_CANCELED: { // 5 -> deprecated, no msgbox return -1; } case WIN_ERR_UNEXPECTED_EXCEPTION: // 6 case WIN_ERR_UNEXPECTED_STL_EXCEPTION: // 7 { s1.LoadString(IDS_UNEXPECTED_EXCEPTION); break; } case WIN_ERR_SERVER_QUOTA_EXCEEDED: // 8: Server quota exceeded { s1.LoadString(IDS_MEDIA_QUOTA_EXCEEDED); break; } case WIN_ERR_LOCAL_STORAGE_FULL: // 9: Local storage full { s1.LoadString(IDS_MEDIA_STORAGE_FULL); break; } case WIN_ERR_DROPPED_ITEMS: // 10: Dropped items on Client { s1.LoadString(IDS_CODE_DROPPED_ITEMS); break; } case WIN_ERR_DROPPED_ITEMS_SERVER: // 11: Dropped items on Server { s1.LoadString(IDS_CODE_DROPPED_ITEMS_SERVER); break; } case WIN_ERR_NO_SOURCES: // 12: No sources to sync { s1.LoadString(IDS_CODE_NO_SOURCES); break; } case WIN_ERR_SAPI_NOT_SUPPORTED: { // 13: Source (sapi) not supported return -1; } case WIN_ERR_INVALID_CREDENTIALS: // 401 case WIN_ERR_PROXY_AUTH_REQUIRED: // 407 { s1.LoadString(IDS_CODE_INVALID_CREDENTIALS_401); break; } case WIN_ERR_REMOTE_NAME_NOT_FOUND: // 404 { s1.LoadString(IDS_CODE_NOTFOUND_404); break; } case WIN_ERR_WRONG_HOST_NAME: // 2001 case WIN_ERR_NETWORK_ERROR: // 2050 { s1.LoadString(IDS_CODE_NETWORK_ERROR_2007); break; } case WIN_ERR_PAYMENT_REQUIRED: // special case: PAYMENT Required for sync, managed with an in teractive dialog box.Not here. showMessage = false; break; // // DEPRECATED // case WIN_ERR_FATAL_OL_EXCEPTION: // 3 -> force exit the plugin! { s1.LoadString(IDS_ERROR_SYNC_TERMINATED); wsafeMessageBox(s1.GetBuffer()); return -1; } case 403: s1.LoadString(IDS_CODE_FORBIDDEN_403); break; case 417: // Retry later s1.LoadString(IDS_CODE_SERVER_BUSY); break; case 2061: // Server timeout s1.LoadString(IDS_ERR_SERVER_TIMOUT); break; case 2007: case 2029: case 2060: // Server path is wrong s1.LoadString(IDS_CODE_NETWORK_ERROR_2007); break; case 2052: s1.LoadString(IDS_CODE_SERVER_ERROR_2052); break; default: break; } // // Display the messagebox with error to the user. // if(s1 == "") { s1.LoadString(IDS_ERROR_SYNC_NOT_COMPLETED); } if ( showMessage ) return wsafeMessageBox(s1.GetBuffer(), 0, msgboxFlags); return 0; }