Share via


SimpleClassFactory クラス

基底クラスを作成するための基本的なメカニズムを提供します。

構文

template<typename Base>
class SimpleClassFactory : public ClassFactory<>;

パラメーター

Base
基底クラス。

解説

基底クラスでは、既定のコンストラクターを提供する必要があります。

次のコード例は、ActivatableClassWithFactoryEx マクロで SimpleClassFactory を使用する方法を示しています。

ActivatableClassWithFactoryEx(MyClass, SimpleClassFactory, MyServerName);

メンバー

パブリック メソッド

名前 説明
SimpleClassFactory::CreateInstance メソッド 指定したインターフェイスのインスタンスを作成します。

継承階層

I0

ChainInterfaces

I0

RuntimeClassBase

ImplementsHelper

DontUseNewUseMake

RuntimeClassFlags

RuntimeClassBaseT

RuntimeClass

ClassFactory

SimpleClassFactory

必要条件

ヘッダー: module.h

名前空間: Microsoft::WRL

SimpleClassFactory::CreateInstance メソッド

指定したインターフェイスのインスタンスを作成します。

STDMETHOD( CreateInstance )(
   _Inout_opt_ IUnknown* pUnkOuter,
   REFIID riid,
   _Deref_out_ void** ppvObject
);

パラメーター

pUnkOuter
nullptr である必要があります。それ以外の場合、戻り値は CLASS_E_NOAGGREGATION です。

SimpleClassFactory では集約はサポートされていません。 集約がサポートされていて、作成されるオブジェクトが集約の一部である場合、pUnkOuter は集約の管理 IUnknown インターフェイスへのポインターになります。

riid
作成するオブジェクトのインターフェイス ID。

ppvObject
この操作が完了した際の、riid パラメーターで指定されたオブジェクトのインスタンスへのポインター。

戻り値

成功した場合は S_OK、そうでない場合はエラーを示す HRESULT。

解説

__WRL_STRICT__ が定義されている場合、クラス テンプレート パラメーターで指定された基底クラスが、RuntimeClass から派生していないか、ClassicCom または WinRtClassicComMix の RuntimeClassType 列挙値で構成されていない場合には、アサート エラーが生成されます。