Copy rpoolmgr.h from trunk
[reactos.git] / reactos / subsys / system / regedit / security.h
1 #ifndef _REGEXP_SECURITY_H
2 #define _REGEXP_SECURITY_H
3
4 /* FIXME - remove the definition */
5 DWORD STDCALL
6 GetSecurityInfo(HANDLE handle,
7 SE_OBJECT_TYPE ObjectType,
8 SECURITY_INFORMATION SecurityInfo,
9 PSID* ppsidOwner,
10 PSID* ppsidGroup,
11 PACL* ppDacl,
12 PACL* ppSacl,
13 PSECURITY_DESCRIPTOR* ppSecurityDescriptor);
14
15 extern BOOL
16 InitializeAclUiDll(VOID);
17
18 extern VOID
19 UnloadAclUiDll(VOID);
20
21 DEFINE_GUID(IID_CRegKeySecurity, 0x965fc360, 0x16ff, 0x11d0, 0x0091, 0xcb,0x00,0xaa,0x00,0xbb,0xb7,0x23);
22
23 /******************************************************************************
24 CRegKeySecurity
25 ******************************************************************************/
26
27 typedef struct CRegKeySecurity *LPREGKEYSECURITY;
28
29 typedef struct ifaceCRegKeySecurityVbtl ifaceCRegKeySecurityVbtl;
30 struct ifaceCRegKeySecurityVbtl
31 {
32 /* IUnknown */
33 HRESULT (STDMETHODCALLTYPE *QueryInterface)(LPREGKEYSECURITY this,
34 REFIID iid,
35 PVOID *pvObject);
36 ULONG (STDMETHODCALLTYPE *AddRef)(LPREGKEYSECURITY this);
37 ULONG (STDMETHODCALLTYPE *Release)(LPREGKEYSECURITY this);
38
39 /* CRegKeySecurity */
40 HRESULT (STDMETHODCALLTYPE *GetObjectInformation)(LPREGKEYSECURITY this,
41 PSI_OBJECT_INFO pObjectInfo);
42 HRESULT (STDMETHODCALLTYPE *GetSecurity)(LPREGKEYSECURITY this,
43 SECURITY_INFORMATION RequestedInformation,
44 PSECURITY_DESCRIPTOR* ppSecurityDescriptor,
45 BOOL fDefault);
46 HRESULT (STDMETHODCALLTYPE *SetSecurity)(LPREGKEYSECURITY this,
47 SECURITY_INFORMATION RequestedInformation,
48 PSECURITY_DESCRIPTOR pSecurityDescriptor);
49 HRESULT (STDMETHODCALLTYPE *GetAccessRights)(LPREGKEYSECURITY this,
50 const GUID* pguidObjectType,
51 DWORD dwFlags,
52 PSI_ACCESS* ppAccess,
53 ULONG* pcAccesses,
54 ULONG* piDefaultAccess);
55 HRESULT (STDMETHODCALLTYPE *MapGeneric)(LPREGKEYSECURITY this,
56 const GUID* pguidObjectType,
57 UCHAR* pAceFlags,
58 ACCESS_MASK* pMask);
59 HRESULT (STDMETHODCALLTYPE *GetInheritTypes)(LPREGKEYSECURITY this,
60 PSI_INHERIT_TYPE* ppInheritTypes,
61 ULONG* pcInheritTypes);
62 HRESULT (STDMETHODCALLTYPE *PropertySheetPageCallback)(LPREGKEYSECURITY this,
63 HWND hwnd,
64 UINT uMsg,
65 SI_PAGE_TYPE uPage);
66 };
67
68 typedef struct CRegKeySecurity
69 {
70 /* IUnknown fields */
71 ifaceCRegKeySecurityVbtl* lpVtbl;
72 DWORD ref;
73 /* CRegKeySecurity fields */
74 HANDLE Handle;
75 SE_OBJECT_TYPE ObjectType;
76 SI_OBJECT_INFO ObjectInfo;
77 BOOL *Btn;
78 } REGKEYSECURITY;
79
80 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnQueryInterface(LPREGKEYSECURITY this,
81 REFIID iid,
82 PVOID *pvObject);
83 ULONG STDMETHODCALLTYPE CRegKeySecurity_fnAddRef(LPREGKEYSECURITY this);
84 ULONG STDMETHODCALLTYPE CRegKeySecurity_fnRelease(LPREGKEYSECURITY this);
85 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetObjectInformation(LPREGKEYSECURITY this,
86 PSI_OBJECT_INFO pObjectInfo);
87 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetSecurity(LPREGKEYSECURITY this,
88 SECURITY_INFORMATION RequestedInformation,
89 PSECURITY_DESCRIPTOR* ppSecurityDescriptor,
90 BOOL fDefault);
91 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnSetSecurity(LPREGKEYSECURITY this,
92 SECURITY_INFORMATION RequestedInformation,
93 PSECURITY_DESCRIPTOR pSecurityDescriptor);
94 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetAccessRights(LPREGKEYSECURITY this,
95 const GUID* pguidObjectType,
96 DWORD dwFlags,
97 PSI_ACCESS* ppAccess,
98 ULONG* pcAccesses,
99 ULONG* piDefaultAccess);
100 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnMapGeneric(LPREGKEYSECURITY this,
101 const GUID* pguidObjectType,
102 UCHAR* pAceFlags,
103 ACCESS_MASK* pMask);
104 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetInheritTypes(LPREGKEYSECURITY this,
105 PSI_INHERIT_TYPE* ppInheritTypes,
106 ULONG* pcInheritTypes);
107 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnPropertySheetPageCallback(LPREGKEYSECURITY this,
108 HWND hwnd,
109 UINT uMsg,
110 SI_PAGE_TYPE uPage);
111
112 #endif /* _REGEXP_SECURITY_H */
113
114 /* EOF */