mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
3.0 KiB
125 lines
3.0 KiB
// Factory.h: interface for the CFactory class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(__MYFACTORY_H)
|
|
#define __MYFACTORY_H
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Base Class Factory for HealthMon consumer and providers
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
class CBaseFactory : public IClassFactory
|
|
{
|
|
public:
|
|
CBaseFactory();
|
|
virtual ~CBaseFactory();
|
|
|
|
public:
|
|
// IUnknown
|
|
STDMETHODIMP QueryInterface(REFIID riid, LPVOID* ppv);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
//IClassFactory members
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
STDMETHODIMP LockServer(BOOL);
|
|
|
|
protected:
|
|
ULONG m_cRef;
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Class Factory for Consumer (original agent)
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
class CConsFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Class Factories for Event Providers
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
class CSystemEvtProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
class CDataGroupEvtProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
class CDataCollectorEvtProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
class CDataCollectorPerInstanceEvtProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
class CDataCollectorStatisticsEvtProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
class CThresholdEvtProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
//class CThresholdInstanceEvtProvFactory : public CBaseFactory
|
|
//{
|
|
//public:
|
|
// STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
//};
|
|
|
|
class CActionEvtProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
class CActionTriggerEvtProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Class Factories for Instance Provider
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
class CInstProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Class Factories for Method Provider
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
class CMethProvFactory : public CBaseFactory
|
|
{
|
|
public:
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID*);
|
|
};
|
|
|
|
#endif // !defined(__MYFACTORY_H)
|