1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
//+---------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1993 - 1994.
//
// File: virtreg.h
//
// Contents: Defines the class CVirtualRegistry which manages a
// virtual registry
//
// Classes:
//
// Methods:
//
// History: 23-Apr-96 BruceMa Created.
//
//----------------------------------------------------------------------
#ifndef _VIRTREG_H_
#define _VIRTREG_H_
class CVirtualRegistry
{
public:
CVirtualRegistry(void);
~CVirtualRegistry(void);
int ReadRegSzNamedValue(HKEY hRoot,
TCHAR *szKeyPath,
TCHAR *szValueName,
int *pIndex);
int NewRegSzNamedValue(HKEY hRoot,
TCHAR *szKeyPath,
TCHAR *szValueName,
TCHAR *szVal,
int *pIndex);
void ChgRegSzNamedValue(int nIndex,
TCHAR *szVal);
int ReadRegDwordNamedValue(HKEY hRoot,
TCHAR *szKeyPath,
TCHAR *szValueName,
int *pIndex);
int NewRegDwordNamedValue(HKEY hRoot,
TCHAR *szKeyPath,
TCHAR *szValueName,
DWORD dwVal,
int *pIndex);
void ChgRegDwordNamedValue(int nIndex,
DWORD dwVal);
int NewRegSingleACL(HKEY hRoot,
TCHAR *szKeyPath,
TCHAR *szValueName,
SECURITY_DESCRIPTOR *pacl,
BOOL fSelfRelative,
int *pIndex);
void ChgRegACL(int nIndex,
SECURITY_DESCRIPTOR *pacl,
BOOL fSelfRelative);
int NewRegKeyACL(HKEY hKey,
HKEY *phClsids,
unsigned cClsids,
TCHAR *szTitle,
SECURITY_DESCRIPTOR *paclOrig,
SECURITY_DESCRIPTOR *pacl,
BOOL fSelfRelative,
int *pIndex);
int ReadLsaPassword(CLSID &clsid,
int *pIndex);
int NewLsaPassword(CLSID &clsid,
TCHAR *szPassword,
int *pIndex);
void ChgLsaPassword(int nIndex,
TCHAR *szPassword);
int ReadSrvIdentity(TCHAR *szService,
int *pIndex);
int NewSrvIdentity(TCHAR *szService,
TCHAR *szIdentity,
int *pIndex);
void ChgSrvIdentity(int nIndex,
TCHAR *szIdentity);
void MarkForDeletion(int nIndex);
CDataPacket &GetAt(int nIndex);
void Remove(int nIndex);
void RemoveAll(void);
void Cancel(int nIndex);
int Apply(int nIndex);
int ApplyAll(void);
int Ok(int nIndex);
private:
int SearchForRegEntry(HKEY hRoot,
TCHAR *szKeyPath,
TCHAR *szValueName);
int SearchForLsaEntry(CLSID appid);
int SearchForSrvEntry(TCHAR *szServiceName);
CArray<CDataPacket, CDataPacket> m_pkts;
};
extern CVirtualRegistry g_virtreg;
#endif //_VIRTREG_H_
|