次の方法で共有


CComClassFactory クラス

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

class CComClassFactory : public IClassFactory, 
   public CComObjectRootEx< CComGlobalsThreadModel >

解説

CComClassFactoryIClassFactory インターフェイスを実装します。IClassFactory には、特定の CLSID のオブジェクトを作成するメソッドや、新規オブジェクトをすばやく作成できるようにメモリ中のクラス ファクトリをロックするメソッドが含まれています。 IClassFactory は、システム レジストリに登録して CLSID を割り当てる対象の全クラスに実装されている必要があります。

ATL オブジェクトは、通常クラス ファクトリを CComCoClass から派生させることによって作成します。 このクラスには DECLARE_CLASSFACTORY マクロが含まれています。このマクロは、CComClassFactory を既定のクラス ファクトリとして宣言します。 この既定の設定をオーバーライドするには、クラス定義で、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 (Active Template Library) にはクラス ファクトリを宣言するマクロとして、次の 3 つのマクロがあります。

必要条件

**ヘッダー:**atlcom.h

参照

参照

CComObjectRootEx クラス

CComGlobalsThreadModel

その他の技術情報

CComClassFactory のメンバー

ATL クラスの概要