• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
SkTraceHR(const char * file,unsigned long line,HRESULT hr,const char * msg)12 void SkTraceHR(const char* file, unsigned long line, HRESULT hr, const char* msg) {
13     if (msg) {
14         SkDebugf("%s\n", msg);
15     }
16     SkDebugf("%s(%lu) : error 0x%x: ", file, line, hr);
17 
18     LPSTR errorText = NULL;
19     FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER |
20                    FORMAT_MESSAGE_FROM_SYSTEM |
21                    FORMAT_MESSAGE_IGNORE_INSERTS,
22                    NULL,
23                    hr,
24                    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
25                    (LPSTR) &errorText,
26                    0,
27                    NULL
28     );
29 
30     if (NULL == errorText) {
31         SkDebugf("<unknown>\n");
32     } else {
33         SkDebugf("%s", errorText);
34         LocalFree(errorText);
35         errorText = NULL;
36     }
37 }
38