我有一个[dual]实现的接口IDispatch,如下所示:
[dual, ...]
interface IMyInterface : IDispatch
{
[id(1), propget] HRESULT StringValue([out, string, retval] OLECHAR const ** str);
};
我的支持对象IMyInterface有一个成员变量d_str:
class CBackingObject : public IMyInterface
{
std::basic_string<OLECHAR> d_str;
...
};
什么是返回StringValue财产的 COM 约定?我应该退回d_str.data(),还是复印一份?客户端是否会自动承担释放由字符串值属性返回的字符串的责任?