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

Is it possible to use C++/winrt to build COM object instead of for example using ATL?

有没有人尝试过使用 C++/winrt 创建 Win32 COM objects? C++/winrt 文档说明可以使用它们,当然还可以创建 "new" UWP COM objects。我想知道对于一些简单的场景是否可以使用 C++/winrt headers 而不是 ATL 来生成一些简单的 COM objects.

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

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

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