Тема: LiteRegedit
Показать сообщение отдельно

  #2  
Старый 21.09.2016, 12:56
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Наследник, для упрощения работы с распространенными типами данных

C++:





Код:
class
CLiteRegeditEasy
:
public
CLiteRegedit
{
public
:
CLiteRegeditEasy
(
HKEY hKey
,
LPCSTR lpSubKey
)
:
CLiteRegedit
(
hKey
,
lpSubKey
)
{
no_error
=
true
;
}
void
WriteString
(
LPCSTR lpName
,
LPSTR lpString
,
.
.
.
)
{
va_list ap
;
char
*
szStr
=
new
char
[
strlen
(
lpString
)
*
2
+
1024
]
;
va_start
(
ap
,
lpString
)
;
vsprintf
(
szStr
,
lpString
,
ap
)
;
va_end
(
ap
)
;
no_error
=
SetRegister
(
lpName
,
REG_SZ
,
szStr
,
strlen
(
szStr
)
)
;
delete
[
]
szStr
;
}
std
::
string
ReadString
(
LPCSTR lpName
)
{
char
szStr
[
0x1000
]
;
no_error
=
GetRegister
(
lpName
,
REG_SZ
,
szStr
,
0x1000
)
;
return
szStr
;
}
void
WriteInteger
(
LPCSTR lpName
,
int
value
)
{
no_error
=
GetRegister
(
lpName
,
REG_DWORD
,
&
value
)
;
}
int
ReadInteger
(
LPCSTR lpName
)
{
int
value
;
no_error
=
GetRegister
(
lpName
,
REG_DWORD
,
&
value
)
;
return
value
;
}
void
WriteFloat
(
LPCSTR lpName
,
float
value
)
{
no_error
=
GetRegister
(
lpName
,
REG_DWORD
,
&
value
)
;
}
float
ReadFloat
(
LPCSTR lpName
)
{
float
value
;
no_error
=
GetRegister
(
lpName
,
REG_DWORD
,
&
value
)
;
return
value
;
}
void
WriteLongLong
(
LPCSTR lpName
,
long
long
value
)
{
no_error
=
GetRegister
(
lpName
,
REG_QWORD
,
&
value
)
;
}
long
long
ReadLongLong
(
LPCSTR lpName
)
{
long
long
value
;
no_error
=
GetRegister
(
lpName
,
REG_QWORD
,
&
value
)
;
return
value
;
}
void
WriteDouble
(
LPCSTR lpName
,
double
value
)
{
no_error
=
GetRegister
(
lpName
,
REG_QWORD
,
&
value
)
;
}
double
ReadDouble
(
LPCSTR lpName
)
{
double
value
;
no_error
=
GetRegister
(
lpName
,
REG_QWORD
,
&
value
)
;
return
value
;
}
bool
IsError
(
)
{
return
!
no_error
;
}
private
:
bool
no_error
;
}
;
 
Ответить с цитированием