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

82 lines
2.9 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999-2001 Microsoft Corporation
//
// Module Name:
// ClusterConfiguration.h
//
// Description:
// CClusterConfiguration implementation.
//
// Maintained By:
// Galen Barbee (GalenB) 22-NOV-1999
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
// CClusterConfiguration
class
CClusterConfiguration:
public IExtendObjectManager,
public IClusCfgClusterInfo,
public IGatherData // private
{
private:
// IUnknown
LONG m_cRef;
// Async/IClusCfgClusterInfo
ECommitMode m_ecmCommitChangesMode;
BSTR m_bstrClusterName; // Cluster Name
BSTR m_bstrClusterBindingString; // Cluster binding string.
BOOL m_fHasNameChanged:1; // If the cluster name has changed...
ULONG m_ulIPAddress; // Cluster IP Address
ULONG m_ulSubnetMask; // Cluster Subnet Mask
IClusCfgCredentials * m_picccServiceAccount; // Cluster service account credentials
IClusCfgNetworkInfo * m_punkNetwork; // Cluster network that the IP/subnet should be hosted.
// IExtendObjectManager
private: // Methods
CClusterConfiguration( void );
~CClusterConfiguration( void );
STDMETHOD( Init )( void );
public: // Methods
static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
// IUnknown
STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv );
STDMETHOD_( ULONG, AddRef )( void );
STDMETHOD_( ULONG, Release )( void );
// IClusCfgClusterInfo
STDMETHOD( SetCommitMode )( ECommitMode ecmNewModeIn );
STDMETHOD( GetCommitMode )( ECommitMode * pecmCurrentModeOut );
STDMETHOD( GetName )( BSTR * pbstrNameOut );
STDMETHOD( SetName )( LPCWSTR pcszNameIn );
STDMETHOD( GetIPAddress )( ULONG * pulDottedQuadOut );
STDMETHOD( SetIPAddress )( ULONG ulDottedQuadIn );
STDMETHOD( GetSubnetMask )( ULONG * pulDottedQuadOut );
STDMETHOD( SetSubnetMask )( ULONG ulDottedQuadIn );
STDMETHOD( GetNetworkInfo )( IClusCfgNetworkInfo ** ppiccniOut );
STDMETHOD( SetNetworkInfo )( IClusCfgNetworkInfo * piccniIn );
STDMETHOD( GetClusterServiceAccountCredentials )( IClusCfgCredentials ** ppicccCredentialsOut );
STDMETHOD( GetBindingString )( BSTR * pbstrBindingStringOut );
STDMETHOD( SetBindingString )( LPCWSTR pcszBindingStringIn );
// IGatherData
STDMETHOD( Gather )( OBJECTCOOKIE cookieParentIn, IUnknown * punkIn );
// IExtendObjectManager
STDMETHOD( FindObject )(
OBJECTCOOKIE cookieIn
, REFCLSID rclsidTypeIn
, LPCWSTR pcszName
, LPUNKNOWN * ppunkOut
);
}; // class CClusterConfiguration