Leaked source code of windows server 2003
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

/*++
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