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.

109 lines
4.4 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000-2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // CProxyCfgNodeInfo.h
  7. //
  8. // Description:
  9. // CProxyCfgNodeInfo definition.
  10. //
  11. // Maintained By:
  12. // Galen Barbee (GalenB) 02-AUG-2000
  13. //
  14. //////////////////////////////////////////////////////////////////////////////
  15. // Make sure that this file is included only once per compile path.
  16. #pragma once
  17. //////////////////////////////////////////////////////////////////////////////
  18. //++
  19. //
  20. // class CProxyCfgNodeInfo
  21. //
  22. //--
  23. //////////////////////////////////////////////////////////////////////////////
  24. class CProxyCfgNodeInfo
  25. : public IClusCfgNodeInfo
  26. {
  27. private:
  28. LONG m_cRef;
  29. IUnknown * m_punkOuter; // Outer control object - It can't be deleted until we get deleted.
  30. HCLUSTER * m_phCluster; // Pointer to the handle of the cluster/node - DO NOT CLOSE!
  31. CLSID * m_pclsidMajor; // Pointer to the clsid to log UI information to.
  32. IClusCfgCallback * m_pcccb; // Callback interface to log information.
  33. CClusPropList m_cplNode; // Property list with Node info
  34. CClusPropList m_cplNodeRO; // Property list with Node info READ ONLY
  35. HNODE m_hNode; // Handle to node
  36. BSTR m_bstrDomain; // Domain name for the node.
  37. CProxyCfgNodeInfo( void );
  38. ~CProxyCfgNodeInfo( void );
  39. // Private copy constructor to prevent copying.
  40. CProxyCfgNodeInfo( const CProxyCfgNodeInfo & nodeSrc );
  41. // Private assignment operator to prevent copying.
  42. const CProxyCfgNodeInfo & operator = ( const CProxyCfgNodeInfo & nodeSrc );
  43. HRESULT HrInit( IUnknown * punkOuterIn,
  44. HCLUSTER * phClusterIn,
  45. CLSID * pclsidMajorIn,
  46. LPCWSTR pcszNodeNameIn,
  47. LPCWSTR pcszDomainIn
  48. );
  49. static DWORD
  50. DwEnumResourcesExCallback( HCLUSTER hClusterIn,
  51. HRESOURCE hResourceSelfIn,
  52. HRESOURCE hResourceIn,
  53. PVOID pvIn
  54. );
  55. public:
  56. static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut,
  57. IUnknown * punkOuterIn,
  58. HCLUSTER * phClusterIn,
  59. CLSID * pclsidMajorIn,
  60. LPCWSTR pcszNodeNameIn,
  61. LPCWSTR pcszDomainIn
  62. );
  63. // IUnknown
  64. STDMETHOD( QueryInterface )( REFIID riid, LPVOID * ppv );
  65. STDMETHOD_( ULONG, AddRef )( void );
  66. STDMETHOD_( ULONG, Release )( void );
  67. // IClusCfgNodeInfo
  68. STDMETHOD( GetName )( BSTR * pbstrNameOut );
  69. STDMETHOD( SetName )( LPCWSTR pcszNameIn );
  70. STDMETHOD( IsMemberOfCluster) ( void );
  71. STDMETHOD( GetClusterConfigInfo )( IClusCfgClusterInfo ** ppClusCfgClusterInfoOut );
  72. STDMETHOD( GetOSVersion )(
  73. DWORD * pdwMajorVersionOut,
  74. DWORD * pdwMinorVersionOut,
  75. WORD * pwSuiteMaskOut,
  76. BYTE * pbProductTypeOut,
  77. BSTR * pbstrCSDVersionOut );
  78. STDMETHOD( GetClusterVersion )( DWORD * pdwNodeHighestVersion, DWORD * pdwNodeLowestVersion );
  79. STDMETHOD( GetDriveLetterMappings )( SDriveLetterMapping * pdlmDriveLetterUsageOut );
  80. STDMETHOD( GetMaxNodeCount )( DWORD * pcMaxNodesOut );
  81. STDMETHOD( GetProcessorInfo )( WORD * pwProcessorArchitectureOut, WORD * pwProcessorLevelOut );
  82. // IClusCfgCallback
  83. STDMETHOD( SendStatusReport )(
  84. LPCWSTR pcszNodeNameIn
  85. , CLSID clsidTaskMajorIn
  86. , CLSID clsidTaskMinorIn
  87. , ULONG ulMinIn
  88. , ULONG ulMaxIn
  89. , ULONG ulCurrentIn
  90. , HRESULT hrStatusIn
  91. , LPCWSTR pcszDescriptionIn
  92. , FILETIME * pftTimeIn
  93. , LPCWSTR pcszReferenceIn
  94. );
  95. }; //*** Class CProxyCfgNodeInfo