分享方式:


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