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