windows-nt/Source/XPSP1/NT/admin/wmi/wbem/tools/wmic/cmdalias.h

128 lines
4.1 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*****************************************************************************
Copyright information : Copyright (c) 1998-1999 Microsoft Corporation
File Name : CmdAlias.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 CmdAlias
Revision History : None
Last Modified By : C V Nandi
Last Modified Date : 16-March-2001
*****************************************************************************/
/*----------------------------------------------------------------------------
Class Name : CCmdAlias
Class Type : Concrete
Brief Description : This class encapsulates the functionality needed for
accessing the alias information from the WMI.
Super Classes : None
Sub Classes : None
Classes Used : None
Interfaces Used : WMI COM Interfaces
---------------------------------------------------------------------------*/
// Forward declaration of the classes
class CParsedInfo;
class CCmdAlias
{
public:
// Construction
CCmdAlias();
// Destruction
~CCmdAlias();
// Restrict Assignment
CCmdAlias& operator=(CCmdAlias& rAliasObj);
// Attributes
private:
// Points to the alias definitions namespace.
IWbemServices* m_pIAliasNS;
// Pointer to localized Namespace.
IWbemServices* m_pILocalizedNS;
// Trace flag.
BOOL m_bTrace;
// Error log option.
ERRLOGOPT m_eloErrLogOpt;
// Operations
private:
// Obtain the alias connection information like
// 1. namespace 2. user 3. password
// 4. locale 5. server 6. authority
RETCODE ObtainAliasConnectionInfo(CParsedInfo& rParsedInfo,
IWbemClassObject* pIObj);
// Obtain Qualifiers associated with the IWbemClassObject.
HRESULT GetQualifiers(IWbemClassObject *pIWbemClassObject,
PROPERTYDETAILS& rPropDet,
CParsedInfo& rParsedInfo);
public:
// Obtains all the Friendly Names and descriptions
HRESULT ObtainAliasFriendlyNames(CParsedInfo& rParsedInfo);
// Obtains the verbs and their details
// associated with the alias object
HRESULT ObtainAliasVerbDetails(CParsedInfo& rParsedInfo);
// Obtains the verbs and their descriptions
// associated with the alias object
// pbCheckWritePropsAvailInAndOut == TRUE then functions checks for
// availibility of properties and returns in the same
// pbCheckWritePropsAvailInAndOut parameter.
HRESULT ObtainAliasPropDetails(CParsedInfo& rParsedInfo,
BOOL *pbCheckWritePropsAvailInAndOut = NULL,
BOOL *pbCheckFULLPropsAvailInAndOut = NULL);
// Obtains the properties for the Format associated with the alias object.
// If bCheckForListFrmsAvail == TRUE then functions checks only for
// availibilty of list formats with the alias.
BOOL ObtainAliasFormat(CParsedInfo& rParsedInfo,
BOOL bCheckForListFrmsAvail = FALSE);
// Obtains the formats available for a given alias.
HRESULT PopulateAliasFormatMap(CParsedInfo& rParsedInfo);
// Connects to WMI with alias namespace .
HRESULT ConnectToAlias(CParsedInfo& rParsedInfo,
IWbemLocator* pIWbemLocator);
// Obtain the alias information like
// 1. alias PWhere expression value
// 2. alias Target string
RETCODE ObtainAliasInfo(CParsedInfo& rParsedInfo);
// Get Description from object.
HRESULT GetDescOfObject(IWbemClassObject* pIWbemClassObject,
_bstr_t& bstrDescription,
CParsedInfo& rParsedInfo,
BOOL bLocalizeFlag = FALSE);
// Obtains the Translate Table Entries.
BOOL ObtainTranslateTableEntries(CParsedInfo& rParsedInfo);
// Obtains translate table entries from alias definition.
HRESULT ObtainTranslateTables(CParsedInfo& rParsedInfo);
// Get the localized description values
HRESULT GetLocalizedDesc(_bstr_t bstrRelPath,
_bstr_t& bstrDesc,
CParsedInfo& rParsedInfo);
// Connect to the localized namespace.
HRESULT ConnectToLocalizedNS(CParsedInfo&, IWbemLocator* pILocator);
// Checks whether method are available with alias or not.
BOOL AreMethodsAvailable(CParsedInfo& rParsedInfo);
//Uninitializes the the member variables
void Uninitialize(BOOL bFinal = FALSE);
};