有人尝试过使用 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 类模板来实现各种类和工厂。