#ifndef __TRACE_H #define __TRACE_H typedef interface ITrace { // Data members public: private: protected: // Methods public: virtual void TraceEvent(LPCTSTR lpszFormat, ...) = 0; private: protected: } ITrace, *PITrace, **PPITrace; class CTrace : public ITrace { public: private: TCHAR m_szSourceName[256]; IGenCriticalSection *m_pcs; protected: public: CTrace() { ATLTRACE(_T("CTrace::CTrace\n")); _tcscpy(m_szSourceName, _T("")); m_pcs = new CGenCriticalSection; } CTrace(LPCTSTR lpszSourceName) { ATLTRACE(_T("CTrace::CTrace\n")); _tcscpy(m_szSourceName, lpszSourceName); m_pcs = new CGenCriticalSection; } ~CTrace() { ATLTRACE(_T("CTrace::~CTrace\n")); delete m_pcs; } private: protected: virtual void TraceEvent(LPCTSTR lpszFormat, ...); }; #endif // __TRACE_H