#ifndef __WBEM_PERF_CONSUMER__H_ #define __WBEM_PERF_CONSUMER__H_ #include #include #include "txttempl.h" #include class CPerfConsumer : public CUnk { protected: class XProvider : public CImpl { public: XProvider(CPerfConsumer* pObj) : CImpl(pObj){} HRESULT STDMETHODCALLTYPE FindConsumer( IWbemClassObject* pLogicalConsumer, IWbemUnboundObjectSink** ppConsumer); } m_XProvider; friend XProvider; class XInit : public CImpl { public: XInit(CPerfConsumer* pObj) : CImpl(pObj){} HRESULT STDMETHODCALLTYPE Initialize( LPWSTR, LONG, LPWSTR, LPWSTR, IWbemServices*, IWbemContext*, IWbemProviderInitSink*); } m_XInit; friend XInit; public: CPerfConsumer(CLifeControl* pControl = NULL, IUnknown* pOuter = NULL) : CUnk(pControl, pOuter), m_XProvider(this), m_XInit(this) {} ~CPerfConsumer(){} void* GetInterface(REFIID riid); }; class CPerfSink : public CUnk { protected: class XSink : public CImpl { public: XSink(CPerfSink* pObj) : CImpl(pObj){} HRESULT STDMETHODCALLTYPE IndicateToConsumer( IWbemClassObject* pLogicalConsumer, long lNumObjects, IWbemClassObject** apObjects); } m_XSink; friend XSink; protected: CTextTemplate m_Template; WString m_wsFile; FILE* m_f; long m_nLogEvery; long m_nCurrent; public: CPerfSink(CLifeControl* pControl = NULL) : CUnk(pControl), m_XSink(this), m_f(NULL), m_nCurrent(0) {} HRESULT Initialize(IWbemClassObject* pLogicalConsumer); ~CPerfSink(); void* GetInterface(REFIID riid); }; #endif