; 
; Exports of file snmpcl.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY snmpcl.dll
EXPORTS
; public: __cdecl CBString::CBString(int) __ptr64
??0CBString@@QEAA@H@Z
; public: __cdecl CBString::CBString(unsigned short * __ptr64) __ptr64
??0CBString@@QEAA@PEAG@Z
; public: __cdecl CBString::CBString(void) __ptr64
??0CBString@@QEAA@XZ
; public: __cdecl GeneralException::GeneralException(class GeneralException const & __ptr64) __ptr64
??0GeneralException@@QEAA@AEBV0@@Z
; public: __cdecl GeneralException::GeneralException(class SnmpErrorReport const & __ptr64,char * __ptr64,int,unsigned long) __ptr64
??0GeneralException@@QEAA@AEBVSnmpErrorReport@@PEADHK@Z
; public: __cdecl GeneralException::GeneralException(enum SnmpError,enum SnmpStatus,char * __ptr64,int,unsigned long) __ptr64
??0GeneralException@@QEAA@W4SnmpError@@W4SnmpStatus@@PEADHK@Z
; public: __cdecl GetNextOperation::GetNextOperation(class SnmpSession & __ptr64,class SnmpAutoRetrieveOperation & __ptr64) __ptr64
??0GetNextOperation@@QEAA@AEAVSnmpSession@@AEAVSnmpAutoRetrieveOperation@@@Z
; public: __cdecl GetNextOperation::GetNextOperation(class GetNextOperation const & __ptr64) __ptr64
??0GetNextOperation@@QEAA@AEBV0@@Z
; public: __cdecl SnmpAnalyser::SnmpAnalyser(class SnmpAnalyser const & __ptr64) __ptr64
??0SnmpAnalyser@@QEAA@AEBV0@@Z
; public: __cdecl SnmpAnalyser::SnmpAnalyser(unsigned short const * __ptr64) __ptr64
??0SnmpAnalyser@@QEAA@PEBG@Z
; protected: __cdecl SnmpAutoRetrieveOperation::SnmpAutoRetrieveOperation(class SnmpSession & __ptr64) __ptr64
??0SnmpAutoRetrieveOperation@@IEAA@AEAVSnmpSession@@@Z
; public: __cdecl SnmpAutoRetrieveOperation::SnmpAutoRetrieveOperation(class SnmpAutoRetrieveOperation const & __ptr64) __ptr64
??0SnmpAutoRetrieveOperation@@QEAA@AEBV0@@Z
; public: __cdecl SnmpBitStringType::SnmpBitStringType(class SnmpBitStringType const & __ptr64) __ptr64
??0SnmpBitStringType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpBitStringType::SnmpBitStringType(unsigned short const * __ptr64) __ptr64
??0SnmpBitStringType@@QEAA@PEBG@Z
; public: __cdecl SnmpBitStringType::SnmpBitStringType(unsigned short const * __ptr64,class SnmpOctetString const & __ptr64) __ptr64
??0SnmpBitStringType@@QEAA@PEBGAEBVSnmpOctetString@@@Z
; public: __cdecl SnmpBitStringType::SnmpBitStringType(unsigned short const * __ptr64,unsigned short const * __ptr64 * __ptr64,unsigned long const & __ptr64) __ptr64
??0SnmpBitStringType@@QEAA@PEBGPEAPEBGAEBK@Z
; protected: __cdecl SnmpClassLibrary::SnmpClassLibrary(void) __ptr64
??0SnmpClassLibrary@@IEAA@XZ
; public: __cdecl SnmpClassLibrary::SnmpClassLibrary(class SnmpClassLibrary const & __ptr64) __ptr64
??0SnmpClassLibrary@@QEAA@AEBV0@@Z
; public: __cdecl SnmpCommunityBasedSecurity::SnmpCommunityBasedSecurity(class SnmpCommunityBasedSecurity const & __ptr64) __ptr64
??0SnmpCommunityBasedSecurity@@QEAA@AEBV0@@Z
; public: __cdecl SnmpCommunityBasedSecurity::SnmpCommunityBasedSecurity(class SnmpOctetString const & __ptr64) __ptr64
??0SnmpCommunityBasedSecurity@@QEAA@AEBVSnmpOctetString@@@Z
; public: __cdecl SnmpCommunityBasedSecurity::SnmpCommunityBasedSecurity(char const * __ptr64) __ptr64
??0SnmpCommunityBasedSecurity@@QEAA@PEBD@Z
; public: __cdecl SnmpCounter64::SnmpCounter64(class SnmpCounter64 const & __ptr64) __ptr64
??0SnmpCounter64@@QEAA@AEBV0@@Z
; public: __cdecl SnmpCounter64::SnmpCounter64(unsigned long,unsigned long) __ptr64
??0SnmpCounter64@@QEAA@KK@Z
; public: __cdecl SnmpCounter64Type::SnmpCounter64Type(class SnmpCounter64Type const & __ptr64) __ptr64
??0SnmpCounter64Type@@QEAA@AEBV0@@Z
; public: __cdecl SnmpCounter64Type::SnmpCounter64Type(class SnmpCounter64 const & __ptr64) __ptr64
??0SnmpCounter64Type@@QEAA@AEBVSnmpCounter64@@@Z
; public: __cdecl SnmpCounter64Type::SnmpCounter64Type(unsigned long,unsigned long) __ptr64
??0SnmpCounter64Type@@QEAA@KK@Z
; public: __cdecl SnmpCounter64Type::SnmpCounter64Type(unsigned short const * __ptr64) __ptr64
??0SnmpCounter64Type@@QEAA@PEBG@Z
; public: __cdecl SnmpCounter64Type::SnmpCounter64Type(void) __ptr64
??0SnmpCounter64Type@@QEAA@XZ
; public: __cdecl SnmpCounter::SnmpCounter(class SnmpCounter const & __ptr64) __ptr64
??0SnmpCounter@@QEAA@AEBV0@@Z
; public: __cdecl SnmpCounter::SnmpCounter(unsigned long) __ptr64
??0SnmpCounter@@QEAA@K@Z
; public: __cdecl SnmpCounterType::SnmpCounterType(class SnmpCounterType const & __ptr64) __ptr64
??0SnmpCounterType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpCounterType::SnmpCounterType(class SnmpCounter const & __ptr64) __ptr64
??0SnmpCounterType@@QEAA@AEBVSnmpCounter@@@Z
; public: __cdecl SnmpCounterType::SnmpCounterType(unsigned long) __ptr64
??0SnmpCounterType@@QEAA@K@Z
; public: __cdecl SnmpCounterType::SnmpCounterType(unsigned short const * __ptr64) __ptr64
??0SnmpCounterType@@QEAA@PEBG@Z
; public: __cdecl SnmpCounterType::SnmpCounterType(void) __ptr64
??0SnmpCounterType@@QEAA@XZ
; public: __cdecl SnmpDateTimeType::SnmpDateTimeType(class SnmpDateTimeType const & __ptr64) __ptr64
??0SnmpDateTimeType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpDateTimeType::SnmpDateTimeType(class SnmpOctetString const & __ptr64) __ptr64
??0SnmpDateTimeType@@QEAA@AEBVSnmpOctetString@@@Z
; public: __cdecl SnmpDateTimeType::SnmpDateTimeType(unsigned short const * __ptr64) __ptr64
??0SnmpDateTimeType@@QEAA@PEBG@Z
; public: __cdecl SnmpDateTimeType::SnmpDateTimeType(void) __ptr64
??0SnmpDateTimeType@@QEAA@XZ
; public: __cdecl SnmpDisplayStringType::SnmpDisplayStringType(class SnmpDisplayStringType const & __ptr64) __ptr64
??0SnmpDisplayStringType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpDisplayStringType::SnmpDisplayStringType(class SnmpOctetString const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpDisplayStringType@@QEAA@AEBVSnmpOctetString@@PEBG@Z
; public: __cdecl SnmpDisplayStringType::SnmpDisplayStringType(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpDisplayStringType@@QEAA@PEBG0@Z
; public: __cdecl SnmpDisplayStringType::SnmpDisplayStringType(unsigned short const * __ptr64) __ptr64
??0SnmpDisplayStringType@@QEAA@PEBG@Z
; public: __cdecl SnmpEncodeDecode::SnmpEncodeDecode(class SnmpEncodeDecode const & __ptr64) __ptr64
??0SnmpEncodeDecode@@QEAA@AEBV0@@Z
; public: __cdecl SnmpEncodeDecode::SnmpEncodeDecode(void) __ptr64
??0SnmpEncodeDecode@@QEAA@XZ
; public: __cdecl SnmpEndOfMibView::SnmpEndOfMibView(void) __ptr64
??0SnmpEndOfMibView@@QEAA@XZ
; public: __cdecl SnmpEnumeratedType::SnmpEnumeratedType(class SnmpEnumeratedType const & __ptr64) __ptr64
??0SnmpEnumeratedType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpEnumeratedType::SnmpEnumeratedType(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpEnumeratedType@@QEAA@PEBG0@Z
; public: __cdecl SnmpEnumeratedType::SnmpEnumeratedType(unsigned short const * __ptr64) __ptr64
??0SnmpEnumeratedType@@QEAA@PEBG@Z
; public: __cdecl SnmpEnumeratedType::SnmpEnumeratedType(unsigned short const * __ptr64,long const & __ptr64) __ptr64
??0SnmpEnumeratedType@@QEAA@PEBGAEBJ@Z
; public: __cdecl SnmpEnumeratedType::SnmpEnumeratedType(unsigned short const * __ptr64,class SnmpInteger const & __ptr64) __ptr64
??0SnmpEnumeratedType@@QEAA@PEBGAEBVSnmpInteger@@@Z
; public: __cdecl SnmpErrorReport::SnmpErrorReport(class SnmpErrorReport const & __ptr64) __ptr64
??0SnmpErrorReport@@QEAA@AEBV0@@Z
; public: __cdecl SnmpErrorReport::SnmpErrorReport(enum SnmpError,enum SnmpStatus,unsigned long) __ptr64
??0SnmpErrorReport@@QEAA@W4SnmpError@@W4SnmpStatus@@K@Z
; public: __cdecl SnmpErrorReport::SnmpErrorReport(void) __ptr64
??0SnmpErrorReport@@QEAA@XZ
; public: __cdecl SnmpFixedLengthDisplayStringType::SnmpFixedLengthDisplayStringType(unsigned long const & __ptr64) __ptr64
??0SnmpFixedLengthDisplayStringType@@QEAA@AEBK@Z
; public: __cdecl SnmpFixedLengthDisplayStringType::SnmpFixedLengthDisplayStringType(unsigned long const & __ptr64,class SnmpOctetString const & __ptr64) __ptr64
??0SnmpFixedLengthDisplayStringType@@QEAA@AEBKAEBVSnmpOctetString@@@Z
; public: __cdecl SnmpFixedLengthDisplayStringType::SnmpFixedLengthDisplayStringType(unsigned long const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpFixedLengthDisplayStringType@@QEAA@AEBKPEBG@Z
; public: __cdecl SnmpFixedLengthDisplayStringType::SnmpFixedLengthDisplayStringType(class SnmpFixedLengthDisplayStringType const & __ptr64) __ptr64
??0SnmpFixedLengthDisplayStringType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpFixedLengthOctetStringType::SnmpFixedLengthOctetStringType(unsigned long const & __ptr64) __ptr64
??0SnmpFixedLengthOctetStringType@@QEAA@AEBK@Z
; public: __cdecl SnmpFixedLengthOctetStringType::SnmpFixedLengthOctetStringType(unsigned long const & __ptr64,class SnmpOctetString const & __ptr64) __ptr64
??0SnmpFixedLengthOctetStringType@@QEAA@AEBKAEBVSnmpOctetString@@@Z
; public: __cdecl SnmpFixedLengthOctetStringType::SnmpFixedLengthOctetStringType(unsigned long const & __ptr64,unsigned char const * __ptr64) __ptr64
??0SnmpFixedLengthOctetStringType@@QEAA@AEBKPEBE@Z
; public: __cdecl SnmpFixedLengthOctetStringType::SnmpFixedLengthOctetStringType(unsigned long const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpFixedLengthOctetStringType@@QEAA@AEBKPEBG@Z
; public: __cdecl SnmpFixedLengthOctetStringType::SnmpFixedLengthOctetStringType(class SnmpFixedLengthOctetStringType const & __ptr64) __ptr64
??0SnmpFixedLengthOctetStringType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpFixedLengthOpaqueType::SnmpFixedLengthOpaqueType(unsigned long const & __ptr64) __ptr64
??0SnmpFixedLengthOpaqueType@@QEAA@AEBK@Z
; public: __cdecl SnmpFixedLengthOpaqueType::SnmpFixedLengthOpaqueType(unsigned long const & __ptr64,class SnmpOpaque const & __ptr64) __ptr64
??0SnmpFixedLengthOpaqueType@@QEAA@AEBKAEBVSnmpOpaque@@@Z
; public: __cdecl SnmpFixedLengthOpaqueType::SnmpFixedLengthOpaqueType(unsigned long const & __ptr64,unsigned char const * __ptr64,unsigned long) __ptr64
??0SnmpFixedLengthOpaqueType@@QEAA@AEBKPEBEK@Z
; public: __cdecl SnmpFixedLengthOpaqueType::SnmpFixedLengthOpaqueType(unsigned long const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpFixedLengthOpaqueType@@QEAA@AEBKPEBG@Z
; public: __cdecl SnmpFixedLengthOpaqueType::SnmpFixedLengthOpaqueType(class SnmpFixedLengthOpaqueType const & __ptr64) __ptr64
??0SnmpFixedLengthOpaqueType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpFixedLengthPhysAddressType::SnmpFixedLengthPhysAddressType(unsigned long const & __ptr64) __ptr64
??0SnmpFixedLengthPhysAddressType@@QEAA@AEBK@Z
; public: __cdecl SnmpFixedLengthPhysAddressType::SnmpFixedLengthPhysAddressType(unsigned long const & __ptr64,class SnmpOctetString const & __ptr64) __ptr64
??0SnmpFixedLengthPhysAddressType@@QEAA@AEBKAEBVSnmpOctetString@@@Z
; public: __cdecl SnmpFixedLengthPhysAddressType::SnmpFixedLengthPhysAddressType(unsigned long const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpFixedLengthPhysAddressType@@QEAA@AEBKPEBG@Z
; public: __cdecl SnmpFixedLengthPhysAddressType::SnmpFixedLengthPhysAddressType(class SnmpFixedLengthPhysAddressType const & __ptr64) __ptr64
??0SnmpFixedLengthPhysAddressType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpFixedType::SnmpFixedType(class SnmpFixedType const & __ptr64) __ptr64
??0SnmpFixedType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpFixedType::SnmpFixedType(unsigned long) __ptr64
??0SnmpFixedType@@QEAA@K@Z
; public: __cdecl SnmpGauge::SnmpGauge(class SnmpGauge const & __ptr64) __ptr64
??0SnmpGauge@@QEAA@AEBV0@@Z
; public: __cdecl SnmpGauge::SnmpGauge(long) __ptr64
??0SnmpGauge@@QEAA@J@Z
; public: __cdecl SnmpGaugeType::SnmpGaugeType(class SnmpGaugeType const & __ptr64) __ptr64
??0SnmpGaugeType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpGaugeType::SnmpGaugeType(class SnmpGauge const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpGaugeType@@QEAA@AEBVSnmpGauge@@PEBG@Z
; public: __cdecl SnmpGaugeType::SnmpGaugeType(unsigned long,unsigned short const * __ptr64) __ptr64
??0SnmpGaugeType@@QEAA@KPEBG@Z
; public: __cdecl SnmpGaugeType::SnmpGaugeType(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpGaugeType@@QEAA@PEBG0@Z
; public: __cdecl SnmpGaugeType::SnmpGaugeType(unsigned short const * __ptr64) __ptr64
??0SnmpGaugeType@@QEAA@PEBG@Z
; public: __cdecl SnmpGetNextOperation::SnmpGetNextOperation(class SnmpSession & __ptr64) __ptr64
??0SnmpGetNextOperation@@QEAA@AEAVSnmpSession@@@Z
; public: __cdecl SnmpGetNextOperation::SnmpGetNextOperation(class SnmpGetNextOperation const & __ptr64) __ptr64
??0SnmpGetNextOperation@@QEAA@AEBV0@@Z
; public: __cdecl SnmpGetOperation::SnmpGetOperation(class SnmpSession & __ptr64) __ptr64
??0SnmpGetOperation@@QEAA@AEAVSnmpSession@@@Z
; public: __cdecl SnmpGetOperation::SnmpGetOperation(class SnmpGetOperation const & __ptr64) __ptr64
??0SnmpGetOperation@@QEAA@AEBV0@@Z
; public: __cdecl SnmpIPXAddressType::SnmpIPXAddressType(class SnmpIPXAddressType const & __ptr64) __ptr64
??0SnmpIPXAddressType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpIPXAddressType::SnmpIPXAddressType(class SnmpOctetString const & __ptr64) __ptr64
??0SnmpIPXAddressType@@QEAA@AEBVSnmpOctetString@@@Z
; public: __cdecl SnmpIPXAddressType::SnmpIPXAddressType(unsigned char const * __ptr64) __ptr64
??0SnmpIPXAddressType@@QEAA@PEBE@Z
; public: __cdecl SnmpIPXAddressType::SnmpIPXAddressType(unsigned short const * __ptr64) __ptr64
??0SnmpIPXAddressType@@QEAA@PEBG@Z
; public: __cdecl SnmpIPXAddressType::SnmpIPXAddressType(void) __ptr64
??0SnmpIPXAddressType@@QEAA@XZ
; protected: __cdecl SnmpImpSession::SnmpImpSession(class SnmpTransport & __ptr64,class SnmpSecurity & __ptr64,class SnmpEncodeDecode & __ptr64,unsigned long,unsigned long,unsigned long,unsigned long) __ptr64
??0SnmpImpSession@@IEAA@AEAVSnmpTransport@@AEAVSnmpSecurity@@AEAVSnmpEncodeDecode@@KKKK@Z
; public: __cdecl SnmpImpTransport::SnmpImpTransport(class SnmpSession & __ptr64,class SnmpTransportAddress const & __ptr64) __ptr64
??0SnmpImpTransport@@QEAA@AEAVSnmpSession@@AEBVSnmpTransportAddress@@@Z
; protected: __cdecl SnmpInstanceType::SnmpInstanceType(class SnmpInstanceType const & __ptr64) __ptr64
??0SnmpInstanceType@@IEAA@AEBV0@@Z
; protected: __cdecl SnmpInstanceType::SnmpInstanceType(int,int) __ptr64
??0SnmpInstanceType@@IEAA@HH@Z
; public: __cdecl SnmpInteger::SnmpInteger(class SnmpInteger const & __ptr64) __ptr64
??0SnmpInteger@@QEAA@AEBV0@@Z
; public: __cdecl SnmpInteger::SnmpInteger(long) __ptr64
??0SnmpInteger@@QEAA@J@Z
; public: __cdecl SnmpIntegerType::SnmpIntegerType(class SnmpIntegerType const & __ptr64) __ptr64
??0SnmpIntegerType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpIntegerType::SnmpIntegerType(class SnmpInteger const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpIntegerType@@QEAA@AEBVSnmpInteger@@PEBG@Z
; public: __cdecl SnmpIntegerType::SnmpIntegerType(long,unsigned short const * __ptr64) __ptr64
??0SnmpIntegerType@@QEAA@JPEBG@Z
; public: __cdecl SnmpIntegerType::SnmpIntegerType(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpIntegerType@@QEAA@PEBG0@Z
; public: __cdecl SnmpIntegerType::SnmpIntegerType(unsigned short const * __ptr64) __ptr64
??0SnmpIntegerType@@QEAA@PEBG@Z
; public: __cdecl SnmpIpAddress::SnmpIpAddress(class SnmpIpAddress const & __ptr64) __ptr64
??0SnmpIpAddress@@QEAA@AEBV0@@Z
; public: __cdecl SnmpIpAddress::SnmpIpAddress(unsigned long) __ptr64
??0SnmpIpAddress@@QEAA@K@Z
; public: __cdecl SnmpIpAddress::SnmpIpAddress(char const * __ptr64) __ptr64
??0SnmpIpAddress@@QEAA@PEBD@Z
; public: __cdecl SnmpIpAddressType::SnmpIpAddressType(class SnmpIpAddressType const & __ptr64) __ptr64
??0SnmpIpAddressType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpIpAddressType::SnmpIpAddressType(class SnmpIpAddress const & __ptr64) __ptr64
??0SnmpIpAddressType@@QEAA@AEBVSnmpIpAddress@@@Z
; public: __cdecl SnmpIpAddressType::SnmpIpAddressType(unsigned long) __ptr64
??0SnmpIpAddressType@@QEAA@K@Z
; public: __cdecl SnmpIpAddressType::SnmpIpAddressType(unsigned short const * __ptr64) __ptr64
??0SnmpIpAddressType@@QEAA@PEBG@Z
; public: __cdecl SnmpIpAddressType::SnmpIpAddressType(void) __ptr64
??0SnmpIpAddressType@@QEAA@XZ
; public: __cdecl SnmpIpxImp::SnmpIpxImp(class SnmpSession & __ptr64,class SnmpTransportIpxAddress const & __ptr64) __ptr64
??0SnmpIpxImp@@QEAA@AEAVSnmpSession@@AEBVSnmpTransportIpxAddress@@@Z
; public: __cdecl SnmpIpxImp::SnmpIpxImp(class SnmpSession & __ptr64,char const * __ptr64) __ptr64
??0SnmpIpxImp@@QEAA@AEAVSnmpSession@@PEBD@Z
; public: __cdecl SnmpIpxImp::SnmpIpxImp(class SnmpSession & __ptr64,unsigned char const * __ptr64) __ptr64
??0SnmpIpxImp@@QEAA@AEAVSnmpSession@@PEBE@Z
; public: __cdecl SnmpIpxTransport::SnmpIpxTransport(class SnmpSession & __ptr64,class SnmpTransportIpxAddress const & __ptr64) __ptr64
??0SnmpIpxTransport@@QEAA@AEAVSnmpSession@@AEBVSnmpTransportIpxAddress@@@Z
; public: __cdecl SnmpLexicon::SnmpLexicon(void) __ptr64
??0SnmpLexicon@@QEAA@XZ
; public: __cdecl SnmpMacAddressType::SnmpMacAddressType(class SnmpMacAddressType const & __ptr64) __ptr64
??0SnmpMacAddressType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpMacAddressType::SnmpMacAddressType(class SnmpOctetString const & __ptr64) __ptr64
??0SnmpMacAddressType@@QEAA@AEBVSnmpOctetString@@@Z
; public: __cdecl SnmpMacAddressType::SnmpMacAddressType(unsigned char const * __ptr64) __ptr64
??0SnmpMacAddressType@@QEAA@PEBE@Z
; public: __cdecl SnmpMacAddressType::SnmpMacAddressType(unsigned short const * __ptr64) __ptr64
??0SnmpMacAddressType@@QEAA@PEBG@Z
; public: __cdecl SnmpMacAddressType::SnmpMacAddressType(void) __ptr64
??0SnmpMacAddressType@@QEAA@XZ
; public: __cdecl SnmpNegativeRangeType::SnmpNegativeRangeType(class SnmpNegativeRangeType const & __ptr64) __ptr64
??0SnmpNegativeRangeType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpNegativeRangeType::SnmpNegativeRangeType(long,long) __ptr64
??0SnmpNegativeRangeType@@QEAA@JJ@Z
; public: __cdecl SnmpNegativeRangeType::SnmpNegativeRangeType(void) __ptr64
??0SnmpNegativeRangeType@@QEAA@XZ
; public: __cdecl SnmpNetworkAddressType::SnmpNetworkAddressType(class SnmpNetworkAddressType const & __ptr64) __ptr64
??0SnmpNetworkAddressType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpNetworkAddressType::SnmpNetworkAddressType(class SnmpIpAddress const & __ptr64) __ptr64
??0SnmpNetworkAddressType@@QEAA@AEBVSnmpIpAddress@@@Z
; public: __cdecl SnmpNetworkAddressType::SnmpNetworkAddressType(unsigned long) __ptr64
??0SnmpNetworkAddressType@@QEAA@K@Z
; public: __cdecl SnmpNetworkAddressType::SnmpNetworkAddressType(unsigned short const * __ptr64) __ptr64
??0SnmpNetworkAddressType@@QEAA@PEBG@Z
; public: __cdecl SnmpNetworkAddressType::SnmpNetworkAddressType(void) __ptr64
??0SnmpNetworkAddressType@@QEAA@XZ
; public: __cdecl SnmpNoSuchInstance::SnmpNoSuchInstance(void) __ptr64
??0SnmpNoSuchInstance@@QEAA@XZ
; public: __cdecl SnmpNoSuchObject::SnmpNoSuchObject(void) __ptr64
??0SnmpNoSuchObject@@QEAA@XZ
; public: __cdecl SnmpNull::SnmpNull(void) __ptr64
??0SnmpNull@@QEAA@XZ
; public: __cdecl SnmpNullType::SnmpNullType(class SnmpNullType const & __ptr64) __ptr64
??0SnmpNullType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpNullType::SnmpNullType(class SnmpNull const & __ptr64) __ptr64
??0SnmpNullType@@QEAA@AEBVSnmpNull@@@Z
; public: __cdecl SnmpNullType::SnmpNullType(void) __ptr64
??0SnmpNullType@@QEAA@XZ
; public: __cdecl SnmpOSIAddressType::SnmpOSIAddressType(class SnmpOSIAddressType const & __ptr64) __ptr64
??0SnmpOSIAddressType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpOSIAddressType::SnmpOSIAddressType(class SnmpOctetString const & __ptr64) __ptr64
??0SnmpOSIAddressType@@QEAA@AEBVSnmpOctetString@@@Z
; public: __cdecl SnmpOSIAddressType::SnmpOSIAddressType(unsigned char const * __ptr64,unsigned long) __ptr64
??0SnmpOSIAddressType@@QEAA@PEBEK@Z
; public: __cdecl SnmpOSIAddressType::SnmpOSIAddressType(unsigned short const * __ptr64) __ptr64
??0SnmpOSIAddressType@@QEAA@PEBG@Z
; public: __cdecl SnmpOSIAddressType::SnmpOSIAddressType(void) __ptr64
??0SnmpOSIAddressType@@QEAA@XZ
; public: __cdecl SnmpObjectIdentifier::SnmpObjectIdentifier(class SnmpObjectIdentifier const & __ptr64) __ptr64
??0SnmpObjectIdentifier@@QEAA@AEBV0@@Z
; public: __cdecl SnmpObjectIdentifier::SnmpObjectIdentifier(char const * __ptr64) __ptr64
??0SnmpObjectIdentifier@@QEAA@PEBD@Z
; public: __cdecl SnmpObjectIdentifier::SnmpObjectIdentifier(unsigned long const * __ptr64,unsigned long) __ptr64
??0SnmpObjectIdentifier@@QEAA@PEBKK@Z
; public: __cdecl SnmpObjectIdentifierType::SnmpObjectIdentifierType(class SnmpObjectIdentifierType const & __ptr64) __ptr64
??0SnmpObjectIdentifierType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpObjectIdentifierType::SnmpObjectIdentifierType(class SnmpObjectIdentifier const & __ptr64) __ptr64
??0SnmpObjectIdentifierType@@QEAA@AEBVSnmpObjectIdentifier@@@Z
; public: __cdecl SnmpObjectIdentifierType::SnmpObjectIdentifierType(unsigned short const * __ptr64) __ptr64
??0SnmpObjectIdentifierType@@QEAA@PEBG@Z
; public: __cdecl SnmpObjectIdentifierType::SnmpObjectIdentifierType(unsigned long const * __ptr64,unsigned long) __ptr64
??0SnmpObjectIdentifierType@@QEAA@PEBKK@Z
; public: __cdecl SnmpObjectIdentifierType::SnmpObjectIdentifierType(void) __ptr64
??0SnmpObjectIdentifierType@@QEAA@XZ
; public: __cdecl SnmpOctetString::SnmpOctetString(class SnmpOctetString const & __ptr64) __ptr64
??0SnmpOctetString@@QEAA@AEBV0@@Z
; public: __cdecl SnmpOctetString::SnmpOctetString(unsigned char const * __ptr64,unsigned long) __ptr64
??0SnmpOctetString@@QEAA@PEBEK@Z
; public: __cdecl SnmpOctetStringType::SnmpOctetStringType(class SnmpOctetStringType const & __ptr64) __ptr64
??0SnmpOctetStringType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpOctetStringType::SnmpOctetStringType(class SnmpOctetString const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpOctetStringType@@QEAA@AEBVSnmpOctetString@@PEBG@Z
; public: __cdecl SnmpOctetStringType::SnmpOctetStringType(unsigned char const * __ptr64,unsigned long,unsigned short const * __ptr64) __ptr64
??0SnmpOctetStringType@@QEAA@PEBEKPEBG@Z
; public: __cdecl SnmpOctetStringType::SnmpOctetStringType(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpOctetStringType@@QEAA@PEBG0@Z
; public: __cdecl SnmpOctetStringType::SnmpOctetStringType(unsigned short const * __ptr64) __ptr64
??0SnmpOctetStringType@@QEAA@PEBG@Z
; public: __cdecl SnmpOpaque::SnmpOpaque(class SnmpOpaque const & __ptr64) __ptr64
??0SnmpOpaque@@QEAA@AEBV0@@Z
; public: __cdecl SnmpOpaque::SnmpOpaque(unsigned char const * __ptr64,unsigned long) __ptr64
??0SnmpOpaque@@QEAA@PEBEK@Z
; public: __cdecl SnmpOpaqueType::SnmpOpaqueType(class SnmpOpaqueType const & __ptr64) __ptr64
??0SnmpOpaqueType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpOpaqueType::SnmpOpaqueType(class SnmpOpaque const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpOpaqueType@@QEAA@AEBVSnmpOpaque@@PEBG@Z
; public: __cdecl SnmpOpaqueType::SnmpOpaqueType(unsigned char const * __ptr64,unsigned long,unsigned short const * __ptr64) __ptr64
??0SnmpOpaqueType@@QEAA@PEBEKPEBG@Z
; public: __cdecl SnmpOpaqueType::SnmpOpaqueType(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpOpaqueType@@QEAA@PEBG0@Z
; public: __cdecl SnmpOpaqueType::SnmpOpaqueType(unsigned short const * __ptr64) __ptr64
??0SnmpOpaqueType@@QEAA@PEBG@Z
; protected: __cdecl SnmpOperation::SnmpOperation(class SnmpSession & __ptr64) __ptr64
??0SnmpOperation@@IEAA@AEAVSnmpSession@@@Z
; public: __cdecl SnmpOperation::SnmpOperation(class SnmpOperation const & __ptr64) __ptr64
??0SnmpOperation@@QEAA@AEBV0@@Z
; public: __cdecl SnmpPdu::SnmpPdu(class SnmpPdu & __ptr64) __ptr64
??0SnmpPdu@@QEAA@AEAV0@@Z
; public: __cdecl SnmpPdu::SnmpPdu(unsigned char const * __ptr64,unsigned long const & __ptr64) __ptr64
??0SnmpPdu@@QEAA@PEBEAEBK@Z
; public: __cdecl SnmpPdu::SnmpPdu(void) __ptr64
??0SnmpPdu@@QEAA@XZ
; public: __cdecl SnmpPhysAddressType::SnmpPhysAddressType(class SnmpPhysAddressType const & __ptr64) __ptr64
??0SnmpPhysAddressType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpPhysAddressType::SnmpPhysAddressType(class SnmpOctetString const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpPhysAddressType@@QEAA@AEBVSnmpOctetString@@PEBG@Z
; public: __cdecl SnmpPhysAddressType::SnmpPhysAddressType(unsigned char const * __ptr64,unsigned long,unsigned short const * __ptr64) __ptr64
??0SnmpPhysAddressType@@QEAA@PEBEKPEBG@Z
; public: __cdecl SnmpPhysAddressType::SnmpPhysAddressType(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpPhysAddressType@@QEAA@PEBG0@Z
; public: __cdecl SnmpPhysAddressType::SnmpPhysAddressType(unsigned short const * __ptr64) __ptr64
??0SnmpPhysAddressType@@QEAA@PEBG@Z
; public: __cdecl SnmpPositiveRangeType::SnmpPositiveRangeType(class SnmpPositiveRangeType const & __ptr64) __ptr64
??0SnmpPositiveRangeType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpPositiveRangeType::SnmpPositiveRangeType(unsigned long,long) __ptr64
??0SnmpPositiveRangeType@@QEAA@KJ@Z
; public: __cdecl SnmpPositiveRangeType::SnmpPositiveRangeType(void) __ptr64
??0SnmpPositiveRangeType@@QEAA@XZ
; public: __cdecl SnmpPositiveRangedType::SnmpPositiveRangedType(class SnmpPositiveRangedType const & __ptr64) __ptr64
??0SnmpPositiveRangedType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpPositiveRangedType::SnmpPositiveRangedType(unsigned short const * __ptr64) __ptr64
??0SnmpPositiveRangedType@@QEAA@PEBG@Z
; public: __cdecl SnmpRowStatusType::SnmpRowStatusType(long const & __ptr64) __ptr64
??0SnmpRowStatusType@@QEAA@AEBJ@Z
; public: __cdecl SnmpRowStatusType::SnmpRowStatusType(class SnmpRowStatusType const & __ptr64) __ptr64
??0SnmpRowStatusType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpRowStatusType::SnmpRowStatusType(class SnmpInteger const & __ptr64) __ptr64
??0SnmpRowStatusType@@QEAA@AEBVSnmpInteger@@@Z
; public: __cdecl SnmpRowStatusType::SnmpRowStatusType(enum SnmpRowStatusType::SnmpRowStatusEnum const & __ptr64) __ptr64
??0SnmpRowStatusType@@QEAA@AEBW4SnmpRowStatusEnum@0@@Z
; public: __cdecl SnmpRowStatusType::SnmpRowStatusType(unsigned short const * __ptr64) __ptr64
??0SnmpRowStatusType@@QEAA@PEBG@Z
; public: __cdecl SnmpRowStatusType::SnmpRowStatusType(void) __ptr64
??0SnmpRowStatusType@@QEAA@XZ
; private: __cdecl SnmpSecurity::SnmpSecurity(class SnmpSecurity const & __ptr64) __ptr64
??0SnmpSecurity@@AEAA@AEBV0@@Z
; protected: __cdecl SnmpSecurity::SnmpSecurity(void) __ptr64
??0SnmpSecurity@@IEAA@XZ
; private: __cdecl SnmpSession::SnmpSession(class SnmpSession const & __ptr64) __ptr64
??0SnmpSession@@AEAA@AEBV0@@Z
; protected: __cdecl SnmpSession::SnmpSession(class SnmpTransport & __ptr64,class SnmpSecurity & __ptr64,class SnmpEncodeDecode & __ptr64,unsigned long,unsigned long,unsigned long,unsigned long) __ptr64
??0SnmpSession@@IEAA@AEAVSnmpTransport@@AEAVSnmpSecurity@@AEAVSnmpEncodeDecode@@KKKK@Z
; public: __cdecl SnmpSetOperation::SnmpSetOperation(class SnmpSession & __ptr64) __ptr64
??0SnmpSetOperation@@QEAA@AEAVSnmpSession@@@Z
; public: __cdecl SnmpSetOperation::SnmpSetOperation(class SnmpSetOperation const & __ptr64) __ptr64
??0SnmpSetOperation@@QEAA@AEBV0@@Z
; public: __cdecl SnmpTimeTicks::SnmpTimeTicks(class SnmpTimeTicks const & __ptr64) __ptr64
??0SnmpTimeTicks@@QEAA@AEBV0@@Z
; public: __cdecl SnmpTimeTicks::SnmpTimeTicks(unsigned long) __ptr64
??0SnmpTimeTicks@@QEAA@K@Z
; public: __cdecl SnmpTimeTicksType::SnmpTimeTicksType(class SnmpTimeTicksType const & __ptr64) __ptr64
??0SnmpTimeTicksType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpTimeTicksType::SnmpTimeTicksType(class SnmpTimeTicks const & __ptr64) __ptr64
??0SnmpTimeTicksType@@QEAA@AEBVSnmpTimeTicks@@@Z
; public: __cdecl SnmpTimeTicksType::SnmpTimeTicksType(unsigned long) __ptr64
??0SnmpTimeTicksType@@QEAA@K@Z
; public: __cdecl SnmpTimeTicksType::SnmpTimeTicksType(unsigned short const * __ptr64) __ptr64
??0SnmpTimeTicksType@@QEAA@PEBG@Z
; public: __cdecl SnmpTimeTicksType::SnmpTimeTicksType(void) __ptr64
??0SnmpTimeTicksType@@QEAA@XZ
; private: __cdecl SnmpTransport::SnmpTransport(class SnmpTransport const & __ptr64) __ptr64
??0SnmpTransport@@AEAA@AEBV0@@Z
; protected: __cdecl SnmpTransport::SnmpTransport(class SnmpSession & __ptr64,class SnmpTransportAddress const & __ptr64) __ptr64
??0SnmpTransport@@IEAA@AEAVSnmpSession@@AEBVSnmpTransportAddress@@@Z
; private: __cdecl SnmpTransportAddress::SnmpTransportAddress(class SnmpTransportAddress const & __ptr64) __ptr64
??0SnmpTransportAddress@@AEAA@AEBV0@@Z
; protected: __cdecl SnmpTransportAddress::SnmpTransportAddress(void) __ptr64
??0SnmpTransportAddress@@IEAA@XZ
; public: __cdecl SnmpTransportIpAddress::SnmpTransportIpAddress(class SnmpTransportIpAddress const & __ptr64) __ptr64
??0SnmpTransportIpAddress@@QEAA@AEBV0@@Z
; public: __cdecl SnmpTransportIpAddress::SnmpTransportIpAddress(unsigned long) __ptr64
??0SnmpTransportIpAddress@@QEAA@K@Z
; public: __cdecl SnmpTransportIpAddress::SnmpTransportIpAddress(char const * __ptr64,unsigned long) __ptr64
??0SnmpTransportIpAddress@@QEAA@PEBDK@Z
; public: __cdecl SnmpTransportIpAddress::SnmpTransportIpAddress(unsigned char const * __ptr64,unsigned short) __ptr64
??0SnmpTransportIpAddress@@QEAA@PEBEG@Z
; public: __cdecl SnmpTransportIpAddress::SnmpTransportIpAddress(void) __ptr64
??0SnmpTransportIpAddress@@QEAA@XZ
; public: __cdecl SnmpTransportIpxAddress::SnmpTransportIpxAddress(class SnmpTransportIpxAddress const & __ptr64) __ptr64
??0SnmpTransportIpxAddress@@QEAA@AEBV0@@Z
; public: __cdecl SnmpTransportIpxAddress::SnmpTransportIpxAddress(char const * __ptr64) __ptr64
??0SnmpTransportIpxAddress@@QEAA@PEBD@Z
; public: __cdecl SnmpTransportIpxAddress::SnmpTransportIpxAddress(unsigned char const * __ptr64,unsigned short) __ptr64
??0SnmpTransportIpxAddress@@QEAA@PEBEG@Z
; public: __cdecl SnmpTransportIpxAddress::SnmpTransportIpxAddress(void) __ptr64
??0SnmpTransportIpxAddress@@QEAA@XZ
; protected: __cdecl SnmpTrapReceiver::SnmpTrapReceiver(void) __ptr64
??0SnmpTrapReceiver@@IEAA@XZ
; public: __cdecl SnmpTrapReceiver::SnmpTrapReceiver(class SnmpTrapReceiver const & __ptr64) __ptr64
??0SnmpTrapReceiver@@QEAA@AEBV0@@Z
; public: __cdecl SnmpUDPAddressType::SnmpUDPAddressType(class SnmpUDPAddressType const & __ptr64) __ptr64
??0SnmpUDPAddressType@@QEAA@AEBV0@@Z
; public: __cdecl SnmpUDPAddressType::SnmpUDPAddressType(class SnmpOctetString const & __ptr64) __ptr64
??0SnmpUDPAddressType@@QEAA@AEBVSnmpOctetString@@@Z
; public: __cdecl SnmpUDPAddressType::SnmpUDPAddressType(unsigned char const * __ptr64) __ptr64
??0SnmpUDPAddressType@@QEAA@PEBE@Z
; public: __cdecl SnmpUDPAddressType::SnmpUDPAddressType(unsigned short const * __ptr64) __ptr64
??0SnmpUDPAddressType@@QEAA@PEBG@Z
; public: __cdecl SnmpUDPAddressType::SnmpUDPAddressType(void) __ptr64
??0SnmpUDPAddressType@@QEAA@XZ
; public: __cdecl SnmpUInteger32::SnmpUInteger32(class SnmpUInteger32 const & __ptr64) __ptr64
??0SnmpUInteger32@@QEAA@AEBV0@@Z
; public: __cdecl SnmpUInteger32::SnmpUInteger32(long) __ptr64
??0SnmpUInteger32@@QEAA@J@Z
; public: __cdecl SnmpUInteger32Type::SnmpUInteger32Type(class SnmpUInteger32Type const & __ptr64) __ptr64
??0SnmpUInteger32Type@@QEAA@AEBV0@@Z
; public: __cdecl SnmpUInteger32Type::SnmpUInteger32Type(class SnmpUInteger32 const & __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpUInteger32Type@@QEAA@AEBVSnmpUInteger32@@PEBG@Z
; public: __cdecl SnmpUInteger32Type::SnmpUInteger32Type(unsigned long,unsigned short const * __ptr64) __ptr64
??0SnmpUInteger32Type@@QEAA@KPEBG@Z
; public: __cdecl SnmpUInteger32Type::SnmpUInteger32Type(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0SnmpUInteger32Type@@QEAA@PEBG0@Z
; public: __cdecl SnmpUInteger32Type::SnmpUInteger32Type(unsigned short const * __ptr64) __ptr64
??0SnmpUInteger32Type@@QEAA@PEBG@Z
; public: __cdecl SnmpUdpIpImp::SnmpUdpIpImp(class SnmpSession & __ptr64,class SnmpTransportIpAddress const & __ptr64) __ptr64
??0SnmpUdpIpImp@@QEAA@AEAVSnmpSession@@AEBVSnmpTransportIpAddress@@@Z
; public: __cdecl SnmpUdpIpImp::SnmpUdpIpImp(class SnmpSession & __ptr64,char const * __ptr64,unsigned long) __ptr64
??0SnmpUdpIpImp@@QEAA@AEAVSnmpSession@@PEBDK@Z
; public: __cdecl SnmpUdpIpImp::SnmpUdpIpImp(class SnmpSession & __ptr64,unsigned char const * __ptr64) __ptr64
??0SnmpUdpIpImp@@QEAA@AEAVSnmpSession@@PEBE@Z
; public: __cdecl SnmpUdpIpTransport::SnmpUdpIpTransport(class SnmpSession & __ptr64,class SnmpTransportIpAddress const & __ptr64) __ptr64
??0SnmpUdpIpTransport@@QEAA@AEAVSnmpSession@@AEBVSnmpTransportIpAddress@@@Z
; public: __cdecl SnmpV1EncodeDecode::SnmpV1EncodeDecode(class SnmpV1EncodeDecode const & __ptr64) __ptr64
??0SnmpV1EncodeDecode@@QEAA@AEBV0@@Z
; public: __cdecl SnmpV1EncodeDecode::SnmpV1EncodeDecode(void) __ptr64
??0SnmpV1EncodeDecode@@QEAA@XZ
; public: __cdecl SnmpV1OverIp::SnmpV1OverIp(char const * __ptr64,unsigned long,char const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long) __ptr64
??0SnmpV1OverIp@@QEAA@PEBDK0KKKK@Z
; public: __cdecl SnmpV1OverIpx::SnmpV1OverIpx(char const * __ptr64,char const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long) __ptr64
??0SnmpV1OverIpx@@QEAA@PEBD0KKKK@Z
; public: __cdecl SnmpV2CEncodeDecode::SnmpV2CEncodeDecode(class SnmpV2CEncodeDecode const & __ptr64) __ptr64
??0SnmpV2CEncodeDecode@@QEAA@AEBV0@@Z
; public: __cdecl SnmpV2CEncodeDecode::SnmpV2CEncodeDecode(void) __ptr64
??0SnmpV2CEncodeDecode@@QEAA@XZ
; public: __cdecl SnmpV2COverIp::SnmpV2COverIp(char const * __ptr64,unsigned long,char const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long) __ptr64
??0SnmpV2COverIp@@QEAA@PEBDK0KKKK@Z
; public: __cdecl SnmpV2COverIpx::SnmpV2COverIpx(char const * __ptr64,char const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long) __ptr64
??0SnmpV2COverIpx@@QEAA@PEBD0KKKK@Z
; private: __cdecl SnmpValue::SnmpValue(class SnmpValue const & __ptr64) __ptr64
??0SnmpValue@@AEAA@AEBV0@@Z
; protected: __cdecl SnmpValue::SnmpValue(void) __ptr64
??0SnmpValue@@IEAA@XZ
; public: __cdecl SnmpVarBind::SnmpVarBind(class SnmpVarBind const & __ptr64) __ptr64
??0SnmpVarBind@@QEAA@AEBV0@@Z
; public: __cdecl SnmpVarBind::SnmpVarBind(class SnmpObjectIdentifier const & __ptr64,class SnmpValue const & __ptr64) __ptr64
??0SnmpVarBind@@QEAA@AEBVSnmpObjectIdentifier@@AEBVSnmpValue@@@Z
; public: __cdecl SnmpVarBindList::SnmpVarBindList(class SnmpVarBindList & __ptr64) __ptr64
??0SnmpVarBindList@@QEAA@AEAV0@@Z
; public: __cdecl SnmpVarBindList::SnmpVarBindList(void) __ptr64
??0SnmpVarBindList@@QEAA@XZ
; public: __cdecl SnmpVarBindListNode::SnmpVarBindListNode(class SnmpVarBind & __ptr64) __ptr64
??0SnmpVarBindListNode@@QEAA@AEAVSnmpVarBind@@@Z
; public: __cdecl SnmpVarBindListNode::SnmpVarBindListNode(class SnmpVarBind const & __ptr64) __ptr64
??0SnmpVarBindListNode@@QEAA@AEBVSnmpVarBind@@@Z
; public: __cdecl SnmpVarBindListNode::SnmpVarBindListNode(class SnmpVarBind const * __ptr64) __ptr64
??0SnmpVarBindListNode@@QEAA@PEBVSnmpVarBind@@@Z
; public: __cdecl CBString::~CBString(void) __ptr64
??1CBString@@QEAA@XZ
; public: virtual __cdecl GeneralException::~GeneralException(void) __ptr64
??1GeneralException@@UEAA@XZ
; public: virtual __cdecl GetNextOperation::~GetNextOperation(void) __ptr64
??1GetNextOperation@@UEAA@XZ
; public: virtual __cdecl SnmpAnalyser::~SnmpAnalyser(void) __ptr64
??1SnmpAnalyser@@UEAA@XZ
; public: virtual __cdecl SnmpAutoRetrieveOperation::~SnmpAutoRetrieveOperation(void) __ptr64
??1SnmpAutoRetrieveOperation@@UEAA@XZ
; public: virtual __cdecl SnmpBitStringType::~SnmpBitStringType(void) __ptr64
??1SnmpBitStringType@@UEAA@XZ
; public: virtual __cdecl SnmpClassLibrary::~SnmpClassLibrary(void) __ptr64
??1SnmpClassLibrary@@UEAA@XZ
; public: virtual __cdecl SnmpCommunityBasedSecurity::~SnmpCommunityBasedSecurity(void) __ptr64
??1SnmpCommunityBasedSecurity@@UEAA@XZ
; public: virtual __cdecl SnmpCounter64::~SnmpCounter64(void) __ptr64
??1SnmpCounter64@@UEAA@XZ
; public: virtual __cdecl SnmpCounter64Type::~SnmpCounter64Type(void) __ptr64
??1SnmpCounter64Type@@UEAA@XZ
; public: virtual __cdecl SnmpCounter::~SnmpCounter(void) __ptr64
??1SnmpCounter@@UEAA@XZ
; public: virtual __cdecl SnmpCounterType::~SnmpCounterType(void) __ptr64
??1SnmpCounterType@@UEAA@XZ
; public: virtual __cdecl SnmpDateTimeType::~SnmpDateTimeType(void) __ptr64
??1SnmpDateTimeType@@UEAA@XZ
; public: virtual __cdecl SnmpDisplayStringType::~SnmpDisplayStringType(void) __ptr64
??1SnmpDisplayStringType@@UEAA@XZ
; public: virtual __cdecl SnmpEncodeDecode::~SnmpEncodeDecode(void) __ptr64
??1SnmpEncodeDecode@@UEAA@XZ
; public: virtual __cdecl SnmpEndOfMibView::~SnmpEndOfMibView(void) __ptr64
??1SnmpEndOfMibView@@UEAA@XZ
; public: virtual __cdecl SnmpEnumeratedType::~SnmpEnumeratedType(void) __ptr64
??1SnmpEnumeratedType@@UEAA@XZ
; public: virtual __cdecl SnmpErrorReport::~SnmpErrorReport(void) __ptr64
??1SnmpErrorReport@@UEAA@XZ
; public: virtual __cdecl SnmpFixedLengthDisplayStringType::~SnmpFixedLengthDisplayStringType(void) __ptr64
??1SnmpFixedLengthDisplayStringType@@UEAA@XZ
; public: virtual __cdecl SnmpFixedLengthOctetStringType::~SnmpFixedLengthOctetStringType(void) __ptr64
??1SnmpFixedLengthOctetStringType@@UEAA@XZ
; public: virtual __cdecl SnmpFixedLengthOpaqueType::~SnmpFixedLengthOpaqueType(void) __ptr64
??1SnmpFixedLengthOpaqueType@@UEAA@XZ
; public: virtual __cdecl SnmpFixedLengthPhysAddressType::~SnmpFixedLengthPhysAddressType(void) __ptr64
??1SnmpFixedLengthPhysAddressType@@UEAA@XZ
; public: virtual __cdecl SnmpFixedType::~SnmpFixedType(void) __ptr64
??1SnmpFixedType@@UEAA@XZ
; public: virtual __cdecl SnmpGauge::~SnmpGauge(void) __ptr64
??1SnmpGauge@@UEAA@XZ
; public: virtual __cdecl SnmpGaugeType::~SnmpGaugeType(void) __ptr64
??1SnmpGaugeType@@UEAA@XZ
; public: virtual __cdecl SnmpGetNextOperation::~SnmpGetNextOperation(void) __ptr64
??1SnmpGetNextOperation@@UEAA@XZ
; public: virtual __cdecl SnmpGetOperation::~SnmpGetOperation(void) __ptr64
??1SnmpGetOperation@@UEAA@XZ
; public: virtual __cdecl SnmpIPXAddressType::~SnmpIPXAddressType(void) __ptr64
??1SnmpIPXAddressType@@UEAA@XZ
; public: virtual __cdecl SnmpImpSession::~SnmpImpSession(void) __ptr64
??1SnmpImpSession@@UEAA@XZ
; public: virtual __cdecl SnmpImpTransport::~SnmpImpTransport(void) __ptr64
??1SnmpImpTransport@@UEAA@XZ
; public: virtual __cdecl SnmpInstanceType::~SnmpInstanceType(void) __ptr64
??1SnmpInstanceType@@UEAA@XZ
; public: virtual __cdecl SnmpInteger::~SnmpInteger(void) __ptr64
??1SnmpInteger@@UEAA@XZ
; public: virtual __cdecl SnmpIntegerType::~SnmpIntegerType(void) __ptr64
??1SnmpIntegerType@@UEAA@XZ
; public: virtual __cdecl SnmpIpAddress::~SnmpIpAddress(void) __ptr64
??1SnmpIpAddress@@UEAA@XZ
; public: virtual __cdecl SnmpIpAddressType::~SnmpIpAddressType(void) __ptr64
??1SnmpIpAddressType@@UEAA@XZ
; public: virtual __cdecl SnmpIpxImp::~SnmpIpxImp(void) __ptr64
??1SnmpIpxImp@@UEAA@XZ
; public: virtual __cdecl SnmpIpxTransport::~SnmpIpxTransport(void) __ptr64
??1SnmpIpxTransport@@UEAA@XZ
; public: __cdecl SnmpLexicon::~SnmpLexicon(void) __ptr64
??1SnmpLexicon@@QEAA@XZ
; public: virtual __cdecl SnmpMacAddressType::~SnmpMacAddressType(void) __ptr64
??1SnmpMacAddressType@@UEAA@XZ
; public: virtual __cdecl SnmpNegativeRangeType::~SnmpNegativeRangeType(void) __ptr64
??1SnmpNegativeRangeType@@UEAA@XZ
; public: virtual __cdecl SnmpNetworkAddressType::~SnmpNetworkAddressType(void) __ptr64
??1SnmpNetworkAddressType@@UEAA@XZ
; public: virtual __cdecl SnmpNoSuchInstance::~SnmpNoSuchInstance(void) __ptr64
??1SnmpNoSuchInstance@@UEAA@XZ
; public: virtual __cdecl SnmpNoSuchObject::~SnmpNoSuchObject(void) __ptr64
??1SnmpNoSuchObject@@UEAA@XZ
; public: virtual __cdecl SnmpNull::~SnmpNull(void) __ptr64
??1SnmpNull@@UEAA@XZ
; public: virtual __cdecl SnmpNullType::~SnmpNullType(void) __ptr64
??1SnmpNullType@@UEAA@XZ
; public: virtual __cdecl SnmpOSIAddressType::~SnmpOSIAddressType(void) __ptr64
??1SnmpOSIAddressType@@UEAA@XZ
; public: virtual __cdecl SnmpObjectIdentifier::~SnmpObjectIdentifier(void) __ptr64
??1SnmpObjectIdentifier@@UEAA@XZ
; public: virtual __cdecl SnmpObjectIdentifierType::~SnmpObjectIdentifierType(void) __ptr64
??1SnmpObjectIdentifierType@@UEAA@XZ
; public: virtual __cdecl SnmpOctetString::~SnmpOctetString(void) __ptr64
??1SnmpOctetString@@UEAA@XZ
; public: virtual __cdecl SnmpOctetStringType::~SnmpOctetStringType(void) __ptr64
??1SnmpOctetStringType@@UEAA@XZ
; public: virtual __cdecl SnmpOpaque::~SnmpOpaque(void) __ptr64
??1SnmpOpaque@@UEAA@XZ
; public: virtual __cdecl SnmpOpaqueType::~SnmpOpaqueType(void) __ptr64
??1SnmpOpaqueType@@UEAA@XZ
; public: virtual __cdecl SnmpOperation::~SnmpOperation(void) __ptr64
??1SnmpOperation@@UEAA@XZ
; public: virtual __cdecl SnmpPdu::~SnmpPdu(void) __ptr64
??1SnmpPdu@@UEAA@XZ
; public: virtual __cdecl SnmpPhysAddressType::~SnmpPhysAddressType(void) __ptr64
??1SnmpPhysAddressType@@UEAA@XZ
; public: virtual __cdecl SnmpPositiveRangeType::~SnmpPositiveRangeType(void) __ptr64
??1SnmpPositiveRangeType@@UEAA@XZ
; public: virtual __cdecl SnmpPositiveRangedType::~SnmpPositiveRangedType(void) __ptr64
??1SnmpPositiveRangedType@@UEAA@XZ
; public: virtual __cdecl SnmpRowStatusType::~SnmpRowStatusType(void) __ptr64
??1SnmpRowStatusType@@UEAA@XZ
; public: virtual __cdecl SnmpSecurity::~SnmpSecurity(void) __ptr64
??1SnmpSecurity@@UEAA@XZ
; public: virtual __cdecl SnmpSession::~SnmpSession(void) __ptr64
??1SnmpSession@@UEAA@XZ
; public: virtual __cdecl SnmpSetOperation::~SnmpSetOperation(void) __ptr64
??1SnmpSetOperation@@UEAA@XZ
; public: virtual __cdecl SnmpTimeTicks::~SnmpTimeTicks(void) __ptr64
??1SnmpTimeTicks@@UEAA@XZ
; public: virtual __cdecl SnmpTimeTicksType::~SnmpTimeTicksType(void) __ptr64
??1SnmpTimeTicksType@@UEAA@XZ
; public: virtual __cdecl SnmpTransport::~SnmpTransport(void) __ptr64
??1SnmpTransport@@UEAA@XZ
; public: virtual __cdecl SnmpTransportAddress::~SnmpTransportAddress(void) __ptr64
??1SnmpTransportAddress@@UEAA@XZ
; public: virtual __cdecl SnmpTransportIpAddress::~SnmpTransportIpAddress(void) __ptr64
??1SnmpTransportIpAddress@@UEAA@XZ
; public: virtual __cdecl SnmpTransportIpxAddress::~SnmpTransportIpxAddress(void) __ptr64
??1SnmpTransportIpxAddress@@UEAA@XZ
; public: __cdecl SnmpTrapReceiver::~SnmpTrapReceiver(void) __ptr64
??1SnmpTrapReceiver@@QEAA@XZ
; public: virtual __cdecl SnmpUDPAddressType::~SnmpUDPAddressType(void) __ptr64
??1SnmpUDPAddressType@@UEAA@XZ
; public: virtual __cdecl SnmpUInteger32::~SnmpUInteger32(void) __ptr64
??1SnmpUInteger32@@UEAA@XZ
; public: virtual __cdecl SnmpUInteger32Type::~SnmpUInteger32Type(void) __ptr64
??1SnmpUInteger32Type@@UEAA@XZ
; public: virtual __cdecl SnmpUdpIpImp::~SnmpUdpIpImp(void) __ptr64
??1SnmpUdpIpImp@@UEAA@XZ
; public: virtual __cdecl SnmpUdpIpTransport::~SnmpUdpIpTransport(void) __ptr64
??1SnmpUdpIpTransport@@UEAA@XZ
; public: virtual __cdecl SnmpV1EncodeDecode::~SnmpV1EncodeDecode(void) __ptr64
??1SnmpV1EncodeDecode@@UEAA@XZ
; public: virtual __cdecl SnmpV1OverIp::~SnmpV1OverIp(void) __ptr64
??1SnmpV1OverIp@@UEAA@XZ
; public: virtual __cdecl SnmpV1OverIpx::~SnmpV1OverIpx(void) __ptr64
??1SnmpV1OverIpx@@UEAA@XZ
; public: virtual __cdecl SnmpV2CEncodeDecode::~SnmpV2CEncodeDecode(void) __ptr64
??1SnmpV2CEncodeDecode@@UEAA@XZ
; public: virtual __cdecl SnmpV2COverIp::~SnmpV2COverIp(void) __ptr64
??1SnmpV2COverIp@@UEAA@XZ
; public: virtual __cdecl SnmpV2COverIpx::~SnmpV2COverIpx(void) __ptr64
??1SnmpV2COverIpx@@UEAA@XZ
; public: virtual __cdecl SnmpValue::~SnmpValue(void) __ptr64
??1SnmpValue@@UEAA@XZ
; public: virtual __cdecl SnmpVarBind::~SnmpVarBind(void) __ptr64
??1SnmpVarBind@@UEAA@XZ
; public: __cdecl SnmpVarBindList::~SnmpVarBindList(void) __ptr64
??1SnmpVarBindList@@QEAA@XZ
; public: __cdecl SnmpVarBindListNode::~SnmpVarBindListNode(void) __ptr64
??1SnmpVarBindListNode@@QEAA@XZ
; public: class CBString & __ptr64 __cdecl CBString::operator=(class CBString const & __ptr64) __ptr64
??4CBString@@QEAAAEAV0@AEBV0@@Z
; public: class CBString const & __ptr64 __cdecl CBString::operator=(unsigned short * __ptr64) __ptr64
??4CBString@@QEAAAEBV0@PEAG@Z
; public: class GeneralException & __ptr64 __cdecl GeneralException::operator=(class GeneralException const & __ptr64) __ptr64
??4GeneralException@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpAnalyser & __ptr64 __cdecl SnmpAnalyser::operator=(class SnmpAnalyser const & __ptr64) __ptr64
??4SnmpAnalyser@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpAutoRetrieveOperation & __ptr64 __cdecl SnmpAutoRetrieveOperation::operator=(class SnmpAutoRetrieveOperation const & __ptr64) __ptr64
??4SnmpAutoRetrieveOperation@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpBitStringType & __ptr64 __cdecl SnmpBitStringType::operator=(class SnmpBitStringType const & __ptr64) __ptr64
??4SnmpBitStringType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpClassLibrary & __ptr64 __cdecl SnmpClassLibrary::operator=(class SnmpClassLibrary const & __ptr64) __ptr64
??4SnmpClassLibrary@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpCommunityBasedSecurity & __ptr64 __cdecl SnmpCommunityBasedSecurity::operator=(class SnmpCommunityBasedSecurity const & __ptr64) __ptr64
??4SnmpCommunityBasedSecurity@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpCounter64::operator=(class SnmpCounter64 const & __ptr64) __ptr64
??4SnmpCounter64@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpCounter64Type & __ptr64 __cdecl SnmpCounter64Type::operator=(class SnmpCounter64Type const & __ptr64) __ptr64
??4SnmpCounter64Type@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpCounter::operator=(class SnmpCounter const & __ptr64) __ptr64
??4SnmpCounter@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpCounterType & __ptr64 __cdecl SnmpCounterType::operator=(class SnmpCounterType const & __ptr64) __ptr64
??4SnmpCounterType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpDateTimeType & __ptr64 __cdecl SnmpDateTimeType::operator=(class SnmpDateTimeType const & __ptr64) __ptr64
??4SnmpDateTimeType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpDisplayStringType & __ptr64 __cdecl SnmpDisplayStringType::operator=(class SnmpDisplayStringType const & __ptr64) __ptr64
??4SnmpDisplayStringType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpEncodeDecode & __ptr64 __cdecl SnmpEncodeDecode::operator=(class SnmpEncodeDecode const & __ptr64) __ptr64
??4SnmpEncodeDecode@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpEndOfMibView::operator=(class SnmpEndOfMibView const & __ptr64) __ptr64
??4SnmpEndOfMibView@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpEnumeratedType & __ptr64 __cdecl SnmpEnumeratedType::operator=(class SnmpEnumeratedType const & __ptr64) __ptr64
??4SnmpEnumeratedType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpErrorReport & __ptr64 __cdecl SnmpErrorReport::operator=(class SnmpErrorReport const & __ptr64) __ptr64
??4SnmpErrorReport@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpFixedLengthDisplayStringType & __ptr64 __cdecl SnmpFixedLengthDisplayStringType::operator=(class SnmpFixedLengthDisplayStringType const & __ptr64) __ptr64
??4SnmpFixedLengthDisplayStringType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpFixedLengthOctetStringType & __ptr64 __cdecl SnmpFixedLengthOctetStringType::operator=(class SnmpFixedLengthOctetStringType const & __ptr64) __ptr64
??4SnmpFixedLengthOctetStringType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpFixedLengthOpaqueType & __ptr64 __cdecl SnmpFixedLengthOpaqueType::operator=(class SnmpFixedLengthOpaqueType const & __ptr64) __ptr64
??4SnmpFixedLengthOpaqueType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpFixedLengthPhysAddressType & __ptr64 __cdecl SnmpFixedLengthPhysAddressType::operator=(class SnmpFixedLengthPhysAddressType const & __ptr64) __ptr64
??4SnmpFixedLengthPhysAddressType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpFixedType & __ptr64 __cdecl SnmpFixedType::operator=(class SnmpFixedType const & __ptr64) __ptr64
??4SnmpFixedType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpGauge::operator=(class SnmpGauge const & __ptr64) __ptr64
??4SnmpGauge@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpGaugeType & __ptr64 __cdecl SnmpGaugeType::operator=(class SnmpGaugeType const & __ptr64) __ptr64
??4SnmpGaugeType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpIPXAddressType & __ptr64 __cdecl SnmpIPXAddressType::operator=(class SnmpIPXAddressType const & __ptr64) __ptr64
??4SnmpIPXAddressType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpInstanceType & __ptr64 __cdecl SnmpInstanceType::operator=(class SnmpInstanceType const & __ptr64) __ptr64
??4SnmpInstanceType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpInteger::operator=(class SnmpInteger const & __ptr64) __ptr64
??4SnmpInteger@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpIntegerType & __ptr64 __cdecl SnmpIntegerType::operator=(class SnmpIntegerType const & __ptr64) __ptr64
??4SnmpIntegerType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpIpAddress::operator=(class SnmpIpAddress const & __ptr64) __ptr64
??4SnmpIpAddress@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpIpAddressType & __ptr64 __cdecl SnmpIpAddressType::operator=(class SnmpIpAddressType const & __ptr64) __ptr64
??4SnmpIpAddressType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpLexicon & __ptr64 __cdecl SnmpLexicon::operator=(class SnmpLexicon const & __ptr64) __ptr64
??4SnmpLexicon@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpMacAddressType & __ptr64 __cdecl SnmpMacAddressType::operator=(class SnmpMacAddressType const & __ptr64) __ptr64
??4SnmpMacAddressType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpNegativeRangeType & __ptr64 __cdecl SnmpNegativeRangeType::operator=(class SnmpNegativeRangeType const & __ptr64) __ptr64
??4SnmpNegativeRangeType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpNetworkAddressType & __ptr64 __cdecl SnmpNetworkAddressType::operator=(class SnmpNetworkAddressType const & __ptr64) __ptr64
??4SnmpNetworkAddressType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpNoSuchInstance::operator=(class SnmpNoSuchInstance const & __ptr64) __ptr64
??4SnmpNoSuchInstance@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpNoSuchObject::operator=(class SnmpNoSuchObject const & __ptr64) __ptr64
??4SnmpNoSuchObject@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpNull::operator=(class SnmpNull const & __ptr64) __ptr64
??4SnmpNull@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpNullType & __ptr64 __cdecl SnmpNullType::operator=(class SnmpNullType const & __ptr64) __ptr64
??4SnmpNullType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpOSIAddressType & __ptr64 __cdecl SnmpOSIAddressType::operator=(class SnmpOSIAddressType const & __ptr64) __ptr64
??4SnmpOSIAddressType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpObjectIdentifier::operator=(class SnmpObjectIdentifier const & __ptr64) __ptr64
??4SnmpObjectIdentifier@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpObjectIdentifierType & __ptr64 __cdecl SnmpObjectIdentifierType::operator=(class SnmpObjectIdentifierType const & __ptr64) __ptr64
??4SnmpObjectIdentifierType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpOctetString::operator=(class SnmpOctetString const & __ptr64) __ptr64
??4SnmpOctetString@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpOctetStringType & __ptr64 __cdecl SnmpOctetStringType::operator=(class SnmpOctetStringType const & __ptr64) __ptr64
??4SnmpOctetStringType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpOpaque::operator=(class SnmpOpaque const & __ptr64) __ptr64
??4SnmpOpaque@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpOpaqueType & __ptr64 __cdecl SnmpOpaqueType::operator=(class SnmpOpaqueType const & __ptr64) __ptr64
??4SnmpOpaqueType@@QEAAAEAV0@AEBV0@@Z
; private: class SnmpOperation & __ptr64 __cdecl SnmpOperation::operator=(class SnmpOperation const & __ptr64) __ptr64
??4SnmpOperation@@AEAAAEAV0@AEBV0@@Z
; public: class SnmpPdu & __ptr64 __cdecl SnmpPdu::operator=(class SnmpPdu const & __ptr64) __ptr64
??4SnmpPdu@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpPhysAddressType & __ptr64 __cdecl SnmpPhysAddressType::operator=(class SnmpPhysAddressType const & __ptr64) __ptr64
??4SnmpPhysAddressType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpPositiveRangeType & __ptr64 __cdecl SnmpPositiveRangeType::operator=(class SnmpPositiveRangeType const & __ptr64) __ptr64
??4SnmpPositiveRangeType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpPositiveRangedType & __ptr64 __cdecl SnmpPositiveRangedType::operator=(class SnmpPositiveRangedType const & __ptr64) __ptr64
??4SnmpPositiveRangedType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpRowStatusType & __ptr64 __cdecl SnmpRowStatusType::operator=(class SnmpRowStatusType const & __ptr64) __ptr64
??4SnmpRowStatusType@@QEAAAEAV0@AEBV0@@Z
; private: class SnmpSecurity & __ptr64 __cdecl SnmpSecurity::operator=(class SnmpSecurity const & __ptr64) __ptr64
??4SnmpSecurity@@AEAAAEAV0@AEBV0@@Z
; private: class SnmpSession & __ptr64 __cdecl SnmpSession::operator=(class SnmpSession const & __ptr64) __ptr64
??4SnmpSession@@AEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpTimeTicks::operator=(class SnmpTimeTicks const & __ptr64) __ptr64
??4SnmpTimeTicks@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpTimeTicksType & __ptr64 __cdecl SnmpTimeTicksType::operator=(class SnmpTimeTicksType const & __ptr64) __ptr64
??4SnmpTimeTicksType@@QEAAAEAV0@AEBV0@@Z
; private: class SnmpTransport & __ptr64 __cdecl SnmpTransport::operator=(class SnmpTransport const & __ptr64) __ptr64
??4SnmpTransport@@AEAAAEAV0@AEBV0@@Z
; private: class SnmpTransportAddress & __ptr64 __cdecl SnmpTransportAddress::operator=(class SnmpTransportAddress const & __ptr64) __ptr64
??4SnmpTransportAddress@@AEAAAEAV0@AEBV0@@Z
; public: class SnmpTransportIpAddress & __ptr64 __cdecl SnmpTransportIpAddress::operator=(class SnmpTransportIpAddress const & __ptr64) __ptr64
??4SnmpTransportIpAddress@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpTransportIpAddress & __ptr64 __cdecl SnmpTransportIpAddress::operator=(unsigned char const * __ptr64) __ptr64
??4SnmpTransportIpAddress@@QEAAAEAV0@PEBE@Z
; public: class SnmpTransportIpxAddress & __ptr64 __cdecl SnmpTransportIpxAddress::operator=(class SnmpTransportIpxAddress const & __ptr64) __ptr64
??4SnmpTransportIpxAddress@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpTransportIpxAddress & __ptr64 __cdecl SnmpTransportIpxAddress::operator=(unsigned char const * __ptr64) __ptr64
??4SnmpTransportIpxAddress@@QEAAAEAV0@PEBE@Z
; public: class SnmpTrapReceiver & __ptr64 __cdecl SnmpTrapReceiver::operator=(class SnmpTrapReceiver const & __ptr64) __ptr64
??4SnmpTrapReceiver@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpUDPAddressType & __ptr64 __cdecl SnmpUDPAddressType::operator=(class SnmpUDPAddressType const & __ptr64) __ptr64
??4SnmpUDPAddressType@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpValue & __ptr64 __cdecl SnmpUInteger32::operator=(class SnmpUInteger32 const & __ptr64) __ptr64
??4SnmpUInteger32@@QEAAAEAVSnmpValue@@AEBV0@@Z
; public: class SnmpUInteger32Type & __ptr64 __cdecl SnmpUInteger32Type::operator=(class SnmpUInteger32Type const & __ptr64) __ptr64
??4SnmpUInteger32Type@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpV1EncodeDecode & __ptr64 __cdecl SnmpV1EncodeDecode::operator=(class SnmpV1EncodeDecode const & __ptr64) __ptr64
??4SnmpV1EncodeDecode@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpV2CEncodeDecode & __ptr64 __cdecl SnmpV2CEncodeDecode::operator=(class SnmpV2CEncodeDecode const & __ptr64) __ptr64
??4SnmpV2CEncodeDecode@@QEAAAEAV0@AEBV0@@Z
; private: class SnmpValue & __ptr64 __cdecl SnmpValue::operator=(class SnmpValue const & __ptr64) __ptr64
??4SnmpValue@@AEAAAEAV0@AEBV0@@Z
; public: class SnmpVarBind & __ptr64 __cdecl SnmpVarBind::operator=(class SnmpVarBind const & __ptr64) __ptr64
??4SnmpVarBind@@QEAAAEAV0@AEBV0@@Z
; public: class SnmpVarBindList & __ptr64 __cdecl SnmpVarBindList::operator=(class SnmpVarBindList & __ptr64) __ptr64
??4SnmpVarBindList@@QEAAAEAV0@AEAV0@@Z
; public: class SnmpVarBindListNode & __ptr64 __cdecl SnmpVarBindListNode::operator=(class SnmpVarBindListNode const & __ptr64) __ptr64
??4SnmpVarBindListNode@@QEAAAEAV0@AEBV0@@Z
; public: int __cdecl SnmpInstanceType::operator==(class SnmpInstanceType const & __ptr64)const  __ptr64
??8SnmpInstanceType@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpObjectIdentifier::operator==(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
??8SnmpObjectIdentifier@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpTransportIpAddress::operator==(class SnmpTransportIpAddress const & __ptr64)const  __ptr64
??8SnmpTransportIpAddress@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpTransportIpxAddress::operator==(class SnmpTransportIpxAddress const & __ptr64)const  __ptr64
??8SnmpTransportIpxAddress@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpValue::operator==(class SnmpValue const & __ptr64)const  __ptr64
??8SnmpValue@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpInstanceType::operator!=(class SnmpInstanceType const & __ptr64)const  __ptr64
??9SnmpInstanceType@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpObjectIdentifier::operator!=(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
??9SnmpObjectIdentifier@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpTransportIpAddress::operator!=(class SnmpTransportIpAddress const & __ptr64)const  __ptr64
??9SnmpTransportIpAddress@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpTransportIpxAddress::operator!=(class SnmpTransportIpxAddress const & __ptr64)const  __ptr64
??9SnmpTransportIpxAddress@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpValue::operator!=(class SnmpValue const & __ptr64)const  __ptr64
??9SnmpValue@@QEBAHAEBV0@@Z
; public: unsigned long & __ptr64 __cdecl SnmpObjectIdentifier::operator[](unsigned long)const  __ptr64
??ASnmpObjectIdentifier@@QEBAAEAKK@Z
; public: virtual unsigned char __cdecl SnmpTransportIpAddress::operator[](unsigned short)const  __ptr64
??ASnmpTransportIpAddress@@UEBAEG@Z
; public: virtual unsigned char __cdecl SnmpTransportIpxAddress::operator[](unsigned short)const  __ptr64
??ASnmpTransportIpxAddress@@UEBAEG@Z
; public: class SnmpVarBind * __ptr64 __cdecl SnmpVarBindList::operator[](unsigned int) __ptr64
??ASnmpVarBindList@@QEAAPEAVSnmpVarBind@@I@Z
; public: virtual __cdecl SnmpAnalyser::operator void * __ptr64(void) __ptr64
??BSnmpAnalyser@@UEAAPEAXXZ
; public: virtual __cdecl SnmpCommunityBasedSecurity::operator void * __ptr64(void)const  __ptr64
??BSnmpCommunityBasedSecurity@@UEBAPEAXXZ
; public: __cdecl SnmpErrorReport::operator void * __ptr64(void)const  __ptr64
??BSnmpErrorReport@@QEBAPEAXXZ
; public: __cdecl SnmpImpSession::operator void * __ptr64(void)const  __ptr64
??BSnmpImpSession@@QEBAPEAXXZ
; public: virtual __cdecl SnmpInstanceType::operator void * __ptr64(void) __ptr64
??BSnmpInstanceType@@UEAAPEAXXZ
; public: __cdecl SnmpOperation::operator void * __ptr64(void)const  __ptr64
??BSnmpOperation@@QEBAPEAXXZ
; public: __cdecl SnmpPdu::operator void * __ptr64(void)const  __ptr64
??BSnmpPdu@@QEBAPEAXXZ
; public: virtual __cdecl SnmpPositiveRangedType::operator void * __ptr64(void) __ptr64
??BSnmpPositiveRangedType@@UEAAPEAXXZ
; public: virtual __cdecl SnmpTransportIpAddress::operator void * __ptr64(void)const  __ptr64
??BSnmpTransportIpAddress@@UEBAPEAXXZ
; public: virtual __cdecl SnmpTransportIpxAddress::operator void * __ptr64(void)const  __ptr64
??BSnmpTransportIpxAddress@@UEBAPEAXXZ
; public: class SnmpObjectIdentifier  __cdecl SnmpObjectIdentifier::operator+(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
??HSnmpObjectIdentifier@@QEBA?AV0@AEBV0@@Z
; public: int __cdecl SnmpObjectIdentifier::operator<(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
??MSnmpObjectIdentifier@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpObjectIdentifier::operator<=(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
??NSnmpObjectIdentifier@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpObjectIdentifier::operator>(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
??OSnmpObjectIdentifier@@QEBAHAEBV0@@Z
; public: int __cdecl SnmpObjectIdentifier::operator>=(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
??PSnmpObjectIdentifier@@QEBAHAEBV0@@Z
; public: virtual void * __ptr64 __cdecl SnmpCommunityBasedSecurity::operator()(void)const  __ptr64
??RSnmpCommunityBasedSecurity@@UEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpEncodeDecode::operator()(void)const  __ptr64
??RSnmpEncodeDecode@@UEBAPEAXXZ
; public: void * __ptr64 __cdecl SnmpErrorReport::operator()(void)const  __ptr64
??RSnmpErrorReport@@QEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpImpSession::operator()(void)const  __ptr64
??RSnmpImpSession@@UEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpImpTransport::operator()(void)const  __ptr64
??RSnmpImpTransport@@UEBAPEAXXZ
; public: void * __ptr64 __cdecl SnmpIpAddress::operator()(void)const  __ptr64
??RSnmpIpAddress@@QEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpIpxImp::operator()(void)const  __ptr64
??RSnmpIpxImp@@UEBAPEAXXZ
; public: void * __ptr64 __cdecl SnmpObjectIdentifier::operator()(void)const  __ptr64
??RSnmpObjectIdentifier@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl SnmpOctetString::operator()(void)const  __ptr64
??RSnmpOctetString@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl SnmpOpaque::operator()(void)const  __ptr64
??RSnmpOpaque@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl SnmpOperation::operator()(void)const  __ptr64
??RSnmpOperation@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl SnmpPdu::operator()(void)const  __ptr64
??RSnmpPdu@@QEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpTransportIpAddress::operator()(void)const  __ptr64
??RSnmpTransportIpAddress@@UEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpTransportIpxAddress::operator()(void)const  __ptr64
??RSnmpTransportIpxAddress@@UEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpUdpIpImp::operator()(void)const  __ptr64
??RSnmpUdpIpImp@@UEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpV1OverIp::operator()(void)const  __ptr64
??RSnmpV1OverIp@@UEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpV1OverIpx::operator()(void)const  __ptr64
??RSnmpV1OverIpx@@UEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpV2COverIp::operator()(void)const  __ptr64
??RSnmpV2COverIp@@UEBAPEAXXZ
; public: virtual void * __ptr64 __cdecl SnmpV2COverIpx::operator()(void)const  __ptr64
??RSnmpV2COverIpx@@UEBAPEAXXZ
; const  GeneralException::`vftable'
??_7GeneralException@@6B@
; const  GetNextOperation::`vftable'
??_7GetNextOperation@@6B@
; const  SnmpAnalyser::`vftable'
??_7SnmpAnalyser@@6B@
; const  SnmpAutoRetrieveOperation::`vftable'
??_7SnmpAutoRetrieveOperation@@6B@
; const  SnmpBitStringType::`vftable'{for `SnmpInstanceType'}
??_7SnmpBitStringType@@6BSnmpInstanceType@@@
; const  SnmpBitStringType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpBitStringType@@6BSnmpPositiveRangedType@@@
; const  SnmpClassLibrary::`vftable'
??_7SnmpClassLibrary@@6B@
; const  SnmpCommunityBasedSecurity::`vftable'
??_7SnmpCommunityBasedSecurity@@6B@
; const  SnmpCounter64::`vftable'
??_7SnmpCounter64@@6B@
; const  SnmpCounter64Type::`vftable'
??_7SnmpCounter64Type@@6B@
; const  SnmpCounter::`vftable'
??_7SnmpCounter@@6B@
; const  SnmpCounterType::`vftable'
??_7SnmpCounterType@@6B@
; const  SnmpDateTimeType::`vftable'{for `SnmpInstanceType'}
??_7SnmpDateTimeType@@6BSnmpInstanceType@@@
; const  SnmpDateTimeType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpDateTimeType@@6BSnmpPositiveRangedType@@@
; const  SnmpDisplayStringType::`vftable'{for `SnmpInstanceType'}
??_7SnmpDisplayStringType@@6BSnmpInstanceType@@@
; const  SnmpDisplayStringType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpDisplayStringType@@6BSnmpPositiveRangedType@@@
; const  SnmpEncodeDecode::`vftable'
??_7SnmpEncodeDecode@@6B@
; const  SnmpEndOfMibView::`vftable'
??_7SnmpEndOfMibView@@6B@
; const  SnmpEnumeratedType::`vftable'{for `SnmpInstanceType'}
??_7SnmpEnumeratedType@@6BSnmpInstanceType@@@
; const  SnmpEnumeratedType::`vftable'{for `SnmpNegativeRangedType'}
??_7SnmpEnumeratedType@@6BSnmpNegativeRangedType@@@
; const  SnmpErrorReport::`vftable'
??_7SnmpErrorReport@@6B@
; const  SnmpFixedLengthDisplayStringType::`vftable'
??_7SnmpFixedLengthDisplayStringType@@6B@
; const  SnmpFixedLengthDisplayStringType::`vftable'{for `SnmpInstanceType'}
??_7SnmpFixedLengthDisplayStringType@@6BSnmpInstanceType@@@
; const  SnmpFixedLengthDisplayStringType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpFixedLengthDisplayStringType@@6BSnmpPositiveRangedType@@@
; const  SnmpFixedLengthOctetStringType::`vftable'
??_7SnmpFixedLengthOctetStringType@@6B@
; const  SnmpFixedLengthOctetStringType::`vftable'{for `SnmpInstanceType'}
??_7SnmpFixedLengthOctetStringType@@6BSnmpInstanceType@@@
; const  SnmpFixedLengthOctetStringType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpFixedLengthOctetStringType@@6BSnmpPositiveRangedType@@@
; const  SnmpFixedLengthOpaqueType::`vftable'
??_7SnmpFixedLengthOpaqueType@@6B@
; const  SnmpFixedLengthOpaqueType::`vftable'{for `SnmpInstanceType'}
??_7SnmpFixedLengthOpaqueType@@6BSnmpInstanceType@@@
; const  SnmpFixedLengthOpaqueType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpFixedLengthOpaqueType@@6BSnmpPositiveRangedType@@@
; const  SnmpFixedLengthPhysAddressType::`vftable'
??_7SnmpFixedLengthPhysAddressType@@6B@
; const  SnmpFixedLengthPhysAddressType::`vftable'{for `SnmpInstanceType'}
??_7SnmpFixedLengthPhysAddressType@@6BSnmpInstanceType@@@
; const  SnmpFixedLengthPhysAddressType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpFixedLengthPhysAddressType@@6BSnmpPositiveRangedType@@@
; const  SnmpFixedType::`vftable'
??_7SnmpFixedType@@6B@
; const  SnmpGauge::`vftable'
??_7SnmpGauge@@6B@
; const  SnmpGaugeType::`vftable'{for `SnmpInstanceType'}
??_7SnmpGaugeType@@6BSnmpInstanceType@@@
; const  SnmpGaugeType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpGaugeType@@6BSnmpPositiveRangedType@@@
; const  SnmpGetNextOperation::`vftable'
??_7SnmpGetNextOperation@@6B@
; const  SnmpGetOperation::`vftable'
??_7SnmpGetOperation@@6B@
; const  SnmpIPXAddressType::`vftable'
??_7SnmpIPXAddressType@@6B@
; const  SnmpIPXAddressType::`vftable'{for `SnmpInstanceType'}
??_7SnmpIPXAddressType@@6BSnmpInstanceType@@@
; const  SnmpIPXAddressType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpIPXAddressType@@6BSnmpPositiveRangedType@@@
; const  SnmpImpSession::`vftable'
??_7SnmpImpSession@@6B@
; const  SnmpImpTransport::`vftable'
??_7SnmpImpTransport@@6B@
; const  SnmpInstanceType::`vftable'
??_7SnmpInstanceType@@6B@
; const  SnmpInteger::`vftable'
??_7SnmpInteger@@6B@
; const  SnmpIntegerType::`vftable'{for `SnmpInstanceType'}
??_7SnmpIntegerType@@6BSnmpInstanceType@@@
; const  SnmpIntegerType::`vftable'{for `SnmpNegativeRangedType'}
??_7SnmpIntegerType@@6BSnmpNegativeRangedType@@@
; const  SnmpIpAddress::`vftable'
??_7SnmpIpAddress@@6B@
; const  SnmpIpAddressType::`vftable'
??_7SnmpIpAddressType@@6B@
; const  SnmpIpxImp::`vftable'{for `SnmpIpxTransport'}
??_7SnmpIpxImp@@6BSnmpIpxTransport@@@
; const  SnmpIpxImp::`vftable'{for `SnmpTransportIpxAddress'}
??_7SnmpIpxImp@@6BSnmpTransportIpxAddress@@@
; const  SnmpIpxTransport::`vftable'
??_7SnmpIpxTransport@@6B@
; const  SnmpMacAddressType::`vftable'
??_7SnmpMacAddressType@@6B@
; const  SnmpMacAddressType::`vftable'{for `SnmpInstanceType'}
??_7SnmpMacAddressType@@6BSnmpInstanceType@@@
; const  SnmpMacAddressType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpMacAddressType@@6BSnmpPositiveRangedType@@@
; const  SnmpNegativeRangeType::`vftable'
??_7SnmpNegativeRangeType@@6B@
; const  SnmpNetworkAddressType::`vftable'
??_7SnmpNetworkAddressType@@6B@
; const  SnmpNoSuchInstance::`vftable'
??_7SnmpNoSuchInstance@@6B@
; const  SnmpNoSuchObject::`vftable'
??_7SnmpNoSuchObject@@6B@
; const  SnmpNull::`vftable'
??_7SnmpNull@@6B@
; const  SnmpNullType::`vftable'
??_7SnmpNullType@@6B@
; const  SnmpOSIAddressType::`vftable'{for `SnmpInstanceType'}
??_7SnmpOSIAddressType@@6BSnmpInstanceType@@@
; const  SnmpOSIAddressType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpOSIAddressType@@6BSnmpPositiveRangedType@@@
; const  SnmpObjectIdentifier::`vftable'
??_7SnmpObjectIdentifier@@6B@
; const  SnmpObjectIdentifierType::`vftable'
??_7SnmpObjectIdentifierType@@6B@
; const  SnmpOctetString::`vftable'
??_7SnmpOctetString@@6B@
; const  SnmpOctetStringType::`vftable'{for `SnmpInstanceType'}
??_7SnmpOctetStringType@@6BSnmpInstanceType@@@
; const  SnmpOctetStringType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpOctetStringType@@6BSnmpPositiveRangedType@@@
; const  SnmpOpaque::`vftable'
??_7SnmpOpaque@@6B@
; const  SnmpOpaqueType::`vftable'{for `SnmpInstanceType'}
??_7SnmpOpaqueType@@6BSnmpInstanceType@@@
; const  SnmpOpaqueType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpOpaqueType@@6BSnmpPositiveRangedType@@@
; const  SnmpOperation::`vftable'
??_7SnmpOperation@@6B@
; const  SnmpPdu::`vftable'
??_7SnmpPdu@@6B@
; const  SnmpPhysAddressType::`vftable'{for `SnmpInstanceType'}
??_7SnmpPhysAddressType@@6BSnmpInstanceType@@@
; const  SnmpPhysAddressType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpPhysAddressType@@6BSnmpPositiveRangedType@@@
; const  SnmpPositiveRangeType::`vftable'
??_7SnmpPositiveRangeType@@6B@
; const  SnmpPositiveRangedType::`vftable'
??_7SnmpPositiveRangedType@@6B@
; const  SnmpRowStatusType::`vftable'{for `SnmpInstanceType'}
??_7SnmpRowStatusType@@6BSnmpInstanceType@@@
; const  SnmpRowStatusType::`vftable'{for `SnmpNegativeRangedType'}
??_7SnmpRowStatusType@@6BSnmpNegativeRangedType@@@
; const  SnmpSecurity::`vftable'
??_7SnmpSecurity@@6B@
; const  SnmpSession::`vftable'
??_7SnmpSession@@6B@
; const  SnmpSetOperation::`vftable'
??_7SnmpSetOperation@@6B@
; const  SnmpTimeTicks::`vftable'
??_7SnmpTimeTicks@@6B@
; const  SnmpTimeTicksType::`vftable'
??_7SnmpTimeTicksType@@6B@
; const  SnmpTransport::`vftable'
??_7SnmpTransport@@6B@
; const  SnmpTransportAddress::`vftable'
??_7SnmpTransportAddress@@6B@
; const  SnmpTransportIpAddress::`vftable'
??_7SnmpTransportIpAddress@@6B@
; const  SnmpTransportIpxAddress::`vftable'
??_7SnmpTransportIpxAddress@@6B@
; const  SnmpTrapReceiver::`vftable'
??_7SnmpTrapReceiver@@6B@
; const  SnmpUDPAddressType::`vftable'
??_7SnmpUDPAddressType@@6B@
; const  SnmpUDPAddressType::`vftable'{for `SnmpInstanceType'}
??_7SnmpUDPAddressType@@6BSnmpInstanceType@@@
; const  SnmpUDPAddressType::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpUDPAddressType@@6BSnmpPositiveRangedType@@@
; const  SnmpUInteger32::`vftable'
??_7SnmpUInteger32@@6B@
; const  SnmpUInteger32Type::`vftable'{for `SnmpInstanceType'}
??_7SnmpUInteger32Type@@6BSnmpInstanceType@@@
; const  SnmpUInteger32Type::`vftable'{for `SnmpPositiveRangedType'}
??_7SnmpUInteger32Type@@6BSnmpPositiveRangedType@@@
; const  SnmpUdpIpImp::`vftable'{for `SnmpTransportIpAddress'}
??_7SnmpUdpIpImp@@6BSnmpTransportIpAddress@@@
; const  SnmpUdpIpImp::`vftable'{for `SnmpUdpIpTransport'}
??_7SnmpUdpIpImp@@6BSnmpUdpIpTransport@@@
; const  SnmpUdpIpTransport::`vftable'
??_7SnmpUdpIpTransport@@6B@
; const  SnmpV1EncodeDecode::`vftable'
??_7SnmpV1EncodeDecode@@6B@
; const  SnmpV1OverIp::`vftable'{for `SnmpCommunityBasedSecurity'}
??_7SnmpV1OverIp@@6BSnmpCommunityBasedSecurity@@@
; const  SnmpV1OverIp::`vftable'{for `SnmpImpSession'}
??_7SnmpV1OverIp@@6BSnmpImpSession@@@
; const  SnmpV1OverIp::`vftable'{for `SnmpTransportIpAddress'}
??_7SnmpV1OverIp@@6BSnmpTransportIpAddress@@@
; const  SnmpV1OverIp::`vftable'{for `SnmpUdpIpTransport'}
??_7SnmpV1OverIp@@6BSnmpUdpIpTransport@@@
; const  SnmpV1OverIp::`vftable'{for `SnmpV1EncodeDecode'}
??_7SnmpV1OverIp@@6BSnmpV1EncodeDecode@@@
; const  SnmpV1OverIpx::`vftable'{for `SnmpCommunityBasedSecurity'}
??_7SnmpV1OverIpx@@6BSnmpCommunityBasedSecurity@@@
; const  SnmpV1OverIpx::`vftable'{for `SnmpImpSession'}
??_7SnmpV1OverIpx@@6BSnmpImpSession@@@
; const  SnmpV1OverIpx::`vftable'{for `SnmpIpxTransport'}
??_7SnmpV1OverIpx@@6BSnmpIpxTransport@@@
; const  SnmpV1OverIpx::`vftable'{for `SnmpTransportIpxAddress'}
??_7SnmpV1OverIpx@@6BSnmpTransportIpxAddress@@@
; const  SnmpV1OverIpx::`vftable'{for `SnmpV1EncodeDecode'}
??_7SnmpV1OverIpx@@6BSnmpV1EncodeDecode@@@
; const  SnmpV2CEncodeDecode::`vftable'
??_7SnmpV2CEncodeDecode@@6B@
; const  SnmpV2COverIp::`vftable'{for `SnmpCommunityBasedSecurity'}
??_7SnmpV2COverIp@@6BSnmpCommunityBasedSecurity@@@
; const  SnmpV2COverIp::`vftable'{for `SnmpImpSession'}
??_7SnmpV2COverIp@@6BSnmpImpSession@@@
; const  SnmpV2COverIp::`vftable'{for `SnmpTransportIpAddress'}
??_7SnmpV2COverIp@@6BSnmpTransportIpAddress@@@
; const  SnmpV2COverIp::`vftable'{for `SnmpUdpIpTransport'}
??_7SnmpV2COverIp@@6BSnmpUdpIpTransport@@@
; const  SnmpV2COverIp::`vftable'{for `SnmpV2CEncodeDecode'}
??_7SnmpV2COverIp@@6BSnmpV2CEncodeDecode@@@
; const  SnmpV2COverIpx::`vftable'{for `SnmpCommunityBasedSecurity'}
??_7SnmpV2COverIpx@@6BSnmpCommunityBasedSecurity@@@
; const  SnmpV2COverIpx::`vftable'{for `SnmpImpSession'}
??_7SnmpV2COverIpx@@6BSnmpImpSession@@@
; const  SnmpV2COverIpx::`vftable'{for `SnmpIpxTransport'}
??_7SnmpV2COverIpx@@6BSnmpIpxTransport@@@
; const  SnmpV2COverIpx::`vftable'{for `SnmpTransportIpxAddress'}
??_7SnmpV2COverIpx@@6BSnmpTransportIpxAddress@@@
; const  SnmpV2COverIpx::`vftable'{for `SnmpV2CEncodeDecode'}
??_7SnmpV2COverIpx@@6BSnmpV2CEncodeDecode@@@
; const  SnmpValue::`vftable'
??_7SnmpValue@@6B@
; const  SnmpVarBind::`vftable'
??_7SnmpVarBind@@6B@
; public: void __cdecl SnmpAnalyser::`default constructor closure'(void) __ptr64
??_FSnmpAnalyser@@QEAAXXZ
; public: void __cdecl SnmpCommunityBasedSecurity::`default constructor closure'(void) __ptr64
??_FSnmpCommunityBasedSecurity@@QEAAXXZ
; public: void __cdecl SnmpDisplayStringType::`default constructor closure'(void) __ptr64
??_FSnmpDisplayStringType@@QEAAXXZ
; public: void __cdecl SnmpGaugeType::`default constructor closure'(void) __ptr64
??_FSnmpGaugeType@@QEAAXXZ
; public: void __cdecl SnmpInstanceType::`default constructor closure'(void) __ptr64
??_FSnmpInstanceType@@QEAAXXZ
; public: void __cdecl SnmpIntegerType::`default constructor closure'(void) __ptr64
??_FSnmpIntegerType@@QEAAXXZ
; public: void __cdecl SnmpOctetStringType::`default constructor closure'(void) __ptr64
??_FSnmpOctetStringType@@QEAAXXZ
; public: void __cdecl SnmpOpaqueType::`default constructor closure'(void) __ptr64
??_FSnmpOpaqueType@@QEAAXXZ
; public: void __cdecl SnmpPhysAddressType::`default constructor closure'(void) __ptr64
??_FSnmpPhysAddressType@@QEAAXXZ
; public: void __cdecl SnmpPositiveRangedType::`default constructor closure'(void) __ptr64
??_FSnmpPositiveRangedType@@QEAAXXZ
; public: void __cdecl SnmpUInteger32Type::`default constructor closure'(void) __ptr64
??_FSnmpUInteger32Type@@QEAAXXZ
; public: void __cdecl SnmpVarBindList::Add(class SnmpVarBind const & __ptr64) __ptr64
?Add@SnmpVarBindList@@QEAAXAEBVSnmpVarBind@@@Z
; public: void __cdecl SnmpVarBindList::AddNoReallocate(class SnmpVarBind & __ptr64) __ptr64
?AddNoReallocate@SnmpVarBindList@@QEAAXAEAVSnmpVarBind@@@Z
; protected: virtual int __cdecl SnmpAnalyser::Analyse(class SnmpLexicon * __ptr64,unsigned long & __ptr64,unsigned short,unsigned short const * __ptr64,unsigned long & __ptr64,int,int,int) __ptr64
?Analyse@SnmpAnalyser@@MEAAHPEAVSnmpLexicon@@AEAKGPEBG1HHH@Z
; private: int __cdecl SnmpBitStringType::BitStringDef(void) __ptr64
?BitStringDef@SnmpBitStringType@@AEAAHXZ
; public: void __cdecl GetNextOperation::CancelRequest(void) __ptr64
?CancelRequest@GetNextOperation@@QEAAXXZ
; public: void __cdecl SnmpAutoRetrieveOperation::CancelRequest(void) __ptr64
?CancelRequest@SnmpAutoRetrieveOperation@@QEAAXXZ
; public: void __cdecl SnmpOperation::CancelRequest(void) __ptr64
?CancelRequest@SnmpOperation@@QEAAXXZ
; public: class SnmpVarBindList * __ptr64 __cdecl SnmpVarBindList::Car(unsigned int) __ptr64
?Car@SnmpVarBindList@@QEAAPEAV1@I@Z
; public: class SnmpVarBindList * __ptr64 __cdecl SnmpVarBindList::Cdr(unsigned int) __ptr64
?Cdr@SnmpVarBindList@@QEAAPEAV1@I@Z
; public: int __cdecl SnmpPositiveRangedType::Check(unsigned long const & __ptr64) __ptr64
?Check@SnmpPositiveRangedType@@QEAAHAEBK@Z
; private: void __cdecl SnmpOperation::CheckOperationDeletion(void) __ptr64
?CheckOperationDeletion@SnmpOperation@@AEAAXXZ
; private: void __cdecl GetNextOperation::Cleanup(void) __ptr64
?Cleanup@GetNextOperation@@AEAAXXZ
; public: static void __cdecl SnmpClassLibrary::Closedown(void)
?Closedown@SnmpClassLibrary@@SAXXZ
; protected: enum SnmpObjectIdentifier::Comparison  __cdecl SnmpObjectIdentifier::Compare(class SnmpObjectIdentifier const & __ptr64,class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Compare@SnmpObjectIdentifier@@IEBA?AW4Comparison@1@AEBV1@0@Z
; int __cdecl CompareElements(class SnmpObjectIdentifierType * __ptr64,class SnmpObjectIdentifierType * __ptr64)
?CompareElements@@YAHPEAVSnmpObjectIdentifierType@@0@Z
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpBitStringType::Copy(void)const  __ptr64
?Copy@SnmpBitStringType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpSecurity * __ptr64 __cdecl SnmpCommunityBasedSecurity::Copy(void)const  __ptr64
?Copy@SnmpCommunityBasedSecurity@@UEBAPEAVSnmpSecurity@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpCounter64::Copy(void)const  __ptr64
?Copy@SnmpCounter64@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpCounter64Type::Copy(void)const  __ptr64
?Copy@SnmpCounter64Type@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpCounter::Copy(void)const  __ptr64
?Copy@SnmpCounter@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpCounterType::Copy(void)const  __ptr64
?Copy@SnmpCounterType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpDateTimeType::Copy(void)const  __ptr64
?Copy@SnmpDateTimeType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpDisplayStringType::Copy(void)const  __ptr64
?Copy@SnmpDisplayStringType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpEndOfMibView::Copy(void)const  __ptr64
?Copy@SnmpEndOfMibView@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpEnumeratedType::Copy(void)const  __ptr64
?Copy@SnmpEnumeratedType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpFixedLengthDisplayStringType::Copy(void)const  __ptr64
?Copy@SnmpFixedLengthDisplayStringType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpFixedLengthOctetStringType::Copy(void)const  __ptr64
?Copy@SnmpFixedLengthOctetStringType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpFixedLengthOpaqueType::Copy(void)const  __ptr64
?Copy@SnmpFixedLengthOpaqueType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpFixedLengthPhysAddressType::Copy(void)const  __ptr64
?Copy@SnmpFixedLengthPhysAddressType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpGauge::Copy(void)const  __ptr64
?Copy@SnmpGauge@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpGaugeType::Copy(void)const  __ptr64
?Copy@SnmpGaugeType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpIPXAddressType::Copy(void)const  __ptr64
?Copy@SnmpIPXAddressType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpInteger::Copy(void)const  __ptr64
?Copy@SnmpInteger@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpIntegerType::Copy(void)const  __ptr64
?Copy@SnmpIntegerType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpIpAddress::Copy(void)const  __ptr64
?Copy@SnmpIpAddress@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpIpAddressType::Copy(void)const  __ptr64
?Copy@SnmpIpAddressType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpMacAddressType::Copy(void)const  __ptr64
?Copy@SnmpMacAddressType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpNegativeRangeType * __ptr64 __cdecl SnmpNegativeRangeType::Copy(void) __ptr64
?Copy@SnmpNegativeRangeType@@UEAAPEAV1@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpNetworkAddressType::Copy(void)const  __ptr64
?Copy@SnmpNetworkAddressType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpNoSuchInstance::Copy(void)const  __ptr64
?Copy@SnmpNoSuchInstance@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpNoSuchObject::Copy(void)const  __ptr64
?Copy@SnmpNoSuchObject@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpNull::Copy(void)const  __ptr64
?Copy@SnmpNull@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpNullType::Copy(void)const  __ptr64
?Copy@SnmpNullType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpOSIAddressType::Copy(void)const  __ptr64
?Copy@SnmpOSIAddressType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpObjectIdentifier::Copy(void)const  __ptr64
?Copy@SnmpObjectIdentifier@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpObjectIdentifierType::Copy(void)const  __ptr64
?Copy@SnmpObjectIdentifierType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpOctetString::Copy(void)const  __ptr64
?Copy@SnmpOctetString@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpOctetStringType::Copy(void)const  __ptr64
?Copy@SnmpOctetStringType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpOpaque::Copy(void)const  __ptr64
?Copy@SnmpOpaque@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpOpaqueType::Copy(void)const  __ptr64
?Copy@SnmpOpaqueType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpPhysAddressType::Copy(void)const  __ptr64
?Copy@SnmpPhysAddressType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpPositiveRangeType * __ptr64 __cdecl SnmpPositiveRangeType::Copy(void) __ptr64
?Copy@SnmpPositiveRangeType@@UEAAPEAV1@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpRowStatusType::Copy(void)const  __ptr64
?Copy@SnmpRowStatusType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpTimeTicks::Copy(void)const  __ptr64
?Copy@SnmpTimeTicks@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpTimeTicksType::Copy(void)const  __ptr64
?Copy@SnmpTimeTicksType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpTransportAddress * __ptr64 __cdecl SnmpTransportIpAddress::Copy(void)const  __ptr64
?Copy@SnmpTransportIpAddress@@UEBAPEAVSnmpTransportAddress@@XZ
; public: virtual class SnmpTransportAddress * __ptr64 __cdecl SnmpTransportIpxAddress::Copy(void)const  __ptr64
?Copy@SnmpTransportIpxAddress@@UEBAPEAVSnmpTransportAddress@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpUDPAddressType::Copy(void)const  __ptr64
?Copy@SnmpUDPAddressType@@UEBAPEAVSnmpInstanceType@@XZ
; public: virtual class SnmpValue * __ptr64 __cdecl SnmpUInteger32::Copy(void)const  __ptr64
?Copy@SnmpUInteger32@@UEBAPEAVSnmpValue@@XZ
; public: virtual class SnmpInstanceType * __ptr64 __cdecl SnmpUInteger32Type::Copy(void)const  __ptr64
?Copy@SnmpUInteger32Type@@UEBAPEAVSnmpInstanceType@@XZ
; public: class SnmpVarBindList * __ptr64 __cdecl SnmpVarBindList::CopySegment(unsigned int) __ptr64
?CopySegment@SnmpVarBindList@@QEAAPEAV1@I@Z
; protected: virtual class SnmpLexicon * __ptr64 __cdecl SnmpAnalyser::CreateLexicon(void) __ptr64
?CreateLexicon@SnmpAnalyser@@MEAAPEAVSnmpLexicon@@XZ
; public: class SnmpObjectIdentifier * __ptr64 __cdecl SnmpObjectIdentifier::Cut(class SnmpObjectIdentifier & __ptr64)const  __ptr64
?Cut@SnmpObjectIdentifier@@QEBAPEAV1@AEAV1@@Z
; private: int __cdecl SnmpDateTimeType::DateTimeDef(void) __ptr64
?DateTimeDef@SnmpDateTimeType@@AEAAHXZ
; unsigned short * __ptr64 __cdecl DbcsToUnicodeString(char const * __ptr64)
?DbcsToUnicodeString@@YAPEAGPEBD@Z
; public: static unsigned long __cdecl SnmpAnalyser::DecCharToDecInteger(char)
?DecCharToDecInteger@SnmpAnalyser@@SAKD@Z
; public: static char __cdecl SnmpAnalyser::DecIntegerToDecChar(unsigned char)
?DecIntegerToDecChar@SnmpAnalyser@@SADE@Z
; public: static unsigned short __cdecl SnmpAnalyser::DecIntegerToDecWChar(unsigned char)
?DecIntegerToDecWChar@SnmpAnalyser@@SAGE@Z
; public: static char __cdecl SnmpAnalyser::DecIntegerToHexChar(unsigned char)
?DecIntegerToHexChar@SnmpAnalyser@@SADE@Z
; public: static unsigned short __cdecl SnmpAnalyser::DecIntegerToHexWChar(unsigned char)
?DecIntegerToHexWChar@SnmpAnalyser@@SAGE@Z
; public: static char __cdecl SnmpAnalyser::DecIntegerToOctChar(unsigned char)
?DecIntegerToOctChar@SnmpAnalyser@@SADE@Z
; public: static unsigned short __cdecl SnmpAnalyser::DecIntegerToOctWChar(unsigned char)
?DecIntegerToOctWChar@SnmpAnalyser@@SAGE@Z
; public: static unsigned long __cdecl SnmpAnalyser::DecWCharToDecInteger(unsigned short)
?DecWCharToDecInteger@SnmpAnalyser@@SAKG@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpCounter64Type::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpCounter64Type@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpCounterType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpCounterType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpFixedLengthOctetStringType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpFixedLengthOctetStringType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpFixedLengthOpaqueType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpFixedLengthOpaqueType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpGaugeType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpGaugeType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpIntegerType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpIntegerType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpIpAddressType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpIpAddressType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpNetworkAddressType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpNetworkAddressType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpNullType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpNullType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpObjectIdentifierType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpObjectIdentifierType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpOctetStringType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpOctetStringType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpOpaqueType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpOpaqueType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpTimeTicksType::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpTimeTicksType@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpUInteger32Type::Decode(class SnmpObjectIdentifier const & __ptr64) __ptr64
?Decode@SnmpUInteger32Type@@UEAA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual int __cdecl SnmpEncodeDecode::DecodeFrame(class SnmpPdu & __ptr64,long,enum SnmpEncodeDecode::PduType,class SnmpErrorReport & __ptr64,class SnmpVarBindList * __ptr64 & __ptr64,class SnmpCommunityBasedSecurity * __ptr64 & __ptr64,class SnmpTransportAddress * __ptr64 & __ptr64,class SnmpTransportAddress * __ptr64 & __ptr64) __ptr64
?DecodeFrame@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@JW4PduType@1@AEAVSnmpErrorReport@@AEAPEAVSnmpVarBindList@@AEAPEAVSnmpCommunityBasedSecurity@@AEAPEAVSnmpTransportAddress@@5@Z
; public: virtual int __cdecl SnmpEncodeDecode::DecodeFrame(void * __ptr64,class SnmpPdu & __ptr64) __ptr64
?DecodeFrame@SnmpEncodeDecode@@UEAAHPEAXAEAVSnmpPdu@@@Z
; public: virtual void __cdecl SnmpImpSession::DeregisterOperation(class SnmpOperation & __ptr64) __ptr64
?DeregisterOperation@SnmpImpSession@@UEAAXAEAVSnmpOperation@@@Z
; public: void __cdecl GetNextOperation::DestroyOperation(void) __ptr64
?DestroyOperation@GetNextOperation@@QEAAXXZ
; protected: void __cdecl SnmpAutoRetrieveOperation::DestroyOperation(void) __ptr64
?DestroyOperation@SnmpAutoRetrieveOperation@@IEAAXXZ
; protected: void __cdecl SnmpOperation::DestroyOperation(void) __ptr64
?DestroyOperation@SnmpOperation@@IEAAXXZ
; protected: void __cdecl SnmpVarBindList::DestroyPosition(class SnmpVarBindList::ListPosition * __ptr64) __ptr64
?DestroyPosition@SnmpVarBindList@@IEAAXPEAVListPosition@1@@Z
; public: int __cdecl SnmpTrapReceiver::DestroyReceiver(void) __ptr64
?DestroyReceiver@SnmpTrapReceiver@@QEAAHXZ
; public: virtual int __cdecl SnmpImpSession::DestroySession(void) __ptr64
?DestroySession@SnmpImpSession@@UEAAHXZ
; protected: static int __cdecl SnmpEncodeDecode::DestroyStaticComponents(void)
?DestroyStaticComponents@SnmpEncodeDecode@@KAHXZ
; public: int __cdecl SnmpVarBindList::Empty(void)const  __ptr64
?Empty@SnmpVarBindList@@QEBAHXZ
; protected: void __cdecl SnmpVarBindList::EmptyLookupTable(void) __ptr64
?EmptyLookupTable@SnmpVarBindList@@IEAAXXZ
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpCounter64Type::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpCounter64Type@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpCounterType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpCounterType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; private: void __cdecl SnmpDateTimeType::Encode(unsigned long const & __ptr64,unsigned long const & __ptr64,unsigned long const & __ptr64,unsigned long const & __ptr64,unsigned long const & __ptr64,unsigned long const & __ptr64,unsigned long const & __ptr64,unsigned long const & __ptr64,unsigned long const & __ptr64,unsigned long const & __ptr64,unsigned long const & __ptr64) __ptr64
?Encode@SnmpDateTimeType@@AEAAXAEBK0000000000@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpFixedLengthOctetStringType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpFixedLengthOctetStringType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpFixedLengthOpaqueType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpFixedLengthOpaqueType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpGaugeType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpGaugeType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpIntegerType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpIntegerType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpIpAddressType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpIpAddressType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpNetworkAddressType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpNetworkAddressType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpNullType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpNullType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpObjectIdentifierType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpObjectIdentifierType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpOctetStringType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpOctetStringType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpOpaqueType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpOpaqueType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpTimeTicksType::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpTimeTicksType@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual class SnmpObjectIdentifier  __cdecl SnmpUInteger32Type::Encode(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Encode@SnmpUInteger32Type@@UEBA?AVSnmpObjectIdentifier@@AEBV2@@Z
; public: virtual int __cdecl SnmpEncodeDecode::EncodeFrame(class SnmpPdu & __ptr64,long,enum SnmpEncodeDecode::PduType,class SnmpErrorReport & __ptr64,class SnmpVarBindList & __ptr64,class SnmpCommunityBasedSecurity * __ptr64 & __ptr64,class SnmpTransportAddress * __ptr64 & __ptr64,class SnmpTransportAddress * __ptr64 & __ptr64) __ptr64
?EncodeFrame@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@JW4PduType@1@AEAVSnmpErrorReport@@AEAVSnmpVarBindList@@AEAPEAVSnmpCommunityBasedSecurity@@AEAPEAVSnmpTransportAddress@@5@Z
; public: virtual int __cdecl SnmpEncodeDecode::EncodeFrame(class SnmpPdu & __ptr64,void * __ptr64) __ptr64
?EncodeFrame@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@PEAX@Z
; private: int __cdecl SnmpEnumeratedType::EnumerationDef(void) __ptr64
?EnumerationDef@SnmpEnumeratedType@@AEAAHXZ
; protected: virtual int __cdecl SnmpCounter64::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpCounter64@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpCounter64::Equivalent(class SnmpCounter64 const & __ptr64)const  __ptr64
?Equivalent@SnmpCounter64@@QEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpCounter64Type::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpCounter64Type@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpCounter::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpCounter@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpCounter::Equivalent(class SnmpCounter const & __ptr64)const  __ptr64
?Equivalent@SnmpCounter@@QEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpCounterType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpCounterType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpEndOfMibView::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpEndOfMibView@@MEBAHAEBVSnmpValue@@@Z
; protected: virtual int __cdecl SnmpGauge::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpGauge@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpGauge::Equivalent(class SnmpGauge const & __ptr64)const  __ptr64
?Equivalent@SnmpGauge@@QEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpGaugeType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpGaugeType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpInteger::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpInteger@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpInteger::Equivalent(class SnmpInteger const & __ptr64)const  __ptr64
?Equivalent@SnmpInteger@@QEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpIntegerType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpIntegerType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpIpAddress::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpIpAddress@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpIpAddress::Equivalent(class SnmpIpAddress const & __ptr64)const  __ptr64
?Equivalent@SnmpIpAddress@@QEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpIpAddressType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpIpAddressType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpNetworkAddressType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpNetworkAddressType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpNoSuchInstance::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpNoSuchInstance@@MEBAHAEBVSnmpValue@@@Z
; protected: virtual int __cdecl SnmpNoSuchObject::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpNoSuchObject@@MEBAHAEBVSnmpValue@@@Z
; protected: virtual int __cdecl SnmpNull::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpNull@@MEBAHAEBVSnmpValue@@@Z
; protected: virtual int __cdecl SnmpNullType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpNullType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: int __cdecl SnmpObjectIdentifier::Equivalent(class SnmpObjectIdentifier const & __ptr64)const  __ptr64
?Equivalent@SnmpObjectIdentifier@@IEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpObjectIdentifier::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpObjectIdentifier@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpObjectIdentifier::Equivalent(class SnmpObjectIdentifier const & __ptr64,unsigned long)const  __ptr64
?Equivalent@SnmpObjectIdentifier@@QEBAHAEBV1@K@Z
; protected: virtual int __cdecl SnmpObjectIdentifierType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpObjectIdentifierType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpOctetString::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpOctetString@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpOctetString::Equivalent(class SnmpOctetString const & __ptr64)const  __ptr64
?Equivalent@SnmpOctetString@@QEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpOctetStringType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpOctetStringType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpOpaque::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpOpaque@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpOpaque::Equivalent(class SnmpOpaque const & __ptr64)const  __ptr64
?Equivalent@SnmpOpaque@@QEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpOpaqueType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpOpaqueType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpTimeTicks::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpTimeTicks@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpTimeTicks::Equivalent(class SnmpTimeTicks const & __ptr64)const  __ptr64
?Equivalent@SnmpTimeTicks@@QEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpTimeTicksType::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpTimeTicksType@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual int __cdecl SnmpUInteger32::Equivalent(class SnmpValue const & __ptr64)const  __ptr64
?Equivalent@SnmpUInteger32@@MEBAHAEBVSnmpValue@@@Z
; public: int __cdecl SnmpUInteger32::Equivalent(class SnmpUInteger32 const & __ptr64)const  __ptr64
?Equivalent@SnmpUInteger32@@QEBAHAEBV1@@Z
; protected: virtual int __cdecl SnmpUInteger32Type::Equivalent(class SnmpInstanceType const & __ptr64)const  __ptr64
?Equivalent@SnmpUInteger32Type@@MEBAHAEBVSnmpInstanceType@@@Z
; protected: virtual long __cdecl SnmpAutoRetrieveOperation::EvaluateNextRequest(unsigned long const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpVarBind & __ptr64) __ptr64
?EvaluateNextRequest@SnmpAutoRetrieveOperation@@MEAAJAEBKAEBVSnmpVarBind@@1AEAV2@@Z
; protected: virtual void __cdecl GetNextOperation::FrameOverRun(void) __ptr64
?FrameOverRun@GetNextOperation@@MEAAXXZ
; protected: virtual void __cdecl SnmpAutoRetrieveOperation::FrameOverRun(void) __ptr64
?FrameOverRun@SnmpAutoRetrieveOperation@@MEAAXXZ
; protected: virtual void __cdecl SnmpOperation::FrameOverRun(void) __ptr64
?FrameOverRun@SnmpOperation@@MEAAXXZ
; protected: virtual void __cdecl GetNextOperation::FrameTooBig(void) __ptr64
?FrameTooBig@GetNextOperation@@MEAAXXZ
; protected: virtual void __cdecl SnmpAutoRetrieveOperation::FrameTooBig(void) __ptr64
?FrameTooBig@SnmpAutoRetrieveOperation@@MEAAXXZ
; protected: virtual void __cdecl SnmpOperation::FrameTooBig(void) __ptr64
?FrameTooBig@SnmpOperation@@MEAAXXZ
; private: void __cdecl SnmpPdu::FreeFrame(void) __ptr64
?FreeFrame@SnmpPdu@@AEAAXXZ
; protected: void __cdecl SnmpVarBindList::FreeList(void) __ptr64
?FreeList@SnmpVarBindList@@IEAAXXZ
; private: void __cdecl SnmpPdu::FreePdu(void) __ptr64
?FreePdu@SnmpPdu@@AEAAXXZ
; public: class SnmpLexicon * __ptr64 __cdecl SnmpAnalyser::Get(int,int,int) __ptr64
?Get@SnmpAnalyser@@QEAAPEAVSnmpLexicon@@HHH@Z
; private: class SnmpLexicon * __ptr64 __cdecl SnmpBitStringType::Get(void) __ptr64
?Get@SnmpBitStringType@@AEAAPEAVSnmpLexicon@@XZ
; private: class SnmpLexicon * __ptr64 __cdecl SnmpDateTimeType::Get(void) __ptr64
?Get@SnmpDateTimeType@@AEAAPEAVSnmpLexicon@@XZ
; private: class SnmpLexicon * __ptr64 __cdecl SnmpEnumeratedType::Get(void) __ptr64
?Get@SnmpEnumeratedType@@AEAAPEAVSnmpLexicon@@XZ
; protected: class SnmpLexicon * __ptr64 __cdecl SnmpPositiveRangedType::Get(void) __ptr64
?Get@SnmpPositiveRangedType@@IEAAPEAVSnmpLexicon@@XZ
; public: class SnmpVarBind const * __ptr64 __cdecl SnmpVarBindList::Get(void)const  __ptr64
?Get@SnmpVarBindList@@QEBAPEBVSnmpVarBind@@XZ
; public: virtual char * __ptr64 __cdecl SnmpTransportIpAddress::GetAddress(void) __ptr64
?GetAddress@SnmpTransportIpAddress@@UEAAPEADXZ
; public: virtual unsigned short __cdecl SnmpTransportIpAddress::GetAddress(unsigned char * __ptr64,unsigned short)const  __ptr64
?GetAddress@SnmpTransportIpAddress@@UEBAGPEAEG@Z
; public: virtual char * __ptr64 __cdecl SnmpTransportIpxAddress::GetAddress(void) __ptr64
?GetAddress@SnmpTransportIpxAddress@@UEAAPEADXZ
; public: virtual unsigned short __cdecl SnmpTransportIpxAddress::GetAddress(unsigned char * __ptr64,unsigned short)const  __ptr64
?GetAddress@SnmpTransportIpxAddress@@UEBAGPEAEG@Z
; public: virtual unsigned short __cdecl SnmpTransportIpAddress::GetAddressLength(void)const  __ptr64
?GetAddressLength@SnmpTransportIpAddress@@UEBAGXZ
; public: virtual unsigned short __cdecl SnmpTransportIpxAddress::GetAddressLength(void)const  __ptr64
?GetAddressLength@SnmpTransportIpxAddress@@UEBAGXZ
; public: char * __ptr64 __cdecl SnmpObjectIdentifier::GetAllocatedString(void)const  __ptr64
?GetAllocatedString@SnmpObjectIdentifier@@QEBAPEADXZ
; public: char const * __ptr64 __cdecl SnmpCommunityBasedSecurity::GetCommunityName(void)const  __ptr64
?GetCommunityName@SnmpCommunityBasedSecurity@@QEBAPEBDXZ
; public: void __cdecl SnmpCommunityBasedSecurity::GetCommunityName(class SnmpOctetString & __ptr64)const  __ptr64
?GetCommunityName@SnmpCommunityBasedSecurity@@QEBAXAEAVSnmpOctetString@@@Z
; public: virtual int __cdecl SnmpEncodeDecode::GetCommunityName(class SnmpPdu & __ptr64,class SnmpCommunityBasedSecurity & __ptr64) __ptr64
?GetCommunityName@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAVSnmpCommunityBasedSecurity@@@Z
; public: virtual class SnmpCommunityBasedSecurity & __ptr64 __cdecl SnmpPdu::GetCommunityName(void) __ptr64
?GetCommunityName@SnmpPdu@@UEAAAEAVSnmpCommunityBasedSecurity@@XZ
; public: int __cdecl SnmpVarBindList::GetCurrentIndex(void)const  __ptr64
?GetCurrentIndex@SnmpVarBindList@@QEBAHXZ
; public: virtual int __cdecl SnmpEncodeDecode::GetDestinationAddress(class SnmpPdu & __ptr64,class SnmpTransportAddress * __ptr64 & __ptr64) __ptr64
?GetDestinationAddress@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAPEAVSnmpTransportAddress@@@Z
; public: virtual class SnmpTransportAddress & __ptr64 __cdecl SnmpPdu::GetDestinationAddress(void) __ptr64
?GetDestinationAddress@SnmpPdu@@UEAAAEAVSnmpTransportAddress@@XZ
; public: enum SnmpError  __cdecl SnmpErrorReport::GetError(void)const  __ptr64
?GetError@SnmpErrorReport@@QEBA?AW4SnmpError@@XZ
; public: virtual int __cdecl SnmpEncodeDecode::GetErrorReport(class SnmpPdu & __ptr64,class SnmpErrorReport & __ptr64) __ptr64
?GetErrorReport@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAVSnmpErrorReport@@@Z
; public: virtual class SnmpErrorReport & __ptr64 __cdecl SnmpPdu::GetErrorReport(void) __ptr64
?GetErrorReport@SnmpPdu@@UEAAAEAVSnmpErrorReport@@XZ
; public: char * __ptr64 __cdecl GeneralException::GetFile(void) __ptr64
?GetFile@GeneralException@@QEAAPEADXZ
; public: unsigned long __cdecl SnmpSession::GetFlowControlWindow(void)const  __ptr64
?GetFlowControlWindow@SnmpSession@@QEBAKXZ
; public: unsigned char * __ptr64 __cdecl SnmpPdu::GetFrame(void)const  __ptr64
?GetFrame@SnmpPdu@@QEBAPEAEXZ
; public: unsigned long __cdecl SnmpPdu::GetFrameLength(void)const  __ptr64
?GetFrameLength@SnmpPdu@@QEBAKXZ
; public: unsigned long __cdecl SnmpCounter64::GetHighValue(void)const  __ptr64
?GetHighValue@SnmpCounter64@@QEBAKXZ
; public: unsigned long __cdecl SnmpErrorReport::GetIndex(void)const  __ptr64
?GetIndex@SnmpErrorReport@@QEBAKXZ
; public: class SnmpObjectIdentifier & __ptr64 __cdecl SnmpVarBind::GetInstance(void)const  __ptr64
?GetInstance@SnmpVarBind@@QEBAAEAVSnmpObjectIdentifier@@XZ
; private: int __cdecl SnmpTransportIpAddress::GetIpAddress(char const * __ptr64) __ptr64
?GetIpAddress@SnmpTransportIpAddress@@AEAAHPEBD@Z
; private: int __cdecl SnmpTransportIpxAddress::GetIpxAddress(char const * __ptr64) __ptr64
?GetIpxAddress@SnmpTransportIpxAddress@@AEAAHPEBD@Z
; public: unsigned int __cdecl SnmpVarBindList::GetLength(void)const  __ptr64
?GetLength@SnmpVarBindList@@QEBAIXZ
; public: int __cdecl GeneralException::GetLine(void) __ptr64
?GetLine@GeneralException@@QEAAHXZ
; public: unsigned long __cdecl SnmpCounter64::GetLowValue(void)const  __ptr64
?GetLowValue@SnmpCounter64@@QEBAKXZ
; public: long __cdecl SnmpNegativeRangeType::GetLowerBound(void) __ptr64
?GetLowerBound@SnmpNegativeRangeType@@QEAAJXZ
; public: unsigned long __cdecl SnmpPositiveRangeType::GetLowerBound(void) __ptr64
?GetLowerBound@SnmpPositiveRangeType@@QEAAKXZ
; public: class SnmpVarBindListNode * __ptr64 __cdecl SnmpVarBindListNode::GetNext(void) __ptr64
?GetNext@SnmpVarBindListNode@@QEAAPEAV1@XZ
; private: class SnmpOperation * __ptr64 __cdecl SnmpImpSession::GetOperation(unsigned long) __ptr64
?GetOperation@SnmpImpSession@@AEAAPEAVSnmpOperation@@K@Z
; public: virtual int __cdecl SnmpEncodeDecode::GetPduType(class SnmpPdu & __ptr64,enum SnmpEncodeDecode::PduType & __ptr64) __ptr64
?GetPduType@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAW4PduType@1@@Z
; protected: virtual enum SnmpEncodeDecode::PduType  __cdecl SnmpGetNextOperation::GetPduType(void) __ptr64
?GetPduType@SnmpGetNextOperation@@MEAA?AW4PduType@SnmpEncodeDecode@@XZ
; protected: virtual enum SnmpEncodeDecode::PduType  __cdecl SnmpGetOperation::GetPduType(void) __ptr64
?GetPduType@SnmpGetOperation@@MEAA?AW4PduType@SnmpEncodeDecode@@XZ
; public: virtual enum SnmpEncodeDecode::PduType & __ptr64 __cdecl SnmpPdu::GetPduType(void) __ptr64
?GetPduType@SnmpPdu@@UEAAAEAW4PduType@SnmpEncodeDecode@@XZ
; protected: virtual enum SnmpEncodeDecode::PduType  __cdecl SnmpSetOperation::GetPduType(void) __ptr64
?GetPduType@SnmpSetOperation@@MEAA?AW4PduType@SnmpEncodeDecode@@XZ
; protected: class SnmpVarBindList::ListPosition * __ptr64 __cdecl SnmpVarBindList::GetPosition(void) __ptr64
?GetPosition@SnmpVarBindList@@IEAAPEAVListPosition@1@XZ
; public: class SnmpVarBindListNode * __ptr64 __cdecl SnmpVarBindListNode::GetPrevious(void) __ptr64
?GetPrevious@SnmpVarBindListNode@@QEAAPEAV1@XZ
; public: virtual int __cdecl SnmpEncodeDecode::GetRequestId(class SnmpPdu & __ptr64,long & __ptr64) __ptr64
?GetRequestId@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAJ@Z
; public: virtual long & __ptr64 __cdecl SnmpPdu::GetRequestId(void) __ptr64
?GetRequestId@SnmpPdu@@UEAAAEAJXZ
; public: unsigned long __cdecl SnmpSession::GetRetryCount(void)const  __ptr64
?GetRetryCount@SnmpSession@@QEBAKXZ
; public: unsigned long __cdecl SnmpSession::GetRetryTimeout(void)const  __ptr64
?GetRetryTimeout@SnmpSession@@QEBAKXZ
; public: enum SnmpRowStatusType::SnmpRowStatusEnum  __cdecl SnmpRowStatusType::GetRowStatus(void)const  __ptr64
?GetRowStatus@SnmpRowStatusType@@QEBA?AW4SnmpRowStatusEnum@1@XZ
; public: virtual class SnmpEncodeDecode & __ptr64 __cdecl SnmpImpSession::GetSnmpEncodeDecode(void)const  __ptr64
?GetSnmpEncodeDecode@SnmpImpSession@@UEBAAEAVSnmpEncodeDecode@@XZ
; public: virtual class SnmpSecurity & __ptr64 __cdecl SnmpImpSession::GetSnmpSecurity(void)const  __ptr64
?GetSnmpSecurity@SnmpImpSession@@UEBAAEAVSnmpSecurity@@XZ
; public: virtual int __cdecl SnmpEncodeDecode::GetSourceAddress(class SnmpPdu & __ptr64,class SnmpTransportAddress * __ptr64 & __ptr64) __ptr64
?GetSourceAddress@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAPEAVSnmpTransportAddress@@@Z
; public: virtual class SnmpTransportAddress & __ptr64 __cdecl SnmpPdu::GetSourceAddress(void) __ptr64
?GetSourceAddress@SnmpPdu@@UEAAAEAVSnmpTransportAddress@@XZ
; public: enum SnmpStatus  __cdecl SnmpErrorReport::GetStatus(void)const  __ptr64
?GetStatus@SnmpErrorReport@@QEBA?AW4SnmpStatus@@XZ
; public: unsigned short * __ptr64 __cdecl CBString::GetString(void) __ptr64
?GetString@CBString@@QEAAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpBitStringType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpBitStringType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpCounter64Type::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpCounter64Type@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpCounterType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpCounterType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpDateTimeType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpDateTimeType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpDisplayStringType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpDisplayStringType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpEnumeratedType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpEnumeratedType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpFixedLengthDisplayStringType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpFixedLengthDisplayStringType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpFixedLengthPhysAddressType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpFixedLengthPhysAddressType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpGaugeType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpGaugeType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpIPXAddressType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpIPXAddressType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpIntegerType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpIntegerType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpIpAddressType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpIpAddressType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpMacAddressType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpMacAddressType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpNetworkAddressType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpNetworkAddressType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpNullType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpNullType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpOSIAddressType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpOSIAddressType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpObjectIdentifierType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpObjectIdentifierType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpOctetStringType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpOctetStringType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpOpaqueType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpOpaqueType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpPhysAddressType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpPhysAddressType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpRowStatusType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpRowStatusType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpTimeTicksType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpTimeTicksType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpUDPAddressType::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpUDPAddressType@@UEBAPEAGXZ
; public: virtual unsigned short * __ptr64 __cdecl SnmpUInteger32Type::GetStringValue(void)const  __ptr64
?GetStringValue@SnmpUInteger32Type@@UEBAPEAGXZ
; private: class SnmpLexicon * __ptr64 __cdecl SnmpAnalyser::GetToken(int,int,int) __ptr64
?GetToken@SnmpAnalyser@@AEAAPEAVSnmpLexicon@@HHH@Z
; public: enum SnmpLexicon::LexiconToken  __cdecl SnmpLexicon::GetToken(void) __ptr64
?GetToken@SnmpLexicon@@QEAA?AW4LexiconToken@1@XZ
; public: virtual class SnmpTransportAddress & __ptr64 __cdecl SnmpTransport::GetTransportAddress(void) __ptr64
?GetTransportAddress@SnmpTransport@@UEAAAEAVSnmpTransportAddress@@XZ
; public: virtual class SnmpTransport & __ptr64 __cdecl SnmpImpSession::GetTransportProtocol(void)const  __ptr64
?GetTransportProtocol@SnmpImpSession@@UEBAAEAVSnmpTransport@@XZ
; public: long __cdecl SnmpNegativeRangeType::GetUpperBound(void) __ptr64
?GetUpperBound@SnmpNegativeRangeType@@QEAAJXZ
; public: unsigned long __cdecl SnmpPositiveRangeType::GetUpperBound(void) __ptr64
?GetUpperBound@SnmpPositiveRangeType@@QEAAKXZ
; public: unsigned long __cdecl SnmpBitStringType::GetValue(unsigned short * __ptr64 * __ptr64 & __ptr64)const  __ptr64
?GetValue@SnmpBitStringType@@QEBAKAEAPEAPEAG@Z
; public: void __cdecl SnmpCounter64Type::GetValue(unsigned long & __ptr64,unsigned long & __ptr64)const  __ptr64
?GetValue@SnmpCounter64Type@@QEBAXAEAK0@Z
; public: unsigned long __cdecl SnmpCounter::GetValue(void)const  __ptr64
?GetValue@SnmpCounter@@QEBAKXZ
; public: unsigned long __cdecl SnmpCounterType::GetValue(void)const  __ptr64
?GetValue@SnmpCounterType@@QEBAKXZ
; public: unsigned short * __ptr64 __cdecl SnmpDateTimeType::GetValue(void)const  __ptr64
?GetValue@SnmpDateTimeType@@QEBAPEAGXZ
; public: unsigned short * __ptr64 __cdecl SnmpDisplayStringType::GetValue(void)const  __ptr64
?GetValue@SnmpDisplayStringType@@QEBAPEAGXZ
; public: unsigned short * __ptr64 __cdecl SnmpEnumeratedType::GetValue(void)const  __ptr64
?GetValue@SnmpEnumeratedType@@QEBAPEAGXZ
; public: unsigned short * __ptr64 __cdecl SnmpFixedLengthDisplayStringType::GetValue(void)const  __ptr64
?GetValue@SnmpFixedLengthDisplayStringType@@QEBAPEAGXZ
; public: unsigned long __cdecl SnmpGauge::GetValue(void)const  __ptr64
?GetValue@SnmpGauge@@QEBAKXZ
; public: unsigned long __cdecl SnmpGaugeType::GetValue(void)const  __ptr64
?GetValue@SnmpGaugeType@@QEBAKXZ
; public: long __cdecl SnmpInteger::GetValue(void)const  __ptr64
?GetValue@SnmpInteger@@QEBAJXZ
; public: long __cdecl SnmpIntegerType::GetValue(void)const  __ptr64
?GetValue@SnmpIntegerType@@QEBAJXZ
; public: unsigned long __cdecl SnmpIpAddress::GetValue(void)const  __ptr64
?GetValue@SnmpIpAddress@@QEBAKXZ
; public: unsigned long __cdecl SnmpIpAddressType::GetValue(void)const  __ptr64
?GetValue@SnmpIpAddressType@@QEBAKXZ
; public: union SnmpLexiconValue * __ptr64 __cdecl SnmpLexicon::GetValue(void) __ptr64
?GetValue@SnmpLexicon@@QEAAPEATSnmpLexiconValue@@XZ
; public: unsigned long __cdecl SnmpNetworkAddressType::GetValue(void)const  __ptr64
?GetValue@SnmpNetworkAddressType@@QEBAKXZ
; public: unsigned long * __ptr64 __cdecl SnmpObjectIdentifier::GetValue(void)const  __ptr64
?GetValue@SnmpObjectIdentifier@@QEBAPEAKXZ
; public: unsigned long * __ptr64 __cdecl SnmpObjectIdentifierType::GetValue(void)const  __ptr64
?GetValue@SnmpObjectIdentifierType@@QEBAPEAKXZ
; public: unsigned char * __ptr64 __cdecl SnmpOctetString::GetValue(void)const  __ptr64
?GetValue@SnmpOctetString@@QEBAPEAEXZ
; public: unsigned char * __ptr64 __cdecl SnmpOctetStringType::GetValue(void)const  __ptr64
?GetValue@SnmpOctetStringType@@QEBAPEAEXZ
; public: unsigned char * __ptr64 __cdecl SnmpOpaque::GetValue(void)const  __ptr64
?GetValue@SnmpOpaque@@QEBAPEAEXZ
; public: unsigned char * __ptr64 __cdecl SnmpOpaqueType::GetValue(void)const  __ptr64
?GetValue@SnmpOpaqueType@@QEBAPEAEXZ
; public: unsigned short * __ptr64 __cdecl SnmpRowStatusType::GetValue(void)const  __ptr64
?GetValue@SnmpRowStatusType@@QEBAPEAGXZ
; public: unsigned long __cdecl SnmpTimeTicks::GetValue(void)const  __ptr64
?GetValue@SnmpTimeTicks@@QEBAKXZ
; public: unsigned long __cdecl SnmpTimeTicksType::GetValue(void)const  __ptr64
?GetValue@SnmpTimeTicksType@@QEBAKXZ
; public: unsigned long __cdecl SnmpUInteger32::GetValue(void)const  __ptr64
?GetValue@SnmpUInteger32@@QEBAKXZ
; public: unsigned long __cdecl SnmpUInteger32Type::GetValue(void)const  __ptr64
?GetValue@SnmpUInteger32Type@@QEBAKXZ
; public: class SnmpValue & __ptr64 __cdecl SnmpVarBind::GetValue(void)const  __ptr64
?GetValue@SnmpVarBind@@QEBAAEAVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpCounter64Type::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpCounter64Type@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpCounterType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpCounterType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpGaugeType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpGaugeType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpIntegerType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpIntegerType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpIpAddressType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpIpAddressType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpNetworkAddressType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpNetworkAddressType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpNullType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpNullType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpObjectIdentifierType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpObjectIdentifierType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpOctetStringType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpOctetStringType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpOpaqueType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpOpaqueType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpTimeTicksType::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpTimeTicksType@@UEBAPEBVSnmpValue@@XZ
; public: virtual class SnmpValue const * __ptr64 __cdecl SnmpUInteger32Type::GetValueEncoding(void)const  __ptr64
?GetValueEncoding@SnmpUInteger32Type@@UEBAPEBVSnmpValue@@XZ
; public: unsigned long __cdecl SnmpObjectIdentifier::GetValueLength(void)const  __ptr64
?GetValueLength@SnmpObjectIdentifier@@QEBAKXZ
; public: unsigned long __cdecl SnmpObjectIdentifierType::GetValueLength(void)const  __ptr64
?GetValueLength@SnmpObjectIdentifierType@@QEBAKXZ
; public: unsigned long __cdecl SnmpOctetString::GetValueLength(void)const  __ptr64
?GetValueLength@SnmpOctetString@@QEBAKXZ
; public: unsigned long __cdecl SnmpOctetStringType::GetValueLength(void)const  __ptr64
?GetValueLength@SnmpOctetStringType@@QEBAKXZ
; public: unsigned long __cdecl SnmpOpaque::GetValueLength(void)const  __ptr64
?GetValueLength@SnmpOpaque@@QEBAKXZ
; public: unsigned long __cdecl SnmpOpaqueType::GetValueLength(void)const  __ptr64
?GetValueLength@SnmpOpaqueType@@QEBAKXZ
; public: class SnmpVarBind * __ptr64 __cdecl SnmpVarBindListNode::GetVarBind(void) __ptr64
?GetVarBind@SnmpVarBindListNode@@QEAAPEAVSnmpVarBind@@XZ
; public: virtual int __cdecl SnmpEncodeDecode::GetVarbindList(class SnmpPdu & __ptr64,class SnmpVarBindList & __ptr64) __ptr64
?GetVarbindList@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAVSnmpVarBindList@@@Z
; public: virtual class SnmpVarBindList & __ptr64 __cdecl SnmpPdu::GetVarbindList(void) __ptr64
?GetVarbindList@SnmpPdu@@UEAAAEAVSnmpVarBindList@@XZ
; public: unsigned long __cdecl SnmpSession::GetVarbindsPerPdu(void)const  __ptr64
?GetVarbindsPerPdu@SnmpSession@@QEBAKXZ
; protected: void * __ptr64 __cdecl SnmpEncodeDecode::GetWinSnmpSession(void) __ptr64
?GetWinSnmpSession@SnmpEncodeDecode@@IEAAPEAXXZ
; protected: void __cdecl SnmpVarBindList::GoBackward(class SnmpVarBindListNode * __ptr64,unsigned int) __ptr64
?GoBackward@SnmpVarBindList@@IEAAXPEAVSnmpVarBindListNode@@I@Z
; protected: void __cdecl SnmpVarBindList::GoForward(class SnmpVarBindListNode * __ptr64,unsigned int) __ptr64
?GoForward@SnmpVarBindList@@IEAAXPEAVSnmpVarBindListNode@@I@Z
; protected: int __cdecl SnmpVarBindList::GotoIndex(unsigned int) __ptr64
?GotoIndex@SnmpVarBindList@@IEAAHI@Z
; protected: void __cdecl SnmpVarBindList::GotoPosition(class SnmpVarBindList::ListPosition * __ptr64) __ptr64
?GotoPosition@SnmpVarBindList@@IEAAXPEAVListPosition@1@@Z
; private: void __cdecl SnmpImpSession::HandleDeletionEvent(void) __ptr64
?HandleDeletionEvent@SnmpImpSession@@AEAAXXZ
; private: void __cdecl SnmpImpSession::HandleSentFrame(unsigned long,class SnmpOperation * __ptr64) __ptr64
?HandleSentFrame@SnmpImpSession@@AEAAXKPEAVSnmpOperation@@@Z
; protected: virtual void __cdecl SnmpImpTransport::HandleSentFrame(unsigned long) __ptr64
?HandleSentFrame@SnmpImpTransport@@MEAAXK@Z
; public: static unsigned long __cdecl SnmpAnalyser::HexCharToDecInteger(char)
?HexCharToDecInteger@SnmpAnalyser@@SAKD@Z
; public: static unsigned long __cdecl SnmpAnalyser::HexWCharToDecInteger(unsigned short)
?HexWCharToDecInteger@SnmpAnalyser@@SAKG@Z
; protected: virtual void __cdecl SnmpAnalyser::Initialise(void) __ptr64
?Initialise@SnmpAnalyser@@MEAAXXZ
; protected: void __cdecl SnmpCommunityBasedSecurity::Initialize(void) __ptr64
?Initialize@SnmpCommunityBasedSecurity@@IEAAXXZ
; protected: virtual void __cdecl SnmpObjectIdentifier::Initialize(unsigned long const * __ptr64,unsigned long) __ptr64
?Initialize@SnmpObjectIdentifier@@MEAAXPEBKK@Z
; protected: virtual void __cdecl SnmpOctetString::Initialize(unsigned char const * __ptr64,unsigned long) __ptr64
?Initialize@SnmpOctetString@@MEAAXPEBEK@Z
; private: void __cdecl SnmpPdu::Initialize(unsigned char const * __ptr64,unsigned long const & __ptr64) __ptr64
?Initialize@SnmpPdu@@AEAAXPEBEAEBK@Z
; protected: void __cdecl SnmpVarBindList::Initialize(class SnmpVarBindList & __ptr64) __ptr64
?Initialize@SnmpVarBindList@@IEAAXAEAV1@@Z
; private: void __cdecl SnmpPdu::InitializeObject(class SnmpPdu & __ptr64) __ptr64
?InitializeObject@SnmpPdu@@AEAAXAEAV1@@Z
; protected: static int __cdecl SnmpEncodeDecode::InitializeStaticComponents(void)
?InitializeStaticComponents@SnmpEncodeDecode@@KAHXZ
; private: void __cdecl SnmpV1EncodeDecode::InitializeVariables(void) __ptr64
?InitializeVariables@SnmpV1EncodeDecode@@AEAAXXZ
; private: void __cdecl SnmpV2CEncodeDecode::InitializeVariables(void) __ptr64
?InitializeVariables@SnmpV2CEncodeDecode@@AEAAXXZ
; protected: void __cdecl SnmpVarBindList::Insert(class SnmpVarBindListNode * __ptr64,class SnmpVarBindListNode * __ptr64) __ptr64
?Insert@SnmpVarBindList@@IEAAXPEAVSnmpVarBindListNode@@0@Z
; public: static int __cdecl SnmpAnalyser::IsAlpha(unsigned short)
?IsAlpha@SnmpAnalyser@@SAHG@Z
; public: static int __cdecl SnmpAnalyser::IsAlphaNumeric(unsigned short)
?IsAlphaNumeric@SnmpAnalyser@@SAHG@Z
; public: static int __cdecl SnmpAnalyser::IsDecimal(unsigned short)
?IsDecimal@SnmpAnalyser@@SAHG@Z
; public: static int __cdecl SnmpAnalyser::IsEof(unsigned short)
?IsEof@SnmpAnalyser@@SAHG@Z
; public: static int __cdecl SnmpAnalyser::IsHex(unsigned short)
?IsHex@SnmpAnalyser@@SAHG@Z
; public: static int __cdecl SnmpAnalyser::IsLeadingDecimal(unsigned short)
?IsLeadingDecimal@SnmpAnalyser@@SAHG@Z
; public: virtual int __cdecl SnmpInstanceType::IsNull(void)const  __ptr64
?IsNull@SnmpInstanceType@@UEBAHXZ
; public: static int __cdecl SnmpAnalyser::IsOctal(unsigned short)
?IsOctal@SnmpAnalyser@@SAHG@Z
; public: int __cdecl SnmpTrapReceiver::IsRegistered(void) __ptr64
?IsRegistered@SnmpTrapReceiver@@QEAAHXZ
; public: virtual int __cdecl SnmpCounter64Type::IsSNMPV1Type(void)const  __ptr64
?IsSNMPV1Type@SnmpCounter64Type@@UEBAHXZ
; public: virtual int __cdecl SnmpInstanceType::IsSNMPV1Type(void)const  __ptr64
?IsSNMPV1Type@SnmpInstanceType@@UEBAHXZ
; public: virtual int __cdecl SnmpInstanceType::IsSNMPV2CType(void)const  __ptr64
?IsSNMPV2CType@SnmpInstanceType@@UEBAHXZ
; public: virtual int __cdecl SnmpNullType::IsSNMPV2CType(void)const  __ptr64
?IsSNMPV2CType@SnmpNullType@@UEBAHXZ
; public: virtual int __cdecl SnmpInstanceType::IsValid(void)const  __ptr64
?IsValid@SnmpInstanceType@@UEBAHXZ
; public: int __cdecl SnmpPositiveRangedType::IsValid(void) __ptr64
?IsValid@SnmpPositiveRangedType@@QEAAHXZ
; public: virtual int __cdecl SnmpTransportIpAddress::IsValid(void)const  __ptr64
?IsValid@SnmpTransportIpAddress@@UEBAHXZ
; public: virtual int __cdecl SnmpTransportIpxAddress::IsValid(void)const  __ptr64
?IsValid@SnmpTransportIpxAddress@@UEBAHXZ
; public: static int __cdecl SnmpAnalyser::IsWhitespace(unsigned short)
?IsWhitespace@SnmpAnalyser@@SAHG@Z
; private: class SnmpLexicon * __ptr64 __cdecl SnmpBitStringType::Match(enum SnmpLexicon::LexiconToken) __ptr64
?Match@SnmpBitStringType@@AEAAPEAVSnmpLexicon@@W4LexiconToken@2@@Z
; private: class SnmpLexicon * __ptr64 __cdecl SnmpDateTimeType::Match(enum SnmpLexicon::LexiconToken) __ptr64
?Match@SnmpDateTimeType@@AEAAPEAVSnmpLexicon@@W4LexiconToken@2@@Z
; private: class SnmpLexicon * __ptr64 __cdecl SnmpEnumeratedType::Match(enum SnmpLexicon::LexiconToken) __ptr64
?Match@SnmpEnumeratedType@@AEAAPEAVSnmpLexicon@@W4LexiconToken@2@@Z
; protected: class SnmpLexicon * __ptr64 __cdecl SnmpPositiveRangedType::Match(enum SnmpLexicon::LexiconToken) __ptr64
?Match@SnmpPositiveRangedType@@IEAAPEAVSnmpLexicon@@W4LexiconToken@2@@Z
; public: int __cdecl SnmpVarBindList::Next(void) __ptr64
?Next@SnmpVarBindList@@QEAAHXZ
; private: void __cdecl SnmpImpSession::NotifyOperation(unsigned long,class SnmpPdu const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?NotifyOperation@SnmpImpSession@@AEAAXKAEBVSnmpPdu@@AEBVSnmpErrorReport@@@Z
; public: static unsigned long __cdecl SnmpAnalyser::OctCharToDecInteger(char)
?OctCharToDecInteger@SnmpAnalyser@@SAKD@Z
; public: static unsigned long __cdecl SnmpAnalyser::OctWCharToDecInteger(unsigned short)
?OctWCharToDecInteger@SnmpAnalyser@@SAKG@Z
; private: void __cdecl SnmpObjectIdentifier::OverWrite(unsigned long const * __ptr64) __ptr64
?OverWrite@SnmpObjectIdentifier@@AEAAXPEBK@Z
; private: void __cdecl SnmpOctetString::OverWrite(unsigned char const * __ptr64) __ptr64
?OverWrite@SnmpOctetString@@AEAAXPEBE@Z
; private: int __cdecl SnmpBitStringType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpBitStringType@@AEAAHPEBG@Z
; protected: int __cdecl SnmpCounter64Type::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpCounter64Type@@IEAAHPEBG@Z
; protected: int __cdecl SnmpCounterType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpCounterType@@IEAAHPEBG@Z
; private: int __cdecl SnmpDateTimeType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpDateTimeType@@AEAAHPEBG@Z
; private: int __cdecl SnmpEnumeratedType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpEnumeratedType@@AEAAHPEBG@Z
; protected: int __cdecl SnmpFixedLengthPhysAddressType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpFixedLengthPhysAddressType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpGaugeType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpGaugeType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpIPXAddressType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpIPXAddressType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpIntegerType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpIntegerType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpIpAddressType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpIpAddressType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpMacAddressType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpMacAddressType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpNetworkAddressType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpNetworkAddressType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpOSIAddressType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpOSIAddressType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpObjectIdentifierType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpObjectIdentifierType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpOctetStringType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpOctetStringType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpOpaqueType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpOpaqueType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpPhysAddressType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpPhysAddressType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpPositiveRangedType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpPositiveRangedType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpTimeTicksType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpTimeTicksType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpUDPAddressType::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpUDPAddressType@@IEAAHPEBG@Z
; protected: int __cdecl SnmpUInteger32Type::Parse(unsigned short const * __ptr64) __ptr64
?Parse@SnmpUInteger32Type@@IEAAHPEBG@Z
; private: void __cdecl SnmpImpSession::PostSentFrameEvent(unsigned long,class SnmpOperation & __ptr64,class SnmpErrorReport) __ptr64
?PostSentFrameEvent@SnmpImpSession@@AEAAXKAEAVSnmpOperation@@VSnmpErrorReport@@@Z
; public: int __cdecl SnmpObjectIdentifier::Prefix(unsigned long,class SnmpObjectIdentifier & __ptr64)const  __ptr64
?Prefix@SnmpObjectIdentifier@@QEBAHKAEAV1@@Z
; private: long __cdecl SnmpOperation::ProcessInternalEvent(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64) __ptr64
?ProcessInternalEvent@SnmpOperation@@AEAAJPEAUHWND__@@I_K_J@Z
; private: int __cdecl GetNextOperation::ProcessRow(void) __ptr64
?ProcessRow@GetNextOperation@@AEAAHXZ
; private: void __cdecl SnmpBitStringType::PushBack(void) __ptr64
?PushBack@SnmpBitStringType@@AEAAXXZ
; private: void __cdecl SnmpDateTimeType::PushBack(void) __ptr64
?PushBack@SnmpDateTimeType@@AEAAXXZ
; private: void __cdecl SnmpEnumeratedType::PushBack(void) __ptr64
?PushBack@SnmpEnumeratedType@@AEAAXXZ
; protected: void __cdecl SnmpPositiveRangedType::PushBack(void) __ptr64
?PushBack@SnmpPositiveRangedType@@IEAAXXZ
; public: void __cdecl SnmpAnalyser::PutBack(class SnmpLexicon const * __ptr64) __ptr64
?PutBack@SnmpAnalyser@@QEAAXPEBVSnmpLexicon@@@Z
; protected: int __cdecl SnmpPositiveRangedType::RangeDef(void) __ptr64
?RangeDef@SnmpPositiveRangedType@@IEAAHXZ
; private: void __cdecl SnmpOperation::ReceiveErroredResponse(unsigned long,class SnmpVarBindList & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveErroredResponse@SnmpOperation@@AEAAXKAEAVSnmpVarBindList@@AEBVSnmpErrorReport@@@Z
; protected: virtual void __cdecl GetNextOperation::ReceiveErroredVarBindResponse(unsigned long const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveErroredVarBindResponse@GetNextOperation@@MEAAXAEBKAEBVSnmpVarBind@@AEBVSnmpErrorReport@@@Z
; protected: virtual void __cdecl SnmpAutoRetrieveOperation::ReceiveErroredVarBindResponse(unsigned long const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveErroredVarBindResponse@SnmpAutoRetrieveOperation@@MEAAXAEBKAEBVSnmpVarBind@@AEBVSnmpErrorReport@@@Z
; protected: virtual void __cdecl SnmpOperation::ReceiveErroredVarBindResponse(unsigned long const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveErroredVarBindResponse@SnmpOperation@@MEAAXAEBKAEBVSnmpVarBind@@AEBVSnmpErrorReport@@@Z
; public: void __cdecl SnmpAutoRetrieveOperation::ReceiveFrame(unsigned long,class SnmpPdu const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveFrame@SnmpAutoRetrieveOperation@@QEAAXKAEBVSnmpPdu@@AEBVSnmpErrorReport@@@Z
; public: void __cdecl SnmpOperation::ReceiveFrame(unsigned long,class SnmpPdu const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveFrame@SnmpOperation@@QEAAXKAEBVSnmpPdu@@AEBVSnmpErrorReport@@@Z
; protected: virtual void __cdecl GetNextOperation::ReceiveResponse(void) __ptr64
?ReceiveResponse@GetNextOperation@@MEAAXXZ
; protected: virtual void __cdecl SnmpAutoRetrieveOperation::ReceiveResponse(void) __ptr64
?ReceiveResponse@SnmpAutoRetrieveOperation@@MEAAXXZ
; protected: virtual void __cdecl SnmpOperation::ReceiveResponse(void) __ptr64
?ReceiveResponse@SnmpOperation@@MEAAXXZ
; protected: virtual void __cdecl SnmpAutoRetrieveOperation::ReceiveRowResponse(void) __ptr64
?ReceiveRowResponse@SnmpAutoRetrieveOperation@@MEAAXXZ
; protected: virtual void __cdecl SnmpAutoRetrieveOperation::ReceiveRowVarBindResponse(unsigned long const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveRowVarBindResponse@SnmpAutoRetrieveOperation@@MEAAXAEBKAEBVSnmpVarBind@@1AEBVSnmpErrorReport@@@Z
; protected: virtual void __cdecl GetNextOperation::ReceiveVarBindResponse(unsigned long const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveVarBindResponse@GetNextOperation@@MEAAXAEBKAEBVSnmpVarBind@@1AEBVSnmpErrorReport@@@Z
; protected: virtual void __cdecl SnmpAutoRetrieveOperation::ReceiveVarBindResponse(unsigned long const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveVarBindResponse@SnmpAutoRetrieveOperation@@MEAAXAEBKAEBVSnmpVarBind@@1AEBVSnmpErrorReport@@@Z
; protected: virtual void __cdecl SnmpOperation::ReceiveVarBindResponse(unsigned long const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpVarBind const & __ptr64,class SnmpErrorReport const & __ptr64) __ptr64
?ReceiveVarBindResponse@SnmpOperation@@MEAAXAEBKAEBVSnmpVarBind@@1AEBVSnmpErrorReport@@@Z
; private: int __cdecl SnmpBitStringType::RecursiveDef(void) __ptr64
?RecursiveDef@SnmpBitStringType@@AEAAHXZ
; private: int __cdecl SnmpEnumeratedType::RecursiveDef(void) __ptr64
?RecursiveDef@SnmpEnumeratedType@@AEAAHXZ
; protected: int __cdecl SnmpPositiveRangedType::RecursiveDef(void) __ptr64
?RecursiveDef@SnmpPositiveRangedType@@IEAAHXZ
; public: virtual void __cdecl SnmpImpSession::RegisterOperation(class SnmpOperation & __ptr64) __ptr64
?RegisterOperation@SnmpImpSession@@UEAAXAEAVSnmpOperation@@@Z
; protected: void __cdecl SnmpVarBindList::Release(class SnmpVarBindListNode * __ptr64) __ptr64
?Release@SnmpVarBindList@@IEAAXPEAVSnmpVarBindListNode@@@Z
; public: void __cdecl SnmpVarBindList::Remove(void) __ptr64
?Remove@SnmpVarBindList@@QEAAXXZ
; protected: virtual unsigned long * __ptr64 __cdecl SnmpObjectIdentifier::Replicate(unsigned long const * __ptr64,unsigned long,unsigned long const * __ptr64,unsigned long)const  __ptr64
?Replicate@SnmpObjectIdentifier@@MEBAPEAKPEBKK0K@Z
; protected: virtual unsigned long * __ptr64 __cdecl SnmpObjectIdentifier::Replicate(unsigned long const * __ptr64,unsigned long)const  __ptr64
?Replicate@SnmpObjectIdentifier@@MEBAPEAKPEBKK@Z
; protected: virtual unsigned char * __ptr64 __cdecl SnmpOctetString::Replicate(unsigned char const * __ptr64,unsigned long) __ptr64
?Replicate@SnmpOctetString@@MEAAPEAEPEBEK@Z
; protected: virtual void __cdecl SnmpVarBind::Replicate(class SnmpObjectIdentifier const & __ptr64,class SnmpValue const & __ptr64) __ptr64
?Replicate@SnmpVarBind@@MEAAXAEBVSnmpObjectIdentifier@@AEBVSnmpValue@@@Z
; public: void __cdecl SnmpVarBindList::Reset(void) __ptr64
?Reset@SnmpVarBindList@@QEAAXXZ
; public: static unsigned long __cdecl SnmpImpSession::RetryCount(unsigned long)
?RetryCount@SnmpImpSession@@SAKK@Z
; public: static unsigned long __cdecl SnmpImpSession::RetryTimeout(unsigned long)
?RetryTimeout@SnmpImpSession@@SAKK@Z
; public: virtual class SnmpErrorReport  __cdecl SnmpCommunityBasedSecurity::Secure(class SnmpEncodeDecode & __ptr64,class SnmpPdu & __ptr64) __ptr64
?Secure@SnmpCommunityBasedSecurity@@UEAA?AVSnmpErrorReport@@AEAVSnmpEncodeDecode@@AEAVSnmpPdu@@@Z
; private: void __cdecl GetNextOperation::Send(void) __ptr64
?Send@GetNextOperation@@AEAAXXZ
; private: void __cdecl SnmpOperation::SendFrame(class VBList & __ptr64) __ptr64
?SendFrame@SnmpOperation@@AEAAXAEAVVBList@@@Z
; public: void __cdecl GetNextOperation::SendRequest(class SnmpVarBindList & __ptr64,class SnmpVarBindList & __ptr64) __ptr64
?SendRequest@GetNextOperation@@QEAAXAEAVSnmpVarBindList@@0@Z
; public: virtual void __cdecl GetNextOperation::SendRequest(class SnmpVarBindList & __ptr64) __ptr64
?SendRequest@GetNextOperation@@UEAAXAEAVSnmpVarBindList@@@Z
; public: virtual void __cdecl SnmpAutoRetrieveOperation::SendRequest(class SnmpVarBindList & __ptr64,class SnmpVarBindList & __ptr64) __ptr64
?SendRequest@SnmpAutoRetrieveOperation@@UEAAXAEAVSnmpVarBindList@@0@Z
; public: virtual void __cdecl SnmpAutoRetrieveOperation::SendRequest(class SnmpVarBindList & __ptr64) __ptr64
?SendRequest@SnmpAutoRetrieveOperation@@UEAAXAEAVSnmpVarBindList@@@Z
; private: void __cdecl SnmpOperation::SendRequest(class SnmpVarBindList & __ptr64,class SnmpSecurity * __ptr64) __ptr64
?SendRequest@SnmpOperation@@AEAAXAEAVSnmpVarBindList@@PEAVSnmpSecurity@@@Z
; public: virtual void __cdecl SnmpOperation::SendRequest(class SnmpVarBindList & __ptr64) __ptr64
?SendRequest@SnmpOperation@@UEAAXAEAVSnmpVarBindList@@@Z
; public: virtual void __cdecl SnmpOperation::SendRequest(class SnmpVarBindList & __ptr64,class SnmpSecurity & __ptr64) __ptr64
?SendRequest@SnmpOperation@@UEAAXAEAVSnmpVarBindList@@AEAVSnmpSecurity@@@Z
; private: void __cdecl SnmpOperation::SendVarBindList(class SnmpVarBindList & __ptr64,unsigned int,unsigned long) __ptr64
?SendVarBindList@SnmpOperation@@AEAAXAEAVSnmpVarBindList@@IK@Z
; protected: virtual void __cdecl GetNextOperation::SentFrame(unsigned long,class SnmpErrorReport const & __ptr64) __ptr64
?SentFrame@GetNextOperation@@MEAAXKAEBVSnmpErrorReport@@@Z
; public: virtual void __cdecl SnmpAutoRetrieveOperation::SentFrame(unsigned long,class SnmpErrorReport const & __ptr64) __ptr64
?SentFrame@SnmpAutoRetrieveOperation@@UEAAXKAEBVSnmpErrorReport@@@Z
; public: virtual void __cdecl SnmpOperation::SentFrame(unsigned long,class SnmpErrorReport const & __ptr64) __ptr64
?SentFrame@SnmpOperation@@UEAAXKAEBVSnmpErrorReport@@@Z
; public: virtual class SnmpErrorReport  __cdecl SnmpImpSession::SessionCancelFrame(unsigned long) __ptr64
?SessionCancelFrame@SnmpImpSession@@UEAA?AVSnmpErrorReport@@K@Z
; protected: virtual void __cdecl SnmpSession::SessionFlowControlOff(void) __ptr64
?SessionFlowControlOff@SnmpSession@@MEAAXXZ
; protected: virtual void __cdecl SnmpSession::SessionFlowControlOn(void) __ptr64
?SessionFlowControlOn@SnmpSession@@MEAAXXZ
; public: virtual void __cdecl SnmpImpSession::SessionReceiveFrame(class SnmpPdu & __ptr64,class SnmpErrorReport & __ptr64) __ptr64
?SessionReceiveFrame@SnmpImpSession@@UEAAXAEAVSnmpPdu@@AEAVSnmpErrorReport@@@Z
; public: virtual void __cdecl SnmpImpSession::SessionSendFrame(class SnmpOperation & __ptr64,unsigned long & __ptr64,class SnmpPdu & __ptr64) __ptr64
?SessionSendFrame@SnmpImpSession@@UEAAXAEAVSnmpOperation@@AEAKAEAVSnmpPdu@@@Z
; public: virtual void __cdecl SnmpImpSession::SessionSendFrame(class SnmpOperation & __ptr64,unsigned long & __ptr64,class SnmpPdu & __ptr64,class SnmpSecurity & __ptr64) __ptr64
?SessionSendFrame@SnmpImpSession@@UEAAXAEAVSnmpOperation@@AEAKAEAVSnmpPdu@@AEAVSnmpSecurity@@@Z
; public: virtual void __cdecl SnmpImpSession::SessionSentFrame(unsigned long,class SnmpErrorReport & __ptr64) __ptr64
?SessionSentFrame@SnmpImpSession@@UEAAXKAEAVSnmpErrorReport@@@Z
; public: void __cdecl SnmpAnalyser::Set(unsigned short const * __ptr64) __ptr64
?Set@SnmpAnalyser@@QEAAXPEBG@Z
; public: void __cdecl SnmpCommunityBasedSecurity::SetCommunityName(class SnmpOctetString const & __ptr64) __ptr64
?SetCommunityName@SnmpCommunityBasedSecurity@@QEAAXAEBVSnmpOctetString@@@Z
; public: void __cdecl SnmpCommunityBasedSecurity::SetCommunityName(char const * __ptr64) __ptr64
?SetCommunityName@SnmpCommunityBasedSecurity@@QEAAXPEBD@Z
; public: virtual int __cdecl SnmpEncodeDecode::SetCommunityName(class SnmpPdu & __ptr64,class SnmpCommunityBasedSecurity & __ptr64) __ptr64
?SetCommunityName@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAVSnmpCommunityBasedSecurity@@@Z
; public: virtual int __cdecl SnmpPdu::SetCommunityName(class SnmpCommunityBasedSecurity & __ptr64) __ptr64
?SetCommunityName@SnmpPdu@@UEAAHAEAVSnmpCommunityBasedSecurity@@@Z
; public: virtual int __cdecl SnmpEncodeDecode::SetDestinationAddress(class SnmpPdu & __ptr64,class SnmpTransportAddress & __ptr64) __ptr64
?SetDestinationAddress@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAVSnmpTransportAddress@@@Z
; public: virtual int __cdecl SnmpPdu::SetDestinationAddress(class SnmpTransportAddress & __ptr64) __ptr64
?SetDestinationAddress@SnmpPdu@@UEAAHAEAVSnmpTransportAddress@@@Z
; public: void __cdecl SnmpErrorReport::SetError(enum SnmpError) __ptr64
?SetError@SnmpErrorReport@@QEAAXW4SnmpError@@@Z
; public: virtual int __cdecl SnmpEncodeDecode::SetErrorReport(class SnmpPdu & __ptr64,class SnmpErrorReport & __ptr64) __ptr64
?SetErrorReport@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAVSnmpErrorReport@@@Z
; public: virtual int __cdecl SnmpPdu::SetErrorReport(class SnmpErrorReport & __ptr64) __ptr64
?SetErrorReport@SnmpPdu@@UEAAHAEAVSnmpErrorReport@@@Z
; public: void __cdecl SnmpErrorReport::SetIndex(unsigned long) __ptr64
?SetIndex@SnmpErrorReport@@QEAAXK@Z
; public: void __cdecl SnmpNegativeRangeType::SetLowerBound(long const & __ptr64) __ptr64
?SetLowerBound@SnmpNegativeRangeType@@QEAAXAEBJ@Z
; public: void __cdecl SnmpPositiveRangeType::SetLowerBound(unsigned long const & __ptr64) __ptr64
?SetLowerBound@SnmpPositiveRangeType@@QEAAXAEBK@Z
; public: void __cdecl SnmpVarBindListNode::SetNext(class SnmpVarBindListNode * __ptr64) __ptr64
?SetNext@SnmpVarBindListNode@@QEAAXPEAV1@@Z
; public: void __cdecl SnmpInstanceType::SetNull(int) __ptr64
?SetNull@SnmpInstanceType@@QEAAXH@Z
; public: void __cdecl SnmpPdu::SetPdu(class SnmpPdu & __ptr64) __ptr64
?SetPdu@SnmpPdu@@QEAAXAEAV1@@Z
; public: void __cdecl SnmpPdu::SetPdu(unsigned char const * __ptr64,unsigned long) __ptr64
?SetPdu@SnmpPdu@@QEAAXPEBEK@Z
; public: virtual int __cdecl SnmpEncodeDecode::SetPduType(class SnmpPdu & __ptr64,enum SnmpEncodeDecode::PduType) __ptr64
?SetPduType@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@W4PduType@1@@Z
; public: virtual int __cdecl SnmpPdu::SetPduType(enum SnmpEncodeDecode::PduType) __ptr64
?SetPduType@SnmpPdu@@UEAAHW4PduType@SnmpEncodeDecode@@@Z
; public: void __cdecl SnmpVarBindListNode::SetPrevious(class SnmpVarBindListNode * __ptr64) __ptr64
?SetPrevious@SnmpVarBindListNode@@QEAAXPEAV1@@Z
; public: virtual int __cdecl SnmpEncodeDecode::SetRequestId(class SnmpPdu & __ptr64,long) __ptr64
?SetRequestId@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@J@Z
; public: virtual int __cdecl SnmpPdu::SetRequestId(long) __ptr64
?SetRequestId@SnmpPdu@@UEAAHJ@Z
; public: virtual int __cdecl SnmpEncodeDecode::SetSourceAddress(class SnmpPdu & __ptr64,class SnmpTransportAddress & __ptr64) __ptr64
?SetSourceAddress@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAVSnmpTransportAddress@@@Z
; public: virtual int __cdecl SnmpPdu::SetSourceAddress(class SnmpTransportAddress & __ptr64) __ptr64
?SetSourceAddress@SnmpPdu@@UEAAHAEAVSnmpTransportAddress@@@Z
; public: void __cdecl SnmpErrorReport::SetStatus(enum SnmpStatus) __ptr64
?SetStatus@SnmpErrorReport@@QEAAXW4SnmpStatus@@@Z
; public: void __cdecl SnmpInstanceType::SetStatus(int) __ptr64
?SetStatus@SnmpInstanceType@@QEAAXH@Z
; public: void __cdecl SnmpPositiveRangedType::SetStatus(int const & __ptr64) __ptr64
?SetStatus@SnmpPositiveRangedType@@QEAAXAEBH@Z
; public: void __cdecl SnmpLexicon::SetToken(enum SnmpLexicon::LexiconToken) __ptr64
?SetToken@SnmpLexicon@@QEAAXW4LexiconToken@1@@Z
; protected: virtual void __cdecl SnmpV1EncodeDecode::SetTranslateMode(void) __ptr64
?SetTranslateMode@SnmpV1EncodeDecode@@MEAAXXZ
; protected: virtual void __cdecl SnmpV2CEncodeDecode::SetTranslateMode(void) __ptr64
?SetTranslateMode@SnmpV2CEncodeDecode@@MEAAXXZ
; public: void __cdecl SnmpNegativeRangeType::SetUpperBound(long const & __ptr64) __ptr64
?SetUpperBound@SnmpNegativeRangeType@@QEAAXAEBJ@Z
; public: void __cdecl SnmpPositiveRangeType::SetUpperBound(unsigned long const & __ptr64) __ptr64
?SetUpperBound@SnmpPositiveRangeType@@QEAAXAEBK@Z
; public: void __cdecl SnmpCounter64::SetValue(unsigned long,unsigned long) __ptr64
?SetValue@SnmpCounter64@@QEAAXKK@Z
; public: void __cdecl SnmpCounter::SetValue(unsigned long) __ptr64
?SetValue@SnmpCounter@@QEAAXK@Z
; public: void __cdecl SnmpGauge::SetValue(unsigned long) __ptr64
?SetValue@SnmpGauge@@QEAAXK@Z
; public: void __cdecl SnmpInteger::SetValue(long) __ptr64
?SetValue@SnmpInteger@@QEAAXJ@Z
; public: void __cdecl SnmpIpAddress::SetValue(unsigned long) __ptr64
?SetValue@SnmpIpAddress@@QEAAXK@Z
; public: void __cdecl SnmpObjectIdentifier::SetValue(unsigned long const * __ptr64,unsigned long) __ptr64
?SetValue@SnmpObjectIdentifier@@QEAAXPEBKK@Z
; public: void __cdecl SnmpOctetString::SetValue(unsigned char const * __ptr64,unsigned long) __ptr64
?SetValue@SnmpOctetString@@QEAAXPEBEK@Z
; public: void __cdecl SnmpOpaque::SetValue(unsigned char const * __ptr64,unsigned long) __ptr64
?SetValue@SnmpOpaque@@QEAAXPEBEK@Z
; public: void __cdecl SnmpTimeTicks::SetValue(unsigned long) __ptr64
?SetValue@SnmpTimeTicks@@QEAAXK@Z
; public: void __cdecl SnmpUInteger32::SetValue(unsigned long) __ptr64
?SetValue@SnmpUInteger32@@QEAAXK@Z
; public: virtual int __cdecl SnmpEncodeDecode::SetVarBindList(class SnmpPdu & __ptr64,class SnmpVarBindList & __ptr64) __ptr64
?SetVarBindList@SnmpEncodeDecode@@UEAAHAEAVSnmpPdu@@AEAVSnmpVarBindList@@@Z
; public: virtual int __cdecl SnmpPdu::SetVarBindList(class SnmpVarBindList & __ptr64) __ptr64
?SetVarBindList@SnmpPdu@@UEAAHAEAVSnmpVarBindList@@@Z
; public: static int __cdecl SnmpClassLibrary::Startup(void)
?Startup@SnmpClassLibrary@@SAHXZ
; public: int __cdecl SnmpObjectIdentifier::Suffix(unsigned long,class SnmpObjectIdentifier & __ptr64)const  __ptr64
?Suffix@SnmpObjectIdentifier@@QEBAHKAEAV1@@Z
; protected: virtual void __cdecl SnmpImpTransport::TransportFlowControlOff(void) __ptr64
?TransportFlowControlOff@SnmpImpTransport@@MEAAXXZ
; protected: virtual void __cdecl SnmpImpTransport::TransportFlowControlOn(void) __ptr64
?TransportFlowControlOn@SnmpImpTransport@@MEAAXXZ
; public: virtual void __cdecl SnmpImpTransport::TransportReceiveFrame(class SnmpPdu & __ptr64,class SnmpErrorReport & __ptr64) __ptr64
?TransportReceiveFrame@SnmpImpTransport@@UEAAXAEAVSnmpPdu@@AEAVSnmpErrorReport@@@Z
; public: virtual void __cdecl SnmpImpTransport::TransportSendFrame(unsigned long & __ptr64,class SnmpPdu & __ptr64) __ptr64
?TransportSendFrame@SnmpImpTransport@@UEAAXAEAKAEAVSnmpPdu@@@Z
; public: virtual void __cdecl SnmpImpTransport::TransportSentFrame(unsigned long,class SnmpErrorReport & __ptr64) __ptr64
?TransportSentFrame@SnmpImpTransport@@UEAAXKAEAVSnmpErrorReport@@@Z
; protected: virtual void __cdecl SnmpObjectIdentifier::UnReplicate(unsigned long * __ptr64) __ptr64
?UnReplicate@SnmpObjectIdentifier@@MEAAXPEAK@Z
; protected: virtual void __cdecl SnmpOctetString::UnReplicate(unsigned char * __ptr64) __ptr64
?UnReplicate@SnmpOctetString@@MEAAXPEAE@Z
; unsigned short * __ptr64 __cdecl UnicodeStringAppend(unsigned short const * __ptr64,unsigned short const * __ptr64)
?UnicodeStringAppend@@YAPEAGPEBG0@Z
; unsigned short * __ptr64 __cdecl UnicodeStringDuplicate(unsigned short const * __ptr64)
?UnicodeStringDuplicate@@YAPEAGPEBG@Z
; char * __ptr64 __cdecl UnicodeToDbcsString(unsigned short const * __ptr64)
?UnicodeToDbcsString@@YAPEADPEBG@Z
; public: static int __cdecl SnmpTransportIpAddress::ValidateAddress(char const * __ptr64,unsigned long)
?ValidateAddress@SnmpTransportIpAddress@@SAHPEBDK@Z
; public: static int __cdecl SnmpTransportIpxAddress::ValidateAddress(char const * __ptr64)
?ValidateAddress@SnmpTransportIpxAddress@@SAHPEBD@Z
; public: static unsigned long __cdecl SnmpImpSession::VarbindsPerPdu(unsigned long)
?VarbindsPerPdu@SnmpImpSession@@SAKK@Z
; public: static unsigned long __cdecl SnmpImpSession::WindowSize(unsigned long)
?WindowSize@SnmpImpSession@@SAKK@Z
; private: static unsigned long  SnmpImpTransport::next_transport_frame_id
?next_transport_frame_id@SnmpImpTransport@@0KA DATA
; protected: static class CriticalSection  SnmpEncodeDecode::s_CriticalSection
?s_CriticalSection@SnmpEncodeDecode@@1VCriticalSection@@A DATA
; protected: static long  SnmpClassLibrary::s_ReferenceCount
?s_ReferenceCount@SnmpClassLibrary@@1JA DATA
