/////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 1998, Microsoft Corp. All rights reserved. // // FILE // // tracex.cpp // // SYNOPSIS // // Defines the C++ portion of the trace API. // // MODIFICATION HISTORY // // 08/20/1998 Original version. // /////////////////////////////////////////////////////////////////////////////// #include #include ////////// // We want this to compile correctly in a retail build. ////////// #ifdef IASTraceExcept #undef IASTraceExcept #endif #ifdef IASTracePrintf #undef IASTracePrintf #endif #ifdef IASTraceString #undef IASTraceString #endif VOID WINAPIV IASTracePrintf( IN PCSTR szFormat, ... ); VOID WINAPI IASTraceString( IN PCSTR szString ); VOID WINAPI IASTraceExcept( VOID ) { try { throw; } catch (const std::exception& x) { IASTracePrintf("Caught standard exception: %s", x.what()); } catch (const _com_error& ce) { CHAR szMessage[256]; DWORD nChar = IASFormatSysErr( ce.Error(), szMessage, sizeof(szMessage) ); szMessage[nChar] = '\0'; IASTracePrintf("Caught COM exception: %s", szMessage); } catch (...) { IASTraceString("Caught unknown exception"); } }