接口内自定义了一个enum类型,现在需要读取出这个enum内的每一个名字。
比如:
typedef enum {
EdgeStyleSolid = 0,
EdgeStyleDash = 1,
EdgeStyleDot = 2,
EdgeStyleDashDot = 3,
EdgeStyleDashDotDot = 4,
EdgeStyleNone = 5,
EdgeStyleInsideFrame = 6
} enumEdgeStyle;[propget, id(3), helpstring("property EdgeStyle")] HRESULT EdgeStyle([out, retval] enumEdgeStyle *pVal);
[propput, id(3), helpstring("property EdgeStyle")] HRESULT EdgeStyle([in] enumEdgeStyle newVal);这个是定义,我现在需要读取出enumEdgeStyle内的所有值。
这里如果我知道有一个EdgeStyle属性,类型为enumEdgeStyle,则我可以使用:
CComBSTR bname("enumEdgeStyle");
pTypeLib->FindName(bname,0,&pTypeInfo,&memberID,&pcFount);
来找到这个enum内所有数据,但问题是,当我不知道这些信息的时候,如何判断一个属性的类型名称是什么?
比如:
typedef enum {
EdgeStyleSolid = 0,
EdgeStyleDash = 1,
EdgeStyleDot = 2,
EdgeStyleDashDot = 3,
EdgeStyleDashDotDot = 4,
EdgeStyleNone = 5,
EdgeStyleInsideFrame = 6
} enumEdgeStyle;[propget, id(3), helpstring("property EdgeStyle")] HRESULT EdgeStyle([out, retval] enumEdgeStyle *pVal);
[propput, id(3), helpstring("property EdgeStyle")] HRESULT EdgeStyle([in] enumEdgeStyle newVal);这个是定义,我现在需要读取出enumEdgeStyle内的所有值。
这里如果我知道有一个EdgeStyle属性,类型为enumEdgeStyle,则我可以使用:
CComBSTR bname("enumEdgeStyle");
pTypeLib->FindName(bname,0,&pTypeInfo,&memberID,&pcFount);
来找到这个enum内所有数据,但问题是,当我不知道这些信息的时候,如何判断一个属性的类型名称是什么?
这200分谁reply给谁。
'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
也许我没看懂题目:)
adOpenDynamic, adLockOptimistic 都是定义过的,不是从tlb文件内读取出来的,这个是vbscript的限制,VB内可以正常使用。我分析了VBScript引擎,暂时觉得没有办法(除非保存的时候我自己替换字符串为数字)。
所以,你说的功能很难实现。我的项目里面,智能编辑器都是我写的,我都决定放弃你想要得功能,只实现语法加亮/自动弹出变量,函数提示/事件函数生成向导/控件属性框&让界面看起来和VC一样。口可口可。