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
第二个接口。

注解

ActivationFactoryIActivationFactory 接口提供注册方法和基本功能。 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。