2012-07-26 56 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); 
} 
相關問題