97 lines
1.9 KiB
C++
97 lines
1.9 KiB
C++
#include "precomp.hxx"
|
|
#include "global.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//// DebugMsg - display a message via OutputDebugString
|
|
//
|
|
// DebugMsg formats debug messages, including the file name
|
|
// and line number the message originated form.
|
|
//
|
|
// Supports the TRACEMSG and TRACE macros.
|
|
//
|
|
// The current timer is adjusted to remove debug message
|
|
// output from timing results.
|
|
|
|
|
|
|
|
extern "C" void WINAPIV DebugMsg(char *fmt, ...) {
|
|
|
|
va_list vargs;
|
|
char c[200];
|
|
|
|
// TIMESUSPEND;
|
|
|
|
wsprintfA(c, "%s[%d] ", strrchr(DG.psFile, '\\')+1, DG.iLine);
|
|
c[17] = 0;
|
|
OutputDebugStringA(c);
|
|
|
|
wsprintfA(c, "%ld: ", GetCurrentThreadId());
|
|
c[5] = 0;
|
|
OutputDebugStringA(c);
|
|
|
|
va_start(vargs, fmt);
|
|
wvsprintfA(c, fmt, vargs);
|
|
OutputDebugStringA(c);
|
|
|
|
OutputDebugStringA("\n");
|
|
|
|
// TIMERESUME;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" void WINAPIV DebugHr(char *fmt, ...) {
|
|
|
|
va_list vargs;
|
|
char c[200];
|
|
|
|
// TIMESUSPEND;
|
|
|
|
wsprintfA(c, "%s[%d] ", strrchr(DG.psFile, '\\')+1, DG.iLine);
|
|
c[17] = 0;
|
|
OutputDebugStringA(c);
|
|
|
|
wsprintfA(c, "%ld: ", GetCurrentThreadId());
|
|
c[5] = 0;
|
|
OutputDebugStringA(c);
|
|
|
|
va_start(vargs, fmt);
|
|
wvsprintfA(c, fmt, vargs);
|
|
OutputDebugStringA(c);
|
|
|
|
//
|
|
// Parse USP and Win32 Errors
|
|
//
|
|
|
|
switch( DG.hrLastError )
|
|
{
|
|
case USP_E_SCRIPT_NOT_IN_FONT:
|
|
lstrcpyA( DG.sLastError , "Selected font doesn't contain requested script\n");
|
|
break;
|
|
|
|
default:
|
|
FormatMessageA(
|
|
FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM,
|
|
NULL, DG.hrLastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
|
|
DG.sLastError, sizeof(DG.sLastError), NULL);
|
|
}
|
|
|
|
wsprintfA(c, " -- HRESULT = %x: %s", DG.hrLastError, DG.sLastError);
|
|
OutputDebugStringA(c);
|
|
|
|
// TIMERESUME;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|