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.
 
 
 
 
 
 

159 lines
4.1 KiB

/******************************************************************************
Class: CBaseLeafNode
Purpose: BaseNode class for all the non container object.
******************************************************************************/
class CBaseLeafNode : public CLeafNode, public CBaseNode
{
public:
CBaseLeafNode(CRoleComponentDataObject * pComponentDataObject,
CAdminManagerNode* pAdminManagerNode,
CBaseAz* pBaseAz);
virtual ~CBaseLeafNode();
DECLARE_NODE_GUID()
protected:
virtual HRESULT
AddOnePageToList(IN CRolePropertyPageHolder* /*pHolder*/,
IN UINT /*nPageNumber*/)
{
return HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS);
}
private:
public:
//
//Baseclass OverRides
//
virtual BOOL
OnSetDeleteVerbState(DATA_OBJECT_TYPES type,
BOOL* pbHide,
CNodeList* pNodeList);
virtual void
OnDelete(CComponentDataObject* pComponentData,
CNodeList* pNodeList);
virtual LPCWSTR
GetString(int nCol);
virtual int
GetImageIndex(BOOL bOpenImage);
virtual BOOL
HasPropertyPages(DATA_OBJECT_TYPES type,
BOOL* pbHideVerb,
CNodeList* pNodeList);
virtual HRESULT
CreatePropertyPages(LPPROPERTYSHEETCALLBACK,
LONG_PTR,
CNodeList*);
void
OnPropertyChange(CComponentDataObject* pComponentData,
BOOL,
long changeMask);
virtual BOOL
CanCloseSheets();
};
/******************************************************************************
Class: CGroupNode
Purpose: Snapin Node for Application Group Object
******************************************************************************/
class CGroupNode : public CBaseLeafNode
{
public:
CGroupNode(CRoleComponentDataObject * pComponentDataObject,
CAdminManagerNode* pAdminManagerNode,
CBaseAz* pBaseAz,
CRoleAz* pRoleAz = NULL);
virtual
~CGroupNode();
virtual HRESULT AddOnePageToList(CRolePropertyPageHolder *pHolder,
UINT nPageNumber);
virtual void
OnDelete(CComponentDataObject* pComponentData,
CNodeList* pNodeList);
virtual HRESULT
DeleteAssociatedBaseAzObject();
private:
CRoleAz* m_pRoleAz;
};
/******************************************************************************
Class: CTaskNode
Purpose: Snapin Node for Task Object
******************************************************************************/
class CTaskNode : public CBaseLeafNode
{
public:
CTaskNode(CRoleComponentDataObject * pComponentDataObject,
CAdminManagerNode* pAdminManagerNode,
CBaseAz* pBaseAz);
~CTaskNode();
virtual HRESULT AddOnePageToList(CRolePropertyPageHolder *pHolder,
UINT nPageNumber);
};
/******************************************************************************
Class: COperationNode
Purpose: Snapin Node for Operation Object
******************************************************************************/
class COperationNode : public CBaseLeafNode
{
public:
COperationNode(CRoleComponentDataObject * pComponentDataObject,
CAdminManagerNode* pAdminManagerNode,
CBaseAz* pBaseAz);
~COperationNode();
virtual HRESULT
AddOnePageToList(CRolePropertyPageHolder *pHolder,
UINT nPageNumber);
};
/******************************************************************************
Class: CSidCacheNode
Purpose: Snapin Node for Windows Users/Groups which are represented by SID
******************************************************************************/
class CSidCacheNode : public CBaseLeafNode
{
public:
CSidCacheNode(CRoleComponentDataObject * pComponentDataObject,
CAdminManagerNode* pAdminManagerNode,
CBaseAz* pBaseAz,
CRoleAz* pRoleAz);
~CSidCacheNode();
virtual void
OnDelete(CComponentDataObject* pComponentData,
CNodeList* pNodeList);
virtual HRESULT
DeleteAssociatedBaseAzObject();
BOOL
OnSetDeleteVerbState(DATA_OBJECT_TYPES ,
BOOL* pbHide,
CNodeList* pNodeList);
BOOL
HasPropertyPages(DATA_OBJECT_TYPES type,
BOOL* pbHideVerb,
CNodeList* pNodeList);
private:
CRoleAz* m_pRoleAz;
};