4 InitializeAclUiDll(VOID
);
9 #define REGEDIT_IMPLEMENT_ISECURITYINFORMATION2 0
11 /******************************************************************************
13 ******************************************************************************/
15 typedef struct ISecurityInformation
*LPSECURITYINFORMATION
;
17 typedef struct ifaceISecuritInformationVbtl ifaceISecurityInformationVbtl
;
18 struct ifaceISecurityInformationVbtl
21 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(struct ISecurityInformation
*this,
24 ULONG (STDMETHODCALLTYPE
*AddRef
)(struct ISecurityInformation
*this);
25 ULONG (STDMETHODCALLTYPE
*Release
)(struct ISecurityInformation
*this);
27 /* ISecurityInformation */
28 HRESULT (STDMETHODCALLTYPE
*GetObjectInformation
)(struct ISecurityInformation
*this,
29 PSI_OBJECT_INFO pObjectInfo
);
30 HRESULT (STDMETHODCALLTYPE
*GetSecurity
)(struct ISecurityInformation
*this,
31 SECURITY_INFORMATION RequestedInformation
,
32 PSECURITY_DESCRIPTOR
* ppSecurityDescriptor
,
34 HRESULT (STDMETHODCALLTYPE
*SetSecurity
)(struct ISecurityInformation
*this,
35 SECURITY_INFORMATION RequestedInformation
,
36 PSECURITY_DESCRIPTOR pSecurityDescriptor
);
37 HRESULT (STDMETHODCALLTYPE
*GetAccessRights
)(struct ISecurityInformation
*this,
38 const GUID
* pguidObjectType
,
42 ULONG
* piDefaultAccess
);
43 HRESULT (STDMETHODCALLTYPE
*MapGeneric
)(struct ISecurityInformation
*this,
44 const GUID
* pguidObjectType
,
47 HRESULT (STDMETHODCALLTYPE
*GetInheritTypes
)(struct ISecurityInformation
*this,
48 PSI_INHERIT_TYPE
* ppInheritTypes
,
49 ULONG
* pcInheritTypes
);
50 HRESULT (STDMETHODCALLTYPE
*PropertySheetPageCallback
)(struct ISecurityInformation
*this,
56 #if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2
57 /******************************************************************************
59 ******************************************************************************/
61 typedef struct ISecurityInformation2
*LPSECURITYINFORMATION2
;
63 typedef struct ifaceISecurityInformation2Vbtl ifaceISecurityInformation2Vbtl
;
64 struct ifaceISecurityInformation2Vbtl
67 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(struct ISecurityInformation2
*this,
70 ULONG (STDMETHODCALLTYPE
*AddRef
)(struct ISecurityInformation2
*this);
71 ULONG (STDMETHODCALLTYPE
*Release
)(struct ISecurityInformation2
*this);
73 /* ISecurityInformation2 */
74 BOOL (STDMETHODCALLTYPE
*IsDaclCanonical
)(struct ISecurityInformation2
*this,
76 HRESULT (STDMETHODCALLTYPE
*LookupSids
)(struct ISecurityInformation2
*this,
83 /******************************************************************************
85 ******************************************************************************/
87 typedef struct IEffectivePermission
*LPEFFECTIVEPERMISSION
;
89 typedef struct ifaceIEffectivePermissionVbtl ifaceIEffectivePermissionVbtl
;
90 struct ifaceIEffectivePermissionVbtl
93 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(struct IEffectivePermission
*this,
96 ULONG (STDMETHODCALLTYPE
*AddRef
)(struct IEffectivePermission
*this);
97 ULONG (STDMETHODCALLTYPE
*Release
)(struct IEffectivePermission
*this);
99 /* IEffectivePermission */
100 HRESULT (STDMETHODCALLTYPE
*GetEffectivePermission
)(struct IEffectivePermission
*this,
101 const GUID
* pguidObjectType
,
103 LPCWSTR pszServerName
,
104 PSECURITY_DESCRIPTOR pSD
,
105 POBJECT_TYPE_LIST
* ppObjectTypeList
,
106 ULONG
* pcObjectTypeListLength
,
107 PACCESS_MASK
* ppGrantedAccessList
,
108 ULONG
* pcGrantedAccessListLength
);
111 /******************************************************************************
112 ISecurityObjectTypeInfo
113 ******************************************************************************/
115 typedef struct ISecurityObjectTypeInfo
*LPSECURITYOBJECTTYPEINFO
;
117 typedef struct ifaceISecurityObjectTypeInfoVbtl ifaceISecurityObjectTypeInfoVbtl
;
118 struct ifaceISecurityObjectTypeInfoVbtl
121 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(struct ISecurityObjectTypeInfo
*this,
124 ULONG (STDMETHODCALLTYPE
*AddRef
)(struct ISecurityObjectTypeInfo
*this);
125 ULONG (STDMETHODCALLTYPE
*Release
)(struct ISecurityObjectTypeInfo
*this);
127 /* ISecurityObjectTypeInfo */
128 HRESULT (STDMETHODCALLTYPE
*GetInheritSource
)(struct ISecurityObjectTypeInfo
*this,
129 SECURITY_INFORMATION si
,
131 PINHERITED_FROM
* ppInheritArray
);
134 /******************************************************************************
136 ******************************************************************************/
138 typedef struct _CRegKeySecurity
140 /* IUnknown fields and interfaces */
141 const struct ifaceISecurityInformationVbtl
*lpISecurityInformationVtbl
;
142 #if REGEDIT_IMPLEMENT_ISECURITYINFORMATION2
143 const struct ifaceISecurityInformation2Vbtl
*lpISecurityInformation2Vtbl
;
145 const struct ifaceIEffectivePermissionVbtl
*lpIEffectivePermissionVtbl
;
146 const struct ifaceISecurityObjectTypeInfoVbtl
*lpISecurityObjectTypeInfoVtbl
;
149 /* CRegKeySecurity fields */
150 SI_OBJECT_INFO ObjectInfo
;
154 } CRegKeySecurity
, *PCRegKeySecurity
;