【发布时间】:2012-11-09 15:05:06
【问题描述】:
如何正确定义此类:
public ref class WICBMP sealed
{
void Load(IWICBitmapSource ^wicBitmapSource);
};
【问题讨论】:
-
尝试没有意义,您的应用将无法通过商店验证。
标签: class com interface windows-runtime param
如何正确定义此类:
public ref class WICBMP sealed
{
void Load(IWICBitmapSource ^wicBitmapSource);
};
【问题讨论】:
标签: class com interface windows-runtime param
这是不可能的。声明 Windows 运行时接口的成员时,只能使用 Windows 运行时类型(在这种特定情况下,编译器将需要生成一个接口来声明您的 Load 成员函数)。如果您尝试在 IDL 中定义接口,您甚至无法做到这一点。
运行时类可以实现不是 Windows 运行时接口的 COM 接口。例如,请参阅IBufferByteAccess(COM 接口),所有IBuffer(Windows 运行时接口)实现都必须实现。
【讨论】:
IBuffer 和IBufferByteAccess 类似的操作,如答案中所述。编写一个实现标识的 Windows 运行时接口和 COM 接口的类,以提供对IWICBitmapSource 的访问。您的 WinRT 组件可以使用IMyWinRTInterface 在其公共 API 表面中引用它,然后可以使用 COM 接口的 QueryInterface 来获取实际的IWICBitmapSource。