// ************************************************************************** // // Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved // // File: EVPROV.H // // Description: // Sample event provider - header file defines event provider class // // History: // // ************************************************************************** #ifndef _EVPROV_H_ #define _EVPROV_H_ // {3CD5248E-14F9-11d1-AE9C-00C04FB68820} DEFINE_GUID(CLSID_MyEventProvider, 0x3cd5248e, 0x14f9, 0x11d1, 0xae, 0x9c, 0x0, 0xc0, 0x4f, 0xb6, 0x88, 0x20); #define EVENTCLASS L"MyEvent" class CMyEventProvider : public IWbemEventProvider, public IWbemProviderInit { ULONG m_cRef; IWbemServices *m_pNs; IWbemObjectSink *m_pSink; IWbemClassObject *m_pEventClassDef; int m_eStatus; HANDLE m_hThread; static DWORD WINAPI EventThread(LPVOID pArg); void InstanceThread(); public: enum { Pending, Running, PendingStop, Stopped }; CMyEventProvider(); ~CMyEventProvider(); // // IUnknown members // STDMETHODIMP QueryInterface(REFIID, LPVOID *); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void); // Inherited from IWbemEventProvider // ================================= HRESULT STDMETHODCALLTYPE ProvideEvents( /* [in] */ IWbemObjectSink __RPC_FAR *pSink, /* [in] */ long lFlags ); // Inherited from IWbemProviderInit // ================================ HRESULT STDMETHODCALLTYPE Initialize( /* [in] */ LPWSTR pszUser, /* [in] */ LONG lFlags, /* [in] */ LPWSTR pszNamespace, /* [in] */ LPWSTR pszLocale, /* [in] */ IWbemServices __RPC_FAR *pNamespace, /* [in] */ IWbemContext __RPC_FAR *pCtx, /* [in] */ IWbemProviderInitSink __RPC_FAR *pInitSink ); }; #endif