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

  1. /******************************************************************************
  2. Class: CBaseLeafNode
  3. Purpose: BaseNode class for all the non container object.
  4. ******************************************************************************/
  5. class CBaseLeafNode : public CLeafNode, public CBaseNode
  6. {
  7. public:
  8. CBaseLeafNode(CRoleComponentDataObject * pComponentDataObject,
  9. CAdminManagerNode* pAdminManagerNode,
  10. CBaseAz* pBaseAz);
  11. virtual ~CBaseLeafNode();
  12. DECLARE_NODE_GUID()
  13. protected:
  14. virtual HRESULT
  15. AddOnePageToList(IN CRolePropertyPageHolder* /*pHolder*/,
  16. IN UINT /*nPageNumber*/)
  17. {
  18. return HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS);
  19. }
  20. private:
  21. public:
  22. //
  23. //Baseclass OverRides
  24. //
  25. virtual BOOL
  26. OnSetDeleteVerbState(DATA_OBJECT_TYPES type,
  27. BOOL* pbHide,
  28. CNodeList* pNodeList);
  29. virtual void
  30. OnDelete(CComponentDataObject* pComponentData,
  31. CNodeList* pNodeList);
  32. virtual LPCWSTR
  33. GetString(int nCol);
  34. virtual int
  35. GetImageIndex(BOOL bOpenImage);
  36. virtual BOOL
  37. HasPropertyPages(DATA_OBJECT_TYPES type,
  38. BOOL* pbHideVerb,
  39. CNodeList* pNodeList);
  40. virtual HRESULT
  41. CreatePropertyPages(LPPROPERTYSHEETCALLBACK,
  42. LONG_PTR,
  43. CNodeList*);
  44. void
  45. OnPropertyChange(CComponentDataObject* pComponentData,
  46. BOOL,
  47. long changeMask);
  48. virtual BOOL
  49. CanCloseSheets();
  50. };
  51. /******************************************************************************
  52. Class: CGroupNode
  53. Purpose: Snapin Node for Application Group Object
  54. ******************************************************************************/
  55. class CGroupNode : public CBaseLeafNode
  56. {
  57. public:
  58. CGroupNode(CRoleComponentDataObject * pComponentDataObject,
  59. CAdminManagerNode* pAdminManagerNode,
  60. CBaseAz* pBaseAz,
  61. CRoleAz* pRoleAz = NULL);
  62. virtual
  63. ~CGroupNode();
  64. virtual HRESULT AddOnePageToList(CRolePropertyPageHolder *pHolder,
  65. UINT nPageNumber);
  66. virtual void
  67. OnDelete(CComponentDataObject* pComponentData,
  68. CNodeList* pNodeList);
  69. virtual HRESULT
  70. DeleteAssociatedBaseAzObject();
  71. private:
  72. CRoleAz* m_pRoleAz;
  73. };
  74. /******************************************************************************
  75. Class: CTaskNode
  76. Purpose: Snapin Node for Task Object
  77. ******************************************************************************/
  78. class CTaskNode : public CBaseLeafNode
  79. {
  80. public:
  81. CTaskNode(CRoleComponentDataObject * pComponentDataObject,
  82. CAdminManagerNode* pAdminManagerNode,
  83. CBaseAz* pBaseAz);
  84. ~CTaskNode();
  85. virtual HRESULT AddOnePageToList(CRolePropertyPageHolder *pHolder,
  86. UINT nPageNumber);
  87. };
  88. /******************************************************************************
  89. Class: COperationNode
  90. Purpose: Snapin Node for Operation Object
  91. ******************************************************************************/
  92. class COperationNode : public CBaseLeafNode
  93. {
  94. public:
  95. COperationNode(CRoleComponentDataObject * pComponentDataObject,
  96. CAdminManagerNode* pAdminManagerNode,
  97. CBaseAz* pBaseAz);
  98. ~COperationNode();
  99. virtual HRESULT
  100. AddOnePageToList(CRolePropertyPageHolder *pHolder,
  101. UINT nPageNumber);
  102. };
  103. /******************************************************************************
  104. Class: CSidCacheNode
  105. Purpose: Snapin Node for Windows Users/Groups which are represented by SID
  106. ******************************************************************************/
  107. class CSidCacheNode : public CBaseLeafNode
  108. {
  109. public:
  110. CSidCacheNode(CRoleComponentDataObject * pComponentDataObject,
  111. CAdminManagerNode* pAdminManagerNode,
  112. CBaseAz* pBaseAz,
  113. CRoleAz* pRoleAz);
  114. ~CSidCacheNode();
  115. virtual void
  116. OnDelete(CComponentDataObject* pComponentData,
  117. CNodeList* pNodeList);
  118. virtual HRESULT
  119. DeleteAssociatedBaseAzObject();
  120. BOOL
  121. OnSetDeleteVerbState(DATA_OBJECT_TYPES ,
  122. BOOL* pbHide,
  123. CNodeList* pNodeList);
  124. BOOL
  125. HasPropertyPages(DATA_OBJECT_TYPES type,
  126. BOOL* pbHideVerb,
  127. CNodeList* pNodeList);
  128. private:
  129. CRoleAz* m_pRoleAz;
  130. };