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.
|
|
//=============================================================================
//
// Copyright (c) 1996-1999, Microsoft Corporation, All rights reserved
//
// STDCONS.H
//
// This file defines the class for permanent event consumer.
//
// Classes defined:
//
// CPermanentConsumer
//
// History:
//
// 11/27/96 a-levn Compiles.
//
//=============================================================================
#ifndef __PERM_EVENT_CONSUMER__H_
#define __PERM_EVENT_CONSUMER__H_
#include "binding.h"
#include "consprov.h"
#include "fastall.h"
class CPermanentConsumer : public CEventConsumer { protected: IWbemUnboundObjectSink* m_pCachedSink; DWORD m_dwLastDelivery; IWbemClassObject* m_pLogicalConsumer; static long mstatic_lMaxQueueSizeHandle; static long mstatic_lSidHandle; static bool mstatic_bHandlesInitialized; static HRESULT InitializeHandles( _IWmiObject* pObject); protected: HRESULT RetrieveProviderRecord( RELEASE_ME CConsumerProviderRecord** ppRecord, RELEASE_ME IWbemClassObject** ppLogicalConsumer = NULL); HRESULT RetrieveSink(RELEASE_ME IWbemUnboundObjectSink** ppSink, RELEASE_ME IWbemClassObject** ppLogicalConsumer); HRESULT ObtainSink(RELEASE_ME IWbemUnboundObjectSink** ppSink, RELEASE_ME IWbemClassObject** ppLogicalConsumer); HRESULT ClearCache(); HRESULT Indicate(IWbemUnboundObjectSink* pSink, IWbemClassObject* pLogicalConsumer, long lNumEvents, IWbemEvent** apEvents, BOOL bSecure);
HRESULT ConstructErrorEvent(LPCWSTR wszEventClass, IWbemEvent* pEvent, IWbemEvent** ppErrorEvent); HRESULT ReportConsumerFailure(IWbemEvent* pEvent, HRESULT hresError, _IWmiObject* pErrorObj); HRESULT ReportQosFailure(IWbemEvent* pEvent, HRESULT hresError); HRESULT ReportConsumerFailure(long lNumEvents, IWbemEvent** apEvents, HRESULT hresError);
HRESULT Redeliver(long lNumEvents, IWbemEvent** apEvents, BOOL bSecure);
void FireSinkUnloadedEvent();
public: CPermanentConsumer(CEssNamespace* pNamespace); HRESULT Initialize(READ_ONLY IWbemClassObject* pActualConsumer); virtual ~CPermanentConsumer();
BOOL UnloadIfUnusedFor(CWbemInterval Interval); BOOL IsFullyUnloaded(); BOOL IsPermanent() const {return TRUE;} HRESULT ResetProviderRecord(LPCWSTR wszProvider); static SYSFREE_ME BSTR ComputeKeyFromObj(CEssNamespace* pNamespace, IWbemClassObject* pConsumerObj);
virtual HRESULT ActuallyDeliver(long lNumEvents, IWbemEvent** apEvents, BOOL bSecure, CEventContext* pContext); HRESULT ReportQueueOverflow(IWbemEvent* pEvent, DWORD dwQueueSize); HRESULT Validate(IWbemClassObject* pLogicalConsumer); };
#endif
|