mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
3.7 KiB
132 lines
3.7 KiB
// 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_)
|