/*++ 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 #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); };