// -------------------------------------------------------------------------- // Module Name: RegistryResources.h // // Copyright (c) 1999-2000, Microsoft Corporation // // General class definitions that assist in resource management. These are // typically stack based objects where constructors initialize to a known // state. Member functions operate on that resource. Destructors release // resources when the object goes out of scope. // // History: 1999-08-18 vtan created // 1999-11-16 vtan separate file // 2000-01-31 vtan moved from Neptune to Whistler // -------------------------------------------------------------------------- #ifndef _RegistryResources_ #define _RegistryResources_ // -------------------------------------------------------------------------- // CRegKey // // Purpose: This class operates on the registry and manages the HKEY // resource. // // History: 1999-08-18 vtan created // 2000-01-31 vtan moved from Neptune to Whistler // -------------------------------------------------------------------------- class CRegKey { private: CRegKey (const CRegKey& copyObject); bool operator == (const CRegKey& compareObject) const; const CRegKey& operator = (const CRegKey& assignObject); public: CRegKey (void); ~CRegKey (void); LONG Create (HKEY hKey, LPCTSTR lpSubKey, DWORD dwOptions, REGSAM samDesired, LPDWORD lpdwDisposition); LONG Open (HKEY hKey, LPCTSTR lpSubKey, REGSAM samDesired); LONG OpenCurrentUser (LPCTSTR lpSubKey, REGSAM samDesired); LONG QueryValue (LPCTSTR lpValueName, LPDWORD lpType, LPVOID lpData, LPDWORD lpcbData) const; LONG SetValue (LPCTSTR lpValueName, DWORD dwType, CONST VOID *lpData, DWORD cbData) const; LONG DeleteValue (LPCTSTR lpValueName) const; LONG QueryInfoKey (LPTSTR lpClass, LPDWORD lpcClass, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime) const; void Reset (void); LONG Next (LPTSTR lpValueName, LPDWORD lpcValueName, LPDWORD lpType, LPVOID lpData, LPDWORD lpcbData); LONG GetString (const TCHAR *pszValueName, TCHAR *pszValueData, int iStringCount) const; LONG GetPath (const TCHAR *pszValueName, TCHAR *pszValueData) const; LONG GetDWORD (const TCHAR *pszValueName, DWORD& dwValueData) const; LONG GetInteger (const TCHAR *pszValueName, int& iValueData) const; LONG SetString (const TCHAR *pszValueName, const TCHAR *pszValueData) const; LONG SetPath (const TCHAR *pszValueName, const TCHAR *pszValueData) const; LONG SetDWORD (const TCHAR *pszValueName, DWORD dwValueData) const; LONG SetInteger (const TCHAR *pszValueName, int iValueData) const; private: LONG Close (void); private: HKEY _hKey; DWORD _dwIndex; }; #endif /* _RegistryResources_ */