MainFrm.h
上传用户:ykzxjx
上传日期:2022-04-03
资源大小:1175k
文件大小:3k
开发平台:

Visual C++

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // (C) Copyright 1999 - 2000 Mark Roddy
  4. // All Rights Reserved
  5. //
  6. // Hollis Technology Solutions
  7. // 94 Dow Road
  8. // Hollis, NH 03049
  9. // info@hollistech.com
  10. //
  11. // Synopsis: 
  12. // 
  13. //
  14. // Version Information:
  15. //
  16. // $Header: /iphook/usr/IpMonitor/MainFrm.h 3     1/27/00 10:35p Markr $ 
  17. //
  18. ///////////////////////////////////////////////////////////////////////////////
  19. // MainFrm.h : interface of the CMainFrame class
  20. //
  21. /////////////////////////////////////////////////////////////////////////////
  22. #if !defined(AFX_MAINFRM_H__1EF6FF8A_FC46_4D64_ADC4_7459A87E1902__INCLUDED_)
  23. #define AFX_MAINFRM_H__1EF6FF8A_FC46_4D64_ADC4_7459A87E1902__INCLUDED_
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #define BUFFER_AVAILABLE_MSG (WM_USER + 1)
  28. typedef struct {
  29. UINT numBufs;
  30. HWND mainwindow;
  31. BOOL * pStarted;
  32. } WIN_CONTEXT;
  33. class IoContext {
  34. private:
  35. OVERLAPPED      overlapped;
  36. HANDLE event;
  37. UINT nbuffers;
  38. UCHAR *rawBuffer;
  39. IPHOOK_BUFFER * buffer;
  40. public:
  41. IoContext(UINT nbuffers);
  42. ~IoContext();
  43. PVOID IoBuffer() { 
  44. return (PVOID) buffer;
  45. }
  46. DWORD IoSize() {
  47. return sizeof(IPHOOK_BUFFER) + (sizeof(IPHOOK_DATA) * (nbuffers -1));
  48. }
  49. void deleteBuffer() {
  50. delete[] rawBuffer;
  51. rawBuffer = NULL;
  52. buffer = NULL;
  53. }
  54. void releaseBuffer() {
  55. rawBuffer = NULL;
  56. }
  57. OVERLAPPED * over() { return &overlapped; }
  58. bool init(); // prepare for IO
  59. };
  60. class CMainFrame : public CFrameWnd
  61. {
  62. protected: // create from serialization only
  63. CMainFrame();
  64. DECLARE_DYNCREATE(CMainFrame)
  65. // Attributes
  66. public:
  67. // Operations
  68. public:
  69. // Overrides
  70. // ClassWizard generated virtual function overrides
  71. //{{AFX_VIRTUAL(CMainFrame)
  72. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  73. virtual LRESULT OnBufferMessage(WPARAM wParam, LPARAM lParam);
  74. //}}AFX_VIRTUAL
  75. // Implementation
  76. public:
  77. BOOLEAN startSomeBuffers(UINT numBufs);
  78. virtual ~CMainFrame();
  79. #ifdef _DEBUG
  80. virtual void AssertValid() const;
  81. virtual void Dump(CDumpContext& dc) const;
  82. #endif
  83. protected:  // control bar embedded members
  84. CStatusBar  m_wndStatusBar;
  85. // Generated message map functions
  86. protected:
  87. //{{AFX_MSG(CMainFrame)
  88. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  89. afx_msg void OnStartHook();
  90. afx_msg void OnStopHook();
  91. afx_msg void OnUpdateStartHook(CCmdUI* pCmdUI);
  92. afx_msg void OnUpdateStopHook(CCmdUI* pCmdUI);
  93. //}}AFX_MSG
  94. DECLARE_MESSAGE_MAP()
  95. private:
  96. DWORD workerId;
  97. HANDLE workerHandle;
  98. BOOL m_Started;
  99. BOOL m_Enabled;
  100. WIN_CONTEXT m_context;
  101. };
  102. /////////////////////////////////////////////////////////////////////////////
  103. //{{AFX_INSERT_LOCATION}}
  104. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  105. #endif // !defined(AFX_MAINFRM_H__1EF6FF8A_FC46_4D64_ADC4_7459A87E1902__INCLUDED_)
  106. ///////////////////////////////////////////////////////////////////////////////
  107. // 
  108. // Change History Log
  109. //
  110. // $Log: /iphook/usr/IpMonitor/MainFrm.h $
  111. // 
  112. // 3     1/27/00 10:35p Markr
  113. // Prepare to release!
  114. //
  115. ///////////////////////////////////////////////////////////////////////////////