诸暨麻将添加redis
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

132 righe
3.2 KiB

  1. #ifndef TRACE_SERVICE_HEAD_FILE
  2. #define TRACE_SERVICE_HEAD_FILE
  3. #pragma once
  4. #include "KernelEngineHead.h"
  5. //////////////////////////////////////////////////////////////////////////////////
  6. //追踪服务
  7. class KERNEL_ENGINE_CLASS CTraceService
  8. {
  9. //函数定义
  10. protected:
  11. //构造函数
  12. CTraceService();
  13. //服务配置
  14. public:
  15. //设置服务
  16. static bool SetTraceService(IUnknownEx * pIUnknownEx);
  17. //获取服务
  18. static VOID * GetTraceService(const IID & Guid, DWORD dwQueryVer);
  19. //获取服务
  20. static VOID * GetTraceServiceManager(const IID & Guid, DWORD dwQueryVer);
  21. //状态管理
  22. public:
  23. //追踪状态
  24. static bool IsEnableTrace(enTraceLevel TraceLevel);
  25. //追踪控制
  26. static bool EnableTrace(enTraceLevel TraceLevel, bool bEnableTrace);
  27. //功能函数
  28. public:
  29. //追踪信息
  30. static bool TraceString(LPCTSTR pszString, enTraceLevel TraceLevel);
  31. };
  32. //////////////////////////////////////////////////////////////////////////////////
  33. //追踪服务
  34. class KERNEL_ENGINE_CLASS CTraceServiceControl : public CRichEditCtrl, public ITraceService
  35. {
  36. //辅助变量
  37. protected:
  38. LONG m_lMaxLineCount; //最大行数
  39. LONG m_lReserveLineCount; //保留行数
  40. BYTE m_cbBuffer[MAX_ASYNCHRONISM_DATA]; //临时对象
  41. //组件变量
  42. protected:
  43. CWHDataQueue m_DataQueue; //数据队列
  44. CCriticalSection m_CriticalSection; //同步对象
  45. //函数定义
  46. public:
  47. //构造函数
  48. CTraceServiceControl();
  49. //析构函数
  50. virtual ~CTraceServiceControl();
  51. //基础接口
  52. public:
  53. //释放对象
  54. virtual VOID Release() { return; }
  55. //接口查询
  56. virtual VOID * QueryInterface(const IID & Guid, DWORD dwQueryVer);
  57. //信息接口
  58. public:
  59. //追踪信息
  60. virtual bool TraceString(LPCTSTR pszString, enTraceLevel TraceLevel);
  61. //重载函数
  62. protected:
  63. //绑定函数
  64. virtual VOID PreSubclassWindow();
  65. //功能函数
  66. public:
  67. //加载消息
  68. bool LoadMessage(LPCTSTR pszFileName);
  69. //保存信息
  70. bool SaveMessage(LPCTSTR pszFileName);
  71. //设置参数
  72. bool SetParameter(LONG lMaxLineCount, LONG lReserveLineCount);
  73. //辅助函数
  74. private:
  75. //配置服务
  76. VOID InitializeService();
  77. //获取颜色
  78. COLORREF GetTraceColor(enTraceLevel TraceLevel);
  79. //插入字串
  80. bool InsertString(LPCTSTR pszString, CHARFORMAT2 & CharFormat);
  81. //回调函数
  82. private:
  83. //加载回调
  84. static DWORD CALLBACK LoadCallBack(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG * pcb);
  85. //保存回调
  86. static DWORD CALLBACK SaveCallBack(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG * pcb);
  87. //菜单命令
  88. protected:
  89. //删除信息
  90. VOID OnClearAll();
  91. //全部选择
  92. VOID OnSelectAll();
  93. //拷贝字符
  94. VOID OnCopyString();
  95. //保存信息
  96. VOID OnSaveString();
  97. //删除字符
  98. VOID OnDeleteString();
  99. //消息映射
  100. protected:
  101. //建立消息
  102. INT OnCreate(LPCREATESTRUCT lpCreateStruct);
  103. //右键消息
  104. VOID OnRButtonDown(UINT nFlags, CPoint point);
  105. //追踪消息
  106. LRESULT OnTraceServiceMessage(WPARAM wParam, LPARAM lParam);
  107. DECLARE_MESSAGE_MAP()
  108. };
  109. //////////////////////////////////////////////////////////////////////////////////
  110. #endif