如何在COM中创建返回指向接口的指针的方法,这需要在IDL文件中完成。

编辑:

如何在 class 中实施此操作:

STDMETHODIMP CBlah::get_Something(IOtherBlah** retval){
return m_protectedvar->QueryInterface(retval);
}
STDMETHODIMP CBlah::put_Somthing(IOtherBlah* rhs){
m_protectedvar = rhs;
return S_OK;
}

以上无效。我收到以下错误:
cannot instantiate abstract class with[ Base=Blah ] due to following members:
'HRESULT IBlah::putref_Something(IOtherBlah*)' : is abstract

最佳答案

[ attributes here...]
interface IBlah : IDispatch {
  [id(1), propget]    HRESULT Something([out,retval] IOtherBlah** retval);
  [id(1), propputref] HRESULT Something([in] IOtherBlah* rhs);
};

10-06 06:25