是否有内置方法将HRESULT表示为winerror.h常数(例如E_FAIL)?

sha*_*oth 2 .net c# com com-interop error-code

在我的C#代码中,我希望能够记录COMExceptions,以便不仅输出HRESULTs的十六进制表示形式(例如0x80004005),而且输出相应的WinError.h定义符号(例如E_FAIL)。

如果我调用ToString()异常引用,则只有十六进制表示形式。

是否有一种内置方法来获取对象内部值的类似E_FAIL人类可读的常量?HRESULTCOMException

I4V*_*I4V 5

这样的东西使用COMExceptionHResult属性

unchecked
{
    var msg = Marshal.GetExceptionForHR((int)0x80004005).Message;
}
Run Code Online (Sandbox Code Playgroud)