remove whitespace from end of lines
[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 DEFINE_GUID(IID_CRegKeySecurity, 0x965fc360, 0x16ff, 0x11d0, 0x0091, 0xcb,0x00,0xaa,0x00,0xbb,0xb7,0x23);
16
17 /******************************************************************************
18 CRegKeySecurity
19 ******************************************************************************/
20
21 typedef struct CRegKeySecurity *LPREGKEYSECURITY;
22
23 typedef struct ifaceCRegKeySecurityVbtl ifaceCRegKeySecurityVbtl;
24 struct ifaceCRegKeySecurityVbtl
25 {
26 /* IUnknown */
27 HRESULT (STDMETHODCALLTYPE *QueryInterface)(LPREGKEYSECURITY this,
28 REFIID iid,
29 PVOID *pvObject);
30 ULONG (STDMETHODCALLTYPE *AddRef)(LPREGKEYSECURITY this);
31 ULONG (STDMETHODCALLTYPE *Release)(LPREGKEYSECURITY this);
32
33 /* CRegKeySecurity */
34 HRESULT (STDMETHODCALLTYPE *GetObjectInformation)(LPREGKEYSECURITY this,
35 PSI_OBJECT_INFO pObjectInfo);
36 HRESULT (STDMETHODCALLTYPE *GetSecurity)(LPREGKEYSECURITY this,
37 SECURITY_INFORMATION RequestedInformation,
38 PSECURITY_DESCRIPTOR* ppSecurityDescriptor,
39 BOOL fDefault);
40 HRESULT (STDMETHODCALLTYPE *SetSecurity)(LPREGKEYSECURITY this,
41 SECURITY_INFORMATION RequestedInformation,
42 PSECURITY_DESCRIPTOR pSecurityDescriptor);
43 HRESULT (STDMETHODCALLTYPE *GetAccessRights)(LPREGKEYSECURITY this,
44 const GUID* pguidObjectType,
45 DWORD dwFlags,
46 PSI_ACCESS* ppAccess,
47 ULONG* pcAccesses,
48 ULONG* piDefaultAccess);
49 HRESULT (STDMETHODCALLTYPE *MapGeneric)(LPREGKEYSECURITY this,
50 const GUID* pguidObjectType,
51 UCHAR* pAceFlags,
52 ACCESS_MASK* pMask);
53 HRESULT (STDMETHODCALLTYPE *GetInheritTypes)(LPREGKEYSECURITY this,
54 PSI_INHERIT_TYPE* ppInheritTypes,
55 ULONG* pcInheritTypes);
56 HRESULT (STDMETHODCALLTYPE *PropertySheetPageCallback)(LPREGKEYSECURITY this,
57 HWND hwnd,
58 UINT uMsg,
59 SI_PAGE_TYPE uPage);
60 };
61
62 typedef struct CRegKeySecurity
63 {
64 /* IUnknown fields */
65 ifaceCRegKeySecurityVbtl* lpVtbl;
66 DWORD ref;
67 /* CRegKeySecurity fields */
68 HANDLE Handle;
69 SE_OBJECT_TYPE ObjectType;
70 SI_OBJECT_INFO ObjectInfo;
71 BOOL *Btn;
72 } REGKEYSECURITY;
73
74 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnQueryInterface(LPREGKEYSECURITY this,
75 REFIID iid,
76 PVOID *pvObject);
77 ULONG STDMETHODCALLTYPE CRegKeySecurity_fnAddRef(LPREGKEYSECURITY this);
78 ULONG STDMETHODCALLTYPE CRegKeySecurity_fnRelease(LPREGKEYSECURITY this);
79 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetObjectInformation(LPREGKEYSECURITY this,
80 PSI_OBJECT_INFO pObjectInfo);
81 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetSecurity(LPREGKEYSECURITY this,
82 SECURITY_INFORMATION RequestedInformation,
83 PSECURITY_DESCRIPTOR* ppSecurityDescriptor,
84 BOOL fDefault);
85 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnSetSecurity(LPREGKEYSECURITY this,
86 SECURITY_INFORMATION RequestedInformation,
87 PSECURITY_DESCRIPTOR pSecurityDescriptor);
88 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetAccessRights(LPREGKEYSECURITY this,
89 const GUID* pguidObjectType,
90 DWORD dwFlags,
91 PSI_ACCESS* ppAccess,
92 ULONG* pcAccesses,
93 ULONG* piDefaultAccess);
94 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnMapGeneric(LPREGKEYSECURITY this,
95 const GUID* pguidObjectType,
96 UCHAR* pAceFlags,
97 ACCESS_MASK* pMask);
98 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnGetInheritTypes(LPREGKEYSECURITY this,
99 PSI_INHERIT_TYPE* ppInheritTypes,
100 ULONG* pcInheritTypes);
101 HRESULT STDMETHODCALLTYPE CRegKeySecurity_fnPropertySheetPageCallback(LPREGKEYSECURITY this,
102 HWND hwnd,
103 UINT uMsg,
104 SI_PAGE_TYPE uPage);
105
106 static ifaceCRegKeySecurityVbtl efvt =
107 {
108 /* IUnknown methods */
109 CRegKeySecurity_fnQueryInterface,
110 CRegKeySecurity_fnAddRef,
111 CRegKeySecurity_fnRelease,
112
113 /* CRegKeySecurity methods */
114 CRegKeySecurity_fnGetObjectInformation,
115 CRegKeySecurity_fnGetSecurity,
116 CRegKeySecurity_fnSetSecurity,
117 CRegKeySecurity_fnGetAccessRights,
118 CRegKeySecurity_fnMapGeneric,
119 CRegKeySecurity_fnGetInheritTypes,
120 CRegKeySecurity_fnPropertySheetPageCallback
121 };
122
123 #endif /* _REGEXP_SECURITY_H */
124
125 /* EOF */