104 lines
2.0 KiB
C++
104 lines
2.0 KiB
C++
/*++
|
|
|
|
Copyright (C) 1996-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ProvResv.H
|
|
|
|
Abstract:
|
|
|
|
|
|
History:
|
|
|
|
--*/
|
|
|
|
#ifndef _CProvider_IWbemEventProvider_H
|
|
#define _CProvider_IWbemEventProvider_H
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CProvider_IWbemEventProvider : public IWbemEventProvider ,
|
|
public IWbemProviderInit ,
|
|
public IWbemShutdown
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ; //Object reference count
|
|
LONG m_InternalReferenceCount ; //Object reference count
|
|
|
|
WmiAllocator &m_Allocator ;
|
|
|
|
CRITICAL_SECTION m_CriticalSection ;
|
|
|
|
IWbemServices *m_CoreService ;
|
|
IWbemClassObject *m_EventObject ;
|
|
IWbemObjectSink *m_EventSink ;
|
|
|
|
HANDLE m_ThreadTerminate ;
|
|
HANDLE m_ThreadHandle ;
|
|
|
|
BSTR m_Namespace ;
|
|
BSTR m_Locale ;
|
|
BSTR m_User ;
|
|
|
|
private:
|
|
|
|
static DWORD ThreadExecutionFunction ( void *a_Context ) ;
|
|
|
|
public:
|
|
|
|
CProvider_IWbemEventProvider ( WmiAllocator &a_Allocator ) ;
|
|
~CProvider_IWbemEventProvider () ;
|
|
|
|
STDMETHODIMP_( ULONG ) InternalAddRef () ;
|
|
STDMETHODIMP_( ULONG ) InternalRelease () ;
|
|
|
|
public:
|
|
|
|
//Non-delegating object IUnknown
|
|
|
|
STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ;
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ProvideEvents (
|
|
|
|
IWbemObjectSink *a_Sink ,
|
|
LONG a_Flags
|
|
) ;
|
|
|
|
/* IWbemProviderInit methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE Initialize (
|
|
|
|
LPWSTR a_User ,
|
|
LONG a_Flags ,
|
|
LPWSTR a_Namespace ,
|
|
LPWSTR a_Locale ,
|
|
IWbemServices *a_Core ,
|
|
IWbemContext *a_Context ,
|
|
IWbemProviderInitSink *a_Sink
|
|
) ;
|
|
|
|
// IWmi_UnInitialize members
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
LONG a_Flags ,
|
|
ULONG a_MaxMilliSeconds ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
} ;
|
|
|
|
|
|
#endif // _CProvider_IWbemEventProvider_H
|