首页 > 解决方案 > 关于 CppWinRT 内部 3

问题描述

的用例是composable_factory什么?它似乎与 相关m_outer,但我找不到任何调用它的代码(搜索了 cppwinrt 目录中的所有文件)。非常感谢!!!

标签: cppwinrt

解决方案


composable_factory 用于构造允许继承的类型。在 Windows 运行时,由于基类和派生类可能位于不同的组件中,甚至使用不同的语言编写,因此它们使用 COM 聚合将基类和派生类拼接在一起,形成对客户端来说似乎是一个对象。一个很好的例子是,如果您创建了自己的 MyButton 类,该类不是密封/最终的。它既可以与 Button 组合,也可以由其他类派生。

与activation_factory 非常相似,composable_factory 用作一个专门的激活工厂,用于实例化对象,同时在构造期间采用基类派生。您可以在此处查看它如何与内部和外部 args 配合使用:

https://github.com/microsoft/cppwinrt/blob/c36cf05f5030726c8ada1b89fc78bd470f737032/strings/base_composable.h

我相信 m_outer 通常是基类,而 inner 是派生的。


推荐阅读