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