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.

81 lines
2.9 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
  18. CClusterConfiguration:
  19. public IExtendObjectManager,
  20. public IClusCfgClusterInfo,
  21. public IGatherData // private
  22. {
  23. private:
  24. // IUnknown
  25. LONG m_cRef;
  26. // Async/IClusCfgClusterInfo
  27. ECommitMode m_ecmCommitChangesMode;
  28. BSTR m_bstrClusterName; // Cluster Name
  29. BSTR m_bstrClusterBindingString; // Cluster binding string.
  30. BOOL m_fHasNameChanged:1; // If the cluster name has changed...
  31. ULONG m_ulIPAddress; // Cluster IP Address
  32. ULONG m_ulSubnetMask; // Cluster Subnet Mask
  33. IClusCfgCredentials * m_picccServiceAccount; // Cluster service account credentials
  34. IClusCfgNetworkInfo * m_punkNetwork; // Cluster network that the IP/subnet should be hosted.
  35. // IExtendObjectManager
  36. private: // Methods
  37. CClusterConfiguration( void );
  38. ~CClusterConfiguration( void );
  39. STDMETHOD( Init )( void );
  40. public: // Methods
  41. static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
  42. // IUnknown
  43. STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv );
  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. // IGatherData
  61. STDMETHOD( Gather )( OBJECTCOOKIE cookieParentIn, IUnknown * punkIn );
  62. // IExtendObjectManager
  63. STDMETHOD( FindObject )(
  64. OBJECTCOOKIE cookieIn
  65. , REFCLSID rclsidTypeIn
  66. , LPCWSTR pcszName
  67. , LPUNKNOWN * ppunkOut
  68. );
  69. }; // class CClusterConfiguration