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, 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); 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