描述:
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;//数据得不到
}