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

126 lines
4 KiB
C++

/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1996-1998 Microsoft Corporation
//
// Module Name:
// ClusCfgCommands.h
//
// Abstract:
// This is the class definition file for the CClusCfgCommand and
// associated classes.
//
// Author:
// C. Brent Thomas
//
// Revision History:
// 30 Sep 1998 original
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#ifndef __CLUSCFGCOMMANDS_H_
#define __CLUSCFGCOMMANDS_H_
// The members of the _CLUSCFG_COMMAND_IDS structure are the string IDs of
// two string resources. Member dwCommandStringId identifies a string resource
// that specifies the full text of a command that may be supplied to cluscfg.exe,
// either via a command line option or an entry in an answer file. Member
// dwSubStringId identifies a string resource that specifies the minimum substring
// that may be recognized as that command.
typedef struct _CLUSCFG_COMMAND_IDS
{
DWORD dwCommandStringId; // string Id of the full command
DWORD dwCommandSubStringId; // string Id of the minimum substring
int xNumRequiredParameters; // the number of parameters required by this command
int xNumOptionalParameters; // the number of optional parameters accepted by this command
} CLUSCFG_COMMAND_IDS;
// Objects of the CClusCfgCommand class are used to build a list of all of the
// legal commands that can be passed to ClusCfg.exe, either via a command line
// option or via entries in an answer file. The list is used to recognize the
// command keywords when parsing a command line or answer file entries.
class CClusCfgCommand
{
public:
CClusCfgCommand( void ); // default constructor
CClusCfgCommand( DWORD dwStringId, DWORD dwSubStringId );
~CClusCfgCommand( void ); // destructor
// Data members
private:
CClusCfgCommand * m_pNextCommand;
DWORD m_dwCommandStringId;
LPTSTR m_ptszCommandString;
DWORD m_dwCommandSubStringId;
LPTSTR m_ptszCommandSubString;
int m_xNumRequiredParameters;
int m_xNumOptionalParameters;
// Member functions
public:
BOOL BuildClusCfgCommandList( HINSTANCE hInstance,
CLUSCFG_COMMAND_IDS * pClusCfgCommandIds );
BOOL RecognizeCommandToken( LPCTSTR ptszToken,
CClusCfgCommand * pClusCfgCommandList );
int GetNumRequiredParameters( void );
int GetNumOptionalParameters( void );
void Reset( void );
DWORD GetCommandStringId( void );
DWORD GetCommandSubStringId( void );
BOOL SetCommandStringPointer( LPTSTR pAddress );
BOOL SetCommandSubStringPointer( LPTSTR pAddress );
private:
BOOL InitializeCommandString( HINSTANCE hInstance, DWORD dwStringId );
BOOL InitializeCommandString( HINSTANCE hInstance );
BOOL InitializeCommandSubString( HINSTANCE hInstance, DWORD dwSubStringId );
BOOL InitializeCommandSubString( HINSTANCE hInstance );
LPTSTR GetCommandString( void );
LPTSTR GetCommandSubString( void );
BOOL SetNextCommandPointer( CClusCfgCommand * pNextCommand );
CClusCfgCommand * GetNextCommandPointer( void );
void SetNumRequiredParameters( int xNumRequiredParameters );
void SetNumOptionalParameters( int xNumOptionalParameters );
BOOL SetCommandStringId( DWORD dwCommandStringId );
BOOL SetCommandSubStringId( DWORD dwCommandStringId );
LPTSTR GetCommandStringPointer( void );
LPTSTR GetCommandSubStringPointer( void );
};
#endif // __CLUSCFGCOMMANDS_H_