/*++ Copyright (C) Microsoft Corporation, 1996 - 1999 Module Name: Registry Abstract: This header file defines a class to provide simple interaction to values in the Registry Database. Author: Doug Barlow (dbarlow) 7/15/1996 Environment: Win32, C++ w/ Exceptions Notes: --*/ #ifndef _REGISTRY_H_ #define _REGISTRY_H_ #include #define REG_OPTION_EXISTS (~REG_LEGAL_OPTION) // //============================================================================== // // CRegistry // class CRegistry { public: // Constructors & Destructor CRegistry( HKEY hBase, LPCTSTR szName, REGSAM samDesired = KEY_ALL_ACCESS, DWORD dwOptions = REG_OPTION_EXISTS, LPSECURITY_ATTRIBUTES lpSecurityAttributes = NULL); CRegistry(void); ~CRegistry(); // Properties // Methods void Open( HKEY hBase, LPCTSTR szName, REGSAM samDesired = KEY_ALL_ACCESS, DWORD dwOptions = REG_OPTION_EXISTS, LPSECURITY_ATTRIBUTES lpSecurityAttributes = NULL); void Close(void); LONG Status(BOOL fQuiet = FALSE) const; void Empty(void); void Copy(CRegistry ®Src); void DeleteKey(LPCTSTR szKey, BOOL fQuiet = FALSE) const; void DeleteValue(LPCTSTR szValue, BOOL fQuiet = FALSE) const; LPCTSTR Subkey(DWORD dwIndex); LPCTSTR Value(DWORD dwIndex, LPDWORD pdwType = NULL); void GetValue( LPCTSTR szKeyValue, LPTSTR *pszValue, LPDWORD pdwType = NULL); void GetValue( LPCTSTR szKeyValue, LPDWORD pdwValue, LPDWORD pdwType = NULL) const; void GetValue( LPCTSTR szKeyValue, LPBYTE *ppbValue, LPDWORD pcbLength, LPDWORD pdwType = NULL); void GetValue( LPCTSTR szKeyValue, CBuffer &bfValue, LPDWORD pdwType = NULL); void SetValue( LPCTSTR szKeyValue, LPCTSTR szValue, DWORD dwType = REG_SZ) const; void SetValue( LPCTSTR szKeyValue, DWORD dwValue, DWORD dwType = REG_DWORD) const; void SetValue( LPCTSTR szKeyValue, LPCBYTE pbValue, DWORD cbLength, DWORD dwType = REG_BINARY) const; void SetAcls( IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR pSecurityDescriptor, IN BOOL fRecurse = TRUE); void SetMultiStringValue( LPCTSTR szKeyValue, LPCTSTR mszValue, DWORD dwType = REG_MULTI_SZ) const; LPCTSTR GetStringValue( LPCTSTR szKeyValue, LPDWORD pdwType = NULL); DWORD GetNumericValue( LPCTSTR szKeyValue, LPDWORD pdwType = NULL) const; LPCBYTE GetBinaryValue( LPCTSTR szKeyValue, LPDWORD pcbLength = NULL, LPDWORD pdwType = NULL); LPCTSTR GetMultiStringValue( LPCTSTR szKeyValue, LPDWORD pdwType = NULL); DWORD GetValueLength( void) const; BOOL ValueExists( LPCTSTR szKeyValue, LPDWORD pcbLength = NULL, LPDWORD pdwType = NULL) const; DWORD GetDisposition( void) const; // Operators operator HKEY( void) const { Status(); return m_hKey; }; protected: // Properties HKEY m_hKey; DWORD m_dwDisposition; CBuffer m_bfResult; LONG m_lSts; // Methods }; #endif // _REGISTRY_H_