【问题标题】:Microsoft ATL equivalent to Borland OleCheck functionMicrosoft ATL 等效于 Borland OleCheck 函数
【发布时间】:2010-09-10 07:46:11
【问题描述】:

Borland C++ Builder 提供函数OleCheck(HRESULT Result);。它在文档中的描述是这样的:

OleCheck 用于包装许多 COM 例程,因此如果该例程失败,用户将有机会在引发的异常异常中进行处理。

如果 ECode 是一个小于零的值,OleCheck 会引发一个指定错误代码的 EOleSysError 异常。

如果函数返回失败状态值,建议使用什么函数或习语与 Microsoft ATL 一起引发异常?我想避免在这样的代码中混合 Borland 和 Microsoft 库:

CComPtr<Outlook::Explorers> spExplorers;
OleCheck(m_spApp->get_Explorers(&spExplorers));

【问题讨论】:

    标签: c++ com atl c++builder


    【解决方案1】:

    ATL 中没有这种现成的东西。最接近的是AtlThrow(),它(无条件地)抛出异常,但检查仍然取决于您 - 您可以查看 AtlThrow() 在 ATL 本身中的使用方式。

    因此,IMO 你最好的选择是制作你自己的函数——它将接受HRESULT 并调用AtlThrow() 或其他一些HRESULTs 的异常抛出构造,通过false 评估为false 宏。

    【讨论】:

      猜你喜欢
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2013-06-22
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多