十万火急,VC.NET调用COM的问题

peteryin1977 2006-12-03 10:04:15
我用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组件产生的事件在客户端用何种方式捕获比较好
...全文
222 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ReverseEngineering 2007-01-06
  • 打赏
  • 举报
回复
我也要蹭点!
yjgx007 2006-12-03
  • 打赏
  • 举报
回复

HRESULT ReadData(SAFEARRAY *& result)
{
InvokeHelper(0x4, DISPATCH_METHOD, VT_ARRAY, (void*)&result, NULL);
return S_OK;

}
yjgx007 2006-12-03
  • 打赏
  • 举报
回复
HRESULT ReadData(SAFEARRAY *& result)
{
InvokeHelper(0x4, DISPATCH_METHOD, VT_ARRAY, (void*)&result, NULL);
return result;

}
LiChenYue 2006-12-03
  • 打赏
  • 举报
回复
路过看一下!这么多分,蹭一点啦!
Stefine 2006-12-03
  • 打赏
  • 举报
回复
不懂,学习

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧