Snmp.h
上传用户:yfy060102
上传日期:2021-05-22
资源大小:60k
文件大小:2k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. #if !defined(AFX_SNMP1_H__25A74F53_3E27_496B_AF07_6745A77B07B8__INCLUDED_)
  2. #define AFX_SNMP1_H__25A74F53_3E27_496B_AF07_6745A77B07B8__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // Snmp1.h : header file
  7. #include "stdafx.h"
  8. #include "winsnmp.h"
  9. #include <afxmt.h>
  10. class CSnmp
  11. {
  12. public:
  13. CSnmp();
  14. ~CSnmp();
  15. private:
  16. smiUINT32 nMajorVersion,nMinorVersion,nLevel,nTranslateMode;
  17. smiUINT32 nRetransmitMode;
  18. HSNMP_SESSION m_hSession;
  19. CString strErr;
  20. int state;
  21. HSNMP_PDU m_hpdu;
  22. HSNMP_VBL m_hvbl;
  23. protected:
  24. CEvent m_Event;  //Event for blocking read
  25. static SNMPAPI_STATUS CALLBACK SnmpCallback(
  26. HSNMP_SESSION hSession,  // handle to the WinSNMP m_hSession
  27. HWND hWnd,               // handle to the notification window
  28. UINT wMsg,               // window notification message number
  29. WPARAM wParam,           // type of notification
  30. LPARAM lParam,           // request identifier of PDU
  31. LPVOID lpClientData);    // optional application-defined data
  32. public:
  33. smiINT PDU_type; 
  34. smiINT32 request_id;
  35. smiINT error_status;
  36. smiINT error_index;
  37. CString strSrcEntity;
  38. CString strDstEntity;
  39. CString m_community;
  40. int nCount;
  41. CString m_strOid[10];  //存放当前的请求OID,和响应的OID
  42. smiVALUE m_value[10];  //存放相应包中与OID相应的值
  43. CString m_strValue[10];    //将相应的值转换为字符串并存放在这里
  44. public:
  45. BOOL IsCreated();
  46. BOOL WaitForResponse();
  47. void ReInitial();
  48. void ReportError(DWORD dwError);
  49. BOOL CreateSession();
  50. BOOL Send(LPCSTR address/*,const char* community,HSNMP_PDU pdu*/);
  51. BOOL CreatePdu(
  52. smiINT PDU_type,       // PDU type 
  53. smiINT32 request_id,   // PDU request identifier 
  54. smiINT error_status,   // PDU error status, unless type is SNMP_PDU_GETBULK
  55. smiINT error_index     // PDU error index, unless type is SNMP_PDU_GETBULK
  56. //HSNMP_VBL varbindlist  // handle to the variable bindings list 
  57. );
  58. BOOL CreateVbl(LPCSTR name,smiLPVALUE pvalue);
  59. BOOL Register();
  60. BOOL Receive();
  61. BOOL Receive(CString name[],smiVALUE value[]);
  62. BOOL SetVbl(LPCSTR name,smiLPCVALUE value);
  63. };
  64. /////////////////////////////////////////////////////////////////////////////
  65. //{{AFX_INSERT_LOCATION}}
  66. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  67. #endif // !defined(AFX_SNMP1_H__25A74F53_3E27_496B_AF07_6745A77B07B8__INCLUDED_)