读书人

怎么在com接口方法中传递自定义参数

发布时间: 2013-03-14 10:33:15 作者: rapoo

如何在com接口方法中传递自定义参数,如枚举
我参考下面链接http://blog.163.com/ssb_it/blog/static/448761652008528104116597/,进行操作;我做的工作是vs2008建com组件,然后c++builder来调用,应该不需要自动化吧,所以我用的方法是上面链接的第一种方法,老是出现
E:\64Proe5.0\proeWildfire 5.0\protoolkit\includes\ProToolkitErrors.h(12) : error C2011: “ProErrors”: “enum”类型重定义
f:\64proe5.0workspace\proefun_cbconvert\0304\vssvr\vssvr_i.h(80) : 参见“ProErrors”的声明。
我在idl中加入了定义ProErrors的头文件,然后idl编译后生成的vssvr_i.h.h文件中自动包含了Enum的定义,就导致了类型重定义。如果上述链接中的方法不行,该怎么进行操作啊。郁闷很久了,望大神们指点迷津!
在ProToolkitErrors.h中ProErrors的定义:
typedef enum ProErrors
{
PRO_TK_NO_ERROR= 0,
PRO_TK_GENERAL_ERROR = -1,
PRO_TK_BAD_INPUTS= -2,
PRO_TK_USER_ABORT= -3,
PRO_TK_E_NOT_FOUND= -4,
PRO_TK_E_FOUND= -5,
} ProError, ProErr;
idl文件中:加入了头文件如下
import "oaidl.idl";
import "ocidl.idl";

#include "ProToolkitErrors.h" com 接口方法 传递自定义参数 枚举 类型重定义
[解决办法]
把枚举转换成VT_UI2等类型不就可以了
[解决办法]
vc中调用参数类型啥样都行,
如果想各种语言适用,那就只能支持variant类型
[解决办法]
首先搞定需不需要自动化,若不需要,直接在idl里添加定义就行了!

读书人网 >VC/MFC

热点推荐