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.
169 lines
3.4 KiB
169 lines
3.4 KiB
/*++
|
|
|
|
Copyright (C) 1996-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ProvWsv.H
|
|
|
|
Abstract:
|
|
|
|
|
|
History:
|
|
|
|
--*/
|
|
|
|
#ifndef _Server_EventProvider_H
|
|
#define _Server_EventProvider_H
|
|
|
|
#include "Globals.h"
|
|
#include "CGlobals.h"
|
|
|
|
class CServerObject_ProviderEvents ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CEventProvider : public IWbemEventProvider ,
|
|
public IWbemEventProviderQuerySink ,
|
|
public IWbemEventProviderSecurity ,
|
|
public IWbemProviderIdentity ,
|
|
public IWbemEventConsumerProviderEx ,
|
|
public IWbemProviderInit ,
|
|
public IWbemShutdown
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
CriticalSection m_CriticalSection ;
|
|
|
|
IUnknown *m_Unknown ;
|
|
IWbemEventProvider *m_Provider_IWbemEventProvider ;
|
|
IWbemEventProviderQuerySink *m_Provider_IWbemEventProviderQuerySink ;
|
|
IWbemEventProviderSecurity *m_Provider_IWbemEventProviderSecurity ;
|
|
IWbemProviderIdentity *m_Provider_IWbemProviderIdentity ;
|
|
IWbemEventConsumerProvider *m_Provider_IWbemEventConsumerProvider ;
|
|
IWbemEventConsumerProviderEx *m_Provider_IWbemEventConsumerProviderEx ;
|
|
|
|
IWbemServices *m_CoreService ;
|
|
IUnknown *m_Provider ;
|
|
CServerObject_ProviderEvents *m_EventRegistrar ;
|
|
|
|
public:
|
|
|
|
BSTR m_Locale ;
|
|
BSTR m_User ;
|
|
BSTR m_Namespace ;
|
|
|
|
private:
|
|
|
|
public:
|
|
|
|
CEventProvider (
|
|
|
|
WmiAllocator &a_Allocator ,
|
|
CServerObject_ProviderEvents *a_EventRegistrar ,
|
|
IUnknown *a_Unknown
|
|
) ;
|
|
|
|
~CEventProvider () ;
|
|
|
|
HRESULT Initialize () ;
|
|
|
|
HRESULT UnRegister () ;
|
|
|
|
public:
|
|
|
|
//Non-delegating object IUnknown
|
|
|
|
STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ;
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
/* IWbemEventProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE ProvideEvents (
|
|
|
|
IWbemObjectSink *a_Sink ,
|
|
long a_Flags
|
|
) ;
|
|
|
|
/* IWbemEventProviderQuerySink */
|
|
|
|
HRESULT STDMETHODCALLTYPE NewQuery (
|
|
|
|
unsigned long a_Id ,
|
|
WBEM_WSTR a_QueryLanguage ,
|
|
WBEM_WSTR a_Query
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE CancelQuery (
|
|
|
|
unsigned long a_Id
|
|
) ;
|
|
|
|
/* IWbemEventProviderSecurity */
|
|
|
|
HRESULT STDMETHODCALLTYPE AccessCheck (
|
|
|
|
WBEM_CWSTR a_QueryLanguage ,
|
|
WBEM_CWSTR a_Query ,
|
|
long a_SidLength ,
|
|
const BYTE *a_Sid
|
|
) ;
|
|
|
|
/* IWbemProviderIdentity */
|
|
|
|
HRESULT STDMETHODCALLTYPE SetRegistrationObject (
|
|
|
|
long a_Flags ,
|
|
IWbemClassObject *a_ProviderRegistration
|
|
) ;
|
|
|
|
/* IWbemEventConsumerProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE FindConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
IWbemUnboundObjectSink **a_Consumer
|
|
);
|
|
|
|
/* IWbemEventConsumerProviderEx */
|
|
|
|
HRESULT STDMETHODCALLTYPE ValidateSubscription (
|
|
|
|
IWbemClassObject *a_LogicalConsumer
|
|
) ;
|
|
|
|
/* IWbemProviderInit methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE Initialize (
|
|
|
|
LPWSTR a_User,
|
|
LONG a_Flags,
|
|
LPWSTR a_Namespace,
|
|
LPWSTR a_Locale,
|
|
IWbemServices *a_CoreService, // For anybody
|
|
IWbemContext *a_Context,
|
|
IWbemProviderInitSink *a_Sink // For init signals
|
|
) ;
|
|
|
|
// IWbemShutdown members
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
LONG a_Flags ,
|
|
ULONG a_MaxMilliSeconds ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
} ;
|
|
|
|
#endif // _Server_EventProvider_H
|