Как я могу (есть ли способ) преобразовать HRESULT в системное сообщение об ошибке ?

Согласно this , нет способа преобразовать код ошибки HRESULT в ошибку Win32 код. Поэтому (по крайней мере, насколько я понимаю) я использую FormatMessage для генерации сообщений об ошибках (т.е.

std::wstring Exception::GetWideMessage() const
{
    using std::tr1::shared_ptr;
    shared_ptr buff;
    LPWSTR buffPtr;
    DWORD bufferLength = FormatMessageW(
        FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        GetErrorCode(),
        0,
        reinterpret_cast(&buffPtr),
        0,
        NULL);
    buff.reset(buffPtr, LocalFreeHelper());
    return std::wstring(buffPtr, bufferLength);
}

) не работает для HRESULT.

Как мне сгенерировать такие типы строк с системными ошибками для HRESULT?

9
задан Billy ONeal 4 January 2011 в 20:10
поделиться