|
|
//
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
//
// ***************************************************************************
//
// Original Author: Rajesh Rao
//
// $Author: rajeshr $
// $Date: 6/11/98 4:43p $
// $Workfile:wbemhelp.h $
//
// $Modtime: 6/11/98 11:21a $
// $Revision: 1 $
// $Nokeywords: $
//
//
// Description: Contains the declaration for the CWBEMHelper class. This is
// a class that has many static helper functions pertaining to WBEM
//***************************************************************************
/////////////////////////////////////////////////////////////////////////
#ifndef WBEM_HELPER_H
#define WBEM_HELPER_H
class CWBEMHelper { protected: static LPCWSTR EQUALS_QUOTE; static LPCWSTR QUOTE; static LPCWSTR OBJECT_CATEGORY_EQUALS; static LPCWSTR OBJECT_CLASS_EQUALS; public:
//***************************************************************************
//
// CWBEMHelper::PutBSTRProperty
//
// Purpose: Puts a BSTR property
//
// Parameters:
// pWbemClass : The WBEM class on which the property has to be put
// strPropertyName : The name of the property to be put
// strPropertyValue : The value of the property to be put
// deallocatePropertyValue : whether to deallocate the parameter strPropertyValue before
// the function returns
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT PutBSTRProperty(IWbemClassObject *pWbemClass, const BSTR strPropertyName, BSTR strPropertyValue, BOOLEAN deallocatePropertyValue = TRUE);
//***************************************************************************
//
// CWBEMHelper::GetBSTRProperty
//
// Purpose: Gets a BSTR property
//
// Parameters:
// pWbemClass : The WBEM class on which the property has to be gotten
// strPropertyName : The name of the property to be gotten
// pStrPropertyValue : The address where the value of the property to should be put
//
// Return Value: The COM value representing the return status. The user should delete the
// string allocated when done
//
//***************************************************************************
static HRESULT GetBSTRProperty(IWbemClassObject *pWbemClass, const BSTR strPropertyName, BSTR *pStrPropertyValue);
//***************************************************************************
//
// CWBEMHelper::PutBSTRPropertyT
//
// Purpose: Puts a BSTR property
//
// Parameters:
// pWbemClass : The WBEM class on which the property has to be put
// strPropertyName : The name of the property to be put
// lpszPropertyValue : The value of the property to be put
// deallocatePropertyValue : whether to deallocate the parameter lpszPropertyValue before
// the function returns
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT PutBSTRPropertyT(IWbemClassObject *pWbemClass, const BSTR strPropertyName, LPWSTR lpszPropertyValue, BOOLEAN deallocatePropertyValue = TRUE);
//***************************************************************************
//
// CWBEMHelper::GetBSTRPropertyT
//
// Purpose: Gets a BSTR property
//
// Parameters:
// pWbemClass : The WBEM class on which the property has to be put
// strPropertyName : The name of the property to be put
// lppszPropertyValue : The pointer to LPWSTR where the value of the property will be placed. The user should
// delete this once he is done with it.
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT GetBSTRPropertyT(IWbemClassObject *pWbemClass, const BSTR strPropertyName, LPWSTR *lppszPropertyValue);
//***************************************************************************
//
// CWBEMHelper::PutBSTRArrayProperty
//
// Purpose: Puts a BSTR Array property
//
// Parameters:
// pWbemClass : The WBEM class on which the property has to be put
// strPropertyName : The name of the property to be put
// pStrPropertyValue : The array of BSTRS that have the values of the property to be put
// lCount : The number of elements in the above array
// deallocatePropertyValue : whether to deallocate the parameter strPropertyValue before
// the function returns
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT PutBSTRArrayProperty(IWbemClassObject *pWbemClass, const BSTR strPropertyName, VARIANT *pVariant);
//***************************************************************************
//
// CWBEMHelper::GetUint8ArrayProperty
//
// Purpose: Gets a VT_UI1 Array property
//
// Parameters:
// pWbemClass : The WBEM class on which the property has to be gotten
// strPropertyName : The name of the property
// ppPropertyValuea : The address of a pointer to BYTE where an array of values will be places
// plCount : The address where the count of elements will be placed
//
// Return Value: The COM value representing the return status. The user should deallocate the array
// returned when done.
//
//***************************************************************************
static HRESULT GetUint8ArrayProperty(IWbemClassObject *pWbemClass, const BSTR strPropertyName, LPBYTE *ppPropertyValues, ULONG *plCount);
//***************************************************************************
//
// CWBEMHelper :: PutBOOLQualifier
//
// Purpose: Puts a BOOLEAN Qualifier
//
// Parameters:
// pQualifierSet : The Qualifier set on which this qualifier has to be put
// strQualifierName : The name of the qualifier to be put
// bQualifierValue : The value of the qualifier to be put
// lFlavour : The flavour of the qualifer
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT PutBOOLQualifier(IWbemQualifierSet *pQualifierSet, const BSTR strQualifierName, VARIANT_BOOL bQualifierValue, LONG lFlavour);
//***************************************************************************
//
// CWBEMHelper :: GetBOOLQualifier
//
// Purpose: Gets a BOOLEAN Qualifier
//
// Parameters:
// pQualifierSet : The Qualifier set on which this qualifier has to be put
// strQualifierName : The name of the qualifier to get
// bQualifierValue : The value of the qualifier to get
// lFlavour : The flavour of the qualifer
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT GetBOOLQualifier(IWbemQualifierSet *pQualifierSet, const BSTR strQualifierName, VARIANT_BOOL *pbQualifierValue, LONG *plFlavour);
//***************************************************************************
//
// CWBEMHelper :: PutI4Qualifier
//
// Purpose: Puts a VT_I4 Qualifier
//
// Parameters:
// pQualifierSet : The Qualifier set on which this qualifier has to be put
// strQualifierName : The name of the qualifier to be put
// lQualifierValue : The value of the qualifier to be put
// lFlavour : The flavour of the qualifer
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT PutI4Qualifier(IWbemQualifierSet *pQualifierSet, const BSTR strQualifierName, long lQualifierValue, LONG lFlavour);
//***************************************************************************
//
// CWBEMHelper :: PutBSTRQualifier
//
// Purpose: Puts a BSTR Qualifier
//
// Parameters:
// pQualifierSet : The Qualifier set on which this qualifier has to be put
// strQualifierName : The name of the qualifier to be put
// strQualifierValue : The value of the qualifier to be put
// lFlavour : The flavour of the qualifer
// deallocateQualifierValue : whether to deallocate the parameter strQualifierValue
// before the function returns
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT PutBSTRQualifier(IWbemQualifierSet *pQualifierSet, const BSTR strQualifierName, BSTR strQualifierValue, LONG lFlavour, BOOLEAN deallocateQualifierValue = TRUE);
//***************************************************************************
//
// CWBEMHelper :: GetBSTRQualifierT
//
// Purpose: Gets a BSTR Qualifier
//
// Parameters:
// pQualifierSet : The Qualifier set on which this qualifier has to be put
// strQualifierName : The name of the qualifier to be put
// lppszQualifierValue : The address of the LPWSTR where the qualifier value will be put/
// It is the duty of the caller to free this memory when done
// plFlavour : The address where the qualifier flavor will be put. This is optional
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT GetBSTRQualifierT(IWbemQualifierSet *pQualifierSet, const BSTR strQualifierName, LPWSTR *lppszQualifierValue, LONG *plFlavour);
//***************************************************************************
//
// CWBEMHelper :: PutLONGQualifier
//
// Purpose: Puts a LONG Qualifier
//
// Parameters:
// pQualifierSet : The Qualifier set on which this qualifier has to be put
// strQualifierName : The name of the qualifier to be put
// lQualifierValue : The value of the qualifier to be put
// lFlavour : The flavour of the qualifer
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT PutLONGQualifier(IWbemQualifierSet *pQualifierSet, const BSTR strQualifierName, LONG lQualifierValue, LONG lFlavour);
//***************************************************************************
//
// CWBEMHelper :: PutUint8ArrayQualifier
//
// Purpose: Puts a Uint8 array Qualifier
//
// Parameters:
// pQualifierSet : The Qualifier set on which this qualifier has to be put
// strQualifierName : The name of the qualifier to be put
// lpQualifierValue : The value of the qualifier to be put. An array of BYTEs
// dwLenght : The number of elements in the above array
// lFlavour : The flavour of the qualifer
//
// Return Value: The COM value representing the return status
//
//***************************************************************************
static HRESULT PutUint8ArrayQualifier(IWbemQualifierSet *pQualifierSet, const BSTR strQualifierName, LPBYTE lpQualifierValue, DWORD dwLength, LONG lFlavour);
//***************************************************************************
//
// CWBEMHelper::GetADSIPathFromObjectPath
//
// Purpose: Gets the ADSI Path from an object ref of a WBEM object
//
// Parameters :
// pszObjectRef : The object ref to a WBEM instance
//
// Return Value : The ADSI Path in the key of the object ref. The user should delete this
// when done
//
//***************************************************************************
static LPWSTR GetADSIPathFromObjectPath(LPCWSTR pszObjectRef);
//***************************************************************************
//
// CWBEMHelper::GetObjectRefFromADSIPath
//
// Purpose: Gets the object ref of a WBEM object from its ADSI path
//
// Parameters :
// pszADSIPath : The ADSI path to an ADSI instance
// pszWbemClassName : The WBEM class name of the instance
//
// Return Value : The WBEM object ref of the ADSI instance. The user should delete this
// when done
//
//***************************************************************************
static BSTR GetObjectRefFromADSIPath(LPCWSTR pszADSIPath, LPCWSTR pszWBEMClassName);
static HRESULT FormulateInstanceQuery(IWbemServices *pServices, IWbemContext *pContext, BSTR strClass, IWbemClassObject *pWbemClass, LPWSTR pszObjectCategory, BSTR strClassQualifier, BSTR strCategoryQualifier); static HRESULT AddSingleCategory(LPWSTR pszObjectCategory, DWORD *pdwOutput, IWbemClassObject *pNextObject, BSTR strClassQualifier, BSTR strCategoryQualifier);
static BOOLEAN IsPresentInBstrList(BSTR *pstrProperyNames, DWORD dwNumPropertyNames, BSTR strPropertyName);
};
#endif /* WBEM_HELPER_H */
|