4 * Access Control List Editor definitions
6 * THIS SOFTWARE IS NOT COPYRIGHTED
8 * This source code is offered for use in the public domain. You may
9 * use, modify or distribute it freely.
11 * This code is distributed in the hope that it will be useful but
12 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
13 * DISCLAIMED. This includes but is not limited to warranties of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 #pragma GCC system_header
32 DEFINE_GUID(IID_ISecurityInformation
, 0x965fc360, 0x16ff, 0x11d0, 0x0091, 0xcb,0x00,0xaa,0x00,0xbb,0xb7,0x23);
33 DEFINE_GUID(IID_ISecurityInformation2
, 0xc3ccfdb4, 0x6f88, 0x11d2, 0x00a3, 0xce,0x00,0xc0,0x4f,0xb1,0x78,0x2a);
34 DEFINE_GUID(IID_IEffectivePermission
, 0x3853dc76, 0x9f35, 0x407c, 0x0088, 0xa1,0xd1,0x93,0x44,0x36,0x5f,0xbc);
35 DEFINE_GUID(IID_ISecurityObjectTypeInfo
, 0xfc3066eb, 0x79ef, 0x444b, 0x0091, 0x11,0xd1,0x8a,0x75,0xeb,0xf2,0xfa);
37 typedef interface ISecurityInformation
*LPSECURITYINFO
;
38 typedef interface ISecurityInformation2
*LPSECURITYINFO2
;
39 typedef interface IEffectivePermission
*LPEFFECTIVEPERMISSION
;
40 typedef interface ISecurityObjectTypeInfo
*LPSecurityObjectTypeInfo
;
43 EXTERN_C
const IID IID_ISecurityInformation
;
44 #define INTERFACE ISecurityInformation
45 DECLARE_INTERFACE_(ISecurityInformation
,IUnknown
)
48 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
49 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
50 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
52 /* ISecurityInformation */
53 STDMETHOD(GetObjectInformation
)(THIS_ PSI_OBJECT_INFO
) PURE
;
54 STDMETHOD(GetSecurity
)(THIS_ SECURITY_INFORMATION
,PSECURITY_DESCRIPTOR
*,BOOL
) PURE
;
55 STDMETHOD(SetSecurity
)(THIS_ SECURITY_INFORMATION
,PSECURITY_DESCRIPTOR
) PURE
;
56 STDMETHOD(GetAccessRights
)(THIS_ GUID
*,DWORD
,PSI_ACCESS
*,ULONG
*,ULONG
*) PURE
;
57 STDMETHOD(MapGeneric
)(THIS_ GUID
*,UCHAR
*,PSI_ACCESS
*) PURE
;
58 STDMETHOD(GetInheritTypes
)(THIS_ PSI_INHERIT_TYPE
*,ULONG
*) PURE
;
59 STDMETHOD(PropertySheetPageCallback
)(THIS_ HWND
,UINT
,SI_PAGE_TYPE
) PURE
;
64 #define INTERFACE ISecurityInformation2
65 DECLARE_INTERFACE_(ISecurityInformation2
,IUnknown
)
68 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
69 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
70 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
72 /* ISecurityInformation2 */
73 STDMETHOD(IsDaclCanonical
)(THIS_ PACL
) PURE
;
74 STDMETHOD(LookupSids
)(THIS_ ULONG
,PSID
*,LPDATAOBJECT
*) PURE
;
79 #define INTERFACE IEffectivePermission
80 DECLARE_INTERFACE_(IEffectivePermission
,IUnknown
)
83 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
84 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
85 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
87 /* IEffectivePermission */
88 STDMETHOD(GetEffectivePermission
)(THIS_ GUID
*,PSID
,LPCWSTR
,PSECURITY_DESCRIPTOR
,POBJECT_TYPE_LIST
*,ULONG
*,PACCESS_MASK
*,ULONG
*) PURE
;
93 #define INTERFACE ISecurityObjectTypeInfo
94 DECLARE_INTERFACE_(ISecurityObjectTypeInfo
,IUnknown
)
97 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
98 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
99 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
101 /* ISecurityObjectTypeInfo */
102 STDMETHOD(GetInheritSource
)(THIS_ SECURITY_INFORMATION
,PACL
,PINHERITED_FROM
*) PURE
;
106 HPROPSHEETPAGE WINAPI
107 CreateSecurityPage(LPSECURITYINFO psi
);
110 EditSecurity(HWND hwndOwner
, LPSECURITYINFO psi
);
115 #endif /* __ACLUI_H */