133 lines
3.7 KiB
C
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_)
|