|
- #ifndef TRACE_SERVICE_HEAD_FILE
- #define TRACE_SERVICE_HEAD_FILE
-
- #pragma once
-
- #include "KernelEngineHead.h"
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //追踪服务
- class KERNEL_ENGINE_CLASS CTraceService
- {
- //函数定义
- protected:
- //构造函数
- CTraceService();
-
- //服务配置
- public:
- //设置服务
- static bool SetTraceService(IUnknownEx * pIUnknownEx);
- //获取服务
- static VOID * GetTraceService(const IID & Guid, DWORD dwQueryVer);
- //获取服务
- static VOID * GetTraceServiceManager(const IID & Guid, DWORD dwQueryVer);
-
- //状态管理
- public:
- //追踪状态
- static bool IsEnableTrace(enTraceLevel TraceLevel);
- //追踪控制
- static bool EnableTrace(enTraceLevel TraceLevel, bool bEnableTrace);
-
- //功能函数
- public:
- //追踪信息
- static bool TraceString(LPCTSTR pszString, enTraceLevel TraceLevel);
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //追踪服务
- class KERNEL_ENGINE_CLASS CTraceServiceControl : public CRichEditCtrl, public ITraceService
- {
- //辅助变量
- protected:
- LONG m_lMaxLineCount; //最大行数
- LONG m_lReserveLineCount; //保留行数
- BYTE m_cbBuffer[MAX_ASYNCHRONISM_DATA]; //临时对象
-
- //组件变量
- protected:
- CWHDataQueue m_DataQueue; //数据队列
- CCriticalSection m_CriticalSection; //同步对象
-
- //函数定义
- public:
- //构造函数
- CTraceServiceControl();
- //析构函数
- virtual ~CTraceServiceControl();
-
- //基础接口
- public:
- //释放对象
- virtual VOID Release() { return; }
- //接口查询
- virtual VOID * QueryInterface(const IID & Guid, DWORD dwQueryVer);
-
- //信息接口
- public:
- //追踪信息
- virtual bool TraceString(LPCTSTR pszString, enTraceLevel TraceLevel);
-
- //重载函数
- protected:
- //绑定函数
- virtual VOID PreSubclassWindow();
-
- //功能函数
- public:
- //加载消息
- bool LoadMessage(LPCTSTR pszFileName);
- //保存信息
- bool SaveMessage(LPCTSTR pszFileName);
- //设置参数
- bool SetParameter(LONG lMaxLineCount, LONG lReserveLineCount);
-
- //辅助函数
- private:
- //配置服务
- VOID InitializeService();
- //获取颜色
- COLORREF GetTraceColor(enTraceLevel TraceLevel);
- //插入字串
- bool InsertString(LPCTSTR pszString, CHARFORMAT2 & CharFormat);
-
- //回调函数
- private:
- //加载回调
- static DWORD CALLBACK LoadCallBack(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG * pcb);
- //保存回调
- static DWORD CALLBACK SaveCallBack(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG * pcb);
-
- //菜单命令
- protected:
- //删除信息
- VOID OnClearAll();
- //全部选择
- VOID OnSelectAll();
- //拷贝字符
- VOID OnCopyString();
- //保存信息
- VOID OnSaveString();
- //删除字符
- VOID OnDeleteString();
-
- //消息映射
- protected:
- //建立消息
- INT OnCreate(LPCREATESTRUCT lpCreateStruct);
- //右键消息
- VOID OnRButtonDown(UINT nFlags, CPoint point);
- //追踪消息
- LRESULT OnTraceServiceMessage(WPARAM wParam, LPARAM lParam);
-
- DECLARE_MESSAGE_MAP()
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- #endif
|