void AFXAPI CFilterPasswordDlg::DDV_CheckMinMax(CDataExchange* pDX, const int &num, const int &min, const int &max) { if (m_rule != PWSMatch::MR_WILLEXPIRE) return; CGeneralMsgBox gmb; if (pDX->m_bSaveAndValidate) { if (min != -1 && num < min) { CString cs_text; cs_text.Format(IDS_NUMTOOSMALL, min); gmb.AfxMessageBox(cs_text); pDX->Fail(); return; } if (max != -1 && num > max) { CString cs_text; cs_text.Format(IDS_NUMTOOLARGE, max); gmb.AfxMessageBox(cs_text); pDX->Fail(); return; } } }
void CPasswordPolicyDlg::OnMakePronounceable() { UnselectNamedPolicy(); UpdateData(TRUE); if (m_PWEasyVision && m_PWMakePronounceable) { CGeneralMsgBox gmb; ((CButton*)GetDlgItem(IDC_PRONOUNCEABLE))->SetCheck(FALSE); gmb.AfxMessageBox(IDS_PROVISMUTUALLYEXCL); m_PWMakePronounceable = FALSE; return; } const bool bChecked = (IsDlgButtonChecked(IDC_PRONOUNCEABLE) == BST_CHECKED); if (m_PWUseLowercase == FALSE && m_PWUseUppercase == FALSE) { CGeneralMsgBox gmb; ((CButton*)GetDlgItem(IDC_PRONOUNCEABLE))->SetCheck(FALSE); gmb.AfxMessageBox(IDS_PR_MUSTHAVECHARACTERS); m_PWMakePronounceable = FALSE; return; } do_easyorpronounceable(bChecked ? EVPR_PR : EVPR_NONE); do_reset_symbols(false); // Do not use UpdateData(FALSE) here or // all the good work in "do_easyorpronounceable" will be undone }
void COptionsBackup::ExpandBackupPath() { bool bSetRealPath(false); if (m_BackupLocation == 1) { wchar_t wsExpandedPath[MAX_PATH + 1]; DWORD dwResult = ExpandEnvironmentStrings(m_UserBackupOtherLocation, wsExpandedPath, MAX_PATH + 1); if (dwResult == 0 || dwResult > (MAX_PATH + 1)) { CGeneralMsgBox gmb; CString cs_msg, cs_title(MAKEINTRESOURCE(IDS_EXPANDPATH)); cs_msg.Format(IDS_CANT_EXPANDPATH, static_cast<LPCWSTR>(m_UserBackupOtherLocation)); gmb.MessageBox(cs_msg, cs_title, MB_OK | MB_ICONEXCLAMATION); } else { m_csExpandedPath = wsExpandedPath; if (m_UserBackupOtherLocation != m_csExpandedPath) { bSetRealPath = true; } } } if (!bSetRealPath) m_csExpandedPath.Empty(); GetDlgItem(IDC_EXPANDEDUSERBACKUPOTHRLOC)->EnableWindow(TRUE); GetDlgItem(IDC_EXPANDEDUSERBACKUPOTHRLOC)->ShowWindow(SW_SHOW); GetDlgItem(IDC_EXPANDEDUSERBACKUPOTHRLOC)->SetWindowText(bSetRealPath ? m_csExpandedPath : L""); m_Help3.EnableWindow(TRUE); m_Help3.ShowWindow(SW_SHOW); }
void AFXAPI CFilterDateDlg::DDV_CheckDates(CDataExchange* pDX, const int &num1, const int &num2) { if (m_datetype == 0 /* Absolute */) return; CGeneralMsgBox gmb; if (pDX->m_bSaveAndValidate) { if (m_rule == PWSMatch::MR_BETWEEN && num1 >= num2) { gmb.AfxMessageBox(IDS_NUM1NOTLTNUM2); pDX->Fail(); return; } if (num1 == -3650 && m_rule == PWSMatch::MR_LT) { gmb.AfxMessageBox(IDS_CANTBELESSTHANMIN); pDX->Fail(); return; } if (num1 == 3650 && m_rule == PWSMatch::MR_GT) { gmb.AfxMessageBox(IDS_CANTBEGREATERTHANMAX); pDX->Fail(); return; } if (num1 == 3650 && m_rule == PWSMatch::MR_BETWEEN) { gmb.AfxMessageBox(IDS_NUM1CANTBEMAX); pDX->Fail(); return; } } }
void CCompareResultsDlg::OnCompareSynchronize() { if (m_bOriginalDBReadOnly) return; CGeneralMsgBox gmb; CString cs_temp, cs_title; // Initialize set GTUSet setGTU; // First check database if (!m_pcore0->GetUniqueGTUValidated() && !m_pcore0->InitialiseGTU(setGTU)) { // Database is not unique to start with - tell user to validate it first cs_title.LoadString(IDS_SYNCHFAILED); cs_temp.Format(IDS_DBHASDUPLICATES, m_pcore0->GetCurFile().c_str()); gmb.MessageBox(cs_temp, cs_title, MB_ICONEXCLAMATION); return; } setGTU.clear(); // Don't need it anymore - so clear it now DWORD_PTR dwItemData = m_LCResults.GetItemData(m_LCResults.GetRow()); st_CompareData *pst_data = GetCompareData(dwItemData); ASSERT(pst_data != NULL); ProcessFunction(SYNCH, pst_data); }
// Used by AddEdit_Attachment & ViewAttachment - so single place for this void CImgStatic::IssueError(int rc, HRESULT hr) { CGeneralMsgBox gmb; CString cs_errmsg, cs_title(MAKEINTRESOURCE(IDS_IMAGE_LOAD_FAILED)); switch (rc) { case 0: // Use hr value - but need to convert to Windows error code if (HRESULT_FACILITY(hr) == FACILITY_WIN32 || HRESULT_FACILITY(hr) == FACILITY_WINDOWS) { DWORD dwlasterror = HRESULT_CODE(hr); SetLastError(dwlasterror); pws_os::IssueError((LPCWSTR)cs_title, true); return; } else { cs_errmsg.Format(L"Unknown HRESULT error 0x%08x.", hr); } break; case 1: cs_errmsg.LoadString(IDS_IMAGE_IMPORT_FAILED); break; case 2: cs_errmsg.LoadString(IDS_MEM_ALLOC_FAILED); break; case 3: cs_errmsg.LoadString(IDS_MEM_LOCK_FAILED); break; } gmb.MessageBox(cs_errmsg, cs_title, MB_OK); }
void CSetDBID::OnOK() { UpdateData(TRUE); // Has user changed the index? if (m_iInitialDBIndex != m_iDBIndex) { // Has user disabled index feature? if (m_iDBIndex != 0) { // Try to get this index wchar_t szName[MAX_PATH]; CreateUniqueName(UNIQUE_PWS_GUID, szName, MAX_PATH, SI_TRUSTEE_UNIQUE); CString csUserSBIndex; csUserSBIndex.Format(L"%s:DBI:%02d", static_cast<LPCWSTR>(szName), m_iDBIndex); m_hMutexDBIndex = CreateMutex(NULL, FALSE, csUserSBIndex); DWORD dwerr = ::GetLastError(); if (dwerr == ERROR_ALREADY_EXISTS || dwerr == ERROR_ACCESS_DENIED) { CGeneralMsgBox gmb; gmb.AfxMessageBox(IDS_DBIDINUSE, MB_OK | MB_ICONEXCLAMATION); m_edtSBIndex.SetFocus(); return; } } } CPWDialog::EndDialog(m_iDBIndex); }
void CAboutDlg::CheckNewVer() { // Get the latest.xml file from our site, compare to version, // and notify the user // First, make sure database is closed: Sensitive data with an // open socket makes me uneasy... if (GetMainDlg()->GetNumEntries() != 0) { CGeneralMsgBox gmb; const CString cs_txt(MAKEINTRESOURCE(IDS_CLOSE_B4_CHECK)); const CString cs_title(MAKEINTRESOURCE(IDS_CONFIRM_CLOSE)); INT_PTR rc = gmb.MessageBox(cs_txt, cs_title, (MB_OKCANCEL | MB_ICONQUESTION)); if (rc == IDCANCEL) return; // no hard feelings // Close database, prompt for save if changed GetMainDlg()->SendMessage(WM_COMMAND, ID_MENUITEM_CLOSE); // User could have cancelled save, need to check if really closed: if (GetMainDlg()->GetNumEntries() != 0) return; } GetMainDlg()->UpdateWindow(); // show user that we closed database ASSERT(GetMainDlg()->GetNumEntries() == 0); // safe to open external connection m_newVerStatus.LoadString(IDS_TRYING2CONTACT_SERVER); UpdateData(FALSE); std::wstring latest; wchar_t *html_redfont = L"<b><font color=\"red\">"; wchar_t *html_greenfont = L"<b><font color=\"green\">"; wchar_t *html_endfont = L"</font></b>"; switch (CheckLatestVersion(latest)) { case CheckVersion::CANT_CONNECT: m_newVerStatus.Format(IDS_CANT_CONTACT_SERVER, html_redfont, html_endfont); break; case CheckVersion::UP2DATE: m_newVerStatus.Format(IDS_UP2DATE, html_greenfont, html_endfont); break; case CheckVersion::NEWER_AVAILABLE: { CGeneralMsgBox gmb; CString newer; newer.Format(SysInfo::IsUnderU3() ? IDS_NEWER_AVAILABLE_U3 : IDS_NEWER_AVAILABLE, m_appversion, latest.c_str()); m_newVerStatus.Format(IDS_NEWER_AVAILABLE_SHORT, html_redfont, html_endfont); gmb.MessageBox(newer, CString(MAKEINTRESOURCE(IDS_NEWER_CAPTION)), MB_ICONEXCLAMATION); break; } case CheckVersion::CANT_READ: m_newVerStatus.Format(IDS_CANT_READ_VERINFO, html_redfont, html_endfont); break; default: break; } m_RECExNewVerStatus.SetFont(GetFont()); m_RECExNewVerStatus.SetWindowText(m_newVerStatus); m_RECExNewVerStatus.Invalidate(); UpdateData(FALSE); GetDlgItem(IDOK)->SetFocus(); }
void CPasskeyEntry::OnOK() { UpdateData(TRUE); if (m_filespec.IsEmpty()) { m_status = TAR_OPEN_NODB; CPWDialog::OnCancel(); return; } CGeneralMsgBox gmb; if (m_passkey.IsEmpty()) { gmb.AfxMessageBox(IDS_CANNOTBEBLANK); m_pctlPasskey->SetFocus(); return; } if (!pws_os::FileExists(m_filespec.GetString())) { gmb.AfxMessageBox(IDS_FILEPATHNOTFOUND); if (m_MRU_combo.IsWindowVisible()) m_MRU_combo.SetFocus(); return; } ProcessPhrase(); }
void CCreateShortcutDlg::OnOK() { if (UpdateData(TRUE) == FALSE) return; CGeneralMsgBox gmb; m_group.EmptyIfOnlyWhiteSpace(); m_title.EmptyIfOnlyWhiteSpace(); m_username.EmptyIfOnlyWhiteSpace(); //Check that data is valid if (m_title.IsEmpty()) { gmb.AfxMessageBox(IDS_MUSTHAVETITLE); ((CEdit*)GetDlgItem(IDC_TITLE))->SetFocus(); return; } if (!m_group.IsEmpty() && m_group[0] == '.') { gmb.AfxMessageBox(IDS_DOTINVALID); ((CEdit*)GetDlgItem(IDC_GROUP))->SetFocus(); return; } // If there is a matching entry in our list, tell the user to try again. if (GetMainDlg()->Find(m_group, m_title, m_username) != app.GetMainDlg()->End()) { gmb.AfxMessageBox(IDS_ENTRYEXISTS, MB_OK | MB_ICONASTERISK); ((CEdit*)GetDlgItem(IDC_TITLE))->SetSel(MAKEWORD(-1, 0)); ((CEdit*)GetDlgItem(IDC_TITLE))->SetFocus(); return; } //End check CPWDialog::OnOK(); }
bool CPWFiltersDlg::VerifyFilters() { // Verify that the active filters have a criterion set if (UpdateData(TRUE) == FALSE) return false; // First non-History/non-Policy filters on the main filter dialog vFilterRows *pvFilterRows(NULL); switch (m_iType) { case DFTYPE_MAIN: pvFilterRows = &m_pfilters->vMfldata; break; case DFTYPE_PWHISTORY: pvFilterRows = &m_pfilters->vHfldata; break; case DFTYPE_PWPOLICY: pvFilterRows = &m_pfilters->vPfldata; break; case DFTYPE_ATTACHMENT: pvFilterRows = &m_pfilters->vAfldata; break; default: VERIFY(0); } CGeneralMsgBox gmb; CString cs_text; int iHistory(-1), iPolicy(-1), iAttachment(-1); FilterValidator fv(cs_text, iHistory, iPolicy, iAttachment); if (find_if(pvFilterRows->begin(), pvFilterRows->end(), fv) != pvFilterRows->end()) { gmb.AfxMessageBox(cs_text); return false; } if (m_iType == DFTYPE_MAIN) { // Now check that the filters were correct on // History/Policy/Attachment sub-filter dialogs if (m_FilterLC.IsPWHIST_Set() && !m_FilterLC.IsHistoryGood()) { cs_text.Format(IDS_FILTERINCOMPLETE, iHistory + 1); gmb.AfxMessageBox(cs_text); return false; } if (m_FilterLC.IsPOLICY_Set() && !m_FilterLC.IsPolicyGood()) { cs_text.Format(IDS_FILTERINCOMPLETE, iPolicy + 1); gmb.AfxMessageBox(cs_text); return false; } if (m_FilterLC.IsAttachment_Set() && !m_FilterLC.IsAttachmentGood()) { cs_text.Format(IDS_FILTERINCOMPLETE, iPolicy + 1); gmb.AfxMessageBox(cs_text); return false; } } return true; }
void CPasskeySetup::YubiFailed() { CGeneralMsgBox gmb; INT_PTR rc = gmb.AfxMessageBox(IDS_YUBI_UNINITIALIZED, MB_YESNO | MB_ICONQUESTION); if (rc == IDYES) { YubiInitialize(); } }
void CAddEdit_Attachment::OnAttImport() { CString filter; CSimpleArray<GUID> aguidFileTypes; HRESULT hr; UpdateData(TRUE); if (m_AttFileName.IsEmpty()) { // Ask user for file name - annoyingly - returned string is all in upper case! // Remove last separator const CString cs_allimages(MAKEINTRESOURCE(IDS_ALL_IMAGE_FILES)); const DWORD dwExclude = CImage::excludeOther; hr = m_AttImage.GetImporterFilterString(filter, aguidFileTypes, cs_allimages, dwExclude); ASSERT(hr >= 0); // Make better visually filter = filter.Right(filter.GetLength() - cs_allimages.GetLength()); filter.MakeLower(); filter = cs_allimages + filter; // Remove last separator to add the all files filter = filter.Left(filter.GetLength() - 1); // Add "All files" const CString cs_allfiles(MAKEINTRESOURCE(IDS_FDF_ALL)); filter.Append(cs_allfiles); CFileDialog fileDlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST, filter, this); if (fileDlg.DoModal() == IDCANCEL) return; m_AttFileName = CSecString(fileDlg.GetPathName()); } else { if (!pws_os::FileExists(LPCWSTR(m_AttFileName))) { CGeneralMsgBox gmb; gmb.AfxMessageBox(IDS_ATTACHMENT_NOTFOUND); return; } } // Get file information struct _stati64 info; VERIFY(_wstati64(m_AttFileName, &info) == 0); m_csFileCTime = PWSUtil::ConvertToDateTimeString(info.st_ctime, PWSUtil::TMC_LOCALE).c_str(); m_csFileMTime = PWSUtil::ConvertToDateTimeString(info.st_mtime, PWSUtil::TMC_LOCALE).c_str(); ShowPreview(); m_ae_psh->SetChanged(true); Invalidate(); UpdateControls(); UpdateData(FALSE); UpdateWindow(); }
static bool GetRUEntry(CRUEList &RUEList, size_t index, CItemData &ci) { bool retval = RUEList.GetPWEntry(index, ci); if (!retval) { CGeneralMsgBox gmb; gmb.AfxMessageBox(IDS_CANTPROCESSENTRY); } return retval; }
void CWZPropertyPage::ShowHelp(const CString &topicFile) { if (!app.GetHelpFileName().IsEmpty()) { const CString cs_HelpTopic = app.GetHelpFileName() + topicFile; HtmlHelp(DWORD_PTR((LPCWSTR)cs_HelpTopic), HH_DISPLAY_TOPIC); } else { CGeneralMsgBox gmb; gmb.AfxMessageBox(IDS_HELP_UNAVALIABLE, MB_ICONERROR); } }
BOOL COptionsSecurity::OnKillActive() { CGeneralMsgBox gmb; // Check that options, as set, are valid. if ((m_IdleTimeOut < 1) || (m_IdleTimeOut > 120)) { gmb.AfxMessageBox(IDS_INVALIDTIMEOUT); ((CEdit*)GetDlgItem(IDC_IDLE_TIMEOUT))->SetFocus(); return FALSE; } return COptions_PropertyPage::OnKillActive(); }
BOOL COptionsDisplay::OnKillActive() { CGeneralMsgBox gmb; // Check that options, as set, are valid. if ((m_PreExpiryWarnDays < 1) || (m_PreExpiryWarnDays > 30)) { gmb.AfxMessageBox(IDS_INVALIDEXPIRYWARNDAYS); ((CEdit*)GetDlgItem(IDC_PREEXPIRYWARNDAYS))->SetFocus(); return FALSE; } return COptions_PropertyPage::OnKillActive(); }
void AFXAPI CFilterDateDlg::DDV_CheckDates(CDataExchange* pDX, const CTime &ctime1, const CTime &ctime2) { if (m_datetype == 1 /* Relative */) return; if (pDX->m_bSaveAndValidate && m_rule == PWSMatch::MR_BETWEEN && ctime1 >= ctime2) { CGeneralMsgBox gmb; gmb.AfxMessageBox(IDS_DATE1NOTB4DATE2); pDX->Fail(); } }
void CPasskeyEntry::OnYubikeyBtn() { UpdateData(TRUE); if (!pws_os::FileExists(m_filespec.GetString())) { CGeneralMsgBox gmb; gmb.AfxMessageBox(IDS_FILEPATHNOTFOUND); if (m_MRU_combo.IsWindowVisible()) m_MRU_combo.SetFocus(); return; } yubiRequestHMACSha1(m_passkey); }
void CSampleTextDlg::OnOK() { UpdateData(TRUE); if (m_sampletext.IsEmpty()) { CGeneralMsgBox gmb; gmb.AfxMessageBox(IDS_EMPTYSAMPLETEXT); ((CEdit*)GetDlgItem(IDC_SAMPLETEXT))->SetFocus(); return; } CPWDialog::OnOK(); }
void CDisplayFSBkupFiles::OnDelete() { // Delete selected item - but allow undo via Recycle Bin // NOTE: There are no Recycle Bins on network drives, or // (most) removeable drives (floppy disks, USB pen drives, CD/DVD - no, // USB hard disks - yes). // Must not delete first entry (current database) if (m_iSelectedItem < 1) return; if (m_DriveType != DRIVE_FIXED) { CGeneralMsgBox gmb; const CString cs_text(MAKEINTRESOURCE(IDS_NORECYCLEBINMSG)); const CString cs_title(MAKEINTRESOURCE(IDS_NORECYCLEBINTITLE)); if (gmb.MessageBox(cs_text, cs_title, (MB_YESNO | MB_ICONQUESTION)) == IDNO) { return; } } std::wstring ws_selected = m_wsDBPath + std::wstring((LPCWSTR)m_RFListCtrl.GetItemText(m_iSelectedItem, 0)); const wchar_t *lpsz_delete = ws_selected.c_str(); wchar_t szToBeDeleted[_MAX_PATH + 1]; wcscpy_s(szToBeDeleted, _MAX_PATH, lpsz_delete); // Must end with double NULL szToBeDeleted[ws_selected.length() + 1] = L'\0'; SHFILEOPSTRUCT sfop; memset(&sfop, 0, sizeof(sfop)); sfop.hwnd = GetActiveWindow()->GetSafeHwnd(); sfop.wFunc = FO_DELETE; sfop.pFrom = szToBeDeleted; sfop.pTo = NULL; sfop.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION; sfop.hNameMappings = NULL; int rc = SHFileOperation(&sfop); if (rc == 0) { m_RFListCtrl.SetItemState(m_iSelectedItem, 0, LVIS_SELECTED); m_RFListCtrl.DeleteItem(m_iSelectedItem); m_iSelectedItem = -1; // Nothing selected now - disable buttons GetDlgItem(IDC_SELECT)->EnableWindow(FALSE); GetDlgItem(IDC_DELETE)->EnableWindow(FALSE); } }
void CFilterIntegerDlg::OnBnClickedOk() { if (UpdateData(TRUE) == FALSE) return; if (m_rule == PWSMatch::MR_INVALID) { CGeneralMsgBox gmb; gmb.AfxMessageBox(IDS_NORULESELECTED); return; } CFilterBaseDlg::OnOK(); }
void CManagePSWDPols::OnCancel() { // There may be no more left if the user has undone them all (if any) if (m_iundo_pos >= 0 && m_bChanged) { // Are you sure? CGeneralMsgBox gmb; if (gmb.AfxMessageBox(IDS_AREYOUSURE_PN, MB_YESNO | MB_ICONEXCLAMATION | MB_DEFBUTTON2) == IDNO) return; } CPWDialog::OnCancel(); }
void CManageFiltersDlg::OnFilterNew() { st_filters filters; st_Filterkey flt_key; bool bJustDoIt(false), bCreated; flt_key.fpool = FPOOL_SESSION; do_edit: bCreated = GetMainDlg()->EditFilter(&filters, false); flt_key.cs_filtername = filters.fname; if (bCreated) { PWSFilters::const_iterator mf_citer; mf_citer = m_MapMFDFilters.find(flt_key); // Check if already there (i.e. ask user if to replace) if (mf_citer != m_MapMFDFilters.end()) { CGeneralMsgBox gmb; CString cs_msg(MAKEINTRESOURCE(IDS_REPLACEFILTER)); CString cs_title(MAKEINTRESOURCE(IDS_FILTEREXISTS)); INT_PTR rc = gmb.MessageBox(cs_msg, cs_title, MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2); // If NO, go to edit again! Not best practice to jump out of loop // to prior call! if (rc == IDNO) goto do_edit; m_MapMFDFilters.erase(flt_key); // If this was active, we need to clear it and re-apply if (m_bMFFilterActive && m_activefilterpool == FPOOL_SESSION && m_activefiltername == filters.fname.c_str()) { bJustDoIt = true; } } m_MapMFDFilters.insert(PWSFilters::Pair(flt_key, filters)); // Update DboxMain GetMainDlg()->SetFilter(FPOOL_SESSION, filters.fname.c_str()); if (bJustDoIt) GetMainDlg()->ApplyFilter(true); m_selectedfiltername = flt_key.cs_filtername.c_str(); m_selectedfilterpool = flt_key.fpool; UpdateFilterList(); DisplayFilterProperties(&filters); } }
BOOL COptions_PropertyPage::OnQueryCancel() { // Check whether there have been any changes in order to ask the user // if they really want to cancel // QuerySiblings is only sent to loaded PropertyPages (i.e. user has // selected to view them as ones not yet loaded cannot have changed fields) if (QuerySiblings(PP_DATA_CHANGED, 0L) != 0L) { CGeneralMsgBox gmb; if (gmb.AfxMessageBox(IDS_AREYOUSURE_OPT, MB_YESNO | MB_ICONEXCLAMATION | MB_DEFBUTTON2) == IDNO) return FALSE; } return CPWPropertyPage::OnQueryCancel(); }
void CManageFiltersDlg::OnFilterCopy() { int numfilters = m_FilterLC.GetItemCount(); bool bCopied(false); for (int i = 0; i < numfilters; i++) { st_FilterItemData *pflt_idata = (st_FilterItemData *)m_FilterLC.GetItemData(i); if ((pflt_idata->flt_flags & MFLT_REQUEST_COPY_TO_DB) != MFLT_REQUEST_COPY_TO_DB) continue; PWSFilters::iterator mf_iter; st_Filterkey flt_key; flt_key = pflt_idata->flt_key; mf_iter = m_MapMFDFilters.find(flt_key); if (mf_iter == m_MapMFDFilters.end()) return; PWSFilters::const_iterator mf_citer; st_Filterkey flt_keydb; flt_keydb.fpool = FPOOL_DATABASE; flt_keydb.cs_filtername = flt_key.cs_filtername; mf_citer = m_MapMFDFilters.find(flt_keydb); // Check if already there (i.e. ask user if to replace) if (mf_citer != m_MapMFDFilters.end()) { CGeneralMsgBox gmb; CString cs_msg(MAKEINTRESOURCE(IDS_REPLACEFILTER)); CString cs_title(MAKEINTRESOURCE(IDS_FILTEREXISTS)); INT_PTR rc = gmb.MessageBox(cs_msg, cs_title, MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2); if (rc == IDNO) continue; // skip this one // User agrees to replace m_MapMFDFilters.erase(flt_keydb); } m_MapMFDFilters.insert(PWSFilters::Pair(flt_keydb, mf_iter->second)); // Turn off copy flag pflt_idata->flt_flags &= ~MFLT_REQUEST_COPY_TO_DB; m_num_to_copy--; bCopied = true; } if (bCopied) { m_bDBFiltersChanged = true; GetMainDlg()->ChangeOkUpdate(); } UpdateFilterList(); }
void CAdvancedDlg::OnOK() { CGeneralMsgBox gmb; CString cs_text; UpdateData(); m_bsFields.reset(); m_bsAttFields.reset(); int num_selected = m_pLC_Selected->GetItemCount(); int nItem(-1); for (int i = 0; i < num_selected; i++) { nItem = m_pLC_Selected->GetNextItem(nItem, LVNI_ALL); DWORD_PTR dw_data = LOWORD(m_pLC_Selected->GetItemData(nItem)); const short index = dw_data & 0xff; if (index < CItem::LAST_DATA) { m_bsFields.set(index, true); } else if (index < CItem::LAST_ATT) { m_bsAttFields.set(index - CItemAtt::START, true); } } if (m_bsFields.count() == 0 && m_bsAttFields.count() == 0) { CString cs_error_msg; cs_error_msg.LoadString(m_iIndex == FIND ? IDS_NOFIELDSFORSEARCH : IDS_NOFIELDSFORSYNCH); gmb.AfxMessageBox(cs_error_msg); m_bsFields.set(); // note: impossible to set them all even via the advanced dialog return; } if (m_subgroup_name == L"*") m_subgroup_name.Empty(); m_pst_SADV->bsFields = m_bsFields; m_pst_SADV->bsAttFields = m_bsAttFields; m_pst_SADV->subgroup_name = m_subgroup_name; m_pst_SADV->subgroup_bset = m_subgroup_set == BST_CHECKED; m_pst_SADV->subgroup_object = m_subgroup_object; m_pst_SADV->subgroup_function = m_subgroup_function; m_pst_SADV->subgroup_bcase = m_subgroup_case == BST_CHECKED; m_pst_SADV->btreatwhitespaceasempty = m_treatwhitespaceasempty == BST_CHECKED; CPWDialog::OnOK(); }
void AFXAPI CFilterDateDlg::DDV_CheckDateValid(CDataExchange* pDX, const CTime &ctime) { if (m_datetype == 1 /* Relative */) return; // Only Expiry dates can be in the past and future // All other dates can only be in the past (i.e. created, last accessed etc.) if (pDX->m_bSaveAndValidate && m_ft != FT_XTIME && ctime > CTime::GetCurrentTime()) { CGeneralMsgBox gmb; gmb.AfxMessageBox(IDS_INVALIDFUTUREDATE); pDX->Fail(); } }
void CPasskeySetup::OnYubikeyBtn() { UpdateData(TRUE); // Check that password and verification are same. // unlike non-Yubi usage, here we accept empty passwords, // which will give token-based authentication. // A non-empty password with Yubikey is 2-factor auth. CGeneralMsgBox gmb; if (m_passkey != m_verify) { gmb.AfxMessageBox(IDS_ENTRIESDONOTMATCH); ((CEdit*)GetDlgItem(IDC_VERIFY))->SetFocus(); return; } yubiRequestHMACSha1(m_passkey); }
void AFXAPI CFilterDateDlg::DDV_CheckDateValid(CDataExchange* pDX, const int &num) { if (m_datetype == 0 /* Absolute */) return; // Only Expiry dates can be in the past and future // All other dates can only be in the past (i.e. created, last accessed etc.) if (pDX->m_bSaveAndValidate && m_ft != FT_XTIME && num > 0) { CGeneralMsgBox gmb; CString cs_text; cs_text.LoadString(IDS_INVALIDFUTUREDATE); gmb.AfxMessageBox(cs_text); pDX->Fail(); } }