void CoreLoad() { bool SessionList = false; std::unique_ptr<THierarchicalStorage> SessionsStorage(GetConfiguration()->CreateStorage(SessionList)); THierarchicalStorage * ConfigStorage = nullptr; std::unique_ptr<THierarchicalStorage> ConfigStorageAuto; if (!SessionList) { // can reuse this for configuration ConfigStorage = SessionsStorage.get(); } else { ConfigStorageAuto.reset(GetConfiguration()->CreateConfigStorage()); ConfigStorage = ConfigStorageAuto.get(); } assert(GetConfiguration() != nullptr); try { GetConfiguration()->Load(ConfigStorage); } catch (Exception & E) { ShowExtendedException(&E); } // should be noop, unless exception occurred above ConfigStorage->CloseAll(); StoredSessions = new TStoredSessionList(); try { if (SessionsStorage->OpenSubKey(GetConfiguration()->GetStoredSessionsSubKey(), false)) { StoredSessions->Load(SessionsStorage.get()); } } catch (Exception & E) { ShowExtendedException(&E); } }