16 struct last_windows_error_t
19 std::string formatted;
25 extern "C" __declspec(dllimport) win::DWORD __stdcall FormatMessageA(win::DWORD dwFlags,
const void* lpSource, win::DWORD dwMessageId, win::DWORD dwLanguageId,
char* lpBuffer, win::DWORD nSize, va_list * Arguments);
26 extern "C" __declspec(dllimport) win::HANDLE __stdcall LocalFree(win::HANDLE hMem);
30 [[nodiscard]]
inline last_windows_error_t get_last_windows_error()
32 const auto le = win::GetLastError();
34 last_windows_error_t result{};
38 char* messageBuffer =
nullptr;
39 size_t size = detail::FormatMessageA(0x00000100 | 0x00001000 | 0x00000200 | 0xFF,
nullptr, le, 0, (
char*)&messageBuffer, 0,
nullptr);
40 result.formatted = std::string{ messageBuffer, size };
41 detail::LocalFree(messageBuffer);
Primary namespace for everything in this library.