COM 自动化结构与它们的包装器

COM Automation structures vs wrappers for them

本文关键字:包装 自动化 结构 COM      更新时间:2023-10-16

我正在为Windows API开发一个COM包装器,它可以从没有本机Windows API支持的脚本语言中使用。所以我正在考虑我应该在 COM ATL 项目中使用什么。SAFEARRAY还是CComSafeArrayVARIANT还是CComVariant?或任何其他结构或适当的包装器?

我使用这两种类型进行了测试,但没有发现任何特殊的性能差异、使用问题或它们之间的其他实现。

哪一个最适合用于 COM ATL 项目?例如,SAFEARRAYCComSafeArray

接口和 coclass 必须使用SAFEARRAYVARIANT。不能有在其任何 COM 公共方法签名或属性中使用CComSafeArrayCComVariant的 COM 接口或对象。但是,您可以在coclass 实现中使用CComSafeArrayCComVariant