79 lines
2.2 KiB
C++
79 lines
2.2 KiB
C++
/*++
|
|
|
|
Copyright (C) 1998-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
REG.H
|
|
|
|
Abstract:
|
|
|
|
Utility Registry classes
|
|
|
|
History:
|
|
|
|
a-raymcc 30-May-96 Created.
|
|
|
|
--*/
|
|
|
|
#ifndef _REG_H_
|
|
#define _REG_H_
|
|
#include "corepol.h"
|
|
|
|
#define WBEM_REG_WBEM __TEXT("Software\\Microsoft\\WBEM")
|
|
#define WBEM_REG_WINMGMT __TEXT("Software\\Microsoft\\WBEM\\CIMOM")
|
|
|
|
class POLARITY Registry
|
|
{
|
|
HKEY hPrimaryKey;
|
|
HKEY hSubkey;
|
|
int nStatus;
|
|
LONG m_nLastError;
|
|
|
|
|
|
public:
|
|
enum { no_error, failed };
|
|
|
|
int Open(HKEY hStart, TCHAR *pszStartKey);
|
|
Registry(TCHAR *pszLocalMachineStartKey);
|
|
|
|
// This create a special read only version which is usefull for marshalling
|
|
// clients which are running with a lower priviledge set.
|
|
|
|
Registry();
|
|
Registry(HKEY hRoot, REGSAM flags, TCHAR *pszStartKey);
|
|
Registry(HKEY hRoot, DWORD dwOptions, REGSAM flags, TCHAR *pszStartKey);
|
|
~Registry();
|
|
|
|
int MoveToSubkey(TCHAR *pszNewSubkey);
|
|
int GetDWORD(TCHAR *pszValueName, DWORD *pdwValue);
|
|
int GetDWORDStr(TCHAR *pszValueName, DWORD *pdwValue);
|
|
int GetStr(TCHAR *pszValue, TCHAR **pValue);
|
|
|
|
// It is the callers responsibility to delete pData
|
|
|
|
int GetBinary(TCHAR *pszValue, byte ** pData, DWORD * pdwSize);
|
|
int SetBinary(TCHAR *pszValue, byte * pData, DWORD dwSize);
|
|
|
|
//Returns a pointer to a string buffer containing the null-terminated string.
|
|
//The last entry is a double null terminator (i.e. the registry format for
|
|
//a REG_MULTI_SZ). Caller has do "delete []" the returned pointer.
|
|
//dwSize is the size of the buffer returned.
|
|
TCHAR* GetMultiStr(TCHAR *pszValueName, DWORD &dwSize);
|
|
|
|
int SetDWORD(TCHAR *pszValueName, DWORD dwValue);
|
|
int SetDWORDStr(TCHAR *pszValueName, DWORD dwValue);
|
|
int SetStr(TCHAR *pszValueName, TCHAR *psvValue);
|
|
int SetExpandStr(TCHAR *pszValueName, TCHAR *psvValue);
|
|
|
|
//pData should be passed in with the last entry double null terminated.
|
|
//(i.e. the registry format for a REG_MULTI_SZ).
|
|
int SetMultiStr(TCHAR *pszValueName, TCHAR* pData, DWORD dwSize);
|
|
|
|
LONG GetLastError() { return m_nLastError; }
|
|
int DeleteValue(TCHAR *pszValueName);
|
|
int GetType(TCHAR *pszValueName, DWORD *pdwType);
|
|
};
|
|
|
|
#endif
|