// BackupData.cpp: implementation of the CBackupData class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "BackupData.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// UINT CBackupData::m_nExtensions = 0; UINT CBackupData::m_nSources = 0; UINT CBackupData::LoadExtensions(string_array& asExt, const CPropertyBag& settings) { int nCnt = 0; // Number of URLs from Registry string sExt; string sKeyName; // Format Key Name sKeyName.format(NS_BACKUP_REG_EXT, nCnt++); while((sExt = settings.GetString(sKeyName, NS_NO_KEY)) != NS_NO_KEY) { asExt.push_back(sExt); sKeyName.format(NS_BACKUP_REG_EXT, nCnt++); } m_nExtensions = max(m_nExtensions, --nCnt); return nCnt; } UINT CBackupData::SaveExtensions(const string_array& asExt, CPropertyBag& settings) { UINT nCnt = 0; // Number of URLs from Registry string sKeyName = _T(""); string_array::const_iterator iter = asExt.begin(); for(; iter != asExt.end(); iter++) { sKeyName.format(NS_BACKUP_REG_EXT, nCnt++); settings.WriteString(sKeyName, *iter); } UINT nRet = nCnt - 1; for(; nCnt < m_nExtensions; nCnt++) { // Format Registry Key sKeyName.format(NS_BACKUP_REG_EXT, nCnt); settings.DeleteProperty(sKeyName); } m_nExtensions = 0; return nRet; } UINT CBackupData::LoadSources(file_array& aSources, const CPropertyBag& settings) { int nCnt = 0; string sPath; string sKeyName; // Format Key Name sKeyName.format(NS_BACKUP_REG_SOURCE, nCnt++); // Add URLs to List Box while((sPath = settings.GetString(sKeyName, NS_NO_KEY)) != NS_NO_KEY) { aSources.push_back(sPath); // Format Key Name sKeyName.format(NS_BACKUP_REG_SOURCE, nCnt++); } return m_nSources = --nCnt; } UINT CBackupData::SaveSources(const file_array& aSources, CPropertyBag& settings) { UINT nCnt = 0; // Number of URLs from Registry string sKeyName; file_array::const_iterator iter = aSources.begin(); for(; iter != aSources.end(); iter++) { sKeyName.format(NS_BACKUP_REG_SOURCE, nCnt++); settings.WriteString(sKeyName, *iter); } UINT nRet = nCnt - 1; for(; nCnt < m_nSources; nCnt++) { // Format Registry Key sKeyName.format(NS_BACKUP_REG_SOURCE, nCnt); settings.DeleteProperty(sKeyName); } return nRet; }