windows-nt/Source/XPSP1/NT/ds/adsi/oledsvw/cacls.h
2020-09-26 16:20:57 +08:00

133 lines
3.7 KiB
C++

// cacls.h: interface for the CADsAccessControlEntry class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CACLS_H__11DBDB41_BC2B_11D0_B1D8_00C04FD702AD__INCLUDED_)
#define AFX_CACLS_H__11DBDB41_BC2B_11D0_B1D8_00C04FD702AD__INCLUDED_
#if _MSC_VER >= 1000
#if (!defined(BUILD_FOR_NT40))
#pragma once
#endif
#endif // _MSC_VER >= 1000
typedef enum _tagACLTYPE
{
acl_Invalid = 0,
acl_DACL,
acl_SACL,
acl_Limit
} ACLTYPE;
class CADsAccessControlEntry : public COleDsObject
{
public:
CADsAccessControlEntry ( void );
CADsAccessControlEntry ( IUnknown* );
~CADsAccessControlEntry ( void );
public:
void FooFunction(void);
IDispatch* GetACE ( void );
IDispatch* CreateACE ( void );
HRESULT PutProperty ( int,
CString&,
long Code = ADS_PROPERTY_UPDATE );
HRESULT GetProperty ( int,
CString& );
private:
void InitializeMembers( void );
};
class CADsAccessControlList : public COleDsObject
{
public:
CADsAccessControlList ( void );
CADsAccessControlList ( IUnknown* );
~CADsAccessControlList ( void );
public:
IDispatch* GetACL ( void );
IDispatch* CreateACL ( void );
void SetDocument ( CMainDoc* );
int GetACECount ( void );
CADsAccessControlEntry* GetACEObject( int nACE );
HRESULT AddACE ( IUnknown* pNewACE );
HRESULT RemoveACE ( IUnknown* pRemoveACE );
void RemoveAllACE( void );
HRESULT PutProperty ( int,
int,
CString&,
long Code = ADS_PROPERTY_UPDATE );
HRESULT GetProperty ( int,
int,
CString& );
private:
void InitializeMembers ( void );
private:
CObArray m_arrACE;
};
class CADsSecurityDescriptor : public COleDsObject
{
public:
CADsSecurityDescriptor();
CADsSecurityDescriptor( IUnknown* );
virtual ~CADsSecurityDescriptor();
public:
HRESULT PutProperty ( int,
CString&,
long Code = ADS_PROPERTY_UPDATE );
HRESULT GetProperty ( int,
CString& );
HRESULT PutProperty ( ACLTYPE,
int,
int,
CString&,
long Code = ADS_PROPERTY_UPDATE );
HRESULT GetProperty ( ACLTYPE,
int,
int,
CString& );
HRESULT PutACL ( IDispatch* pACL,
ACLTYPE eACL );
IDispatch* GetACL ( ACLTYPE eACL );
CADsAccessControlList* GetACLObject( ACLTYPE eACL );
HRESULT AddACE ( ACLTYPE eACL, IUnknown* pNewACE );
HRESULT RemoveACE ( ACLTYPE eACL, IUnknown* pNewACE );
void RemoveAllACE( ACLTYPE eACL );
int GetACECount ( ACLTYPE eACL );
void SetDocument ( CMainDoc* );
private:
void InitializeMembers ( );
private:
COleDsObject* pACLObj[ acl_Limit ];
};
#endif // !defined(AFX_CACLS_H__11DBDB41_BC2B_11D0_B1D8_00C04FD702AD__INCLUDED_)