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.

116 lines
3.0 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // CClusCfgCapabilities.h
  7. //
  8. // Description:
  9. // This file contains the declaration of the CClusCfgCapabilities
  10. // class.
  11. //
  12. // The class CClusCfgCapabilities is the implementations of the
  13. // IClusCfgCapabilities interface.
  14. //
  15. // Documentation:
  16. //
  17. // Implementation Files:
  18. // CClusCfgCapabilities.cpp
  19. //
  20. // Maintained By:
  21. // Galen Barbee (GalenB) 12-DEC-2000
  22. //
  23. //////////////////////////////////////////////////////////////////////////////
  24. // Make sure that this file is included only once per compile path.
  25. #pragma once
  26. //////////////////////////////////////////////////////////////////////////////
  27. // Include Files
  28. //////////////////////////////////////////////////////////////////////////////
  29. //////////////////////////////////////////////////////////////////////////////
  30. // Constant Declarations
  31. //////////////////////////////////////////////////////////////////////////////
  32. //////////////////////////////////////////////////////////////////////////////
  33. //++
  34. //
  35. // class CClusCfgCapabilities
  36. //
  37. // Description:
  38. // The class CClusCfgCapabilities is the server that provides the
  39. // functionality to form a cluster and join additional nodes to a cluster.
  40. //
  41. // Interfaces:
  42. // IClusCfgCapabilities
  43. //
  44. //--
  45. //////////////////////////////////////////////////////////////////////////////
  46. class CClusCfgCapabilities
  47. : public IClusCfgInitialize
  48. , public IClusCfgCapabilities
  49. {
  50. private:
  51. //
  52. // Private member functions and data
  53. //
  54. LONG m_cRef;
  55. LCID m_lcid;
  56. IClusCfgCallback * m_picccCallback;
  57. BOOL m_fCanBeClustered;
  58. // Private constructors and destructors
  59. CClusCfgCapabilities( void );
  60. ~CClusCfgCapabilities( void );
  61. // Private copy constructor to prevent copying.
  62. CClusCfgCapabilities( const CClusCfgCapabilities & nodeSrc );
  63. // Private assignment operator to prevent copying.
  64. const CClusCfgCapabilities & operator = ( const CClusCfgCapabilities & nodeSrc );
  65. HRESULT HrInit( void );
  66. HRESULT HrCheckForSFM( void );
  67. HRESULT HrIsOSVersionValid( void );
  68. public:
  69. //
  70. // Public, non interface methods.
  71. //
  72. static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
  73. static HRESULT S_RegisterCatIDSupport( ICatRegister * picrIn, BOOL fCreateIn );
  74. //
  75. // IUnknown Interfaces
  76. //
  77. STDMETHOD( QueryInterface )( REFIID riid, void ** ppvObject );
  78. STDMETHOD_( ULONG, AddRef )( void );
  79. STDMETHOD_( ULONG, Release )( void );
  80. //
  81. // IClusCfgInitialize
  82. //
  83. // Register callbacks, locale id, etc.
  84. STDMETHOD( Initialize )( IUnknown * punkCallbackIn, LCID lcidIn );
  85. //
  86. // IClusCfgCapabilities
  87. //
  88. STDMETHOD( CanNodeBeClustered )( void );
  89. }; //*** Class CClusCfgCapabilities