137 lines
3.0 KiB
C
137 lines
3.0 KiB
C
|
|
#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
|