有一个接口的方法如下:
STDMETHOD(get_Item)(BSTR bstrVar, LPDISPATCH * ppObjReturn)
{
return S_OK;
}如果我想通过ppObjReturn返回一个BSTR字符串,请问如何操作?
STDMETHOD(get_Item)(BSTR bstrVar, LPDISPATCH * ppObjReturn)
{
return S_OK;
}如果我想通过ppObjReturn返回一个BSTR字符串,请问如何操作?
.IDL
XXX(...,BSTR* pReturn,...).CPP
XXX(...,BSTR* pReturn,...)
{
CString strReturn=_T("Result");
...
*pReturn=strReturn.AllocSysString();
}
.IDL
XXX(...,[out]BSTR* pReturn,...)
你的这种做法可以吗?
我怎么编译不过去啊?
[propget, id(25), helpstring("property IpAddress")] HRESULT IpAddress([out, retval] BSTR* pVal);
[propput, id(25), helpstring("property IpAddress")] HRESULT IpAddress([in] BSTR newVal);
定义一个私有变量_ip;
STDMETHODIMP get_IpAddress(BSTR* pVal)
{
*pVal = _ip;
return S_OK;
}
STDMETHODIMP put_IpAddress(BSTR newVal)
{
_ip = newVal;
return S_OK;
}
XXX(...,[out]BSTR* pReturn,...)I agree
见http://seaso.blogchina.com/blog/article_26511.91187.html