00001
00002
00003
00004
00005
00006 #ifndef _SNMP_ACCESS_H_
00007 #define _SNMP_ACCESS_H_
00008
00009 #include <snmp.h>
00010
00012
00013
00014 typedef BOOL (WINAPI *pSnmpExtensionInit)(
00015 IN DWORD dwTimeZeroReference,
00016 OUT HANDLE *hPollForTrapEvent,
00017 OUT AsnObjectIdentifier *supportedView);
00018
00019 typedef BOOL (WINAPI *pSnmpExtensionTrap)(
00020 OUT AsnObjectIdentifier *enterprise,
00021 OUT AsnInteger *genericTrap,
00022 OUT AsnInteger *specificTrap,
00023 OUT AsnTimeticks *timeStamp,
00024 OUT RFC1157VarBindList *variableBindings);
00025
00026 typedef BOOL (WINAPI *pSnmpExtensionQuery)(
00027 IN BYTE requestType,
00028 IN OUT RFC1157VarBindList *variableBindings,
00029 OUT AsnInteger *errorStatus,
00030 OUT AsnInteger *errorIndex);
00031
00032 typedef BOOL (WINAPI *pSnmpExtensionInitEx)(OUT AsnObjectIdentifier *supportedView);
00033
00034 typedef VOID (SNMP_FUNC_TYPE *pSnmpUtilVarBindFree)
00035 (SnmpVarBind * pVb);
00036 typedef SNMPAPI (SNMP_FUNC_TYPE *pSnmpUtilOidNCmp)
00037 (AsnObjectIdentifier * pOid1,
00038 AsnObjectIdentifier * pOid2,
00039 UINT nSubIds);
00040 typedef SNMPAPI (SNMP_FUNC_TYPE *pSnmpUtilOidCpy)
00041 (AsnObjectIdentifier * pOidDst,
00042 AsnObjectIdentifier * pOidSrc);
00043
00044 class MibExtLoad
00045 {
00046 public:
00047 MibExtLoad(LPSTR MibDllName, LPSTR SnmpDllName);
00048 ~MibExtLoad();
00049 BOOL Init(DWORD dwTimeZeroReference,HANDLE *hPollForTrapEvent,AsnObjectIdentifier *supportedView);
00050 BOOL InitEx(AsnObjectIdentifier *supportedView);
00051 BOOL Query(BYTE requestType,OUT RFC1157VarBindList *variableBindings,
00052 AsnInteger *errorStatus,AsnInteger *errorIndex);
00053
00054 BOOL Trap(AsnObjectIdentifier *enterprise, AsnInteger *genericTrap,
00055 AsnInteger *specificTrap, AsnTimeticks *timeStamp,
00056 RFC1157VarBindList *variableBindings);
00057
00058 private:
00059 HINSTANCE m_hInst;
00060 pSnmpExtensionInit m_Init;
00061 pSnmpExtensionInitEx m_InitEx;
00062 pSnmpExtensionQuery m_Query;
00063 pSnmpExtensionTrap m_Trap;
00064
00065 protected:
00066 HINSTANCE m_hSnmp;
00067 pSnmpUtilVarBindFree m_SnmpUtilVarBindFree;
00068 pSnmpUtilOidNCmp m_SnmpUtilOidNCmp;
00069 pSnmpUtilOidCpy m_SnmpUtilOidCpy;
00070 };
00071
00072
00073 class MibII: public MibExtLoad
00074 {
00075 public:
00076 MibII();
00077 ~MibII();
00078 Init();
00079 BOOL GetIPAddress(UINT IpArray[],UINT &IpArraySize);
00080 BOOL GetIPMask(UINT IpArray[],UINT &IpArraySize);
00081 };
00082
00083
00084 #endif