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"); } }