我一直在网上找到这个答案的点点滴滴,但不是一个清晰的解决方案。
这就是我想要做的。1) 创建一个 ATL 简单对象。2) 向该对象添加一个返回 BOOL 而不是 HRESULT 的方法。调用者想要真/假返回值。3) 向将提供 e.description 和 e.number 数据的 jscript 或 vbscript 调用者抛出异常。
RE 2) 我发现我可以使用 STDMETHODIMP_(BOOL) 和 [local] 来允许返回 BOOL RE 3) 我发现我可以通过 SetErrorInfo() 传递 IErrorInfo 来填充 Error 对象
我的困境是我无法弄清楚如何构建 C++ 以在 ABI 边界上抛出一个不会使调用者崩溃的异常。