summaryrefslogtreecommitdiffstats
path: root/private/ole32/oleui/virtreg.h
blob: afde07262c122c9eb319d45ea3db64c6b29360c4 (plain) (blame)
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_