分享方式:


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 結構來指定三個以上的介面標識碼。

struct MyFactory : ActivationFactory<Implements<I1, I2, I3>, I4, I5>;

成員

公用建構函式

名稱 描述
ActivationFactory::ActivationFactory 初始化 ActivationFactory 類別。

公用方法

名稱 描述
ActivationFactory::AddRef 遞增目前 ActivationFactory 對象的參考計數。
ActivationFactory::GetIids 擷取已實作介面標識碼的陣列。
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

擷取已實作介面標識碼的陣列。

STDMETHOD(
   GetIids
)(_Out_ ULONG *iidCount, _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);

參數

iidCount
當此作業完成時,iids 陣列中的介面識別碼數目。

iids
此作業完成時,實作介面標識符的陣列。

傳回值

若成功,則為 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
介面識別碼。

ppvObject
當此作業完成時,參數 riid指定的介面指標。

傳回值

若成功,則為 S_OK,否則會是 HRESULT 指出失敗。

ActivationFactory::Release

遞減目前 ActivationFactory 對象的參考計數。

STDMETHOD_(
   ULONG,
   Release
)();

傳回值

若成功,則為 S_OK,否則會是 HRESULT 指出失敗。