Files

137 lines
3.0 KiB
C
Raw Permalink Normal View History

2026-02-13 14:34:15 +08:00
#ifndef TRACE_SERVICE_HEAD_FILE
#define TRACE_SERVICE_HEAD_FILE
#pragma once
#include "KernelEngineHead.h"
//////////////////////////////////////////////////////////////////////////
//׷<>ٷ<EFBFBD><D9B7><EFBFBD>
class KERNEL_ENGINE_CLASS CTraceService
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CTraceService();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
static bool SetTraceService(IUnknownEx * pIUnknownEx);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
static VOID * GetTraceService(const IID & Guid, DWORD dwQueryVer);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
static VOID * GetTraceServiceManager(const IID & Guid, DWORD dwQueryVer);
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
public:
//׷<><D7B7>״̬
static bool IsEnableTrace(enTraceLevel TraceLevel);
//׷<>ٿ<EFBFBD><D9BF><EFBFBD>
static bool EnableTrace(enTraceLevel TraceLevel, bool bEnableTrace);
//ȫ<><C8AB>׷<EFBFBD>ٿ<EFBFBD><D9BF><EFBFBD>
static bool EnableAllTrace(bool bEnableTrace);
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
public:
//׷<><D7B7><EFBFBD><EFBFBD>Ϣ
static bool TraceString(LPCTSTR pszString, enTraceLevel TraceLevel);
//<2F><>ʽ<EFBFBD><CABD>׷<EFBFBD><D7B7><EFBFBD><EFBFBD>Ϣ
static bool TraceFormat( enTraceLevel TraceLevel, LPCTSTR pszFormat,... );
};
//////////////////////////////////////////////////////////////////////////
//׷<>ٷ<EFBFBD><D9B7><EFBFBD>
class KERNEL_ENGINE_CLASS CTraceServiceControl : public CRichEditCtrl, public ITraceService
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
LONG m_lMaxLineCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG m_lReserveLineCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE m_cbBuffer[MAX_ASYNCHRONISM_DATA]; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
CWHDataQueue m_DataQueue; //<2F><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
CCriticalSection m_CriticalSection; //ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CTraceServiceControl();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CTraceServiceControl();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
virtual VOID Release() { return; }
//<2F>ӿڲ<D3BF>ѯ
virtual VOID * QueryInterface(const IID & Guid, DWORD dwQueryVer);
//<2F><>Ϣ<EFBFBD>ӿ<EFBFBD>
public:
//׷<><D7B7><EFBFBD><EFBFBD>Ϣ
virtual bool TraceString(LPCTSTR pszString, enTraceLevel TraceLevel);
//<2F><><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
protected:
//<2F>󶨺<EFBFBD><F3B6A8BA><EFBFBD>
virtual VOID PreSubclassWindow();
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
bool LoadMessage(LPCTSTR pszFileName);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
bool SaveMessage(LPCTSTR pszFileName);
//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
bool SetParameter(LONG lMaxLineCount, LONG lReserveLineCount);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private:
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
VOID InitializeService();
//<2F><>ȡ<EFBFBD><C8A1>ɫ
COLORREF GetTraceColor(enTraceLevel TraceLevel);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>
bool InsertString(LPCTSTR pszString, CHARFORMAT2 & CharFormat);
//<2F>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
private:
//<2F><><EFBFBD>ػص<D8BB>
static DWORD CALLBACK LoadCallBack(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG * pcb);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
static DWORD CALLBACK SaveCallBack(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG * pcb);
//<2F>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>
protected:
//ɾ<><C9BE><EFBFBD><EFBFBD>Ϣ
VOID OnClearAll();
//ȫ<><C8AB>ѡ<EFBFBD><D1A1>
VOID OnSelectAll();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
VOID OnCopyString();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
VOID OnSaveString();
//ɾ<><C9BE><EFBFBD>ַ<EFBFBD>
VOID OnDeleteString();
//<2F><>Ϣӳ<CFA2><D3B3>
protected:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
INT OnCreate(LPCREATESTRUCT lpCreateStruct);
//<2F>Ҽ<EFBFBD><D2BC><EFBFBD>Ϣ
VOID OnRButtonDown(UINT nFlags, CPoint point);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void OnDestroy();
//׷<><D7B7><EFBFBD><EFBFBD>Ϣ
LRESULT OnTraceServiceMessage(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////////
#endif