Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

258 lines
5.3 KiB

#ifndef _REG_
#define _REG_
#define DefaultRegKeySize 300
typedef class REG_KEY * PREG_KEY;
class REG_KEY
{
private:
PCHAR RegKeyString;
DWORD RegKeyStringSize;
HKEY HK;
DWORD Ret;
public:
//*********************************************************************
//* FUNCTION: REG_KEYs contstructors and destructors
//*
//* PURPOSE:
//*********************************************************************
inline REG_KEY()
{
RegKeyStringSize = DefaultRegKeySize;
RegKeyString = new char[DefaultRegKeySize];
}
inline REG_KEY(DWORD KeySize)
{
RegKeyStringSize = KeySize;
RegKeyString = new char[KeySize];
}
inline ~REG_KEY()
{
delete RegKeyString;
}
//*********************************************************************
//* FUNCTION:Open
//*
//* PURPOSE:
//*********************************************************************
inline BOOL
Open(
PREG_KEY Reg_Key,
PCHAR lpSubKey)
{
return(Open(Reg_Key->HK,lpSubKey));
}
//*********************************************************************
//* FUNCTION:Open
//*
//* PURPOSE:
//*********************************************************************
inline BOOL
Open(
HKEY hKey,
PCHAR lpSubKey)
{
//
//----- Open the key
//
Ret = RegOpenKeyA(hKey,lpSubKey,&HK);
if(Ret != ERROR_SUCCESS)
return(FALSE);
return(TRUE);
}
//*********************************************************************
//* FUNCTION:Open
//*
//* PURPOSE:
//*********************************************************************
BOOL
OpenEx(
PREG_KEY Reg_Key,
PCHAR lpSubKey,
...)
{
BOOL Ret;
va_list marker;
va_start(marker,lpSubKey);
_vsnprintf(RegKeyString,RegKeyStringSize,lpSubKey,marker);
Ret = Open(Reg_Key,RegKeyString);
va_end(marker);
return(Ret);
}
//*********************************************************************
//* FUNCTION:Open
//*
//* PURPOSE:
//*********************************************************************
BOOL
OpenEx(
HKEY hKey,
PCHAR lpSubKey,
...)
{
BOOL Ret;
va_list marker;
va_start(marker,lpSubKey);
_vsnprintf(RegKeyString,RegKeyStringSize,lpSubKey,marker);
Ret = Open(hKey,RegKeyString);
va_end(marker);
return(Ret);
}
//*********************************************************************
//* FUNCTION:Open
//*
//* PURPOSE:
//*********************************************************************
inline BOOL
Close(
VOID)
{
Ret = RegCloseKey(HK);
if(Ret != ERROR_SUCCESS)
return(FALSE);
return(TRUE);
};
//*********************************************************************
//* FUNCTION:GetValue
//*
//* PURPOSE:
//*********************************************************************
inline BOOL
GetValue(
PCHAR ValueName,
PCHAR ValueData,
DWORD ValueDataLen)
{
DWORD Type;
return(GetValue(
ValueName,
ValueData,
&ValueDataLen,
&Type));
}
//*********************************************************************
//* FUNCTION:GetValue
//*
//* PURPOSE:
//*********************************************************************
inline BOOL
GetValue(
PCHAR ValueName,
PCHAR ValueData,
DWORD * ValueDataLen)
{
DWORD Type;
return(GetValue(
ValueName,
ValueData,
ValueDataLen,
&Type));
}
//*********************************************************************
//* FUNCTION:GetValue
//*
//* PURPOSE:
//*********************************************************************
inline BOOL
GetValue(
PCHAR ValueName,
PCHAR ValueData,
DWORD * ValueDataLen,
DWORD * Type)
{
Ret = RegQueryValueExA(
HK,
ValueName,
NULL,
Type,
(BYTE*)ValueData,
ValueDataLen);
if(Ret != ERROR_SUCCESS)
return(FALSE);
return(TRUE);
}
//*********************************************************************
//* FUNCTION:SetValue
//*
//* PURPOSE:
//*********************************************************************
inline BOOL
SetValue(
PCHAR ValueName,
DWORD Type,
PCHAR ValueData,
DWORD ValueDataLen)
{
Ret = RegSetValueExA(
HK,
ValueName,
0,
Type,
(CONST BYTE *)ValueData,
ValueDataLen);
if(Ret != ERROR_SUCCESS)
return(FALSE);
return(TRUE);
}
//*********************************************************************
//* FUNCTION:SetValue
//*
//* PURPOSE:
//*********************************************************************
inline DWORD
ErrorCode(
VOID){ return(Ret);};
};
#endif