/*++ Copyright (c) 1998-1999 Microsoft Corporation All rights reserved. Module Name: dbgmsgp.hxx Abstract: Debug Library Author: Steve Kiraly (SteveKi) 5-Dec-1995 Revision History: --*/ #ifndef _DBGMSGP_HXX_ #define _DBGMSGP_HXX_ DEBUG_NS_BEGIN /******************************************************************** Debug message class. ********************************************************************/ class TDebugMsg { public: union StringTrait { LPTSTR pszTChar; LPCWSTR pszWide; LPWSTR pszWideNc; LPCSTR pszNarrow; LPSTR pszNarrowNc; LPBYTE pszByte; }; TDebugMsg:: TDebugMsg( VOID ); TDebugMsg:: ~TDebugMsg( VOID ); BOOL TDebugMsg:: Valid( VOID ) const; VOID TDebugMsg:: Initialize( IN LPCTSTR pszPrefix, IN UINT uDevice, IN INT eLevel, IN INT eBreak ); VOID TDebugMsg:: Destroy( VOID ); VOID TDebugMsg:: Msg( IN UINT eLevel, IN LPCTSTR pszFile, IN UINT uLine, IN LPCTSTR pszModulePrefix, IN LPSTR pszMessage ) const; VOID TDebugMsg:: Msg( IN UINT eLevel, IN LPCTSTR pszFile, IN UINT uLine, IN LPCTSTR pszModulePrefix, IN LPWSTR pszMessage ) const; LPSTR WINAPIV TDebugMsg:: Fmt( IN LPCSTR pszFmt IN ... ) const; LPWSTR WINAPIV TDebugMsg:: Fmt( IN LPCWSTR pszFmt IN ... ) const; VOID TDebugMsg:: Disable( VOID ); VOID TDebugMsg:: Enable( VOID ); BOOL TDebugMsg:: Attach( IN HANDLE *phDevice, IN UINT uDevice, IN LPCTSTR pszConfiguration, IN TDebugNodeDouble **ppDeviceRoot = NULL ); VOID TDebugMsg:: Detach( IN HANDLE *phDevice ); VOID TDebugMsg:: SetMessageFieldFormat( IN UINT Field, IN LPTSTR pszFormat ); private: // // Copying and assignment are not defined. // TDebugMsg:: TDebugMsg( const TDebugMsg &rhs ); const TDebugMsg & TDebugMsg:: operator=( const TDebugMsg &rhs ); BOOL TDebugMsg:: Type( IN EDebugLevel eLevel ) const; BOOL TDebugMsg:: Break( IN EDebugLevel eLevel ) const; VOID TDebugMsg:: Output( IN EDebugLevel eLevel, IN LPCTSTR pszFileName, IN UINT uLine, IN LPCTSTR pszModulePrefix, IN StringTrait &strMsg ) const; BOOL TDebugMsg:: GetParameter( IN UINT eFlags, IN OUT TDebugString &strString, IN LPCTSTR pszFileName, IN UINT uLine ) const; BOOL TDebugMsg:: BuildFinalString( IN TDebugString &strFinal, IN EDebugLevel eDebugLevel, IN LPCTSTR pszPrefix, IN LPCTSTR pszFileName, IN UINT uLine, IN StringTrait &StrMsg ) const; EDebugLevel m_eBreak; EDebugLevel m_eLevel; TDebugString *m_pstrPrefix; TDebugNodeDouble *m_pDeviceRoot; TDebugNodeDouble *m_pBuiltinDeviceRoot; TDebugString *m_pstrFileInfoFormat; TDebugString *m_pstrTimeStampFormatShort; TDebugString *m_pstrTimeStampFormatLong; TDebugString *m_pstrThreadIdFormat; }; DEBUG_NS_END #endif // DBGMSG_HXX