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 指出失敗。