最近要用atl做一个COM供别人在vb中使用
在这个COM组件中有一个接口使用枚举类型enum
我想在vb中使用这个COM组件的时候,可以出现这个枚举类型可选值的下拉列表,就象微软自己做的组件那样,可是我做的组件在vb中使用的时候,输入函数名后,不会出现枚举类型的可选值,这是为什么?谢谢
这个组件的IDL文件如下:(为什么在vb中使用callme函数,不出现枚举类型workdays的可选值列表?万分感谢)
import "oaidl.idl";
import "ocidl.idl";
typedef
[
uuid(F42ABD57-ECE8-42BF-AABF-E43FB0EF3933),
v1_enum,
helpstring("enum test")
]
enum {[helpstring("Monday")]Monday=2, [helpstring("Tuesday")]Tuesday=3, [helpstring("Wednesday")]Wednesday=4, [helpstring("Thursday")]Thursday=5, [helpstring("Friday")]Friday=6} workdays;
[
object,
uuid(3F180D78-6C50-47B6-A9E1-0E52A09023DE),
dual,
helpstring("Itestenum Interface"),
pointer_default(unique)
]
interface Itestenum : IDispatch
{
[id(1), helpstring("method CallMe")] HRESULT CallMe(workdays aaa);
[id(2), helpstring("method CallMe2")] HRESULT CallMe2(workdays * bbb);
[id(3), helpstring("method callme3")] HRESULT callme3(workdays aaa,workdays bbb);
[id(4), helpstring("method CallMe4")] HRESULT CallMe4([in] workdays ccc);
};
[
uuid(F42ABD57-ECE8-42BF-AABF-E43FB0EF3932),
version(1.0),
helpstring("enumtest2 1.0 Type Library")
]
library ENUMTEST2Lib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(ACD866E5-21B0-4BE9-A024-C79CE18C41F7),
helpstring("testenum Class")
]
coclass testenum
{
[default] interface Itestenum;
};
};为什么在vb中使用callme函数,不出现枚举类型workdays的可选值列表?万分感谢
在这个COM组件中有一个接口使用枚举类型enum
我想在vb中使用这个COM组件的时候,可以出现这个枚举类型可选值的下拉列表,就象微软自己做的组件那样,可是我做的组件在vb中使用的时候,输入函数名后,不会出现枚举类型的可选值,这是为什么?谢谢
这个组件的IDL文件如下:(为什么在vb中使用callme函数,不出现枚举类型workdays的可选值列表?万分感谢)
import "oaidl.idl";
import "ocidl.idl";
typedef
[
uuid(F42ABD57-ECE8-42BF-AABF-E43FB0EF3933),
v1_enum,
helpstring("enum test")
]
enum {[helpstring("Monday")]Monday=2, [helpstring("Tuesday")]Tuesday=3, [helpstring("Wednesday")]Wednesday=4, [helpstring("Thursday")]Thursday=5, [helpstring("Friday")]Friday=6} workdays;
[
object,
uuid(3F180D78-6C50-47B6-A9E1-0E52A09023DE),
dual,
helpstring("Itestenum Interface"),
pointer_default(unique)
]
interface Itestenum : IDispatch
{
[id(1), helpstring("method CallMe")] HRESULT CallMe(workdays aaa);
[id(2), helpstring("method CallMe2")] HRESULT CallMe2(workdays * bbb);
[id(3), helpstring("method callme3")] HRESULT callme3(workdays aaa,workdays bbb);
[id(4), helpstring("method CallMe4")] HRESULT CallMe4([in] workdays ccc);
};
[
uuid(F42ABD57-ECE8-42BF-AABF-E43FB0EF3932),
version(1.0),
helpstring("enumtest2 1.0 Type Library")
]
library ENUMTEST2Lib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(ACD866E5-21B0-4BE9-A024-C79CE18C41F7),
helpstring("testenum Class")
]
coclass testenum
{
[default] interface Itestenum;
};
};为什么在vb中使用callme函数,不出现枚举类型workdays的可选值列表?万分感谢
解决方案 »
- windows文件有没有唯一的标识,是啥?
- Oracle 存储过程 empty_blob() 的问题
- 多线程下的socket通信时服务端出错,错误码是10054(远程主机强迫关闭了一个现有的连接。)
- 关于CEditView自动换行的一个问题
- IE不能显示ActiveX控件, WinXPSp2
- InternetReadFile的问题(能解决的多加分)
- 中秋节快乐,问一题:怎样隐藏进程,不让其在winXP的任务管理器里显示???
- 请教一个关于大整数的问题
- 用多了wizard,想体验一下纯手工打造的成就感,但出师不利!!!
- 如何让一个程序在运行过程中始终播放一个midi音乐?
- 那里可以参考到windows的原代码,谢谢
- 文件中删除一行怎么删?
typedef enum workdays
{
[helpstring("Monday")]Monday=2,
[helpstring("Tuesday")]Tuesday=3,
[helpstring("Wednesday")]Wednesday=4,
[helpstring("Thursday")]Thursday=5,
[helpstring("Friday")]Friday=6
} workdays;
{
[helpstring("MonDay")]Mon = 1,
[helpstring("TuesDay")]Tues = 2,
[helpstring("WedDay")]Wed = 3,
[helpstring("TursDay")]Turs = 4,
[helpstring("FriDay")]Fri = 5,
[helpstring("StaDay")]Sta = 6,
[helpstring("SunDay")]Sun = 7 }WeekDay;
enum {
dsMinimize = 1,
dsTileHorizontal = 2,
dsTileVertical = 3,
dsCascade = 4
} DsArrangeStyle;