blob: 495f074eb258777160d129d1c1dbd04b11798247 [file] [log] [blame]
bungeman@google.comb29c8832011-10-10 13:19:10 +00001/*
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
commit-bot@chromium.org8e13a152014-03-19 19:28:00 +000010#include "SkHRESULT.h"
bungeman@google.comb29c8832011-10-10 13:19:10 +000011
bungeman@google.come4ae0bc2014-05-21 19:44:39 +000012void SkTraceHR(const char* file, unsigned long line, HRESULT hr, const char* msg) {
13 if (NULL != msg) {
14 SkDebugf("%s\n", msg);
15 }
16 SkDebugf("%s(%lu) : error 0x%x: ", file, line, hr);
rmistry@google.comd6176b02012-08-23 18:14:13 +000017
bungeman@google.comb29c8832011-10-10 13:19:10 +000018 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 );
rmistry@google.comd6176b02012-08-23 18:14:13 +000029
bungeman@google.comb29c8832011-10-10 13:19:10 +000030 if (NULL == errorText) {
bungeman@google.come4ae0bc2014-05-21 19:44:39 +000031 SkDebugf("<unknown>\n");
bungeman@google.comb29c8832011-10-10 13:19:10 +000032 } else {
bungeman@google.come4ae0bc2014-05-21 19:44:39 +000033 SkDebugf("%s", errorText);
bungeman@google.comb29c8832011-10-10 13:19:10 +000034 LocalFree(errorText);
35 errorText = NULL;
36 }
37}