//+-------------------------------------------------------------------------- // // Copyright (c) 1997-1999 Microsoft Corporation // // File: // // Contents: // // History: // //--------------------------------------------------------------------------- #include #include #include "dbgout.h" #include "locks.h" //CCriticalSection CS; void DebugOutput( HANDLE hConsole, LPTSTR format, va_list* vaList ) /*++ ++*/ { TCHAR buf[8096]; DWORD dump; SYSTEMTIME sysTime; GetSystemTime(&sysTime); // CS.Lock(); try { memset(buf, 0, sizeof(buf)); _sntprintf( buf, sizeof(buf)/sizeof(buf[0]), _TEXT(" %d [%d:%d:%d:%d:%d.%d] : "), GetCurrentThreadId(), sysTime.wMonth, sysTime.wDay, sysTime.wHour, sysTime.wMinute, sysTime.wSecond, sysTime.wMilliseconds ); _vsntprintf( buf + lstrlen(buf), sizeof(buf)/sizeof(buf[0]) - lstrlen(buf), format, *vaList ); OutputDebugString(buf); if(hConsole != NULL) { WriteConsole( hConsole, buf, _tcslen(buf), &dump, NULL ); } } catch(...) { } // CS.UnLock(); return; } void TLSDebugOutput( HANDLE hConsole, LPTSTR format, ... ) /*++ ++*/ { va_list marker; va_start(marker, format); DebugOutput(hConsole, format, &marker); va_end(marker); return; }