50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
// Consumer.h: interface for the CConsumer class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined( __CONSUMER_H )
|
|
#define __CONSUMER_H
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
class CConsumer : public IWbemUnboundObjectSink
|
|
{
|
|
// Constructor/Destructor
|
|
public:
|
|
CConsumer();
|
|
virtual ~CConsumer();
|
|
|
|
|
|
public:
|
|
// IUnknown
|
|
STDMETHODIMP QueryInterface(REFIID riid, LPVOID* ppv);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
// IWbemUnboundObjectSink override
|
|
STDMETHODIMP IndicateToConsumer(IWbemClassObject* pLogicalConsumer,
|
|
LONG lNumObjects, IWbemClassObject** ppObjects);
|
|
|
|
// CConsumer
|
|
private:
|
|
HRESULT ProcessEvent(IWbemClassObject*);
|
|
HRESULT ProcessModEvent(IWbemClassObject*, IWbemClassObject*);
|
|
// HRESULT GetWbemClassObject(IWbemClassObject**, VARIANT*);
|
|
|
|
private:
|
|
DWORD m_cRef;
|
|
|
|
// Static thread function
|
|
protected:
|
|
static unsigned int __stdcall Update(void *pv);
|
|
|
|
HANDLE m_hUpdateThrdFn;
|
|
unsigned m_uThrdId;
|
|
long m_lAgentInterval;
|
|
|
|
};
|
|
|
|
#endif // __CONSUMER_H
|