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

134 lines
3.2 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2001 Microsoft Corporation
//
// Module Name:
// CClusCfgCredentials.h
//
// Description:
// This file contains the declaration of the CClusCfgCredentials
// class.
//
// The class CClusCfgCredentials is the representation of
// account credentials. It implements the IClusCfgCredentials interface.
//
// Documentation:
//
// Implementation Files:
// CClusCfgCredentials.cpp
//
// Maintained By:
// Galen Barbee (GalenB) 17-May-2000
//
//////////////////////////////////////////////////////////////////////////////
// Make sure that this file is included only once per compile path.
#pragma once
//////////////////////////////////////////////////////////////////////////////
// Include Files
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// Constant Declarations
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//++
//
// class CClusCfgCredentials
//
// Description:
// The class CClusCfgCredentials is the representation of a
// cluster.
//
// Interfaces:
// IClusCfgCredentials
// IClusCfgInitialize
// IClusCfgSetCredentials
//
//--
//////////////////////////////////////////////////////////////////////////////
class CClusCfgCredentials
: public IClusCfgCredentials
, public IClusCfgInitialize
, public IClusCfgSetCredentials
{
public:
//
// Public constructors and destructors
//
CClusCfgCredentials( void );
virtual ~CClusCfgCredentials( void );
//
// IUnknown Interfaces
//
STDMETHOD( QueryInterface )( REFIID riid, void ** ppvObject );
STDMETHOD_( ULONG, AddRef )( void );
STDMETHOD_( ULONG, Release )( void );
//
// IClusCfgInitialize Interfaces.
//
// Register callbacks, locale id, etc.
STDMETHOD( Initialize )( IUnknown * punkCallbackIn, LCID lcidIn );
//
// IClusCfgCredentials Interfaces.
//
STDMETHOD( SetCredentials )( LPCWSTR pcszUserIn, LPCWSTR pcszDomainIn, LPCWSTR pcszPasswordIn );
STDMETHOD( GetCredentials )( BSTR * pbstrUserOut, BSTR * pbstrDomainOut, BSTR * pbstrPasswordOut );
//
// IClusCfgSetCredentials Interfaces.
//
STDMETHOD( SetDomainCredentials )( LPCWSTR pcszCredentials );
//
// Public, non interface methods.
//
static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
private:
struct AccountInfo
{
BSTR bstrName;
BSTR bstrPassword;
BSTR bstrDomain;
};
//
// Private member functions and data
//
LONG m_cRef;
LCID m_lcid;
IClusCfgCallback * m_picccCallback;
struct AccountInfo m_aiInfo;
// Private copy constructor to prevent copying.
CClusCfgCredentials( const CClusCfgCredentials & nodeSrc );
// Private assignment operator to prevent copying.
const CClusCfgCredentials & operator = ( const CClusCfgCredentials & nodeSrc );
HRESULT HrInit( void );
}; //*** Class CClusCfgCredentials