////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2000-2001 Microsoft Corporation // // Module Name: // ConfigClusApi.h // // Description: // ConfigClusApi implementation. // // Maintained By: // Galen Barbee (GalenB) 02-AUG-2000 // ////////////////////////////////////////////////////////////////////////////// // Make sure that this file is included only once per compile path. #pragma once ////////////////////////////////////////////////////////////////////////////// //++ // // class CConfigClusApi // // Description: // // Interfaces: // IConfigurationConnection // IClusCfgServer // IClusCfgInitialize // IClusCfgCallback // IClusCfgCapabilities // IClusCfgClusterConnection // //-- ////////////////////////////////////////////////////////////////////////////// class CConfigClusApi : public IConfigurationConnection , public IClusCfgServer , public IClusCfgCallback , public IClusCfgCapabilities , public IClusCfgVerify { private: LONG m_cRef; HCLUSTER m_hCluster; // Cluster connection. IClusCfgCallback * m_pcccb; // Callback interface CLSID m_clsidMajor; // What TASKID to log UI errors to. CLSID m_clsidType; // What type of cookie was used to open connection. BSTR m_bstrName; // Name of node or cluster connected to. BSTR m_bstrBindingString; // Binding string CConfigClusApi( void ); ~CConfigClusApi( void ); // Private copy constructor to prevent copying. CConfigClusApi( const CConfigClusApi & nodeSrc ); // Private assignment operator to prevent copying. const CConfigClusApi & operator = ( const CConfigClusApi & nodeSrc ); public: // Methods static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut ); // IUnknown STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv ); STDMETHOD_( ULONG, AddRef )( void ); STDMETHOD_( ULONG, Release )( void ); // IConfigurationConnection STDMETHOD( ConnectTo )( OBJECTCOOKIE cookieIn ); STDMETHOD( ConnectToObject )( OBJECTCOOKIE cookieIn, REFIID riidIn, LPUNKNOWN * ppunkOut ); // IClusCfgServer STDMETHOD( GetClusterNodeInfo )( IClusCfgNodeInfo ** ppClusterNodeInfoOut ); STDMETHOD( GetManagedResourcesEnum )( IEnumClusCfgManagedResources ** ppEnumManagedResourcesOut ); STDMETHOD( GetNetworksEnum )( IEnumClusCfgNetworks ** ppEnumNetworksOut ); STDMETHOD( CommitChanges )( void ); STDMETHOD( GetBindingString )( BSTR * pbstrBindingStringOut ); STDMETHOD( SetBindingString )( LPCWSTR bstrBindingStringIn ); // IClusCfgCallback STDMETHOD( SendStatusReport )( LPCWSTR pcszNodeNameIn , CLSID clsidTaskMajorIn , CLSID clsidTaskMinorIn , ULONG ulMinIn , ULONG ulMaxIn , ULONG ulCurrentIn , HRESULT hrStatusIn , LPCWSTR pcszDescriptionIn , FILETIME * pftTimeIn , LPCWSTR pcszReferenceIn ); // IClusCfgCapabilities STDMETHOD( CanNodeBeClustered )( void ); // IClusCfgVerify STDMETHOD( VerifyCredentials )( LPCWSTR bstrUserIn, LPCWSTR bstrDomainIn, LPCWSTR bstrPasswordIn ); STDMETHOD( VerifyConnectionToCluster )( LPCWSTR bstrClusterNameIn ); STDMETHOD( VerifyConnectionToNode )( LPCWSTR bstrNodeNameIn ); }; //*** class CConfigClusApi