|
|
// 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_)
|