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 "include/core/SkTypes.h" |
9 | #if defined(SK_BUILD_FOR_WIN) |
10 | |
11 | #include "src/utils/win/SkHRESULT.h" |
12 | |
13 | void SkTraceHR(const char* file, unsigned long line, HRESULT hr, const char* msg) { |
14 | if (msg) { |
15 | SkDebugf("%s\n" , msg); |
16 | } |
17 | SkDebugf("%s(%lu) : error 0x%x: " , file, line, hr); |
18 | |
19 | LPSTR errorText = nullptr; |
20 | FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | |
21 | FORMAT_MESSAGE_FROM_SYSTEM | |
22 | FORMAT_MESSAGE_IGNORE_INSERTS, |
23 | nullptr, |
24 | hr, |
25 | MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), |
26 | (LPSTR) &errorText, |
27 | 0, |
28 | nullptr |
29 | ); |
30 | |
31 | if (nullptr == errorText) { |
32 | SkDebugf("<unknown>\n" ); |
33 | } else { |
34 | SkDebugf("%s" , errorText); |
35 | LocalFree(errorText); |
36 | errorText = nullptr; |
37 | } |
38 | } |
39 | |
40 | #endif//defined(SK_BUILD_FOR_WIN) |
41 | |