windows-nt/Source/XPSP1/NT/admin/wmi/wbem/winmgmt/esscli/wbemmeta.h

58 lines
1.3 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
#ifndef __WBEM_METADATA__H_
#define __WBEM_METADATA__H_
#include "esscpol.h"
#include <parmdefs.h>
#include <wbemidl.h>
#include <wbemint.h>
#include <wbemcomn.h>
class ESSCLI_POLARITY CMetaData : public IWbemMetaData
{
protected:
long m_lRef;
public:
CMetaData() : m_lRef(0){}
virtual ~CMetaData(){}
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppv);
ULONG STDMETHODCALLTYPE AddRef();
ULONG STDMETHODCALLTYPE Release();
STDMETHOD(GetClass)(LPCWSTR wszName, IWbemContext* pContext,
IWbemClassObject** ppClass);
public:
virtual HRESULT GetClass(LPCWSTR wszName, IWbemContext* pContext,
_IWmiObject** ppClass) = 0;
};
class ESSCLI_POLARITY CStandardMetaData : public CMetaData
{
protected:
IWbemServices* m_pNamespace;
public:
CStandardMetaData(IWbemServices* pNamespace);
~CStandardMetaData();
virtual HRESULT GetClass(LPCWSTR wszName, IWbemContext* pContext,
_IWmiObject** ppClass);
void Clear();
};
class ESSCLI_POLARITY CContextMetaData
{
protected:
CMetaData* m_pMeta;
IWbemContext* m_pContext;
public:
CContextMetaData(CMetaData* pMeta, IWbemContext* pContext);
~CContextMetaData();
HRESULT GetClass(LPCWSTR wszName, _IWmiObject** ppClass);
};
#endif