windows-nt/Source/XPSP1/NT/admin/wmi/wbem/tools/wmic/globalswitches.h
2020-09-26 16:20:57 +08:00

392 lines
11 KiB
C++

/****************************************************************************
Copyright information : Copyright (c) 1998-1999 Microsoft Corporation
File Name : CommandSwitches.h
Project Name : WMI Command Line
Author Name : Ch. Sriramachandramurthy
Date of Creation (dd/mm/yy) : 27th-September-2000
Version Number : 1.0
Brief Description : This file consist of class declaration of
class GlobalSwitches
Revision History :
Last Modified by : Ch. Sriramachandramurthy
Last Modified on : 17th-November-2000
****************************************************************************/
/*-------------------------------------------------------------------
Class Name : CGlobalSwitches
Class Type : Concrete
Brief Description : This class encapsulates the functionality needed
for accessing and storing the global switches
information, which will be used by Parsing,
Execution and Format Engines depending upon the
applicablity.
Super Classes : None
Sub Classes : None
Classes Used : None
Interfaces Used : None
--------------------------------------------------------------------*/
#pragma once
class CGlobalSwitches
{
public:
// Construction
CGlobalSwitches();
// Destruction
~CGlobalSwitches();
// Restrict Assignment
CGlobalSwitches& operator=(CGlobalSwitches& rGlblSwitches);
// Attributes
private:
// Mapping b/w allowed strings for implevel and
// the corresponding integer values.
CHARINTMAP m_cimImpLevel;
// Mapping b/w allowed strings for authlevel and
// the corresponding integer values.
CHARINTMAP m_cimAuthLevel;
//String type, It stores the authority value.
_TCHAR* m_pszAuthority;
//String type, It stores Namespace specified in the command.
_TCHAR* m_pszNameSpace;
//String type, It stores Role specified in the command.
_TCHAR* m_pszRole;
//String type, It stores Node specified in the command.
_TCHAR* m_pszNode;
//CHARVECTOR type, It stores the Nodes specified in the command.
CHARVECTOR m_cvNodesList;
//String type, It stores User specified in the command.
_TCHAR* m_pszUser;
//String type, It stores Password specified in the command.
_TCHAR* m_pszPassword;
//String type, It stores Locale value specified
//in the command
_TCHAR* m_pszLocale;
//String type, It stores the Record specified in the command.
_TCHAR* m_pszRecordPath;
//Boolean type, It stores the value of the Privileges option specified
//in the conmmand
BOOL m_bPrivileges;
//Boolean type, It stores the value of the Aggregate option specified
//in the conmmand
BOOL m_bAggregateFlag;
//enumerated data type, It stores the value of the ImpersonationLevel
//specified in the command.
IMPLEVEL m_ImpLevel;
//enumerated data type, It stores the value of the Authentication Level
//specified in the command.
AUTHLEVEL m_AuthLevel;
// Boolean type, It specifies presence of the Interactive option
//in the command
BOOL m_bInteractive;
//Boolean type, It specifies presence of the trace option in
//the command
BOOL m_bTrace;
//Boolean type, It specifies Help(/?) option in the command
BOOL m_bHelp;
//HELPOPTION type, to specify type of help needed ( help option ).
HELPOPTION m_HelpOption;
//CONNECTION information flag
UINT m_uConnInfoFlag;
// role change flag
BOOL m_bRoleFlag;
// namespace change flag
BOOL m_bNSFlag;
// locale change flag
BOOL m_bLocaleFlag;
// prompt for password flag
BOOL m_bAskForPassFlag;
// change of recordpath flag
BOOL m_bRPChange;
// FailFast flag.
BOOL m_bFailFast;
// Output option.
OUTPUTSPEC m_opsOutputOpt;
// Append option.
OUTPUTSPEC m_opsAppendOpt;
// Output file name.
_TCHAR* m_pszOutputFileName;
// File pointer to output file stream..
FILE* m_fpOutFile;
// Append file name.
_TCHAR* m_pszAppendFileName;
// File pointer to append file stream..
FILE* m_fpAppendFile;
WMICLIINT m_nSeqNum;
_TCHAR* m_pszLoggedOnUser;
_TCHAR* m_pszNodeName;
_TCHAR* m_pszStartTime;
// Operations
public:
//Sets the authority value
BOOL SetAuthority(_TCHAR* pszAuthority);
//Sets the namespace passed in parameter to m_pszNameSpace.
BOOL SetNameSpace(_TCHAR* pszNameSpace);
//Sets the role passed in parameter to m_pszRole.
BOOL SetRole(_TCHAR* pszRole);
//Assigns the locale passed in parameter to m_pszLocale.
BOOL SetLocale(_TCHAR* pszLocale);
//Assigns the node passed in parameter to m_pszNode
BOOL SetNode(_TCHAR* pszNode);
//Adds the node passed in parameter to m_cvNodesList vector.
BOOL AddToNodesList(_TCHAR* pszNode);
//Assigns the user passed in parameter to m_pszUser
BOOL SetUser(_TCHAR* pszUser);
//Assigns the password passed in parameter to m_pszPassword
BOOL SetPassword(_TCHAR* pszPassword);
//Assigns the record file passed in parameter to m_pszRecordPath
BOOL SetRecordPath(_TCHAR* pszRecordPath);
//Assigns the bool value passed in parameter to m_bPrivileges
void SetPrivileges(BOOL bEnable);
//Assigns the impersonation level passed in parameter to
//m_ImpLevel.
BOOL SetImpersonationLevel(_TCHAR* const pszImpLevel);
//Assigns the authentication level passed in parameter to
//m_AuthLevel.
BOOL SetAuthenticationLevel(_TCHAR* const pszAuthLevel);
//This function sets the m_bTrace to TRUE,If Trace mode
//is specified in the command
void SetTraceMode(BOOL bTrace);
//This function sets the m_bInteractive to TRUE,If
//interactive mode is specified in the command
void SetInteractiveMode(BOOL bInteractive);
//sets the m_bHelp to TRUE, If /? is specified in the
//command
void SetHelpFlag(BOOL bHelp);
// Sets the namespace change status flag with bNSFlag value
void SetNameSpaceFlag(BOOL bNSFlag);
// Sets the role change status flag with bRoleFlag value
void SetRoleFlag(BOOL bRoleFlag);
// Sets the locale change status flag with bLocaleFlag value
void SetLocaleFlag(BOOL bLocaleFlag);
// Sets the recordpath change status flag with bRPChange value
void SetRPChangeStatus(BOOL bRPChange);
//This function specifies whether the help should
//be brief or full
void SetHelpOption(HELPOPTION helpOption);
//This function sets the Connection Info flag
void SetConnInfoFlag(UINT uFlag);
// Set AskForPass flag.
void SetAskForPassFlag(BOOL bFlag);
// Set m_bFailFast
void SetFailFast(BOOL bFlag);
//This function returns the Connection Info flag
UINT GetConnInfoFlag();
//Returns the string held in m_pszAuthority
_TCHAR* GetAuthority();
//Returns the string held in m_pszNameSpace
_TCHAR* GetNameSpace();
//Returns the string held in m_pszRole
_TCHAR* GetRole();
//Returns the string held in m_pszLocale
_TCHAR* GetLocale();
//Returns the string held in m_pszNode
_TCHAR* GetNode();
//Returns the referrence to m_cvNodesList.
CHARVECTOR& GetNodesList();
//Returns the string held in m_pszUser
_TCHAR* GetUser();
//Returns the string held in m_pszPassword
_TCHAR* GetPassword();
//Returns the string held in m_pszRecordPath
_TCHAR* GetRecordPath();
//Returns the m_bPrivileges value
BOOL GetPrivileges();
// Return the string equivalent of the boolean value
// contained in m_bPrivilges flag
void GetPrivilegesTextDesc(_bstr_t& bstrPriv);
// Return the string equivalent of the boolean value
// contained in m_bFailFast flag
void GetFailFastTextDesc(_bstr_t& bstrFailFast);
// Return the string equivalent of the OUTPUTSPEC value
// contained in m_opsOutputOpt member.
void GetOutputOrAppendTextDesc(_bstr_t& bstrOutputOpt,
BOOL bIsOutput);
// Return the string equivalent of the boolean value
// contained in m_bTrace flag
void GetTraceTextDesc(_bstr_t& bstrTrace);
// Return the string equivalent of the boolean value
// contained in m_bInteractive flag
void GetInteractiveTextDesc(_bstr_t& bstrInteractive);
// Returns the string equivalent of the implevel value
// contained in m_ImpLevel
void GetImpLevelTextDesc(_bstr_t& bstrImpLevel);
// Returns the string equivalent of the authlevel value
// contained in m_AuthLevel
void GetAuthLevelTextDesc(_bstr_t& bstrAuthLevel);
// Returns the ',' separated node string of the available
// nodes
void GetNodeString(_bstr_t& bstrNString);
// Returns the content of the m_pszRecordPath
// if NULL returns "N/A"
void GetRecordPathDesc(_bstr_t& bstrRP);
//Returns impersonation level held in m_ImpLevel
LONG GetImpersonationLevel();
//Returns authentication level held in m_AuthLevel
LONG GetAuthenticationLevel();
//Returns Trace status held in m_bTrace
BOOL GetTraceStatus();
//Returns Interactive status held in m_bInteractive
BOOL GetInteractiveStatus();
//Returns helpflag held in m_bHelp
BOOL GetHelpFlag();
// Returns the change of role status
BOOL GetRoleFlag();
// Returns the change of namespace status
BOOL GetNameSpaceFlag();
// Returns TRUE if message for password
// needs to be prompted.
BOOL GetAskForPassFlag();
// Returns the change of locale status flag
BOOL GetLocaleFlag();
// Returns the change of recordpath status flag
BOOL GetRPChangeStatus();
//Returns helpflagOption held in m_bHelpOption
HELPOPTION GetHelpOption();
// Returns the m_bFailFast flag.
BOOL GetFailFast();
// Initialize the necessary member varialbes
void Initialize();
// General functions
void Uninitialize();
// Clears the Nodes List
BOOL ClearNodesList();
// Set Output option.
void SetOutputOrAppendOption(OUTPUTSPEC opsOpt,
BOOL bIsOutput);
// Get Output option.
OUTPUTSPEC GetOutputOrAppendOption(BOOL bIsOutput);
// Set Output or append File Name, bOutput == TRUE for Output FALSE
// for Append.
BOOL SetOutputOrAppendFileName(const _TCHAR* pszFileName,
BOOL bOutput);
// Get Output or append file name, bOutput == TRUE for Output FALSE for
// Append.
_TCHAR* GetOutputOrAppendFileName(BOOL bOutput);
// Set output or append file pointer, bOutput == TRUE for Output FALSE
// for Append.
void SetOutputOrAppendFilePointer(FILE* fpOutFile, BOOL bOutput);
// Get output file pointer, bOutput == TRUE for Output FALSE for Append.
FILE* GetOutputOrAppendFilePointer(BOOL bOutput);
WMICLIINT GetSequenceNumber();
_TCHAR* GetLoggedonUser();
_TCHAR* GetMgmtStationName();
_TCHAR* GetStartTime();
BOOL SetStartTime();
//Assigns the Aggregate flag passed in parameter to m_bAggregateFlag
void SetAggregateFlag(BOOL bAggregateFlag);
//Gets the agregate flag contained in m_bAggregateFlag
BOOL GetAggregateFlag();
// This function checks and Returns the string equivalent of the
// boolean value contained in m_bAggregateFlag flag
void GetAggregateTextDesc(_bstr_t& bstrAggregate);
};