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.

107 lines
3.8 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000-2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ConfigClusApi.h
  7. //
  8. // Description:
  9. // ConfigClusApi 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 CConfigClusApi
  21. //
  22. // Description:
  23. //
  24. // Interfaces:
  25. // IConfigurationConnection
  26. // IClusCfgServer
  27. // IClusCfgInitialize
  28. // IClusCfgCallback
  29. // IClusCfgCapabilities
  30. // IClusCfgClusterConnection
  31. //
  32. //--
  33. //////////////////////////////////////////////////////////////////////////////
  34. class
  35. CConfigClusApi
  36. : public IConfigurationConnection
  37. , public IClusCfgServer
  38. , public IClusCfgCallback
  39. , public IClusCfgCapabilities
  40. , public IClusCfgVerify
  41. {
  42. private:
  43. LONG m_cRef;
  44. HCLUSTER m_hCluster; // Cluster connection.
  45. IClusCfgCallback * m_pcccb; // Callback interface
  46. CLSID m_clsidMajor; // What TASKID to log UI errors to.
  47. CLSID m_clsidType; // What type of cookie was used to open connection.
  48. BSTR m_bstrName; // Name of node or cluster connected to.
  49. BSTR m_bstrBindingString; // Binding string
  50. CConfigClusApi( void );
  51. ~CConfigClusApi( void );
  52. // Private copy constructor to prevent copying.
  53. CConfigClusApi( const CConfigClusApi & nodeSrc );
  54. // Private assignment operator to prevent copying.
  55. const CConfigClusApi & operator = ( const CConfigClusApi & nodeSrc );
  56. public: // Methods
  57. static HRESULT
  58. S_HrCreateInstance( IUnknown ** ppunkOut );
  59. // IUnknown
  60. STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv );
  61. STDMETHOD_( ULONG, AddRef )( void );
  62. STDMETHOD_( ULONG, Release )( void );
  63. // IConfigurationConnection
  64. STDMETHOD( ConnectTo )( OBJECTCOOKIE cookieIn );
  65. STDMETHOD( ConnectToObject )( OBJECTCOOKIE cookieIn, REFIID riidIn, LPUNKNOWN * ppunkOut );
  66. // IClusCfgServer
  67. STDMETHOD( GetClusterNodeInfo )( IClusCfgNodeInfo ** ppClusterNodeInfoOut );
  68. STDMETHOD( GetManagedResourcesEnum )( IEnumClusCfgManagedResources ** ppEnumManagedResourcesOut );
  69. STDMETHOD( GetNetworksEnum )( IEnumClusCfgNetworks ** ppEnumNetworksOut );
  70. STDMETHOD( CommitChanges )( void );
  71. STDMETHOD( GetBindingString )( BSTR * pbstrBindingStringOut );
  72. STDMETHOD( SetBindingString )( LPCWSTR bstrBindingStringIn );
  73. // IClusCfgCallback
  74. STDMETHOD( SendStatusReport )(
  75. LPCWSTR pcszNodeNameIn
  76. , CLSID clsidTaskMajorIn
  77. , CLSID clsidTaskMinorIn
  78. , ULONG ulMinIn
  79. , ULONG ulMaxIn
  80. , ULONG ulCurrentIn
  81. , HRESULT hrStatusIn
  82. , LPCWSTR pcszDescriptionIn
  83. , FILETIME * pftTimeIn
  84. , LPCWSTR pcszReferenceIn
  85. );
  86. // IClusCfgCapabilities
  87. STDMETHOD( CanNodeBeClustered )( void );
  88. // IClusCfgVerify
  89. STDMETHOD( VerifyCredentials )( LPCWSTR bstrUserIn, LPCWSTR bstrDomainIn, LPCWSTR bstrPasswordIn );
  90. STDMETHOD( VerifyConnectionToCluster )( LPCWSTR bstrClusterNameIn );
  91. STDMETHOD( VerifyConnectionToNode )( LPCWSTR bstrNodeNameIn );
  92. }; //*** class CConfigClusApi