Source code of Windows XP (NT5)
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.

153 lines
3.6 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1999-2000 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ClusterNode.h
  7. //
  8. // Implementation File:
  9. // ClusterNode.cpp
  10. //
  11. // Description:
  12. // Definition of the CClusterNode class.
  13. //
  14. // Author:
  15. // Henry Wang (HenryWa) 24-AUG-1999
  16. //
  17. // Notes:
  18. //
  19. //////////////////////////////////////////////////////////////////////////////
  20. #pragma once
  21. //////////////////////////////////////////////////////////////////////////////
  22. // Include Files
  23. //////////////////////////////////////////////////////////////////////////////
  24. #include "ProvBase.h"
  25. #include "ClusterObjAssoc.h"
  26. //////////////////////////////////////////////////////////////////////////////
  27. // Forward Declarations
  28. //////////////////////////////////////////////////////////////////////////////
  29. class CClusterNode;
  30. class CClusterNodeNetInterface;
  31. //////////////////////////////////////////////////////////////////////////////
  32. //++
  33. //
  34. // class CClusterNode
  35. //
  36. // Description:
  37. // Provider Implement for cluster Node
  38. //
  39. //--
  40. //////////////////////////////////////////////////////////////////////////////
  41. class CClusterNode : public CProvBase
  42. {
  43. //
  44. // constructor
  45. //
  46. public:
  47. CClusterNode::CClusterNode(
  48. LPCWSTR pwszNameIn,
  49. CWbemServices * pNamespaceIn
  50. );
  51. //
  52. // methods
  53. //
  54. public:
  55. virtual SCODE EnumInstance(
  56. long lFlagsIn,
  57. IWbemContext * pCtxIn,
  58. IWbemObjectSink * pHandlerIn
  59. );
  60. virtual SCODE GetObject(
  61. CObjPath & rObjPathIn,
  62. long lFlagsIn,
  63. IWbemContext * pCtxIn,
  64. IWbemObjectSink * pHandlerIn
  65. );
  66. virtual SCODE ExecuteMethod(
  67. CObjPath & rObjPathIn,
  68. WCHAR * pwszMethodNameIn,
  69. long lFlagIn,
  70. IWbemClassObject * pParamsIn,
  71. IWbemObjectSink * pHandlerIn
  72. ) ;
  73. virtual SCODE PutInstance(
  74. CWbemClassObject & rInstToPutIn,
  75. long lFlagIn,
  76. IWbemContext * pCtxIn,
  77. IWbemObjectSink * pHandlerIn
  78. );
  79. virtual SCODE DeleteInstance(
  80. CObjPath & rObjPathIn,
  81. long lFlagIn,
  82. IWbemContext * pCtxIn,
  83. IWbemObjectSink * pHandlerIn
  84. );
  85. static CProvBase * S_CreateThis(
  86. LPCWSTR pwszNameIn,
  87. CWbemServices * pNamespaceIn,
  88. DWORD dwEnumTypeIn
  89. );
  90. protected:
  91. static const SPropMapEntryArray * RgGetPropMap( void );
  92. void ClusterToWMI(
  93. HNODE hNodeIn,
  94. IWbemObjectSink * pHandlerIn
  95. );
  96. }; // class CClusterNode
  97. //////////////////////////////////////////////////////////////////////////////
  98. //++
  99. //
  100. // class CClusterNodeNetInterface
  101. //
  102. // Description:
  103. // Implement cluster Node and netinterface association
  104. //
  105. //--
  106. //////////////////////////////////////////////////////////////////////////////
  107. class CClusterNodeNetInterface : public CClusterObjAssoc
  108. {
  109. //
  110. // constructor
  111. //
  112. public:
  113. CClusterNodeNetInterface::CClusterNodeNetInterface(
  114. LPCWSTR pwszNameIn,
  115. CWbemServices * pNamespaceIn,
  116. DWORD dwEnumTypeIn
  117. );
  118. //
  119. // methods
  120. //
  121. public:
  122. virtual SCODE EnumInstance(
  123. long lFlagsIn,
  124. IWbemContext * pCtxIn,
  125. IWbemObjectSink * pHandlerIn
  126. );
  127. static CProvBase * S_CreateThis(
  128. LPCWSTR pwszNameIn,
  129. CWbemServices * pNamespaceIn,
  130. DWORD dwEnumTypeIn
  131. );
  132. }; //*** class CClusterNodeNetInterface