Files
easy7zip/Windows/Registry.h
Igor Pavlov 3c510ba80b 4.20
2016-05-28 00:15:41 +01:00

64 lines
1.7 KiB
C++
Executable File

// Windows/Registry.h
#ifndef __WINDOWS_REGISTRY_H
#define __WINDOWS_REGISTRY_H
#include "Common/Buffer.h"
#include "Common/String.h"
namespace NWindows {
namespace NRegistry {
const TCHAR kKeyNameDelimiter = TEXT('\\');
LONG SetValue(HKEY parentKey, LPCTSTR keyName,
LPCTSTR valueName, LPCTSTR value);
class CKey
{
HKEY _object;
public:
CKey(): _object(NULL) {}
~CKey();
operator HKEY() const { return _object; }
HKEY Detach();
void Attach(HKEY key);
LONG Create(HKEY parentKey, LPCTSTR keyName,
LPTSTR keyClass = REG_NONE, DWORD options = REG_OPTION_NON_VOLATILE,
REGSAM accessMask = KEY_ALL_ACCESS,
LPSECURITY_ATTRIBUTES securityAttributes = NULL,
LPDWORD disposition = NULL);
LONG Open(HKEY parentKey, LPCTSTR keyName,
REGSAM accessMask = KEY_ALL_ACCESS);
LONG Close();
LONG DeleteSubKey(LPCTSTR subKeyName);
LONG RecurseDeleteKey(LPCTSTR subKeyName);
LONG DeleteValue(LPCTSTR value);
LONG SetValue(LPCTSTR valueName, UINT32 value);
LONG SetValue(LPCTSTR valueName, bool value);
LONG SetValue(LPCTSTR valueName, LPCTSTR value);
LONG SetValue(LPCTSTR valueName, const CSysString &value);
LONG SetValue(LPCTSTR valueName, const void *value, UINT32 size);
LONG SetKeyValue(LPCTSTR keyName, LPCTSTR valueName, LPCTSTR value);
LONG QueryValue(LPCTSTR valueName, UINT32 &value);
LONG QueryValue(LPCTSTR valueName, bool &value);
LONG QueryValue(LPCTSTR valueName, LPTSTR value, UINT32 &dataSize);
LONG QueryValue(LPCTSTR valueName, CSysString &value);
LONG QueryValue(LPCTSTR valueName, void *value, UINT32 &dataSize);
LONG QueryValue(LPCTSTR valueName, CByteBuffer &value, UINT32 &dataSize);
LONG EnumKeys(CSysStringVector &keyNames);
};
}}
#endif