//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1997 - 1997 // // File: regkey.h // //-------------------------------------------------------------------------- #ifndef _REGKEY_H_ #define _REGKEY_H_ #include ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // REGKEY: Wrapper for a registry key ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// class REGKEY { public: REGKEY() : m_hKey(NULL) {} ~ REGKEY() { Close(); } HKEY HKey () const { return m_hKey; } operator HKEY() const { return m_hKey; } LONG SetValue(DWORD dwValue, LPCTSTR lpszValueName); LONG QueryValue(DWORD& dwValue, LPCTSTR lpszValueName); LONG QueryValue(LPTSTR szValue, LPCTSTR lpszValueName, DWORD* pdwCount); LONG SetValue(LPCTSTR lpszValue, LPCTSTR lpszValueName = NULL); LONG SetKeyValue( LPCTSTR lpszKeyName, LPCTSTR lpszValue, LPCTSTR lpszValueName = NULL); static LONG WINAPI SetValue( HKEY hKeyParent, LPCTSTR lpszKeyName, LPCTSTR lpszValue, LPCTSTR lpszValueName = NULL); LONG Create( HKEY hKeyParent, LPCTSTR lpszKeyName, LPTSTR lpszClass = REG_NONE, DWORD dwOptions = REG_OPTION_NON_VOLATILE, REGSAM samDesired = KEY_ALL_ACCESS, LPSECURITY_ATTRIBUTES lpSecAttr = NULL, LPDWORD lpdwDisposition = NULL); LONG Open( HKEY hKeyParent, LPCTSTR lpszKeyName, REGSAM samDesired = KEY_ALL_ACCESS); LONG Close(); LONG RecurseDeleteKey(LPCTSTR lpszKey); void Attach(HKEY hKey); HKEY Detach() { HKEY hKey = m_hKey; m_hKey = NULL; return hKey; } LONG DeleteSubKey(LPCTSTR lpszSubKey) { assert(m_hKey != NULL); return RegDeleteKey(m_hKey, lpszSubKey); } LONG DeleteValue(LPCTSTR lpszValue) { assert(m_hKey != NULL); return RegDeleteValue(m_hKey, (LPTSTR)lpszValue); } protected: HKEY m_hKey; }; #endif // _REGKEY_H_