mirror of https://github.com/lianthony/NT4.0
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
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
|