次の方法で共有


CComClassFactory クラス

このクラスは、IClassFactory インターフェイスを実装します。

class CComClassFactory : public IClassFactory, 
   public CComObjectRootEx< CComGlobalsThreadModel >

メンバー

8bycx62d.collapse_all(ja-jp,VS.110).gifパブリック メソッド

名前

説明

CComClassFactory::CreateInstance

指定の CLSID を持つオブジェクトを作成します。

CComClassFactory::LockServer

メモリのクラス ファクトリをロックします。

解説

CComClassFactory は、特定の CLSID のオブジェクトを作成するメソッドをロックして、アセンブリに加え、新しいオブジェクトがより迅速に作成するためにメモリのクラス ファクトリを IClassFactory のインターフェイスを実装します。IClassFactory は、システム レジストリに登録し、クラスに CLSID に割り当てるかに実装する必要があります。

ATL オブジェクトは CComCoClassから派生させて、通常はクラス ファクトリを取得します。既定のクラス ファクトリとして CComClassFactory を宣言するこのクラスでは、マクロ DECLARE_CLASSFACTORYが含まれています。既定の名前をオーバーライドするには、クラス定義で DECLARE_CLASSFACTORYXXX のマクロの 1 つが指定します。たとえば、DECLARE_CLASSFACTORY_EX のマクロは、クラス ファクトリ クラスに対して指定を使用します:

class ATL_NO_VTABLE CMyCustomClass :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CMyCustomClass, &CLSID_MyCustomClass>,
   public IDispatchImpl<IMyCustomClass, &IID_IMyCustomClass, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
   DECLARE_CLASSFACTORY_EX(CMyClassFactory)

   // Remainder of class declaration omitted.

上記のクラス定義は CMyClassFactory がオブジェクトの既定のクラス ファクトリとして使用されることを指定します。CMyClassFactoryCComClassFactory から派生し、CreateInstanceをオーバーライドする必要があります。

ATL は、クラス ファクトリを宣言する 3 つが他のマクロが用意されています:

必要条件

ヘッダー : atlcom.h

参照

関連項目

CComObjectRootEx クラス

CComGlobalsThreadModel

その他の技術情報

ATL クラスの概要