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.
 
 
 
 
 
 

2267 lines
61 KiB

//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2002 Microsoft Corporation
//
// Module Name:
// ClusCfgClient.idl
//
// Description:
// This file is the IDL file for the middler tier framework for the
// Cluster Configuration Wizard.
//
//////////////////////////////////////////////////////////////////////////////
// Comments for generated files
cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
cpp_quote( "//" )
cpp_quote( "// Copyright (c) 2000 Microsoft Corporation" )
cpp_quote( "//" )
cpp_quote( "// Remarks:" )
cpp_quote( "// Generated file. See file ClusCfgClient.idl for more details." )
cpp_quote( "//" )
cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
//////////////////////////////////////////////////////////////////////////////
// Imported Files
//////////////////////////////////////////////////////////////////////////////
import "unknwn.idl";
import "objidl.idl";
import "ocidl.idl";
import "ClusCfgServer.idl";
//////////////////////////////////////////////////////////////////////////////
// Forward Declarations
//////////////////////////////////////////////////////////////////////////////
interface INotifyUI;
interface IObjectManager;
interface INotificationManager;
interface ITaskManager;
interface IDoTask;
interface ITaskGetDomains;
interface ITaskGetDomainsCallback;
interface ITaskAnalyzeCluster;
interface ITaskCommitClusterChanges;
interface ITaskVerifyIPAddress;
interface IStandardInfo;
interface IConnectionManager;
interface IConnectionInfo;
interface IGatherData;
interface IConfigurationConnection;
interface ITaskGatherNodeInfo;
interface ITaskGatherInformation;
interface IEnumNodes;
interface ITaskCompareAndPushInformation;
interface ITaskGatherClusterInfo;
interface IEnumCookies;
interface ITaskPollingCallback;
interface ILogManager;
interface ILogger;
//////////////////////////////////////////////////////////////////////////////
// Type Definitions
//////////////////////////////////////////////////////////////////////////////
typedef DWORD OBJECTCOOKIE;
//////////////////////////////////////////////////////////////////////////////
// Interface Definitions
//////////////////////////////////////////////////////////////////////////////
//****************************************************************************
//++
//
// interface INotifyUI
//
// Description:
// TODO: gpease 10-MAR-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( E5E8D401-1A37-4fbf-880C-826CC89516FD ),
pointer_default( unique )
]
interface INotifyUI : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// INotifyUI::ObjectChanged(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Notifies the UI layer that the object "cookieIn"has changed. The
// object implementing this interface must marshall the data.
//
// Arguments:
// cookieIn
// Data Manager cookie to the object that changed.
//
// Return Value:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
ObjectChanged(
[ in ] OBJECTCOOKIE cookieIn
);
}; //*** interace INotifyUI
//****************************************************************************
//++
//
// interface IDoTask
//
// Description:
// TODO: gpease 15-APR-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 0230C9F8-EE7F-4307-98DB-726EBCAE55D6 ),
pointer_default( unique )
]
interface
IDoTask : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IDoTask::BeginTask( void )
//
// Description:
// Entry method for a task object.
//
// Arguments:
// None. You should describe a private interface to communicate
// parameters to your task.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
BeginTask( void );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IDoTask::StopTask( void )
//
// Description:
// Entry method to stop/cancel and running task.
//
// Arguments:
// None.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
StopTask( void );
}; //*** interface IDoTask
//****************************************************************************
//++
//
// interface INotificationManager
//
// Description:
// TODO: gpease 15-APR-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 95531501-8782-4845-901D-312F36BA6C6E ),
pointer_default( unique )
]
interface
INotificationManager : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// INotificationManager::AddConnectionPoint(
// REFIID riidIn
// , IConnectionPoint * pcpIn
// )
//
// Description:
// Adds a connection point for the notification manager to manage
// for a particular interface. There can only be one registration
// for a particular interface.
//
// Arguments:
// riidIn
// The IID of the interface.
//
// pcpIn
// Interface to the connection point.
//
// Return Type:
// S_OK
// Success.
//
// CO_E_OBJISREG
// The interface for the connection point is already registered.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
AddConnectionPoint(
[ in ] REFIID riidIn
, [ in ] IConnectionPoint * pcpIn
);
}; //*** interface INotificationManager
//****************************************************************************
//++
//
// interface IConnectionManager
//
// Description:
// TODO: gpease 15-APR-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( C0017768-1BF3-4352-8D6C-3A8C1D0FB477 ),
pointer_default( unique )
]
interface
IConnectionManager : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// GetConnectionToObject(
// OBJECTCOOKIE cookieIn
// , IUnknown ** ppunkOut
// )
//
// Description:
// Establishes a connection to the object referenced by "cookieIn."
//
// Arguments:
// cookieIn
// An object reference cookie from the Object Manager.
//
// ppunkOut
// Interface pointer to the object.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
GetConnectionToObject(
[ in ] OBJECTCOOKIE cookieIn
, [ out ] IUnknown ** ppunkOut
);
}; //*** interface IConnectionManager
//****************************************************************************
//++
//
// interface ITaskManager
//
// Description:
// TODO: gpease 15-APR-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 16116694-DFC5-470b-AC12-46FBB01CEF10 ),
pointer_default( unique )
]
interface
ITaskManager : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskManager::CreateTask(
// REFIID clsidIn
// , IUnknown ** ppunkOut
// )
//
// Description:
// Submits a task to the Action Manager.
//
// Arguments:
// pTask
// Task to submit.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call fails.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
CreateTask(
[ in ] REFIID clsidIn
, [ out ] IUnknown ** ppunkOut
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskManager::SubmitTask(
// IDoTask * pTask
// )
//
// Description:
// Submits a task to the Action Manager.
//
// Arguments:
// pTask
// Task to submit.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call fails.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SubmitTask(
[ in ] IDoTask * pTask
);
}; //*** interface ITaskManager
//****************************************************************************
//++
//
// interface ITaskManager
//
// Description:
// TODO: gpease 15-APR-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( D51351DF-6394-4236-9783-65ED05631068 ),
pointer_default( unique )
]
interface
IObjectManager : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IObjectManager::FindObject(
// REFCLSID rclsidTypeIn
// , OBJECTCOOKIE cookieParentIn
// , LPCWSTR pcszNameIn
// , REFCLSID rclsidFormatIn
// , OBJECTCOOKIE * pcookieOut
// , LPUNKNOWN * ppunkOut
// )
//
// Description:
// Looks up and retrieves information about an object that has the
// type "rclsidTypeIn" and has the name "pcszNameIn". It will return
// an object that contains data in the format specified by
// "rclsidFormatIn". It will also return "pcookieOut" that can be
// used to identify the object in future requests.
//
// Arguments:
// rclsidTypeIn
// The type of the object to find.
//
// cookieParentIn
// Cookie of the cluster. NULL looking for a cluster.
//
// pcszNameIn
// The name of the object to find.
//
// rclsidFormatIn
// The format of the data to retrieve about the object.
//
// pcookieOut
// A value that represents the object.
//
// ppunkOut
// The requested data. NULL in indicates no data returned.
//
// Return Values:
// S_OK
// Success.
//
// S_PENDING
// Data being retrieved; ask again later using the cookie.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
FindObject(
[ in ] REFCLSID rclsidTypeIn
, [ in ] OBJECTCOOKIE cookieClusterIn
, [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
, [ in ] REFCLSID rclsidFormatIn
, [ out ] OBJECTCOOKIE * pcookieOut
, [ out, iid_is( rclsidFormatIn ) ] LPUNKNOWN * ppunkOut
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IObjectManager::GetObject(
// REFCLSID rclsidFormatIn
// , OBJECTCOOKIE cookieIn
// , LPUNKNOWN * ppunkOut
// )
//
// Description:
// Lookups and retrieves information about the object using "cookieIn"
// as a reference. It will return an object that contains data in the
// format specified by "rclsidFormatIn".
//
// Arguments:
// rclsidFormatIn
// The format of the data to retrieve about the object.
//
// pcookieIn
// The value of the object to retrieve data from.
//
// ppunkOut
// The requested data. NULL in indicates no data returned.
//
// Return Values:
// S_OK
// Success.
//
// S_PENDING
// Data being retrieved; ask again later using the cookie.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
GetObject(
[ in ] REFCLSID rclsidFormatIn
, [ in ] OBJECTCOOKIE cookieIn
, [ out, iid_is( rclsidFormatIn ) ] LPUNKNOWN * ppunkOut
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IObjectManager::RemoveObject(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Removes an object from the object cache and requests deletion all
// existing data format objects. This will also remove all children
// of the object (if any).
//
// Arguments:
// cookieIn
// The cookie of the object to be removed.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
RemoveObject(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IObjectManager::SetObjectStatus(
// OBJECTCOOKIE cookieIn
// , HRESULT hrIn
// )
//
// Description:
// Sets the status on an object.
//
// Arguments:
// cookieIn
// The cookie of the object.
//
// hrIn
// Status to set.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetObjectStatus(
[ in ] OBJECTCOOKIE cookieIn
, [ in ] HRESULT hrIn
);
}; //*** interface IObjectManager
//
// Task Interfaces
//
//****************************************************************************
//++
//
// interface ITaskGetDomains
//
// Description:
// TODO: gpease 15-MAY-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( DFCB4ACD-C4DB-4db4-8EBB-1DD07A9D5B82 ),
pointer_default( unique )
]
interface
ITaskGetDomains : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGetDomains::SetCallback(
// ITaskGetDomainsCallback * pResultsCallbackIn
// )
//
// Description:
// Stores the ITaskGetDomainsCallback that will be used to send
// status and names for this task.
//
// Arguments:
// pResultsCallbackIn
// The ITaskGetDomainsCallback interface of the object that will
// receive the status information as well as the names that are
// enumerated.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCallback(
[ in ] ITaskGetDomainsCallback * pResultsCallbackIn
);
}; // *** interface ITaskGetDomains
//****************************************************************************
//++
//
// interface ITaskGetDomainsCallback
//
// Description:
// TODO: gpease 15-MAY-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 85402E44-6834-41df-8590-01827D124E1B ),
pointer_default( unique )
]
interface
ITaskGetDomainsCallback : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGetDomainsCallback::ReceiveDomainResult(
// HRESULT hrIn
// )
//
// Description:
// Callback used to tell the invoker of TaskGetDomains the results
// of the enumeration. This will be only called if there is a
// problem.
//
// Arguments:
// hrIn
// The HRESULT result code of the login attempt.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed - this will abort the enumeration.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
ReceiveDomainResult( [ in ] HRESULT hrIn );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGetDomainsCallback::ReceiveDomainName(
// LPCWSTR pcszDomainIn
// )
//
// Description:
// This method will be called by the TaskGetDomains to send an
// enumerated name back to the UI layer.
//
// Arguments:
// pcszDomainIn
// The next enumerated domain name.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs
// The call failed - this will abort the enumeration.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
ReceiveDomainName(
[ in, pointer_default( unique ) ] LPCWSTR pcszDomainIn
);
}; //*** interface ITaskGetDomainsCallback
//****************************************************************************
//++
//
// interface ITaskAnalyzeCluster
//
// Description:
// TODO: gpease 18-MAY-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 795737A1-E13A-45eb-8DFD-8185C4B7AD4E ),
pointer_default( unique )
]
interface
ITaskAnalyzeCluster : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskAnalyzeCluster::SetJoiningMode( void )
//
// Description:
// Changes this task to joining mode.
//
// Arguments:
// None.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetJoiningMode( void );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskAnalyzeCluster::SetCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie that will be used to send the notification that the
// task has been completed.
//
// Arguments:
// cookieIn
// A cookie that will be sent as notification that the task is done.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCookie(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskAnalyzeCluster::SetClusterCookie(
// OBJECTCOOKIE cookieClusterIn
// )
//
// Description:
// Stores the cookie of the cluster configuration object.
//
// Arguments:
// cookieIn
// The cookie of the cluster to configure.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetClusterCookie(
[ in ] OBJECTCOOKIE cookieClusterIn
);
}; //*** interface ITaskAnalyzeCluster
//****************************************************************************
//++
//
// interface ITaskCommitClusterChanges
//
// Description:
// TODO: gpease 18-MAY-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 1BF12DDE-F8B0-49b1-A458-6747DB788A47 ),
pointer_default( unique )
]
interface
ITaskCommitClusterChanges : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskCommitClusterChanges::SetCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie that will be used to send the notification that the
// task has been completed.
//
// Arguments:
// cookieIn
// A cookie that will be sent as notification that the task is done.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCookie(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskCommitClusterChanges::SetClusterCookie(
// OBJECTCOOKIE cookieClusterIn
// )
//
// Description:
// Stores the cookie of the cluster configuration object.
//
// Arguments:
// cookieIn
// The cookie of the cluster to configure.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetClusterCookie(
[ in ] OBJECTCOOKIE cookieClusterIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskCommitClusterChanges::SetJoining( void )
//
// Description:
// Sets the task into joining mode.
//
// Arguments:
// None.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetJoining( void );
}; //*** interface ITaskCommitClusterChanges
//****************************************************************************
//++
//
// interface IStandardInfo
//
// Description:
// TODO: gpease 18-MAY-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( F1D9C1A5-9589-40dd-B63D-9BB0B38A1022 ),
pointer_default( unique )
]
interface
IStandardInfo : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IStandardInfo::GetType(
// CLSID * pclsidTypeOut
// )
//
// Description:
// Retrieves the type of object.
//
// Arguments:
// pclsidTypeOut
// The CLSID representing the type.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
GetType(
[ out ] CLSID * pclsidTypeOut
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IStandardInfo::GetName(
// BSTR * pbstrNameOut
// )
//
// Description:
// Retrieve the object's name.
//
// Arguments:
// pbstrNameOut
// The name of the object.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
GetName(
[ out ] BSTR * pbstrNameOut
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IStandardInfo::SetName(
// LPCWSTR pcszNameIn
// )
//
// Description:
// Sets the object's name.
//
// Arguments:
// ppcszNameIn
// The name of the object.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetName(
[ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IStandardInfo::GetParent(
// OBJECTCOOKIE * pcookieOut
// )
//
// Description:
// Retrieve the parent object's cookie.
//
// Arguments:
// pcookieOut
// The cookie for the parent object.
//
// Return Type:
// S_OK
// Success.
//
// S_FALSE
// Success but there wasn't a cookie.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
GetParent(
[ out ] OBJECTCOOKIE * pcookieOut
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IStandardInfo::GetStatus(
// HRESULT * phrOut
// )
//
// Description:
// Retrieves the status of the object.
//
// Arguments:
// phrOut
// The last HRESULT received for the object.
//
// Return Type:
// S_OK
// Success.
//
// S_FALSE
// Success but there wasn't a cookie.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
GetStatus(
[ out ] HRESULT * phrOut
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IStandardInfo::SetStatus(
// HRESULT hrIn
// )
//
// Description:
// Sets the status of the object.
//
// Arguments:
// hrIn
// Sets the last HRESULT for the object.
//
// Return Type:
// S_OK
// Success.
//
// S_FALSE
// Success but there wasn't a cookie.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetStatus(
[ in ] HRESULT hrIn
);
}; //*** interface IStandardInfo
//****************************************************************************
//++
//
// interface ITaskVerifyIPAddress
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 0c95e1b1-0cff-4740-8abd-69912d105bd1 ),
pointer_default( unique )
]
interface
ITaskVerifyIPAddress : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskVerifyIPAddress::SetIPAddress(
// DWORD dwIPAddressIn
// )
//
// Description:
// Stores the IP Address to verify.
//
// Arguments:
// dwIPAddressIn
// Dotted-quad network-byte-order IP address to verify.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetIPAddress(
[ in ] DWORD dwIPAddressIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskVerifyIPAddress::SetCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie that will be used to send the notification that the
// task has been completed.
//
// Arguments:
// cookieIn
// A cookie that will be sent as notification that the task is done.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCookie(
[ in ] OBJECTCOOKIE cookieIn
);
}; //*** interface ITaskVerifyIPAddress
//****************************************************************************
//++
//
// interface IConfigurationConnection
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( DDAD8191-66C5-4a30-A4DF-CB6C216704CA ),
pointer_default( unique )
]
interface
IConfigurationConnection : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ConnectTo(
// LPVOID cookieIn
// )
//
// Description:
// Opens a connection a cluster "cookieIn".
//
// Arguments:
// cookieIn - cookie to the cluster to open.
//
// Return Type:
// S_OK - Success.
// other HRESULTs.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
ConnectTo(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ConnectToObject(
// LPVOID cookieIn
// , REFIID riidIn
// , LPUNKNOWN * ppunkOut
// )
//
// Description:
// Opens a connection a cluster "cookieIn".
//
// Arguments:
// cookieIn - cookie to the cluster to open.
// riidIn - riid of the interface to get.
// ppunkOut - the interface to the object requested.
//
// Return Type:
// S_OK - Success.
// other HRESULTs.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
ConnectToObject(
[ in ] OBJECTCOOKIE cookieIn
, [ in ] REFIID riidIn
, [ in ] LPUNKNOWN * ppunkOut
);
}; //*** interface IConfigurationConnection
//****************************************************************************
//++
//
// interface IConnectionInfo
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 15182CE3-82D7-473f-92DE-706E2BCEA902 ),
pointer_default( unique )
]
interface
IConnectionInfo : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IConnectionInfo::GetConnection(
// IConfigurationConnection ** pccOut
// )
//
// Description:
// Retrieves the cookie for the connection object that is used to
// communicate with the object in question.
//
// Arguments:
// pccOut
// The interface to the connection object.
//
// Return Type:
// S_OK
// Success.
//
// S_FALSE
// Success but there wasn't a cookie.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
GetConnection(
[ out ] IConfigurationConnection ** pccOut
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IConnectionInfo::SetConnection(
// IConfigurationConnection * pccIn
// )
//
// Description:
// Stores the cookie for the connection object that is used to
// communicate with the object in question.
//
// Arguments:
// pccIn
// The interface to the connection object.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetConnection(
[ in ] IConfigurationConnection * pccIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IConnectionInfo::GetParent(
// OBJECTCOOKIE * pcookieOut
// )
//
// Description:
// Retrieve the parent object's cookie.
//
// Arguments:
// pcookieOut
// The cookie for the parent object.
//
// Return Type:
// S_OK
// Success.
//
// S_FALSE
// Success but there wasn't a cookie.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
GetParent(
[ out ] OBJECTCOOKIE * pcookieOut
);
}; //*** interface IConnectionInfo
//****************************************************************************
//++
//
// interface IEnumCookies
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
// Documentation:
// See IEnumXXXX in MSDN.
//
//--
//****************************************************************************
[
object,
uuid( 5E3E482E-3C22-482c-B664-693051AD0A5D ),
pointer_default( unique )
]
interface
IEnumCookies : IUnknown
{
HRESULT
Next(
[ in ] ULONG celtIn
, [ out, size_is( celtIn ), length_is( *pceltFetchedOut ) ] OBJECTCOOKIE * rgcookieOut
, [ out ] ULONG * pceltFetchedOut
);
HRESULT
Skip(
[ in ] ULONG celtIn
);
HRESULT
Reset( void );
HRESULT
Clone(
[ out ] IEnumCookies ** ppenumOut
);
HRESULT
Count(
[ out, ref ] DWORD * pnCountOut
);
}; //*** interface IEnumCookies
//****************************************************************************
//++
//
// interface IEnumNodes
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
// Documentation:
// See IEnumXXXX in MSDN.
//
//--
//****************************************************************************
[
object,
uuid( C477E363-AF0A-4203-A604-45CD607DD710 ),
pointer_default( unique )
]
interface
IEnumNodes : IUnknown
{
HRESULT
Next(
[ in ] ULONG celtIn
, [ out, size_is( celtIn ), length_is( *pceltFetchedOut ) ] IClusCfgNodeInfo ** rgccniOut
, [ out ] ULONG * pceltFetchedOut
);
HRESULT
Skip(
[ in ] ULONG celtIn
);
HRESULT
Reset( void );
HRESULT
Clone(
[ out ] IEnumNodes ** ppenumOut
);
HRESULT
Count(
[ out, ref ] DWORD * pnCountOut
);
}; //*** interface IEnumNodes
//****************************************************************************
//++
//
// interface ITaskGatherClusterInfo
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( E167965C-C5D6-493c-A343-4C105C01DDE7 ),
pointer_default( unique )
]
interface
ITaskGatherClusterInfo : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGatherClusterInfo::SetCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie to the Node to retrieve information about.
//
// Arguments:
// cookieIn
// The cookie of the Node to retrieve information about.
//
// Return Type:
// S_OK - Success.
// E_OUTOFMEMORY - Out of memory.
// other HRESULTs.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCookie(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGatherClusterInfo::SetCompletionCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie to signal when task is completed.
//
// Arguments:
// cookieIn
// The cookie to signal when the task is completed.
//
// Return Type:
// S_OK - Success.
// other HRESULTs.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCompletionCookie(
[ in ] OBJECTCOOKIE cookieIn
);
}; //*** interface ITaskGatherClusterInfo
//****************************************************************************
//++
//
// interface IGatherData
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 65318F4A-B63C-4e21-ADDC-BDCFB969E181 ),
pointer_default( unique )
]
interface
IGatherData : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// IGatherData::Gather(
// OBJECTCOOKIE cookieParentIn,
// IUnknown * punkIn
// )
//
// Description:
// An object representation gathers the information from the punk.
//
// Arguments:
// cookieParentIn
// The parent of the object.
//
// punkIn
// The interface that can be used to gather information.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
Gather(
[ in ] OBJECTCOOKIE cookieParentIn
, [ in ] IUnknown * punkIn
);
}; //*** interface IGatherData
//****************************************************************************
//++
//
// interface ITaskGatherNodeInfo
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( F19A2E01-2CB3-47b4-8F5D-B977176B45C8 ),
pointer_default( unique )
]
interface
ITaskGatherNodeInfo : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGatherNodeInfo::SetCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie to the Node to retrieve information about.
//
// Arguments:
// cookieIn
// The cookie of the Node to retrieve information about.
//
// Return Type:
// S_OK - Success.
// E_OUTOFMEMORY - Out of memory.
// other HRESULTs.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCookie(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGatherNodeInfo::SetCompletionCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie to signal when the task is completed.
//
// Arguments:
// cookieIn
// The cookie to signal when the task is completed.
//
// Return Type:
// S_OK - Success.
// other HRESULTs.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCompletionCookie(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGatherNodeInfo::SetUserAddedNodeFlag(
// BOOL fUserAddedNodeIn
// )
//
// Description:
// Stores the flag about whether this node a new Node being added/formed or not .
//
// Arguments:
// fUserAddedNodeIn
//
// Return Type:
// S_OK - Success.
// other HRESULTs.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetUserAddedNodeFlag(
[ in ] BOOL fUserAddedNodeIn
);
}; //*** interface ITaskGatherNodeInfo
//****************************************************************************
//++
//
// interface ITaskCompareAndPushInformation
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( D4F1C2AF-B370-49de-8768-4010B568636C ),
pointer_default( unique )
]
interface
ITaskCompareAndPushInformation : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskCompareAndPushInformation::SetNodeCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie to the Node to retrieve information about.
//
// Arguments:
// cookieIn
// The cookie of the Node to retrieve information about.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetNodeCookie(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskCompareAndPushInformation::SetCompletionCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie to signal when the task is completed.
//
// Arguments:
// cookieIn
// The cookie to signal when the task is completed.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCompletionCookie(
[ in ] OBJECTCOOKIE cookieIn
);
}; //*** interface ITaskCompareAndPushInformation
//****************************************************************************
//++
//
// interface ITaskGatherInformation
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( B9AAF3F8-238E-4993-BA31-14859804F92C ),
pointer_default( unique )
]
interface
ITaskGatherInformation : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGatherInformation::SetNodeCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie to the Node to retrieve information about.
//
// Arguments:
// cookieIn
// The cookie of the Node to retrieve information about.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetNodeCookie(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGatherInformation::SetCompletionCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie to signal when the task is completed.
//
// Arguments:
// cookieIn
// The cookie to signal when the task is completed.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCompletionCookie(
[ in ] OBJECTCOOKIE cookieIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGatherInformation::SetJoining( void )
//
// Description:
// Sets the task to indicate that it going to be joining nodes.
//
// Arguments:
// None.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetJoining( void );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskGatherInformation::SetMinimalConfiguration(
// BOOL fMinimalConfigurationIn
// )
//
// Description:
// Sets the task to indicate that a minimal configuration was
// selected.
//
// Arguments:
// fMinimalConfigurationIn
// TRUE when minimal configuration was selected.
//
// Return Values:
// S_OK
// Success.
//
// other HRESULTs.
// The call
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetMinimalConfiguration(
[ in ] BOOL fMinimalConfigurationIn
);
}; //*** interface ITaskGatherInformation
//****************************************************************************
//++
//
// interface ITaskPollingCallback
//
// Description:
// TODO: gpease 14-JUL-2000
// Write a description.
//
//--
//****************************************************************************
[
object,
uuid( 49E92395-66AF-4add-A41E-43512CB519B3 ),
pointer_default( unique )
]
interface
ITaskPollingCallback : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskPollingCallback::SetServerInfo(
// DWORD dwRemoteServerObjectGITCookieIn
// , OBJECTCOOKIE cookieLocalServerObjectIn
// )
//
// Description:
// Passes the information needed by this task to communication with
// the ClusCfg server object on a remote server.
//
// Arguments:
// dwRemoteServerObjectGITCookieIn
// The GIT cookie to the server side object used to obtain the
// polling callback interface.
//
// cookieLocalServerObjectIn
// Object manager cookie to the client side server proxy object.
// Needed to get the standard info from that object.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetServerInfo(
[ in ] DWORD dwRemoteServerObjectGITCookieIn
, [ in ] OBJECTCOOKIE cookieLocalServerObjectIn
);
}; //*** interface ITaskPollingCallback
//****************************************************************************
//++
//
// interface ILogManager
//
// Description:
// Manage logging for all clients of the middle tier.
//
//--
//****************************************************************************
[
object,
uuid( 4759DC11-8DA0-4261-BBFB-EC321911D1C9 ),
pointer_default( unique )
]
interface
ILogManager : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ILogManager::StartLogging( void )
//
// Description:
// Starts logging IClusCfgCallback notifications to the log file.
//
// Arguments:
// None.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
StartLogging( void );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ILogManager::StopLogging( void )
//
// Description:
// Stops logging IClusCfgCallback notifications to the log file.
//
// Arguments:
// None.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
StopLogging( void );
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ILogManager::GetLogger( ILogger ** ppLoggerOut )
//
// Description:
// Returns a pointer to the ILogger instance to use for writing to
// the log file.
//
// Arguments:
// ppLoggerOut - on success, a pointer to the ILogger instance.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
GetLogger( [ out ] ILogger ** ppLoggerOut );
}; //*** interface ILogManager
//****************************************************************************
//++
//
// interface ILogger
//
// Description:
// Manage logging from multiple sources to the same log file.
//
//--
//****************************************************************************
[
object,
uuid( D9598418-304E-4f94-B6A1-E642FE95ED57 ),
pointer_default( unique )
]
interface
ILogger : IUnknown
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ILogger::LogMsg(
// LPCWSTR pcszMsgIn
// )
//
// Description:
// Logs a message to the log file.
//
// Arguments:
// nLogEntryTypeIn - Log entry type.
// pcszMsgIn - Message to log.
//
// Return Type:
// S_OK
// Success.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
LogMsg(
[ in ] DWORD nLogEntryTypeIn
, [ in, pointer_default( unique ) ] LPCWSTR pcszMsgIn
);
}; //*** interface ILogger
//****************************************************************************
//++
//
// interface ITaskCancelCleanup
//
// Description:
//
//
//--
//****************************************************************************
[
object,
uuid( FFE81BE7-34E8-4286-8A5F-B69814EA5720 ),
pointer_default( unique )
]
interface
ITaskCancelCleanup : IDoTask
{
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskCancelCleanup::SetClusterCookie(
// OBJECTCOOKIE cookieClusterIn
// )
//
// Description:
// Stores the cookie of the cluster configuration object.
//
// Arguments:
// cookieIn
// The cookie of the cluster to run the cleanup task against.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetClusterCookie(
[ in ] OBJECTCOOKIE cookieClusterIn
);
//////////////////////////////////////////////////////////////////////////
//
// STDMETHOD
// ITaskCancelCleanup::SetCompletionCookie(
// OBJECTCOOKIE cookieIn
// )
//
// Description:
// Stores the cookie that will be used to send the notification that the
// task has been completed.
//
// Arguments:
// cookieIn
// A cookie that will be sent as notification that the task is done.
//
// Return Type:
// S_OK
// Success.
//
// E_OUTOFMEMORY
// Out of memory.
//
// other HRESULTs.
// The call failed.
//
//////////////////////////////////////////////////////////////////////////
HRESULT
SetCompletionCookie(
[ in ] OBJECTCOOKIE cookieCompletionIn
);
}; //*** interface ITaskCancelCleanup
[
uuid( a0cb3974-8681-46c1-b78b-599567bd385d ),
version( 1.0 ),
helpstring("Microsoft Cluster Configuration Client Library"),
lcid( 0 )
]
library ClusCfgClient
{
//////////////////////////////////////////////////////////////////////////////
// Imported Files
//////////////////////////////////////////////////////////////////////////////
importlib("stdole2.tlb");
//////////////////////////////////////////////////////////////////////////////
// Interface Definitions
//////////////////////////////////////////////////////////////////////////////
//****************************************************************************
//++
//
// interface IClusCfgAsyncEvictCleanup
//
// Description:
// This interface can be used to cleanup a node that has been evicted from
// a cluster. This interface can be used to cleanup both local and remote
// nodes. Note, you cannot use asynchronous COM with this interface, since
// it is an oleautomation interface.
//
//--
//****************************************************************************
[
object,
uuid( 52C80B95-C1AD-4240-8D89-72E9FA84025E ),
dual,
helpstring("IClusCfgAsyncEvictCleanup interface"),
pointer_default( unique )
]
interface
IClusCfgAsyncEvictCleanup : IDispatch
{
//////////////////////////////////////////////////////////////////////
//
// HRESULT
// CleanupNode(
// BSTR bstrEvictedNodeNameIn
// , long lDelayIn
// , long lTimeoutIn
// )
//
// Routine Description:
// Cleanup a node that has been evicted.
//
// Arguments:
// bstrEvictedNodeNameIn
// Name of the node on which cleanup is to be initiated. If
// this is NULL the local node is cleaned up.
//
// nDelayIn
// Number of milliseconds that will elapse before cleanup is
// started on the target node. If some other process cleans
// up the target node while delay is in progress, the delay
// is terminated. If this value is zero, the node is cleaned
// up immediately.
//
// nTimeoutIn
// Number of milliseconds that this method will wait for
// cleanup to complete. This timeout is independent of the
// delay above, so if dwDelayIn is greater than dwTimeoutIn,
// this method will most probably timeout. Once initiated,
// however, cleanup will run to completion - this method just
// may not wait for it to complete.
//
// Return Value:
// S_OK
// If the cleanup operations were successful
//
// RPC_S_CALLPENDING
// If cleanup is not complete in dwTimeoutIn milliseconds
//
// Other HRESULTS
// In case of error
//
//////////////////////////////////////////////////////////////////////
HRESULT
CleanupNode(
[ in ] BSTR bstrEvictedNodeNameIn
, [ in ] long nDelayIn
, [ in ] long nTimeoutIn
);
}; //*** interface IClusCfgAsyncEvictCleanup
}; //*** library ClusCfgClient