-
Notifications
You must be signed in to change notification settings - Fork 7
/
ClassSecInfoTS.h
55 lines (47 loc) · 1.56 KB
/
ClassSecInfoTS.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <aclui.h>
class CSecInfoTS : public ISecurityInformation, ISecurityInformation4
{
private:
ULONG m_cRef;
LPTSTR m_szListenerName;
PSECURITY_DESCRIPTOR pRelativeSD;
DWORD dwRelativeSDSize;
PSECURITY_DESCRIPTOR pAbsoluteSD;
PSID pOwner;
PSID pPrimaryGroup;
PACL pDacl;
PACL pSacl;
BOOL UpdateAbsoluteSd();
VOID DisplaySDDL(_In_ PSECURITY_DESCRIPTOR pSecurityDescriptor);
public:
CSecInfoTS(_In_z_ LPTSTR szListenerName);
virtual ~CSecInfoTS();
//
// IUnknown methods
//
STDMETHOD(QueryInterface)(REFIID, void**);
STDMETHOD_(ULONG, AddRef)();
STDMETHOD_(ULONG, Release)();
//
// ISecurityInformation methods
//
STDMETHOD(GetObjectInformation)(PSI_OBJECT_INFO pObjectInfo);
STDMETHOD(GetSecurity)(
SECURITY_INFORMATION RequestedInformation,
PSECURITY_DESCRIPTOR *ppSecurityDescriptor,
BOOL fDefault
);
STDMETHOD(SetSecurity)(SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor);
STDMETHOD(GetAccessRights)(
const GUID* pguidObjectType,
DWORD dwFlags,
PSI_ACCESS *ppAccess,
ULONG *pcAccesses,
ULONG *piDefaultAccess
);
STDMETHOD(MapGeneric)(const GUID *pguidObjectType, UCHAR *pAceFlags, ACCESS_MASK *pMask);
STDMETHOD(GetInheritTypes)(PSI_INHERIT_TYPE *ppInheritTypes, ULONG *pcInheritTypes);
STDMETHOD(PropertySheetPageCallback)(HWND hwnd, UINT uMsg, SI_PAGE_TYPE uPage);
// ISecurityInformation4 methods
STDMETHOD(GetSecondarySecurity)(PSECURITY_OBJECT *pSecurityObjects, PULONG pSecurityObjectCount);
};