// // AUTHOR // N. Nielsen // // LICENSE // This software is in the public domain. // // The software is provided "as is", without warranty of any kind, // express or implied, including but not limited to the warranties // of merchantability, fitness for a particular purpose, and // noninfringement. In no event shall the author(s) be liable for any // claim, damages, or other liability, whether in an action of // contract, tort, or otherwise, arising from, out of, or in connection // with the software or the use or other dealings in the software. // // SUPPORT // Send bug reports to: // #ifndef __REGSETTINGS_H__ #define __REGSETTINGS_H__ class CRegSettings : public CRegKey { public: CRegSettings() {}; CRegSettings(HKEY hKey, LPCTSTR sName) { Create(hKey, sName); } virtual ~CRegSettings() {} virtual bool Erase(LPCTSTR sKeyName) { if(m_hKey == NULL) return false; return (DeleteValue(sKeyName) != ERROR_SUCCESS); } virtual bool WriteString(LPCTSTR sValName, LPCTSTR sValue) { if(m_hKey == NULL) return false; return (SetValue(sValue, sValName) != ERROR_SUCCESS); } virtual bool WriteInt(LPCTSTR sValName, int nValue) { if(m_hKey == NULL) return false; return (SetValue(nValue, sValName) != ERROR_SUCCESS); } #ifdef _MYSTRING_H_ virtual string GetString(LPCTSTR sValName, const string& sDefault = _T("")) const { if(m_hKey == NULL) return sDefault; string sValue = sDefault; DWORD dwCount = 0; // Bummer CRegKey doesn't do const! CRegKey* pKey = (CRegKey*)this; pKey->QueryValue(NULL, sValName, &dwCount); pKey->QueryValue(sValue.get_buffer(dwCount), sValName, &dwCount); sValue.release_buffer(); return sValue; } #endif // _MYSTRING_H_ virtual int GetInt(LPCTSTR sValName, int nDefault = 0) const { if(m_hKey == NULL) return nDefault; // Bummer CRegKey doesn't do const! CRegKey* pKey = (CRegKey*)this; DWORD dwVal = nDefault; pKey->QueryValue(dwVal, sValName); return dwVal; } }; #endif