从 WinRT C++ 组件访问 COM 对象

Accessing COM Object from WinRT C++ Component

我想编写一个访问我的 COM 对象的 WinRT (C++) 组件。 为此,我需要 COM 对象接口定义,所以我使用 #importraw_interfaces_only

例如

#import "libid:ee10004c-2d77-4289-bb93-d6def17881dd" raw_interfaces_only

问题是我在自动生成的 .tlh 文件中遇到以下错误:

fatal error C1075: '{': no matching token found

相同的代码在常规 windows 控制台应用程序中工作正常。

据此 link WinRT 支持 COM 使用,因此不清楚如何将我的接口导入 WinRT C++ 项目。

如何将我的 COM 接口定义导入我的 WinRT C++ 项目?

使用 midl.exe(包含在 Visual Studio 中)我能够生成一个包含所有定义的 .H 文件并在 WinRT 组件中正常编译。

midle.exe myinterface.idl

此生成可包含在 WinRT 项目中的头文件。