183 lines
5.9 KiB
C++
183 lines
5.9 KiB
C++
/***************************************************************************/
|
|
//
|
|
// Copyright (c) 2000-2001 Microsoft Corporation
|
|
//
|
|
// WbemClassObject.h
|
|
//
|
|
// ramrao Jan 4th 2001 - Created
|
|
//
|
|
//
|
|
// Declaration of CWbemClassObject class and some related classes
|
|
// This class implements IWbemClassObject interface
|
|
//
|
|
//***************************************************************************/
|
|
|
|
#include "wbemqualset.h"
|
|
|
|
//========================================================================
|
|
// class to store a property
|
|
//========================================================================
|
|
class CProperty :public CPropRoot
|
|
{
|
|
private:
|
|
WCHAR * m_pszOriginClass;
|
|
IXMLDOMNode * m_pNode;
|
|
CWbemQualifierSet * m_pQualSet; // PropertyQualifier
|
|
|
|
public:
|
|
CProperty();
|
|
virtual ~CProperty();
|
|
|
|
HRESULT SetPropOrigin(WCHAR * pstrOrigin);
|
|
WCHAR * GetPropOrigin() {return m_pszOriginClass;}
|
|
CWbemQualifierSet * GetQualifierSet() { return m_pQualSet;}
|
|
};
|
|
|
|
|
|
|
|
|
|
//========================================================================
|
|
// Class to implement IWbemClassObject interface
|
|
//========================================================================
|
|
class CWbemClassObject:public IWbemClassObject
|
|
{
|
|
private:
|
|
CEnumObject m_PropEnum;
|
|
LONG m_cRef;
|
|
CWbemQualifierSet * m_pQualSet; // class/instance qualifierset
|
|
BOOL m_bClass;
|
|
|
|
IXMLDOMDocument2 * m_pIDomDoc;
|
|
BOOL m_bInitObject;
|
|
|
|
public:
|
|
CWbemClassObject();
|
|
virtual ~CWbemClassObject();
|
|
|
|
// IUnknown Methods
|
|
STDMETHODIMP QueryInterface(REFIID, LPVOID*);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetQualifierSet(
|
|
/* [out] */ IWbemQualifierSet** ppQualSet);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Get(
|
|
/* [in, string] */ LPCWSTR wszName,
|
|
/* [in] */ long lFlags,
|
|
/* [out, OPTIONAL] */ VARIANT* pVal,
|
|
/* [out, OPTIONAL] */ CIMTYPE* pType,
|
|
/* [out, OPTIONAL] */ long* plFlavor);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Put(
|
|
/* [in, string] */ LPCWSTR wszName,
|
|
/* [in] */ long lFlags,
|
|
/* [in] */ VARIANT* pVal,
|
|
/* [in] */ CIMTYPE Type);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Delete(/* [in, string] */ LPCWSTR wszName);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetNames(
|
|
/* [in, string] */ LPCWSTR wszQualifierName,
|
|
/* [in] */ long lFlags,
|
|
/* [in] */ VARIANT* pQualifierVal,
|
|
/* [out] */ SAFEARRAY * pNames);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE BeginEnumeration(/* [in] */ long lEnumFlags);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Next(
|
|
/* [in] */ long lFlags,
|
|
/* [out, OPTIONAL] */ BSTR* strName,
|
|
/* [out, OPTIONAL] */ VARIANT* pVal,
|
|
/* [out, OPTIONAL] */ CIMTYPE* pType,
|
|
/* [out, OPTIONAL] */ long* plFlavor
|
|
);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE EndEnumeration();
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetPropertyQualifierSet(
|
|
/* [in, string] */ LPCWSTR wszProperty,
|
|
/* [out] */ IWbemQualifierSet** ppQualSet);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Clone(
|
|
/* [out] */ IWbemClassObject** ppCopy
|
|
);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetObjectText(
|
|
/* [in] */ long lFlags,
|
|
/* [out] */ BSTR* pstrObjectText
|
|
);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SpawnDerivedClass(
|
|
/* [in] */ long lFlags,
|
|
/* [out] */ IWbemClassObject** ppNewClass);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SpawnInstance(
|
|
/* [in] */ long lFlags,
|
|
/* [out] */ IWbemClassObject** ppNewInstance);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE CompareTo(
|
|
/* [in] */ long lFlags,
|
|
/* [in] */ IWbemClassObject* pCompareTo
|
|
);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetPropertyOrigin(
|
|
/* [in, string] */ LPCWSTR wszName,
|
|
/* [out] */ BSTR* pstrClassName);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE InheritsFrom(
|
|
/* [in] */ LPCWSTR strAncestor);
|
|
|
|
// Method manipulation.
|
|
// ====================
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetMethod(
|
|
/* [in, string] */ LPCWSTR wszName,
|
|
/* [in] */ long lFlags,
|
|
/* [out] */ IWbemClassObject** ppInSignature,
|
|
/* [out] */ IWbemClassObject** ppOutSignature);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE PutMethod(
|
|
/* [in, string] */ LPCWSTR wszName,
|
|
/* [in] */ long lFlags,
|
|
/* [in] */ IWbemClassObject* pInSignature,
|
|
/* [in] */ IWbemClassObject* pOutSignature);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE DeleteMethod(
|
|
/* [in, string] */ LPCWSTR wszName);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE BeginMethodEnumeration(/* [in] */ long lEnumFlags);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE NextMethod(
|
|
/* [in] */ long lFlags,
|
|
/* [out, OPTIONAL] */ BSTR* pstrName,
|
|
/* [out, OPTIONAL] */ IWbemClassObject** ppInSignature,
|
|
/* [out, OPTIONAL] */ IWbemClassObject** ppOutSignature);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE EndMethodEnumeration();
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetMethodQualifierSet(
|
|
/* [in, string] */ LPCWSTR wszMethod,
|
|
/* [out] */ IWbemQualifierSet** ppQualSet);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetMethodOrigin(
|
|
/* [in, string] */ LPCWSTR wszMethodName,
|
|
/* [out] */ BSTR* pstrClassName);
|
|
|
|
|
|
|
|
HRESULT FInit(VARIANT *pVarXml);
|
|
|
|
private:
|
|
HRESULT InitializeQualifiers();
|
|
HRESULT InitializePropQualifiers(WCHAR * pstrProp);
|
|
HRESULT InitializeMethodQualifiers(WCHAR * pstrMethod);
|
|
HRESULT InitializeProperty(WCHAR * pstrProp);
|
|
HRESULT InitializeAllProperties();
|
|
HRESULT InitializeMethod(WCHAR * pstrMethod);
|
|
HRESULT InitializeAllMethods();
|
|
HRESULT GetProperty(CProperty * pProperty,VARIANT * pVal, CIMTYPE * pType,LONG * plFlavor);
|
|
HRESULT InitObject();
|
|
|
|
};
|