我已经继承了一个使用Ole和ActiveX工具的旧项目。编译在PROP_ENTRY宏上提供弃用警告,并用PROP_ENTRY_TYPE替换,但需要第四个参数。我发现了一个类型列表,比如VT_BSTR,VT_UNIT,VT_UNKNOWN等等,但是我不清楚该如何确定类型。既然旧的宏不需要这种类型,那么我是否可以使用旧的方式来执行默认的类型?否则,任何人都会对这些物品的类型应该有什么建议?我试着用VT_BSTR来处理所有事情,因为大多数值都可以是(?)字符串,但是在某些ActiveX工具中失败了。还尝试过VT_UNKNOWN。建议感激。用旧代码运行(有一些问题),但能够向前移动我们的代码库会很好。 谢谢, 肯从PROP_ENTRY转换到PROP_ENTRY_TYPE
BEGIN_PROPERTY_MAP(CCiButton)
#if 1
// old style
PROP_ENTRY("Caption", DISPID_CAPTION, CLSID_NULL)
PROP_ENTRY("Back Color", DISPID_BACKCOLOR, CLSID_StockColorPage)
PROP_ENTRY("Fill Color", DISPID_FILLCOLOR, CLSID_StockColorPage)
PROP_ENTRY("Font", DISPID_FONT, CLSID_StockFontPage)
PROP_ENTRY("Picture", DISPID_PICTURE, CLSID_StockPicturePage)
PROP_ENTRY("Button Style", 1, CLSID_CiButtonProp)
PROP_ENTRY("Text Color", 2, CLSID_StockColorPage)
PROP_ENTRY("Text Shadow Color", 3, CLSID_StockColorPage)
PROP_ENTRY("Tool Tip Text", 4, CLSID_CiButtonProp)
PROP_ENTRY("Disabled Picture", 5, CLSID_StockPicturePage)
PROP_ENTRY("Enabled", DISPID_ENABLED, CLSID_NULL)
#else
// new style, fails.
PROP_ENTRY_TYPE("Caption", DISPID_CAPTION, CLSID_NULL, VT_UNKNOWN)
PROP_ENTRY_TYPE("Back Color", DISPID_BACKCOLOR, CLSID_StockColorPage, VT_UNKNOWN)
PROP_ENTRY_TYPE("Fill Color", DISPID_FILLCOLOR, CLSID_StockColorPage, VT_UNKNOWN)
PROP_ENTRY_TYPE("Font", DISPID_FONT, CLSID_StockFontPage, VT_UNKNOWN)
PROP_ENTRY_TYPE("Picture", DISPID_PICTURE, CLSID_StockPicturePage, VT_UNKNOWN)
PROP_ENTRY_TYPE("Button Style", 1, CLSID_CiButtonProp, VT_UNKNOWN)
PROP_ENTRY_TYPE("Text Color", 2, CLSID_StockColorPage, VT_UNKNOWN)
PROP_ENTRY_TYPE("Text Shadow Color", 3, CLSID_StockColorPage, VT_UNKNOWN)
PROP_ENTRY_TYPE("Tool Tip Text", 4, CLSID_CiButtonProp, VT_UNKNOWN)
PROP_ENTRY_TYPE("Disabled Picture", 5, CLSID_StockPicturePage, VT_UNKNOWN)
PROP_ENTRY_TYPE("Enabled", DISPID_ENABLED, CLSID_NULL, VT_UNKNOWN)
#endif
END_PROPERTY_MAP()