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.

103 lines
4.0 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000-2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // CProxyCfgClusterInfo.h
  7. //
  8. // Description:
  9. // CProxyCfgClusterInfo implementation.
  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 CProxyCfgClusterInfo
  21. //
  22. // Description:
  23. //
  24. //--
  25. //////////////////////////////////////////////////////////////////////////////
  26. class CProxyCfgClusterInfo
  27. : public IClusCfgClusterInfo
  28. {
  29. private:
  30. LONG m_cRef; // Reference counter
  31. IUnknown * m_punkOuter; // Interface to Outer Proxy object
  32. IClusCfgCallback * m_pcccb; // Callback interface
  33. HCLUSTER * m_phCluster; // Pointer to the handle of the cluster.
  34. CLSID * m_pclsidMajor; // CLSID to use to log errors to the UI.
  35. BSTR m_bstrClusterName; // Cluster FQDN name
  36. ULONG m_ulIPAddress; // Cluster IP Address
  37. ULONG m_ulSubnetMask; // Cluster Network mask
  38. BSTR m_bstrNetworkName; // Cluster Network name
  39. IClusCfgCredentials * m_pccc; // Cluster Credentials object
  40. BSTR m_bstrBindingString; // Cluster binding string.
  41. CProxyCfgClusterInfo( void );
  42. ~CProxyCfgClusterInfo( void );
  43. // Private copy constructor to prevent copying.
  44. CProxyCfgClusterInfo( const CProxyCfgClusterInfo & nodeSrc );
  45. // Private assignment operator to prevent copying.
  46. const CProxyCfgClusterInfo & operator = ( const CProxyCfgClusterInfo & nodeSrc );
  47. HRESULT HrInit( IUnknown * punkOuterIn, HCLUSTER * phClusterIn, CLSID * pclsidMajorIn, LPCWSTR pcszDomainIn );
  48. HRESULT HrLoadCredentials( void );
  49. public:
  50. static HRESULT S_HrCreateInstance(
  51. IUnknown ** ppunkOut
  52. , IUnknown * punkOuterIn
  53. , HCLUSTER * phClusterIn
  54. , CLSID * pclsidMajorIn
  55. , LPCWSTR pcszDomainIn
  56. );
  57. // IUnknown
  58. STDMETHOD( QueryInterface )( REFIID riid, LPVOID * ppv );
  59. STDMETHOD_( ULONG, AddRef )( void );
  60. STDMETHOD_( ULONG, Release )( void );
  61. // IClusCfgClusterInfo
  62. STDMETHOD( SetCommitMode )( ECommitMode eccbNewModeIn );
  63. STDMETHOD( GetCommitMode )( ECommitMode * peccmCurrentModeOut );
  64. STDMETHOD( GetName )( BSTR * pbstrNameOut );
  65. STDMETHOD( GetIPAddress )( DWORD * pdwIPAddress );
  66. STDMETHOD( GetSubnetMask )( DWORD * pdwNetMask );
  67. STDMETHOD( GetNetworkInfo )( IClusCfgNetworkInfo ** ppICCNetInfoOut );
  68. STDMETHOD( GetClusterServiceAccountCredentials )( IClusCfgCredentials ** ppICCCredentials );
  69. STDMETHOD( GetBindingString )( BSTR * pbstrBindingStringOut );
  70. STDMETHOD( SetName )( LPCWSTR pcszNameIn );
  71. STDMETHOD( SetIPAddress )( DWORD dwIPAddressIn );
  72. STDMETHOD( SetSubnetMask )( DWORD dwNetMaskIn );
  73. STDMETHOD( SetNetworkInfo )( IClusCfgNetworkInfo * pICCNetInfoIn );
  74. STDMETHOD( SetBindingString )( LPCWSTR bstrBindingStringIn );
  75. // IClusCfgCallback
  76. STDMETHOD( SendStatusReport )(
  77. LPCWSTR pcszNodeNameIn
  78. , CLSID clsidTaskMajorIn
  79. , CLSID clsidTaskMinorIn
  80. , ULONG ulMinIn
  81. , ULONG ulMaxIn
  82. , ULONG ulCurrentIn
  83. , HRESULT hrStatusIn
  84. , LPCWSTR pcszDescriptionIn
  85. , FILETIME * pftTimeIn
  86. , LPCWSTR pcszReferenceIn
  87. );
  88. }; //*** Class CProxyCfgClusterInfo