我正在为 Windows API 开发一个 COM 包装器,它可以从那些没有原生 Windows API 支持的脚本语言中使用。所以我在考虑我应该在COM ATL项目中使用什么。 SAFEARRAY
还是 CComSafeArray
? VARIANT
还是 CComVariant
?或者任何其他结构或适当的包装器?
我使用这两种类型进行了测试,但在它们之间没有发现任何特殊的性能差异、使用问题或其他实现。
哪个最适合用于 COM ATL 项目?例如,SAFEARRAY
或 CComSafeArray
?
最佳答案
接口(interface)和组件类必须使用SAFEARRAY
和VARIANT
。您不能拥有在其任何 COM 公共(public)方法签名或属性中使用 CComSafeArray
或 CComVariant
的 COM 接口(interface)或对象。但是,您可以在 coclass 实现中使用 CComSafeArray
或 CComVariant
。
关于c++ - COM 自动化结构与它们的包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45307977/