描述:
系统提供的类型里面有对应的吗?谢谢
解决方案1:
idont know,
帮你up
IDispatch* pDisp=NULL;
pXXX->QueryInterface (IID_IDispatch,(void**)&pDisp);
_variant_t v(pDisp);
...//使用
pDisp->Release ();//需要释放
其中pXXX就是你要用的接口指针嘛!如_RecordsetPtr
_RecordsetPtr是_Recordset的智能指针包装类,你可以象用_Recordset一样地使用
只是,它内部隐藏了引用计数的处理,方便使用而已。
从_Recordset中完全可以QueryInterface到IDispatch接口
事实上,任何一个支持IDispatch接口的COM对象都可以查询到IDispatch
得到IDispatch接口指针后,就可以通过variant传递给其他
需要variant变量类型的COM对象的方法了
至于你的普通类,呵呵,除非是你自己实现的接口函数,否则你肯定无法直接传递过去
因为接口是定义好的,包括其方法和参数类型
当然有变通的办法,一个办法就是类似你另外一个帖子中一个dx所说,用你自己的COM接口,使用SafeArray之类的东西来给处理。
想不明白你为什么要向接口传递你的自己定义的C++类呢?这不符合COM的规范。
那个帖子无法回复,发到这里了!
自动化的标准类型中有IUnknown*,和IDispatch*,先把转化再传递