如何在COM中的方法上返回类型?

时间:2013-12-22 19:10:19

标签: c++ com atl

我知道COM现在已经老了,但我们时不时地做一些工作。我正在使用Visual Studio中的ATL COM应用程序,我尝试向接口添加一个方法,但它不会让我将返回类型从HRESULT更改为其他类似long或BSTR的内容。

我不记得究竟是怎么做的,可能是通过一些输出参数。有人能告诉我如何在COM接口方法中返回类型吗?

1 个答案:

答案 0 :(得分:4)

COM中的返回类型始终为HRESULT(特殊方法AddRef和Release除外),因此您需要使用out参数:

HRESULT GetString([out] BSTR* val);

您还可以添加retval属性以将输出参数转换为脚本语言的返回值(使用IDispatch):

HRESULT GetString([out, retval] BSTR* val);