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.

81 lines
3.2 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1999-2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ClusterConfiguration.h
  7. //
  8. // Description:
  9. // CClusterConfiguration implementation.
  10. //
  11. // Maintained By:
  12. // Galen Barbee (GalenB) 22-NOV-1999
  13. //
  14. //////////////////////////////////////////////////////////////////////////////
  15. #pragma once
  16. // CClusterConfiguration
  17. class CClusterConfiguration
  18. : public IExtendObjectManager
  19. , public IClusCfgClusterInfo
  20. , public IGatherData // private
  21. {
  22. private:
  23. // IUnknown
  24. LONG m_cRef;
  25. // Async/IClusCfgClusterInfo
  26. ECommitMode m_ecmCommitChangesMode;
  27. BSTR m_bstrClusterName; // Cluster Name
  28. BSTR m_bstrClusterBindingString; // Cluster binding string.
  29. BOOL m_fHasNameChanged; // If the cluster name has changed...
  30. ULONG m_ulIPAddress; // Cluster IP Address
  31. ULONG m_ulSubnetMask; // Cluster Subnet Mask
  32. IClusCfgCredentials * m_picccServiceAccount; // Cluster service account credentials
  33. IClusCfgNetworkInfo * m_punkNetwork; // Cluster network that the IP/subnet should be hosted.
  34. DWORD m_cMaxNodes; // Maximun number of nodes allowed in this cluster.
  35. // IExtendObjectManager
  36. private: // Methods
  37. CClusterConfiguration( void );
  38. ~CClusterConfiguration( void );
  39. STDMETHOD( HrInit )( void );
  40. public: // Methods
  41. static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
  42. // IUnknown
  43. STDMETHOD( QueryInterface )( REFIID riidIn, LPVOID * ppvOut );
  44. STDMETHOD_( ULONG, AddRef )( void );
  45. STDMETHOD_( ULONG, Release )( void );
  46. // IClusCfgClusterInfo
  47. STDMETHOD( SetCommitMode )( ECommitMode ecmNewModeIn );
  48. STDMETHOD( GetCommitMode )( ECommitMode * pecmCurrentModeOut );
  49. STDMETHOD( GetName )( BSTR * pbstrNameOut );
  50. STDMETHOD( SetName )( LPCWSTR pcszNameIn );
  51. STDMETHOD( GetIPAddress )( ULONG * pulDottedQuadOut );
  52. STDMETHOD( SetIPAddress )( ULONG ulDottedQuadIn );
  53. STDMETHOD( GetSubnetMask )( ULONG * pulDottedQuadOut );
  54. STDMETHOD( SetSubnetMask )( ULONG ulDottedQuadIn );
  55. STDMETHOD( GetNetworkInfo )( IClusCfgNetworkInfo ** ppiccniOut );
  56. STDMETHOD( SetNetworkInfo )( IClusCfgNetworkInfo * piccniIn );
  57. STDMETHOD( GetClusterServiceAccountCredentials )( IClusCfgCredentials ** ppicccCredentialsOut );
  58. STDMETHOD( GetBindingString )( BSTR * pbstrBindingStringOut );
  59. STDMETHOD( SetBindingString )( LPCWSTR pcszBindingStringIn );
  60. STDMETHOD( GetMaxNodeCount )( DWORD * pcMaxNodesOut );
  61. // IGatherData
  62. STDMETHOD( Gather )( OBJECTCOOKIE cookieParentIn, IUnknown * punkIn );
  63. // IExtendObjectManager
  64. STDMETHOD( FindObject )(
  65. OBJECTCOOKIE cookieIn
  66. , REFCLSID rclsidTypeIn
  67. , LPCWSTR pcszName
  68. , LPUNKNOWN * ppunkOut
  69. );
  70. }; //*** class CClusterConfiguration