Windows runtime 是否可以在我自己的runtimeclass上从Windows类型实现[exclusiveto]接口?

Windows runtime 是否可以在我自己的runtimeclass上从Windows类型实现[exclusiveto]接口?,windows-runtime,c++-winrt,Windows Runtime,C++ Winrt,我目前正在试验,并发现通常由Windows实现的全息API的各个部分来自其他地方。 例如,我的全息空间来自上面链接的库Microsoft.Perception.Simulation.dll 我很想知道这是如何实现的,所以我创建了一个新的C++/WinRT组件,并尝试从我的.idl文件中的Windows.Graphics.全息.iHolographicsSpace派生,但MIDL编译器会给我以下错误消息: 错误MIDL5051:[msg]使用[exclusiveto]接口无效,请改用此接口为exc

我目前正在试验,并发现通常由Windows实现的全息API的各个部分来自其他地方。
例如,我的
全息空间
来自上面链接的库Microsoft.Perception.Simulation.dll

我很想知道这是如何实现的,所以我创建了一个新的C++/WinRT组件,并尝试从我的
.idl
文件中的
Windows.Graphics.全息.iHolographicsSpace
派生,但MIDL编译器会给我以下错误消息:
错误MIDL5051:[msg]使用[exclusiveto]接口无效,请改用此接口为exclusiveto的runtimeclass

很公平,否则,
[exclusiveto]
有什么用


然而,问题仍然存在:外部组件如何假装它实现了来自Windows命名空间的类型?我的意思是,理论上我可以使用
实现
结构模板,并在我的类型上实现所有必需的COM接口,但这不适合整个MIDL工具链,因为我的代码部分是从中生成的。

C++/WinRT不限制可以实现的接口。因此,您可以实现独占接口。这对于实现WinRT类或简单地测试或模拟某个对象非常方便。当然,对于其他语言或工具,如MIDL,这将是不可见的,因为它只是C++中的实现细节。