MCPcopy Create free account
hub / github.com/TranslucentTB/TranslucentTB / MessageFromHRESULT

Method MessageFromHRESULT

ProgramLog/error/win32.cpp:33–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

31}
32
33std::wstring Error::MessageFromHRESULT(HRESULT result)
34{
35 DWORD count = 0;
36 auto error = impl::FormatMessageForLanguage(result, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), count);
37 DWORD lastErr = GetLastError();
38 if (!count && (lastErr == ERROR_MUI_FILE_NOT_FOUND || lastErr == ERROR_RESOURCE_LANG_NOT_FOUND))
39 {
40 // US language not installed, try again with default language lookup.
41 error = impl::FormatMessageForLanguage(result, 0, count);
42 lastErr = GetLastError();
43 }
44
45 std::wstring errBuf;
46 std::wstring_view description;
47 if (count)
48 {
49 description = Util::Trim({ error.get(), count });
50 }
51 else
52 {
53 errBuf = std::format(L"[failed to get message] 0x{:08X}", static_cast<std::make_unsigned_t<HRESULT>>(HRESULT_FROM_WIN32(lastErr)));
54 description = errBuf;
55 }
56
57 return impl::FormatHRESULT(result, description);
58}

Callers

nothing calls this directly

Calls 2

TrimFunction · 0.85
getMethod · 0.80

Tested by

no test coverage detected