summaryrefslogtreecommitdiff
path: root/common/regsettings.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/regsettings.h')
-rw-r--r--common/regsettings.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/common/regsettings.h b/common/regsettings.h
new file mode 100644
index 0000000..6f2c8ba
--- /dev/null
+++ b/common/regsettings.h
@@ -0,0 +1,92 @@
+//
+// 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: <nielsen@memberwebs.com>
+//
+
+#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