2012-07-26 53 views
0

我经常使用OCX使用VB6和一些出口自己的类型名称为枚举类型,比如这里控制:如何从C++ OCX模块导出自定义类型名称?

afioShow

show实际上是一个Long(32位有符号数),但因为只有值0-4被允许作为该函数的参数,OCX将_afioShow定义为从0到4的枚举。这也意味着无论何处需要此类型的值,VB6 IDE都会自动显示包含枚举成员的下拉列表(showMinimized,showMaximized等)。

我想在我写的OCX模块中做类似的事情。我如何定义和导出这种类型?我正在使用Visual C++ 2010.

回答

1

只需在IDL中为枚举写一个typedef即可。随机示例:

typedef enum { 
    digitOne=1, 
    digitTwo=2 
} EnumDigits; 

[ 
    object, 
    uuid(5F3D3E00-0F66-4199-B548-654A9174552B), 
    dual, 
    pointer_default(unique) 
] 
interface IHandleDigits : IDispatch { 
    [id(0), propget] HRESULT Digit([out,retval] EnumDigits* retval); 
} 
相关问题