有关atl做COM组件接口中使用枚举类型enum的问题

POWERPIGGY 2004-12-07 02:15:31
最近要用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的可选值列表?万分感谢
...全文
337 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
吹泡泡的小猫 2005-03-18
  • 打赏
  • 举报
回复
这是visual studio中autpmation接口库的idl信息中关于enum的用法:

typedef [helpstring("Passed to Windows.Arrange to arrange the windows.")]
enum {
dsMinimize = 1,
dsTileHorizontal = 2,
dsTileVertical = 3,
dsCascade = 4
} DsArrangeStyle;
dabears 2005-03-18
  • 打赏
  • 举报
回复
typedef enum WeekDay
{
[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;
XiangDong 2005-03-09
  • 打赏
  • 举报
回复
try:
typedef enum workdays
{
[helpstring("Monday")]Monday=2,
[helpstring("Tuesday")]Tuesday=3,
[helpstring("Wednesday")]Wednesday=4,
[helpstring("Thursday")]Thursday=5,
[helpstring("Friday")]Friday=6
} workdays;
netherder 2005-03-09
  • 打赏
  • 举报
回复
是呀,我也遇到这样的问题,怎么没有高手回答呢?

如果楼主您搞好了,记得给我留言呀,谢谢

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧