diff --git a/Config.h b/Config.h index 24493c8e..460ed27d 100644 --- a/Config.h +++ b/Config.h @@ -77,9 +77,9 @@ public: return true; } - bool FindStringEntry(const CString& sName, CString& sRes) { + bool FindStringEntry(const CString& sName, CString& sRes, const CString& sDefault = "") { EntryMap::iterator it = m_ConfigEntries.find(sName); - sRes.clear(); + sRes = sDefault; if (it == m_ConfigEntries.end() || it->second.empty()) return false; sRes = it->second.front(); @@ -89,6 +89,26 @@ public: return true; } + bool FindBoolEntry(const CString& sName, bool& bRes, bool bDefault = false) { + CString s; + if (FindStringEntry(sName, s)) { + bRes = s.ToBool(); + return true; + } + bRes = bDefault; + return false; + } + + bool FindUIntEntry(const CString& sName, unsigned int& uRes, unsigned int uDefault = 0) { + CString s; + if (FindStringEntry(sName, s)) { + uRes = s.ToUInt(); + return true; + } + uRes = uDefault; + return false; + } + bool FindSubConfig(const CString& sName, SubConfig& Config) { SubConfigMap::iterator it = m_SubConfigs.find(sName); if (it == m_SubConfigs.end()) {