0

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

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

4

1 回答 1

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

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

于 2013-09-12T12:44:32.783 回答