0

我经常将 OCX 控件与 VB6 一起使用,并且一些为枚举类型导出自己的类型名称,例如这里:

afioShow

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

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

4

1 回答 1

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);
}
于 2012-07-27T01:07:56.130 回答