2025-04-27 07:49:33 -04:00

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