我知道COM现在已经老了,但我们时不时地做一些工作。我正在使用Visual Studio中的ATL COM应用程序,我尝试向接口添加一个方法,但它不会让我将返回类型从HRESULT更改为其他类似long或BSTR的内容。
我不记得究竟是怎么做的,可能是通过一些输出参数。有人能告诉我如何在COM接口方法中返回类型吗?
答案 0 :(得分:4)
COM中的返回类型始终为HRESULT(特殊方法AddRef和Release除外),因此您需要使用out
参数:
HRESULT GetString([out] BSTR* val);
您还可以添加retval
属性以将输出参数转换为脚本语言的返回值(使用IDispatch):
HRESULT GetString([out, retval] BSTR* val);