void COptionsPage::OnButtonSource(void) { CString strPrompt; strPrompt.LoadString(IDS_CHOOSE_SOURCE); CFolderDialog dlgFolder(strPrompt, m_strSource, this, BIF_NEWDIALOGSTYLE); if (dlgFolder.DoModal() == IDOK) { m_strSource = dlgFolder.GetFolderPath(); SetDlgItemText(IDC_EDIT_SOURCE, m_strSource); #if (_MFC_VER < 0x0700) CWinApp* pApp = AfxGetApp(); ASSERT_VALID(pApp); if ((m_timeWrite = pApp->GetProfileInt(SZ_REGK_TIMES, m_strSource, -1)) != -1) #else CUpdateItApp* pApp = DYNAMIC_DOWNCAST(CUpdateItApp, AfxGetApp()); ASSERT_VALID(pApp); if ((m_timeWrite = pApp->GetProfileTime(SZ_REGK_TIMES, m_strSource, -1)) != -1) #endif // _MFC_VER { m_dtpWrite.SetTime(&m_timeWrite); } CString strDefTarget = m_strSource + _T(".Update"); SetDlgItemText(IDC_EDIT_TARGET, pApp->GetProfileString(SZ_REGK_TARGETS, m_strSource, strDefTarget)); } }
COptionsPage::COptionsPage(void): CBetterPropPage(IDD_PAGE_OPTIONS), m_nRecurse(BST_CHECKED), m_nCleanup(BST_CHECKED), m_nRecycle(BST_CHECKED), m_fCompare(BST_UNCHECKED) { m_psp.dwFlags |= PSP_PREMATURE; #if (_MFC_VER < 0x0700) CWinApp* pApp = AfxGetApp(); #else CUpdateItApp* pApp = DYNAMIC_DOWNCAST(CUpdateItApp, AfxGetApp()); #endif // _MFC_VER ASSERT_VALID(pApp); // initialize and validate initial input values m_strSource = pApp->GetConfigString(SZ_ARG_OPTIONS_SOURCE, SZ_REGK_OPTIONS, SZ_REGV_OPTIONS_SOURCE); m_nRecurse = pApp->GetConfigCheck(SZ_ARG_OPTIONS_RECURSE, SZ_REGK_OPTIONS, SZ_REGV_OPTIONS_RECURSE, BST_CHECKED); m_strExclude = pApp->GetConfigString(SZ_ARG_OPTIONS_EXCLUDE, SZ_REGK_OPTIONS, SZ_REGV_OPTIONS_EXCLUDE); m_strTarget = pApp->GetConfigString(SZ_ARG_OPTIONS_TARGET, SZ_REGK_OPTIONS, SZ_REGV_OPTIONS_TARGET); m_nCleanup = pApp->GetConfigCheck(SZ_ARG_OPTIONS_CLEANUP, SZ_REGK_OPTIONS, SZ_REGV_OPTIONS_CLEANUP, BST_CHECKED); if (m_nCleanup == BST_CHECKED) { m_nRecycle = pApp->GetConfigCheck(SZ_ARG_OPTIONS_RECYCLE, SZ_REGK_OPTIONS, SZ_REGV_OPTIONS_RECYCLE, BST_CHECKED); } else { m_nRecycle = BST_UNCHECKED; } #if (_MFC_VER < 0x0700) m_timeWrite = m_strSource.IsEmpty() ? -1 : pApp->GetProfileInt(SZ_REGK_TIMES, m_strSource, -1); #else CArgsParser& argsParser = pApp->m_argsParser; bool fHasWriteTime = false; if (argsParser.HasKey(SZ_ARG_OPTIONS_WRITETIME)) { fHasWriteTime = argsParser.GetTimeValue(SZ_ARG_OPTIONS_WRITETIME, m_timeWrite); } if (!fHasWriteTime) { m_timeWrite = m_strSource.IsEmpty() ? -1 : pApp->GetProfileTime(SZ_REGK_TIMES, m_strSource, -1); } #endif // _MFC_VER m_fCompare = pApp->GetConfigCheck(SZ_ARG_OPTIONS_COMPARE, SZ_REGK_OPTIONS, SZ_REGV_OPTIONS_COMPARE, BST_UNCHECKED); // initial validation if (!::PathFileExists(m_strSource)) { ::GetCurrentDirectory(_MAX_PATH, m_strSource.GetBuffer(_MAX_PATH)); m_strSource.ReleaseBuffer(); m_strTarget = m_strSource + _T(".Update"); } }