我有以下 IDL,可以很好地将字符串值从 JS 传递到 C++。JS 代码将一个字符串值传递给 c++/COM 对象。
[id(1), helpstring("method DoSomething")] HRESULT DoSomething([in] BSTR otlToken);
我现在需要添加另一种方法来将字符串返回给 javascript 调用者。我在 IDL 中添加了以下内容:
[id(3), helpstring("method GetValue")] HRESULT GetValue([out] BSTR *nicknames);
在 JS 方面工作的开发人员说,他会收到一条关于参数数量错误和其他事情的消息,这取决于他是尝试调用该方法还是将其作为属性访问。
JS 是否需要通过引用调用才能获得此信息,还是我必须将一个 BSTR* 参数作为 [in,out] 传递?
我怎样才能让它工作?(从 C++/IDL 获取字符串值到 JS 调用者?
IDL 应该是什么样子,JS 代码应该是什么样子?