说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

高手们,如何用COleDispatchDriver::InvokeHelper来传递optional的参数?

编辑:说三道四文库 发布时间:2018-04-27 04:54
HTML文档下载 WORD文档下载 PDF文档下载
我用classwizzard通过type library生成了自动化com组件的wrapper class,调用时例如:a::b(VARIANT * A, VARIANT * B);如果两个参数是optional的,则可以通过设置参数为 COleVariant((long)DISP_E_PARAMNOTFOUND, VT_ERROR);实现。

但是,有时候这个wrapper class的函数声明为:a::b(long a, long b),即VTS_I4,VTS_I4,两个参数也是optional,但我就不能像前面那样了,那么应该怎么设置参数为使用缺省值?

我将参数声明手动改为VARIANT *(即VTS_PVARIANT),编译可以通过,但运行时报告参数类型不对

我知道如果直接用IDISPATCH::Invoke()肯定可以做,但难道用COleDispatchDriver就不能了吗?
up
soso
没人知道吗?
up
失望
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘