在进程外COM服务器中输出参数deallocation

时间:2013-09-12 08:44:06

标签: windows memory com

我有一个进程外COM服务器,它有以下方法:
    STDMETHODIMP CMyCom :: process(/ [out] / BSTR * pResponse);
在这个方法中,我为pResponse属性分配内存,如下所示:
    * pResponse = :: SysAllocString(“Some string”);

我的问题是,当方法返回时,谁负责释放为此BSTR分配的内存?它是COM子系统吗?

1 个答案:

答案 0 :(得分:1)

   STDMETHODIMP CMyCom::process(/*[out]*/BSTR* pResponse); 

必须将[out,retval]归因于与COM Automation兼容。自动化合同要求调用者在使用字符串后释放它。任何自动化客户端都能做到这一点。