Leaked source code of windows server 2003
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.
|
|
typedef struct _AccessControlEntry { IADsAccessControlEntry FAR * pAccessControlEntry; struct _AccessControlEntry * pNext; } ACCESS_CONTROL_ENTRY, *PACCESS_CONTROL_ENTRY;
struct _ACLEnumEntry; // ACL_ENUM_ENTRY;
class CAccessControlList;
class CAccessControlList : INHERIT_TRACKING, public ISupportErrorInfo, public IADsAccessControlList
{ friend class CAccCtrlListEnum;
public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
DECLARE_STD_REFCOUNTING
DECLARE_IDispatch_METHODS
DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADsAccessControlList_METHODS
CAccessControlList::CAccessControlList();
CAccessControlList::~CAccessControlList();
static HRESULT CAccessControlList::CreateAccessControlList( REFIID riid, void **ppvObj );
static HRESULT CAccessControlList::AllocateAccessControlListObject( CAccessControlList ** ppAccessControlList ); HRESULT CAccessControlList::GetElement( DWORD dwPos, IADsAccessControlEntry ** pAce ); STDMETHOD(Next)( ULONG cElements, VARIANT FAR* pvar, ULONG FAR* pcElementFetched );
private:
HRESULT CAccessControlList::AddEnumerator( CAccCtrlListEnum *pACLEnum );
HRESULT CAccessControlList::RemoveEnumerator( CAccCtrlListEnum *pACLEnum );
void CAccessControlList::AdjustCurPtrOfEnumerators( DWORD dwPosNewOrDeletedACE, BOOL fAddACE );
protected:
CDispatchMgr FAR * _pDispMgr;
DWORD _dwAclRevision;
DWORD _dwAceCount;
PACCESS_CONTROL_ENTRY _pAccessControlEntry;
PACCESS_CONTROL_ENTRY _pCurrentEntry;
struct _ACLEnumEntry * _pACLEnums; // PACL_ENUM_ENTRY
};
HRESULT CopyAccessControlEntry( IADsAccessControlEntry * pSourceAce, IADsAccessControlEntry ** ppTargetAce );
BOOL EquivalentAces( IADsAccessControlEntry * pSourceAce, IADsAccessControlEntry * pDestAce );
|