是否可以使用 C++/winrt 来构建 COM 对象,而不是例如使用 ATL?



有人尝试过使用 C++/winrt 来创建 Win32 COM 对象吗?C++/winrt 文档文档记录了可以使用它们,当然还可以创建"新的"UWP COM 对象。我想知道对于一些简单的场景,是否可以使用 C++/winrt 标头而不是 ATL 来生成一些简单的 COM 对象。

您可以使用 C++/WinRT 编写 COM 组件。下面是 COM 可执行服务器的示例,但 DLL 的原理和技术大致相同。

https://gist.github.com/kennykerr/d983767262118ae0366ef1ec282e428a

对于 DLL,您只想确保导出 DllGetClassObject 和 DllCanUnloadNow 的实现。否则,它就像任何其他 DLL 一样,您可以使用 winrt::implements 类模板来实现各种类和工厂。

最新更新