ClassFactory 類別
實作 IClassFactory
介面的基本功能。
語法
template <
typename I0 = Details::Nil,
typename I1 = Details::Nil,
typename I2 = Details::Nil
>
class ClassFactory :
public Details::RuntimeClass<
typename Details::InterfaceListHelper<
IClassFactory,
I0,
I1,
I2,
Details::Nil
>::TypeT,
RuntimeClassFlags<ClassicCom | InhibitWeakReference>,
false
>;
參數
I0
第零個介面。
I1
第一個介面。
I2
第二個介面。
備註
利用 ClassFactory
來提供使用者定義的處理站實作。
下列程序設計模式示範如何使用 Implements 結構,在類別處理站上指定三個以上的介面。
struct MyFactory : ClassFactory<Implements<I1, I2, I3>, I4, I5>
成員
公用建構函式
名稱 | 描述 |
---|---|
ClassFactory::ClassFactory |
公用方法
名稱 | 描述 |
---|---|
ClassFactory::AddRef | 遞增目前 ClassFactory 對象的參考計數。 |
ClassFactory::LockServer | 遞增或遞減目前 ClassFactory 對象所追蹤的基礎物件數目。 |
ClassFactory::QueryInterface | 擷取參數所指定介面的指標。 |
ClassFactory::Release | 遞減目前 ClassFactory 對象的參考計數。 |
繼承階層架構
I0
ChainInterfaces
I0
RuntimeClassBase
ImplementsHelper
DontUseNewUseMake
RuntimeClassFlags
RuntimeClassBaseT
RuntimeClass
ClassFactory
需求
標頭: module.h
命名空間: Microsoft::WRL
ClassFactory::AddRef
遞增目前 ClassFactory
對象的參考計數。
STDMETHOD_(
ULONG,
AddRef
)();
傳回值
若成功,則為 S_OK,否則會是 HRESULT 指出失敗。
ClassFactory::ClassFactory
WRL_NOTHROW ClassFactory();
ClassFactory::LockServer
遞增或遞減目前 ClassFactory
對象所追蹤的基礎物件數目。
STDMETHOD(
LockServer
)(BOOL fLock);
參數
羊群
true
表示遞增追蹤的物件數目。 false
表示遞減追蹤對象的數目。
傳回值
如果成功,S_OK;否則,E_FAIL。
備註
ClassFactory
會追蹤Module類別的基礎實例中的物件。
ClassFactory::QueryInterface
擷取參數所指定介面的指標。
STDMETHOD(
QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);
參數
riid
介面識別碼。
ppvObject
當此作業完成時,參數 riid 所指定的介面指標。
傳回值
若成功,則為 S_OK,否則會是 HRESULT 指出失敗。
ClassFactory::Release
遞減目前 ClassFactory
對象的參考計數。
STDMETHOD_(
ULONG,
Release
)();
傳回值
若成功,則為 S_OK,否則會是 HRESULT 指出失敗。