从返回的HRESULT获得的返回值是以下之一:[S_OK - > Success],[E_NOTIMPL - > Failure]
并且底部的样本返回E_INVALIDARG并且NOERROR.
据我所知,E_INVALIDARG不是S_OK,也不是NOERROR,所以你做什么?你检查无效指针还是不检查?
COM似乎是一切的基础,我找不到关于简单行为的正确信息的一个很好的信息来源IDispatch.您如何处理生产代码中的这种不一致?
使用COM时,除非确实需要对这些值进行特殊处理,否则不应检查特定的返回值.相反,当您只需要知道呼叫是否失败或成功时,您应该使用FAILED或SUCCEEDED宏.即
HRESULT hr = ...;
if (FAILED(hr)) {
...
Run Code Online (Sandbox Code Playgroud)
COM调用通常可以返回比文档中指定的范围更广的错误代码.被调用的函数不是唯一的错误来源.根据实际调用(进程内,进程外,DCOM),COM系统本身可以返回大量错误.
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |