101 lines
2.6 KiB
C
101 lines
2.6 KiB
C
#ifndef _PH_SECEDITP_H
|
|
#define _PH_SECEDITP_H
|
|
|
|
#include <aclui.h>
|
|
#include <aclapi.h>
|
|
|
|
typedef struct
|
|
{
|
|
ISecurityInformationVtbl *VTable;
|
|
|
|
ULONG RefCount;
|
|
|
|
PPH_STRING ObjectName;
|
|
PPH_GET_OBJECT_SECURITY GetObjectSecurity;
|
|
PPH_SET_OBJECT_SECURITY SetObjectSecurity;
|
|
PVOID Context;
|
|
PSI_ACCESS AccessEntries;
|
|
ULONG NumberOfAccessEntries;
|
|
} PhSecurityInformation;
|
|
|
|
ISecurityInformation *PhSecurityInformation_Create(
|
|
_In_ PWSTR ObjectName,
|
|
_In_ PPH_GET_OBJECT_SECURITY GetObjectSecurity,
|
|
_In_ PPH_SET_OBJECT_SECURITY SetObjectSecurity,
|
|
_In_opt_ PVOID Context,
|
|
_In_ PPH_ACCESS_ENTRY AccessEntries,
|
|
_In_ ULONG NumberOfAccessEntries
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE PhSecurityInformation_QueryInterface(
|
|
_In_ ISecurityInformation *This,
|
|
_In_ REFIID Riid,
|
|
_Out_ PVOID *Object
|
|
);
|
|
|
|
ULONG STDMETHODCALLTYPE PhSecurityInformation_AddRef(
|
|
_In_ ISecurityInformation *This
|
|
);
|
|
|
|
ULONG STDMETHODCALLTYPE PhSecurityInformation_Release(
|
|
_In_ ISecurityInformation *This
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE PhSecurityInformation_GetObjectInformation(
|
|
_In_ ISecurityInformation *This,
|
|
_Out_ PSI_OBJECT_INFO ObjectInfo
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE PhSecurityInformation_GetSecurity(
|
|
_In_ ISecurityInformation *This,
|
|
_In_ SECURITY_INFORMATION RequestedInformation,
|
|
_Out_ PSECURITY_DESCRIPTOR *SecurityDescriptor,
|
|
_In_ BOOL Default
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE PhSecurityInformation_SetSecurity(
|
|
_In_ ISecurityInformation *This,
|
|
_In_ SECURITY_INFORMATION SecurityInformation,
|
|
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE PhSecurityInformation_GetAccessRights(
|
|
_In_ ISecurityInformation *This,
|
|
_In_ const GUID *ObjectType,
|
|
_In_ ULONG Flags,
|
|
_Out_ PSI_ACCESS *Access,
|
|
_Out_ PULONG Accesses,
|
|
_Out_ PULONG DefaultAccess
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE PhSecurityInformation_MapGeneric(
|
|
_In_ ISecurityInformation *This,
|
|
_In_ const GUID *ObjectType,
|
|
_In_ PUCHAR AceFlags,
|
|
_Inout_ PACCESS_MASK Mask
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE PhSecurityInformation_GetInheritTypes(
|
|
_In_ ISecurityInformation *This,
|
|
_Out_ PSI_INHERIT_TYPE *InheritTypes,
|
|
_Out_ PULONG InheritTypesCount
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE PhSecurityInformation_PropertySheetPageCallback(
|
|
_In_ ISecurityInformation *This,
|
|
_In_ HWND hwnd,
|
|
_In_ UINT uMsg,
|
|
_In_ SI_PAGE_TYPE uPage
|
|
);
|
|
|
|
typedef HPROPSHEETPAGE (WINAPI *_CreateSecurityPage)(
|
|
_In_ LPSECURITYINFO psi
|
|
);
|
|
|
|
typedef BOOL (WINAPI *_EditSecurity)(
|
|
_In_ HWND hwndOwner,
|
|
_In_ LPSECURITYINFO psi
|
|
);
|
|
|
|
#endif
|