|
1 /* |
|
2 * Copyright 2011 Google Inc. |
|
3 * |
|
4 * Use of this source code is governed by a BSD-style license that can be |
|
5 * found in the LICENSE file. |
|
6 */ |
|
7 |
|
8 #include "SkTypes.h" |
|
9 |
|
10 #include "SkHRESULT.h" |
|
11 |
|
12 void SkTraceHR(const char* file, unsigned long line, |
|
13 HRESULT hr, const char* msg) { |
|
14 SkDEBUGCODE(if (NULL != msg) SkDEBUGF(("%s\n", msg))); |
|
15 SkDEBUGF(("%s(%lu) : error 0x%x: ", file, line, hr)); |
|
16 |
|
17 LPSTR errorText = NULL; |
|
18 FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | |
|
19 FORMAT_MESSAGE_FROM_SYSTEM | |
|
20 FORMAT_MESSAGE_IGNORE_INSERTS, |
|
21 NULL, |
|
22 hr, |
|
23 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), |
|
24 (LPSTR) &errorText, |
|
25 0, |
|
26 NULL |
|
27 ); |
|
28 |
|
29 if (NULL == errorText) { |
|
30 SkDEBUGF(("<unknown>\n")); |
|
31 } else { |
|
32 SkDEBUGF(("%s", errorText)); |
|
33 LocalFree(errorText); |
|
34 errorText = NULL; |
|
35 } |
|
36 } |