com事件怎么传递VARIANT参数啊?郁闷好几天了!

ddzz2001 2005-03-19 03:12:24
com通过连接点,激活事件,向客户段发送VARIANT变量,可是客户端就是接收不到参数,程序如下:
服务端
事件
[id(1), helpstring("method dsada")] HRESULT dsada(VARIANT* ss);
调用函数
STDMETHODIMP Ccc::SendArray()
{
VARIANT aa;
VariantInit(&aa);
aa.vt=VT_I4;
aa.lVal=22;
Fire_dsada(&aa);//事件函数
return S_OK;
}
客户端.h
namespace
{
_ATL_FUNC_INFO OnAddInfo2 = {CC_STDCALL,VT_EMPTY,1 ,{VT_VARIANT|VT_BYREF}};
}
class test :public IDispEventSimpleImpl</*nID =*/ 1, test, &DIID__IccEvents>
{
public:
void __stdcall dsada(VARIANT* array);
BEGIN_SINK_MAP(test)
SINK_ENTRY_INFO(1, DIID__IccEvents, 1, dsada, &OnAddInfo2)
END_SINK_MAP()
};
客户端.cpp
void __stdcall test::dsada(VARIANT* array)
{
parray;//数据得不到
}
...全文
127 点赞 收藏 4
写回复
4 条回复
Cline 2005年03月21日
客户端advise了吗?
回复 点赞
UDX协议 2005年03月21日
http://community.csdn.net/Expert/topic/3720/3720780.xml?temp=.5576288
回复 点赞
ddzz2001 2005年03月21日
客户端调用接口函数我省略了,是没问题的
回复 点赞
sarco 2005年03月19日
在服务端接口设个断点看服务端是否有值传出来了,如果接口有值的话,客户端应该是没问题的.
客户端没看到你通过指针调用接口函数啊,你的调用方式我没见过啊
回复 点赞
发动态
发帖子
ATL
创建于2007-09-28

3025

社区成员

4.8w+

社区内容

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区公告
暂无公告