Implements 结构
为指定接口实现 QueryInterface
和 GetIid
。
语法
template <
typename I0,
typename I1 = Details::Nil,
typename I2 = Details::Nil,
typename I3 = Details::Nil,
typename I4 = Details::Nil,
typename I5 = Details::Nil,
typename I6 = Details::Nil,
typename I7 = Details::Nil,
typename I8 = Details::Nil,
typename I9 = Details::Nil
>
struct __declspec(novtable) Implements :
Details::ImplementsHelper<
RuntimeClassFlags<WinRt>,
typename Details::InterfaceListHelper<
I0, I1, I2, I3, I4, I5, I6, I7, I8, I9
>::TypeT
>,
Details::ImplementsBase;
template <
int flags,
typename I0,
typename I1,
typename I2,
typename I3,
typename I4,
typename I5,
typename I6,
typename I7,
typename I8
>
struct __declspec(novtable) Implements<
RuntimeClassFlags<flags>,
I0, I1, I2, I3, I4, I5, I6, I7, I8> :
Details::ImplementsHelper<
RuntimeClassFlags<flags>,
typename Details::InterfaceListHelper<
I0, I1, I2, I3, I4, I5, I6, I7, I8
>::TypeT
>,
Details::ImplementsBase;
参数
I0
第零个接口 ID。 (必需)
I1
第一个接口 ID。 (可选)
I2
第二个接口 ID。 (可选)
I3
第三个接口 ID。 (可选)
I4
第四个接口 ID。 (可选)
I5
第五个接口 ID。 (可选)
I6
第六个接口 ID。 (可选)
I7
第七个接口 ID。 (可选)
I8
第八个接口 ID。 (可选)
I9
第九个接口 ID。 (可选)
flags
类的配置标志。 在 RuntimeClassFlags 结构中指定的一个或多个 RuntimeClassType 枚举。
注解
派生自指定接口的列表,并为 QueryInterface
和 GetIid
实现帮助程序模板。
每个 I0 到 I9 接口参数都必须派生自 IUnknown
、IInspectable
或 ChainInterfaces 模板。 标志参数确定是为 IUnknown
还是 IInspectable
生成支持。
成员
公共 Typedef
名称 | 描述 |
---|---|
ClassFlags |
RuntimeClassFlags<WinRt> 的同义词。 |
受保护方法
名称 | 描述 |
---|---|
Implements::CanCastTo | 获取指向指定接口的指针。 |
Implements::CastToUnknown | 获取指向基础 IUnknown 接口的指针。 |
Implements::FillArrayWithIid | 将当前零模板参数指定的接口 ID 插入指定的数组元素。 |
受保护的常量
名称 | 描述 |
---|---|
Implements::IidCount | 保存实现的接口 ID 的数目。 |
继承层次结构
I0
ChainInterfaces
I0
ImplementsBase
ImplementsHelper
Implements
要求
标头:implements.h
命名空间: Microsoft::WRL
Implements::CanCastTo
获取指向指定接口的指针。
__forceinline HRESULT CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
参数
riid
对接口 ID 的引用。
ppv
如果成功,则指向 riid 指定的接口的指针。
返回值
如果成功,则为 S_OK;否则为指示错误的 HRESULT,例如 E_NOINTERFACE。
备注
这是执行 QueryInterface 操作的内部帮助程序函数。
Implements::CastToUnknown
获取指向基础 IUnknown
接口的指针。
__forceinline IUnknown* CastToUnknown();
返回值
此操作始终成功并返回 IUnknown
指针。
备注
内部帮助程序函数。
Implements::FillArrayWithIid
将当前零模板参数指定的接口 ID 插入指定的数组元素。
__forceinline static void FillArrayWithIid(
unsigned long &index,
_In_ IID* iids
);
参数
index
一个从零开始的索引,指示此操作的起始数组元素。 此操作完成后,索引将递增 1。
iids
IID 类型的数组。
备注
内部帮助程序函数。
Implements::IidCount
保存实现的接口 ID 的数目。
static const unsigned long IidCount;