Create COMException from HRESULT
本文关键字:HRESULT from COMException Create | 更新日期: 2023-09-27 18:28:10
如何在给定HRESULT的情况下创建COMException?
我有p/Invoke:ed一个win32方法,它返回HRESULT
如果它返回failure,我希望抛出一个带有标准错误文本的COMException
我该怎么做?
-
throw new COMException(null, hResult)
-
COMException e = new COMException;
e.HResult = hResult;
throw e;
或者我应该使用其他方法吗?
如果只想获得异常,则应该使用Marshal.GetExceptionForHR()
;如果也想抛出异常,则应使用Marshal.ThrowExceptionForHR()
。
我会查看DllImport调用上的PreserveSig字段。这将为函数返回的任何非S_OK
HRESULT
生成异常。