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.
 
 
 
 
 
 

65 lines
1.7 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2000 - 2001.
//
// File: enumaz.h
//
// Contents:
//
// History: 08-13-2001 Hiteshr Created
//
//----------------------------------------------------------------------------
//
//Forward Declaration
//
class CApplicationAz;
class CGroupAz;
class COperationAz;
class CTaskAz;
class CScopeAz;
class CRoleAz;
class CBaseAz;
class CContainerAz;
class CBaseAzCollection
{
public:
virtual ~CBaseAzCollection(){}
virtual HRESULT Count(LONG* plCount) = 0;
virtual CBaseAz* GetItem(UINT iIndex) = 0;
};
template<class IAzCollection, class IAzInterface, class CObjectAz>
class CAzCollection:public CBaseAzCollection
{
public:
CAzCollection(CComPtr<IAzCollection>& spAzCollection,
CContainerAz* pParentContainerAz);
virtual ~CAzCollection();
HRESULT Count(LONG* plCount);
CBaseAz* GetItem(UINT iIndex);
CBaseAz* GetParentAzObject(){return m_pParentBaseAz;}
private:
CComPtr<IAzCollection> m_spAzCollection;
//
//This is the parent of all the AzObjects returned by
//Next method.
//
CContainerAz* m_pParentContainerAz;
};
#include"enumaz.cpp"
typedef CAzCollection<IAzApplications,IAzApplication,CApplicationAz> APPLICATION_COLLECTION;
typedef CAzCollection<IAzApplicationGroups,IAzApplicationGroup,CGroupAz> GROUP_COLLECTION;
typedef CAzCollection<IAzOperations,IAzOperation,COperationAz> OPERATION_COLLECTION;
typedef CAzCollection<IAzTasks,IAzTask,CTaskAz> TASK_COLLECTION;
typedef CAzCollection<IAzScopes,IAzScope,CScopeAz> SCOPE_COLLECTION;
typedef CAzCollection<IAzRoles,IAzRole,CRoleAz> ROLE_COLLECTION;