声明一个事件(注意不是方法,方法能实现),SAFEARRAY不是COM的标准类型,参数选VARIANT。代码如下:VARIANT var;
var.vt = VT_ARRAY|VT_UI1;
var.parray = SafeArrayCreateVector(VT_UI1,0,100);//返回非0,说明成功。
OnEvent(var);//这一句总是出错。
SafeArrayDestroy(var.parray);

解决方案 »

  1.   

    直接用SAFEARRAY做参数是可以的
      

  2.   

    方法可以用SAFEARRAY*做参数,事件不行。
      

  3.   

    http://topic.csdn.net/u/20100630/22/d416f5a9-f9f3-4cca-9d19-c896cea3058f.html这个是我曾经问过的一个问题,说明是可以的,应该是用SAFEARRAY**, 可惜代码不在这电脑上,要不然可以给你参考下
      

  4.   

    事件就只能用VARIANT,我发现,不能传VARIANT而应该是VARIANT*,和普通C++参数一样,不能传复杂结构本身,而应该传指针。我还以为它已经智能化到什么都认识。