描述:
最近要用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")]M />
[
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的可选值列表?万分感谢