151 lines
5.6 KiB
C++
151 lines
5.6 KiB
C++
//***************************************************************************
|
|
//
|
|
// Copyright (c) 1997-1999 Microsoft Corporation
|
|
//
|
|
// WBEM2XML.h
|
|
//
|
|
// alanbos 13-Feb-98 Created.
|
|
//
|
|
// Genral purpose include file.
|
|
//
|
|
//***************************************************************************
|
|
|
|
#ifndef _WBEM2XML_H_
|
|
#define _WBEM2XML_H_
|
|
|
|
#define WRITEBSTR(X) m_pStream->Write ((OLECHAR *)X, wcslen (X) * sizeof (OLECHAR), NULL);
|
|
#define WRITEWSTR(X) m_pStream->Write ( X, wcslen (X) * sizeof (OLECHAR), NULL);
|
|
#define WRITEWSTRL(X,L) m_pStream->Write ( X, L * sizeof (OLECHAR), NULL);
|
|
|
|
#ifdef WMIXML_DONL
|
|
#define WRITENL m_pStream->Write (NEWLINE, 4, NULL);
|
|
#else
|
|
#define WRITENL
|
|
#endif
|
|
|
|
#define WRITESIG m_pStream->Write (UTF16SIG, 2, NULL);
|
|
|
|
#define WRITECDATASTART WRITEBSTR(CDATASTART)
|
|
#define WRITECDATAEND WRITEBSTR(CDATAEND)
|
|
#define WRITEAMP WRITEBSTR(AMPERSAND)
|
|
#define WRITELT WRITEBSTR(LEFTCHEVRON)
|
|
#define WRITEGT WRITEBSTR(RIGHTCHEVRON)
|
|
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CLASS NAME:
|
|
//
|
|
// CWmiToXml
|
|
//
|
|
// DESCRIPTION:
|
|
//
|
|
// Performs conversion .
|
|
//
|
|
//***************************************************************************
|
|
|
|
class CWmiToXml
|
|
{
|
|
private:
|
|
IStream *m_pStream;
|
|
IWbemClassObject *m_pObject;
|
|
bool m_bIsClass;
|
|
IEnumWbemClassObject *m_pEnum;
|
|
|
|
BSTR m_bsNamespacePath;
|
|
|
|
VARIANT_BOOL m_bAllowWMIExtensions;
|
|
WmiXMLFilterEnum m_iQualifierFilter;
|
|
WmiXMLDTDVersionEnum m_iDTDVersion;
|
|
VARIANT_BOOL m_bHostFilter;
|
|
VARIANT_BOOL m_bNamespaceInDeclGroup;
|
|
WmiXMLClassOriginFilterEnum m_iClassOriginFilter;
|
|
WmiXMLDeclGroupTypeEnum m_iDeclGroupType;
|
|
|
|
bool PropertyIsLocal (BSTR name, long flavor, IWbemQualifierSet *pQualSet);
|
|
BSTR GetNamespace(IWbemClassObject *pObject);
|
|
|
|
STDMETHODIMP MapCommonHeaders (BSTR schemaURL);
|
|
STDMETHODIMP MapCommonTrailers ();
|
|
STDMETHODIMP MapDeclGroupHeaders ();
|
|
STDMETHODIMP MapDeclGroupTrailers ();
|
|
STDMETHODIMP MapObjectWithoutHeaders ();
|
|
STDMETHODIMP MapWithPathClass (IWbemQualifierSet *pQualSet);
|
|
STDMETHODIMP MapClass (IWbemQualifierSet *pQualSet);
|
|
STDMETHODIMP MapClassPath (ParsedObjectPath *pParsedPath);
|
|
STDMETHODIMP MapLocalClassPath (ParsedObjectPath *pParsedPath);
|
|
STDMETHODIMP MapClassName (BSTR bsClassName);
|
|
STDMETHODIMP MapNamedInstance (IWbemQualifierSet *pQualSet);
|
|
STDMETHODIMP MapWithPathInstance (IWbemQualifierSet *pQualSet);
|
|
STDMETHODIMP MapInstance (IWbemQualifierSet *pQualSet);
|
|
STDMETHODIMP MapInstancePath (ParsedObjectPath *pParsedPath);
|
|
STDMETHODIMP MapLocalInstancePath (ParsedObjectPath *pParsedPath);
|
|
STDMETHODIMP MapInstanceName (ParsedObjectPath *pParsedPath);
|
|
STDMETHODIMP MapNamespacePath (BSTR bsNamespacePath);
|
|
STDMETHODIMP MapNamespacePath (ParsedObjectPath *pObjectPath);
|
|
STDMETHODIMP MapLocalNamespacePath (ParsedObjectPath *pObjectPath);
|
|
STDMETHODIMP MapQualifiers (IWbemQualifierSet *pQualSet, IWbemQualifierSet *pQualSet2 = NULL);
|
|
STDMETHODIMP MapQualifier (BSTR name, long flavor, VARIANT &var);
|
|
STDMETHODIMP MapProperties ();
|
|
STDMETHODIMP MapProperty (BSTR name, VARIANT &var, CIMTYPE cimtype,
|
|
bool isArray, long flavor);
|
|
STDMETHODIMP MapObjectProperty (BSTR name, VARIANT &var, bool isArray, long flavor);
|
|
void MapArraySize (IWbemQualifierSet *pQualSet);
|
|
STDMETHODIMP MapReference (BSTR name, VARIANT &var, long flavor);
|
|
STDMETHODIMP MapMethods ();
|
|
void MapMethod (BSTR name, IWbemClassObject *pInParams, IWbemClassObject *pOutParams);
|
|
void MapParameter (BSTR paramName, IWbemQualifierSet *pQualSet,
|
|
CIMTYPE cimtype, IWbemQualifierSet *pQualSet2 = NULL);
|
|
void MapReturnParameter(BSTR strParameterName, VARIANT &variant);
|
|
|
|
STDMETHODIMP MapType (CIMTYPE cimtype);
|
|
STDMETHODIMP MapValue (VARIANT &var);
|
|
STDMETHODIMP MapValue (CIMTYPE cimtype, bool isArray, VARIANT &var);
|
|
STDMETHODIMP MapEmbeddedObjectValue (bool isArray, VARIANT &var);
|
|
STDMETHODIMP MapKeyValue (VARIANT &var);
|
|
void MapStrongType (IWbemQualifierSet *pQualSet);
|
|
void GetClassName (IWbemQualifierSet *pQualSet);
|
|
void MapLocal (long flavor);
|
|
void MapClassOrigin (BSTR &classOrigin);
|
|
|
|
// Primitive functions to map individual values
|
|
void MapLongValue (long val);
|
|
void MapShortValue (short val);
|
|
void MapDoubleValue (double val);
|
|
void MapFloatValue (float val);
|
|
void MapBoolValue (bool val);
|
|
void MapByteValue (unsigned char val);
|
|
void MapCharValue (long val);
|
|
void MapStringValue (BSTR &val);
|
|
void MapReferenceValue (VARIANT &var);
|
|
void MapReferenceValue (ParsedObjectPath *pObjectPath);
|
|
|
|
ParsedObjectPath* IsReference (VARIANT &var);
|
|
LPWSTR GetHostName();
|
|
|
|
|
|
public:
|
|
|
|
CWmiToXml(BSTR bsNamespacePath, IStream *pStream, IWbemClassObject *pObject, VARIANT_BOOL bAllowWMIExtensions,
|
|
WmiXMLFilterEnum iQualifierFilter,
|
|
VARIANT_BOOL bHostFilter,
|
|
WmiXMLDTDVersionEnum iDTDVersion,
|
|
VARIANT_BOOL bNamespaceInDeclGroup,
|
|
WmiXMLClassOriginFilterEnum iClassOriginFilter,
|
|
WmiXMLDeclGroupTypeEnum iDeclGroupType);
|
|
CWmiToXml(BSTR bsNamespacePath, IStream *pStream, IEnumWbemClassObject *pObject, VARIANT_BOOL bAllowWMIExtensions,
|
|
WmiXMLFilterEnum m_iQualifierFilter,
|
|
VARIANT_BOOL bHostFilter,
|
|
WmiXMLDTDVersionEnum iDTDVersion,
|
|
VARIANT_BOOL bNamespaceInDeclGroup,
|
|
WmiXMLClassOriginFilterEnum iClassOriginFilter,
|
|
WmiXMLDeclGroupTypeEnum iDeclGroupType);
|
|
~CWmiToXml(void);
|
|
|
|
STDMETHODIMP MapEnum (BSTR schemaURL);
|
|
STDMETHODIMP MapObject (BSTR schemaURL);
|
|
};
|
|
|
|
|
|
#endif
|