Pergunta

Say, if I have a WinAPI that fails with an HRESULT code. Is there a way to convert it to an error description string?

Foi útil?

Solução

This is the helper function we use in-house to extract a Win32 error code from an HRESULT:

DWORD Win32FromHResult(HRESULT hr)
{
    if ((hr & 0xFFFF0000) == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, 0))
    {
        return HRESULT_CODE(hr);
    }

    if (hr == S_OK)
    {
        return ERROR_SUCCESS;
    }

    // Not a Win32 HRESULT so return a generic error code.
    return ERROR_CAN_NOT_COMPLETE;
}

You can then use FormatMessage to get it into string form.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top