Borland C++ Builder提供了OleCheck(HRESULT Result);
函数。其在文档中的描述是这样的:
如果函数返回失败的状态值,建议与Microsoft ATL一起使用以引发异常的推荐函数或惯用法是什么?我想避免在这样的代码中混合使用Borland和Microsoft库:
CComPtr<Outlook::Explorers> spExplorers;
OleCheck(m_spApp->get_Explorers(&spExplorers));
最佳答案
ATL中没有这样的现成的东西。最接近的是 AtlThrow()
(它无条件地)引发异常,但是检查仍由您自己决定-您可以研究ATL本身如何使用AtlThrow()
。
因此,IMO最好的选择是制作自己的函数-它将接受HRESULT
并调用AtlThrow()
或HRESULT
的其他异常引发构造,这些构造可通过false
宏逃到FAILED
。