接口定义中的方法声明

时间:2012-12-13 11:30:49

标签: c++ com

[id(203), helpstring("method LoadPolyDataXml")] HRESULT LoadPolyDataXml([out,retval]CComBSTR bstrPolyData);

我收到错误:

  

错误1错误MIDL2025:语法错误:期望“CComBSTR”附近的类型规范

如何解决?

1 个答案:

答案 0 :(得分:2)

请将CComBSTR替换为BSTR *。不应在idl文件中使用CComBSTR

那么用法就是

CComBSTR data;
LoadPolyDataXml(&data)

实施可能是

HRESULT LoadPolyDataXml(BSTR* pData);
{
  if (pData == 0) return E_POINTER;

  CComBSTR xml;
  // ... reading xml here
  *pData = xml.Detach()
  or 
  *pData = ::SysAllocString(string data here)

}

不要忘记检查内存不足错误