windows-nt/Source/XPSP1/NT/enduser/troubleshoot/bn/regkey.h
2020-09-26 16:20:57 +08:00

86 lines
2.1 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1997
//
// File: regkey.h
//
//--------------------------------------------------------------------------
#ifndef _REGKEY_H_
#define _REGKEY_H_
#include <assert.h>
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// 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_