windows-nt/Source/XPSP1/NT/base/cluster/mgmt/cluscfg/middletier/configconnection.h
2020-09-26 16:20:57 +08:00

97 lines
3.7 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999-2001 Microsoft Corporation
//
// Module Name:
// ConfigurationConnection.h
//
// Description:
// CConfigurationConnection implementation.
//
// Maintained By:
// Galen Barbee (GalenB) 22-NOV-1999
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
// CConfigurationConnection
class
CConfigurationConnection
: public IConfigurationConnection
, public IClusCfgServer
, public IClusCfgCallback
, public IClusCfgCapabilities
, public IClusCfgVerify
{
private:
// IUnknown
LONG m_cRef;
// IConfigurationConnection
IGlobalInterfaceTable * m_pgit; // Global Interface Table
DWORD m_cookieGITServer; // Goblal Interface Table cookie -- Server interface
DWORD m_cookieGITVerify; // Goblal Interface Table cookie -- Server interface
DWORD m_cookieGITCallbackTask; // Goblal Interface Table cookie -- polling callback task interface
IClusCfgCallback * m_pcccb; // Marshalled callback interface
BSTR m_bstrLocalComputerName; // Local computer name FQDN
BSTR m_bstrLocalHostname; // Local computer hostname
HRESULT m_hrLastStatus; // Last status of connection.
BSTR m_bstrBindingString; // String used to bind to the server.
private: // Methods
CConfigurationConnection( void );
~CConfigurationConnection( void );
STDMETHOD( Init )( void );
HRESULT HrRetrieveServerInterface( IClusCfgServer ** ppccsOut );
HRESULT HrStartPolling( void );
HRESULT HrStopPolling( void );
HRESULT HrSetSecurityBlanket( IClusCfgServer * pccsIn );
HRESULT HrIsLocalComputer( LPCWSTR pcszNameIn );
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( SetBindingString )( LPCWSTR pcszBindingStringIn );
STDMETHOD( GetBindingString )( BSTR * pbstrBindingStringOut );
// 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 pcszUserIn, LPCWSTR pcszDomainIn, LPCWSTR pcszPasswordIn );
STDMETHOD( VerifyConnectionToCluster )( LPCWSTR pcszClusterNameIn );
STDMETHOD( VerifyConnectionToNode )( LPCWSTR pcszNodeNameIn );
}; // class CConfigurationConnection