次の方法で共有


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
0 番目のインターフェイス。

I1
1 番目のインターフェイス。

I2
2 番目のインターフェイス。

解説

ClassFactory を利用して、ユーザー定義のファクトリ実装を提供します。

次のプログラミング パターンは、Implements 構造体を使って、クラス ファクトリ上で 3 つを超えるインターフェイスを指定する方法を示しています。

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);

パラメーター

fLock
追跡するオブジェクト数をインクリメントするには true。 追跡するオブジェクト数をデクリメントするには false

戻り値

成功した場合は S_OK、それ以外の場合は E_FAIL。

解説

ClassFactory を使うと、Module クラスの基になるインスタンス内のオブジェクトを追跡できます。

ClassFactory::QueryInterface

パラメーターで指定したインターフェイスへのポインターを取得します。

STDMETHOD(
   QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);

パラメーター

riid
インターフェイス ID。

ppvObject
この操作が完了したときの、riid パラメーターで指定されたインターフェイスへのポインター。

戻り値

成功した場合は S_OK、そうでない場合は失敗を示す HRESULT。

ClassFactory::Release

現在の ClassFactory オブジェクトの参照カウントをデクリメントします。

STDMETHOD_(
   ULONG,
   Release
)();

戻り値

成功した場合は S_OK、そうでない場合は失敗を示す HRESULT。