ActivationFactory 类
启用 Windows 运行时将激活的一个或多个类。
语法
template <
typename I0 = Details::Nil,
typename I1 = Details::Nil,
typename I2 = Details::Nil
>
class ActivationFactory :
public Details::RuntimeClass<
typename Details::InterfaceListHelper<
IActivationFactory,
I0,
I1,
I2,
Details::Nil
>::TypeT,
RuntimeClassFlags<WinRt | InhibitWeakReference>,
false
>;
参数
I0
第零个接口。
I1
第一个接口。
I2
第二个接口。
注解
ActivationFactory
为 IActivationFactory
接口提供注册方法和基本功能。 ActivationFactory
还可用于提供自定义工厂实现。
以下代码片段象征性地说明了如何使用 ActivationFactory。
struct MyClassFactory : public ActivationFactory<IMyAddtionalInterfaceOnFactory>
{
STDMETHOD(ActivateInstance) (_Outptr_result_nullonfailure_ IInspectable** ppvObject)
{
// my custom implementation
return S_OK;
}
};
ActivatableClassWithFactory(MyClass, MyClassFactory);
// or if a default factory is used:
//ActivatableClassWithFactory(MyClass, SimpleActivationFactory);
以下代码片段展示了如何使用 Implements 结构来指定三个以上的接口 ID。
struct MyFactory : ActivationFactory<Implements<I1, I2, I3>, I4, I5>;
成员
公共构造函数
名称 | 描述 |
---|---|
ActivationFactory::ActivationFactory | 初始化 ActivationFactory 类 |
公共方法
名称 | 描述 |
---|---|
ActivationFactory::AddRef | 递增当前 ActivationFactory 对象的引用计数。 |
ActivationFactory::GetIids | 检索已实现接口 ID 的数组。 |
ActivationFactory::GetRuntimeClassName | 获取当前 ActivationFactory 实例化的对象的运行时类名称。 |
ActivationFactory::GetTrustLevel | 获取当前 ActivationFactory 实例化的对象的信任级别。 |
ActivationFactory::QueryInterface | 检索指向指定接口的指针。 |
ActivationFactory::Release | 递减当前 ActivationFactory 对象的引用计数。 |
继承层次结构
I0
ChainInterfaces
I0
RuntimeClassBase
ImplementsHelper
DontUseNewUseMake
RuntimeClassFlags
RuntimeClassBaseT
RuntimeClass
ActivationFactory
要求
标头:module.h
命名空间: Microsoft::WRL
ActivationFactory::ActivationFactory
初始化 ActivationFactory
类
ActivationFactory();
ActivationFactory::AddRef
递增当前 ActivationFactory
对象的引用计数。
STDMETHOD_(
ULONG,
AddRef
)();
返回值
如果成功,则为 S_OK;否则为描述失败的 HRESULT。
ActivationFactory::GetIids
检索已实现接口 ID 的数组。
STDMETHOD(
GetIids
)(_Out_ ULONG *iidCount, _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);
参数
iidCount
此操作完成后,iids 数组中接口 ID 的数量。
iids
此操作完成后,已实现接口 ID 的数组。
返回值
如果成功,则为 S_OK;否则为描述失败的 HRESULT。 E_OUTOFMEMORY 是可能的失败 HRESULT。
ActivationFactory::GetRuntimeClassName
获取当前 ActivationFactory
实例化的对象的运行时类名称。
STDMETHOD(
GetRuntimeClassName
)(_Out_ HSTRING* runtimeName);
参数
runtimeName
此操作完成后,包含当前 ActivationFactory
实例化的对象的运行时类名的字符串的句柄。
返回值
如果成功,则为 S_OK;否则为描述失败的 HRESULT。
ActivationFactory::GetTrustLevel
获取当前 ActivationFactory
实例化的对象的信任级别。
STDMETHOD(
GetTrustLevel
)(_Out_ TrustLevel* trustLvl);
参数
trustLvl
完成此操作后,ActivationFactory
实例化的运行时类的信任级别。
返回值
如果成功,则为 S_OK;否则将发出断言错误并将 trustLvl 设置为 FullTrust
。
ActivationFactory::QueryInterface
检索指向指定接口的指针。
STDMETHOD(
QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);
参数
riid
接口 ID。
ppvObject
此操作完成后,指向参数 riid 指定的接口的指针。
返回值
如果成功,则为 S_OK;否则为描述失败的 HRESULT。
ActivationFactory::Release
递减当前 ActivationFactory
对象的引用计数。
STDMETHOD_(
ULONG,
Release
)();
返回值
如果成功,则为 S_OK;否则为描述失败的 HRESULT。