windows-nt/Source/XPSP1/NT/windows/appcompat/windowsupdate/installer/registry.h
2020-09-26 16:20:57 +08:00

117 lines
3.2 KiB
C++

/*++
Copyright (c) 2001 Microsoft Corporation
Module Name:
Registry.h
Abstract:
Class definition for the registry
API wrapper class.
Notes:
Unicode only.
History:
01/29/2001 rparsons Created
03/02/2001 rparsons Major overhaul
--*/
#include <windows.h>
#define REG_FORCE_RESTORE (0x00000008L)
class CRegistry {
public:
HKEY CreateKey(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN REGSAM samDesired);
BOOL CloseKey(IN HKEY hKey);
LPWSTR GetString(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN LPCWSTR lpwValueName,
IN BOOL fPredefined);
BOOL GetDword(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN LPCWSTR lpwValueName,
IN LPDWORD lpdwData,
IN BOOL fPredefined);
BOOL SetString(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN LPCWSTR lpwValueName,
IN LPWSTR lpwData,
IN BOOL fPredefined);
BOOL SetDword(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN LPCWSTR lpwValueName,
IN DWORD dwData,
IN BOOL fPredefined);
BOOL DeleteRegistryString(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN LPCWSTR lpwValueName,
IN BOOL fPredefined);
BOOL DeleteRegistryKey(IN HKEY hKey,
IN LPCWSTR lpwKey,
IN LPCWSTR lpwSubKeyName,
IN BOOL fPredefined,
IN BOOL fFlush);
BOOL IsRegistryKeyPresent(IN HKEY hKey,
IN LPCWSTR lpwSubKey);
void Free(IN LPVOID lpMem);
BOOL AddStringToMultiSz(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN LPCWSTR lpwValueName,
IN LPCWSTR lpwEntry,
IN BOOL fPredefined);
BOOL RemoveStringFromMultiSz(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN LPCWSTR lpwValueName,
IN LPCWSTR lpwEntry,
IN BOOL fPredefined);
BOOL RestoreKey(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN LPCWSTR lpwFileName,
IN BOOL fGrantPrivs);
BOOL BackupRegistryKey(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN LPCWSTR lpwFileName,
IN BOOL fGrantPrivs);
private:
DWORD GetStringSize(IN HKEY hKey,
IN LPCWSTR lpwValueName,
OUT LPDWORD lpType OPTIONAL);
LPVOID Malloc(IN SIZE_T dwBytes);
HKEY OpenKey(IN HKEY hKey,
IN LPCWSTR lpwSubKey,
IN REGSAM samDesired);
int ListStoreLen(IN LPWSTR lpwList);
BOOL ModifyTokenPrivilege(IN LPCWSTR lpwPrivilege,
IN BOOL fEnable);
};