diff options
Diffstat (limited to 'src/dutil/dutil.cpp')
| -rw-r--r-- | src/dutil/dutil.cpp | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/src/dutil/dutil.cpp b/src/dutil/dutil.cpp index 3945d8c1..a32de516 100644 --- a/src/dutil/dutil.cpp +++ b/src/dutil/dutil.cpp | |||
| @@ -13,8 +13,26 @@ static DUTIL_ASSERTDISPLAYFUNCTION Dutil_pfnDisplayAssert = NULL; | |||
| 13 | static BOOL Dutil_fNoAsserts = FALSE; | 13 | static BOOL Dutil_fNoAsserts = FALSE; |
| 14 | static REPORT_LEVEL Dutil_rlCurrentTrace = REPORT_STANDARD; | 14 | static REPORT_LEVEL Dutil_rlCurrentTrace = REPORT_STANDARD; |
| 15 | static BOOL Dutil_fTraceFilenames = FALSE; | 15 | static BOOL Dutil_fTraceFilenames = FALSE; |
| 16 | static DUTIL_CALLBACK_TRACEERROR vpfnTraceErrorCallback = NULL; | ||
| 16 | 17 | ||
| 17 | 18 | ||
| 19 | DAPI_(HRESULT) DutilInitialize( | ||
| 20 | __in_opt DUTIL_CALLBACK_TRACEERROR pfnTraceErrorCallback | ||
| 21 | ) | ||
| 22 | { | ||
| 23 | HRESULT hr = S_OK; | ||
| 24 | |||
| 25 | vpfnTraceErrorCallback = pfnTraceErrorCallback; | ||
| 26 | |||
| 27 | return hr; | ||
| 28 | } | ||
| 29 | |||
| 30 | |||
| 31 | DAPI_(void) DutilUninitialize() | ||
| 32 | { | ||
| 33 | vpfnTraceErrorCallback = NULL; | ||
| 34 | } | ||
| 35 | |||
| 18 | /******************************************************************* | 36 | /******************************************************************* |
| 19 | Dutil_SetAssertModule | 37 | Dutil_SetAssertModule |
| 20 | 38 | ||
| @@ -216,7 +234,7 @@ extern "C" REPORT_LEVEL DAPI Dutil_TraceGetLevel() | |||
| 216 | Dutil_Trace | 234 | Dutil_Trace |
| 217 | 235 | ||
| 218 | *******************************************************************/ | 236 | *******************************************************************/ |
| 219 | extern "C" void DAPI Dutil_Trace( | 237 | extern "C" void DAPIV Dutil_Trace( |
| 220 | __in_z LPCSTR szFile, | 238 | __in_z LPCSTR szFile, |
| 221 | __in int iLine, | 239 | __in int iLine, |
| 222 | __in REPORT_LEVEL rl, | 240 | __in REPORT_LEVEL rl, |
| @@ -293,7 +311,7 @@ extern "C" void DAPI Dutil_Trace( | |||
| 293 | Dutil_TraceError | 311 | Dutil_TraceError |
| 294 | 312 | ||
| 295 | *******************************************************************/ | 313 | *******************************************************************/ |
| 296 | extern "C" void DAPI Dutil_TraceError( | 314 | extern "C" void DAPIV Dutil_TraceError( |
| 297 | __in_z LPCSTR szFile, | 315 | __in_z LPCSTR szFile, |
| 298 | __in int iLine, | 316 | __in int iLine, |
| 299 | __in REPORT_LEVEL rl, | 317 | __in REPORT_LEVEL rl, |
| @@ -380,6 +398,25 @@ extern "C" void DAPI Dutil_TraceError( | |||
| 380 | } | 398 | } |
| 381 | 399 | ||
| 382 | 400 | ||
| 401 | DAPIV_(void) Dutil_TraceErrorSource( | ||
| 402 | __in_z LPCSTR szFile, | ||
| 403 | __in int iLine, | ||
| 404 | __in REPORT_LEVEL rl, | ||
| 405 | __in UINT source, | ||
| 406 | __in HRESULT hr, | ||
| 407 | __in_z __format_string LPCSTR szFormat, | ||
| 408 | ... | ||
| 409 | ) | ||
| 410 | { | ||
| 411 | if (DUTIL_SOURCE_UNKNOWN != source && vpfnTraceErrorCallback) | ||
| 412 | { | ||
| 413 | va_list args; | ||
| 414 | va_start(args, szFormat); | ||
| 415 | vpfnTraceErrorCallback(szFile, iLine, rl, source, hr, szFormat, args); | ||
| 416 | va_end(args); | ||
| 417 | } | ||
| 418 | } | ||
| 419 | |||
| 383 | 420 | ||
| 384 | /******************************************************************* | 421 | /******************************************************************* |
| 385 | Dutil_RootFailure | 422 | Dutil_RootFailure |
