898ad899a1818ba1bbb175aa5a36c8b64ca98639
[reactos.git] / rosapps / sysutils / regexpl / SecurityDescriptor.h
1 // SecurityDescriptor.h: interface for the CSecurityDescriptor class.
2 //
3 //////////////////////////////////////////////////////////////////////
4
5 #if !defined(SECURITYDESCRIPTOR_H__71D0A7E6_8A00_11D3_9103_204C4F4F5020__INCLUDED_)
6 #define SECURITYDESCRIPTOR_H__71D0A7E6_8A00_11D3_9103_204C4F4F5020__INCLUDED_
7
8 BOOL GetTextualSid(
9 PSID pSid, // binary Sid
10 LPTSTR TextualSid, // buffer for Textual representation of Sid
11 LPDWORD lpdwBufferLen // required/provided TextualSid buffersize
12 );
13
14 const TCHAR * GetSidTypeName(SID_NAME_USE Use);
15
16 class CSecurityDescriptor
17 {
18 public:
19 void GetCurrentACE_AccessMask(DWORD& dwMask);
20 PSID GetCurrentACE_SID();
21 enum ACEntryType
22 {
23 Unknown,
24 AccessAlowed,
25 AccessDenied,
26 SystemAudit
27 };
28 ACEntryType GetDACLEntry(DWORD nIndex);
29 ACEntryType GetSACLEntry(DWORD nIndex, BOOL& blnFailedAccess, BOOL& blnSeccessfulAccess);
30 DWORD GetDACLEntriesCount();
31 DWORD GetSACLEntriesCount();
32 BOOL HasValidDACL();
33 BOOL HasNULLDACL();
34 BOOL HasValidSACL();
35 BOOL HasNULLSACL();
36 BOOL DescriptorContainsDACL();
37 BOOL DescriptorContainsSACL();
38 DWORD BeginDACLInteration();
39 DWORD BeginSACLInteration();
40 void AssociateDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor);
41 CSecurityDescriptor();
42 virtual ~CSecurityDescriptor();
43 private:
44 PSECURITY_DESCRIPTOR m_pSecurityDescriptor;
45 BOOL m_blnDACLPresent;
46 BOOL m_blnDACLDefaulted;
47 PACL m_pDACL;
48 BOOL m_blnSACLPresent;
49 BOOL m_blnSACLDefaulted;
50 PACL m_pSACL;
51 ACE_HEADER *m_pCurrentACEHeader;
52 };
53
54 #endif // !defined(SECURITYDESCRIPTOR_H__71D0A7E6_8A00_11D3_9103_204C4F4F5020__INCLUDED_)