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.
 
 
 
 
 
 

119 lines
3.6 KiB

//***************************************************************************
//
// File:
//
// Module: MS SNMP Provider
//
// Purpose:
//
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
//
//***************************************************************************
#ifndef __PROPSNMP_H
#define __PROPSNMP_H
class SnmpV1OverIp ;
class GetOperation ;
class SetOperation ;
class RefreshOperation ;
class SetQueryOperation ;
class AutoRetrieveOperation ;
class SnmpResponseEventObject ;
#define SYTEM_PROPERTY_START_CHARACTER L'_'
class SnmpClassObject : public WbemSnmpClassObject
{
private:
protected:
BOOL m_accessible ;
ULONG snmpVersion ;
SnmpResponseEventObject *m_parentOperation ;
public:
SnmpClassObject ( SnmpResponseEventObject *parentOperation ) ;
SnmpClassObject ( const SnmpClassObject &a_SnmpClassObject ) ;
~SnmpClassObject () ;
ULONG GetSnmpVersion () { return snmpVersion ; }
} ;
class SnmpGetClassObject : public SnmpClassObject
{
private:
BOOL CheckProperty ( WbemSnmpErrorObject &a_errorObject , WbemSnmpProperty *property ) ;
protected:
public:
SnmpGetClassObject ( SnmpResponseEventObject *m_parentOperation ) ;
~SnmpGetClassObject () ;
BOOL Check ( WbemSnmpErrorObject &a_errorObject ) ;
} ;
class SnmpResponseEventObject : public SnmpTaskObject
{
private:
LONG m_ReferenceCount ;
protected:
//HRESULT completionCode ;
WbemSnmpErrorObject m_errorObject ;
CImpPropProv *provider ;
IWbemClassObject *m_namespaceObject ;
IWbemContext *m_Context ;
ULONG m_agentVersion ;
BOOL GetNamespaceObject ( WbemSnmpErrorObject &a_errorObject ) ;
BOOL GetAgentTransport ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentTransport ) ;
BOOL GetAgentAddress ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentAddress ) ;
BOOL GetAgentReadCommunityName ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentReadCommunityName ) ;
BOOL GetAgentWriteCommunityName ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentReadCommunityName ) ;
BOOL GetAgentRetryCount ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentRetryCount ) ;
BOOL GetAgentRetryTimeout( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentRetryTimeout ) ;
BOOL GetAgentMaxVarBindsPerPdu ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentVarBindsPerPdu ) ;
BOOL GetAgentFlowControlWindowSize ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentFlowControlWindowSize ) ;
BOOL GetNotifyStatusObject ( IWbemClassObject **notifyObject ) ;
BOOL GetSnmpNotifyStatusObject ( IWbemClassObject **notifyObject ) ;
BOOL HasNonNullKeys ( IWbemClassObject *a_Obj ) ;
public:
SnmpResponseEventObject ( CImpPropProv *provider , IWbemContext *a_Context ) ;
~SnmpResponseEventObject () ;
//HRESULT GetCompletionCode () { return completionCode ; }
WbemSnmpErrorObject &GetErrorObject () { return m_errorObject ; }
ULONG SetAgentVersion ( WbemSnmpErrorObject &a_errorObject ) ;
virtual SnmpClassObject *GetSnmpClassObject () = 0 ;
virtual SnmpClassObject *GetSnmpRequestClassObject () { return NULL ; }
virtual void ReceiveComplete () = 0 ;
virtual void SnmpTooBig () {} ;
ULONG AddRef () ;
ULONG Release () ;
} ;
#endif