- Get autochk, calc, cmd, devmgr, expand, format, gettype, hostname, lsass, msconfig...
[reactos.git] / reactos / subsys / system / regedit / security.h
1 #ifndef _REGEXP_SECURITY_H
2 #define _REGEXP_SECURITY_H
3
4 BOOL
5 InitializeAclUiDll(VOID);
6
7 VOID
8 UnloadAclUiDll(VOID);
9
10 /******************************************************************************
11 CRegKeySecurity
12 ******************************************************************************/
13
14 typedef struct CRegKeySecurity *LPREGKEYSECURITY;
15
16 typedef struct ifaceCRegKeySecurityVbtl ifaceCRegKeySecurityVbtl;
17 struct ifaceCRegKeySecurityVbtl
18 {
19 /* IUnknown */
20 HRESULT (STDMETHODCALLTYPE *QueryInterface)(LPREGKEYSECURITY this,
21 REFIID iid,
22 PVOID *pvObject);
23 ULONG (STDMETHODCALLTYPE *AddRef)(LPREGKEYSECURITY this);
24 ULONG (STDMETHODCALLTYPE *Release)(LPREGKEYSECURITY this);
25
26 /* CRegKeySecurity */
27 HRESULT (STDMETHODCALLTYPE *GetObjectInformation)(LPREGKEYSECURITY this,
28 PSI_OBJECT_INFO pObjectInfo);
29 HRESULT (STDMETHODCALLTYPE *GetSecurity)(LPREGKEYSECURITY this,
30 SECURITY_INFORMATION RequestedInformation,
31 PSECURITY_DESCRIPTOR* ppSecurityDescriptor,
32 BOOL fDefault);
33 HRESULT (STDMETHODCALLTYPE *SetSecurity)(LPREGKEYSECURITY this,
34 SECURITY_INFORMATION RequestedInformation,
35 PSECURITY_DESCRIPTOR pSecurityDescriptor);
36 HRESULT (STDMETHODCALLTYPE *GetAccessRights)(LPREGKEYSECURITY this,
37 const GUID* pguidObjectType,
38 DWORD dwFlags,
39 PSI_ACCESS* ppAccess,
40 ULONG* pcAccesses,
41 ULONG* piDefaultAccess);
42 HRESULT (STDMETHODCALLTYPE *MapGeneric)(LPREGKEYSECURITY this,
43 const GUID* pguidObjectType,
44 UCHAR* pAceFlags,
45 ACCESS_MASK* pMask);
46 HRESULT (STDMETHODCALLTYPE *GetInheritTypes)(LPREGKEYSECURITY this,
47 PSI_INHERIT_TYPE* ppInheritTypes,
48 ULONG* pcInheritTypes);
49 HRESULT (STDMETHODCALLTYPE *PropertySheetPageCallback)(LPREGKEYSECURITY this,
50 HWND hwnd,
51 UINT uMsg,
52 SI_PAGE_TYPE uPage);
53 };
54
55 typedef struct CRegKeySecurity
56 {
57 /* IUnknown fields */
58 ifaceCRegKeySecurityVbtl* lpVtbl;
59 DWORD ref;
60 /* CRegKeySecurity fields */
61 HANDLE Handle;
62 SI_OBJECT_INFO ObjectInfo;
63 BOOL *Btn;
64 } REGKEYSECURITY;
65
66 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnQueryInterface(LPREGKEYSECURITY this,
67 REFIID iid,
68 PVOID *pvObject);
69 ULONG STDMETHODCALLTYPE CRegKeySecurity_fnAddRef(LPREGKEYSECURITY this);
70 ULONG STDMETHODCALLTYPE CRegKeySecurity_fnRelease(LPREGKEYSECURITY this);
71 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetObjectInformation(LPREGKEYSECURITY this,
72 PSI_OBJECT_INFO pObjectInfo);
73 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetSecurity(LPREGKEYSECURITY this,
74 SECURITY_INFORMATION RequestedInformation,
75 PSECURITY_DESCRIPTOR* ppSecurityDescriptor,
76 BOOL fDefault);
77 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnSetSecurity(LPREGKEYSECURITY this,
78 SECURITY_INFORMATION RequestedInformation,
79 PSECURITY_DESCRIPTOR pSecurityDescriptor);
80 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetAccessRights(LPREGKEYSECURITY this,
81 const GUID* pguidObjectType,
82 DWORD dwFlags,
83 PSI_ACCESS* ppAccess,
84 ULONG* pcAccesses,
85 ULONG* piDefaultAccess);
86 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnMapGeneric(LPREGKEYSECURITY this,
87 const GUID* pguidObjectType,
88 UCHAR* pAceFlags,
89 ACCESS_MASK* pMask);
90 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetInheritTypes(LPREGKEYSECURITY this,
91 PSI_INHERIT_TYPE* ppInheritTypes,
92 ULONG* pcInheritTypes);
93 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnPropertySheetPageCallback(LPREGKEYSECURITY this,
94 HWND hwnd,
95 UINT uMsg,
96 SI_PAGE_TYPE uPage);
97
98 #endif /* _REGEXP_SECURITY_H */
99
100 /* EOF */