我有一个进程外COM服务器,它有以下方法:
STDMETHODIMP CMyCom :: process(/ [out] / BSTR * pResponse);
在这个方法中,我为pResponse属性分配内存,如下所示:
* pResponse = :: SysAllocString(“Some string”);
我的问题是,当方法返回时,谁负责释放为此BSTR分配的内存?它是COM子系统吗?
答案 0 :(得分:1)
STDMETHODIMP CMyCom::process(/*[out]*/BSTR* pResponse);
必须将[out,retval]归因于与COM Automation兼容。自动化合同要求调用者在使用字符串后释放它。任何自动化客户端都能做到这一点。