十万火急,VC.NET调用COM的问题
我用VC.NET中的向导从类型库中生成调用COM组件接口的类,其中有一个方法的输出类型是SAFEARRAY *,以下是类型库中的定义
[id(0x00000004), helpstring("method ReadData")]
HRESULT ReadData([out, retval] SAFEARRAY(single)* pSAData);
而自动生成的类中的定义为
SAFEARRAY * ReadData()
{
InvokeHelper(0x4, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
没有输出值,调用就会报错,我改为以下形式
SAFEARRAY * ReadData()
{
SAFEARRAY * result;
InvokeHelper(0x4, DISPATCH_METHOD, VT_ARRAY, (void*)&result, NULL);
return result;
}
还是无法返回数据,还请各位大哥多多指教,另外COM组件产生的事件在客户端用何种方式捕获比较好