【问题标题】:How do I export custom type names from a C++ OCX module?如何从 C++ OCX 模块导出自定义类型名称?
【发布时间】:2012-07-25 14:30:19
【问题描述】:

我经常在 VB6 中使用 OCX 控件,其中一些为枚举类型导出了自己的类型名称,例如这里:

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

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

【问题讨论】:

    标签: c++ visual-c++ ocx


    【解决方案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);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 2013-06-09
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多