我正在为Windows API开发一个COM包装器,可以从那些没有本机Windows API支持的脚本语言中使用它。所以我在思考我应该在COM ATL项目中使用什么。 SAFEARRAY
或CComSafeArray
? VARIANT
或CComVariant
?或任何其他结构或适当的包装?
我使用这两种类型进行了测试,但没有任何特殊的性能差异,使用问题或它们之间的其他实现。
哪一个最适合在COM ATL项目中使用?例如,SAFEARRAY
或CComSafeArray
?
答案 0 :(得分:3)
接口和coclasses必须使用SAFEARRAY
和VARIANT
。您不能拥有在其任何COM公共方法签名或属性中使用CComSafeArray
或CComVariant
的COM接口或对象。但可以在coclass实现中使用CComSafeArray
或CComVariant
。