Согласно этому , нет способа преобразовать код ошибки HRESULT в код ошибки Win32. Поэтому (по крайней мере, насколько я понимаю) мое использование FormatMessage для генерации сообщений об ошибках (т.е.
std::wstring Exception::GetWideMessage() const
{
using std::tr1::shared_ptr;
shared_ptr<void> buff;
LPWSTR buffPtr;
DWORD bufferLength = FormatMessageW(
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetErrorCode(),
0,
reinterpret_cast<LPWSTR>(&buffPtr),
0,
NULL);
buff.reset(buffPtr, LocalFreeHelper());
return std::wstring(buffPtr, bufferLength);
}
) не работает для HRESULT.
Как я могу сгенерировать такие специфичные для системы строки ошибок для HRESULT?