다음을 통해 공유


Changing the Default Class Factory and Aggregation Model

ATL을 사용 하 여 CComCoClass 개체에 대 한 기본 클래스 팩터리 및 집계 모델을 정의 합니다. CComCoClass다음 두 개의 매크로 지정합니다.

이러한 기본값 중 하나를 클래스 정의에 다른 매크로 지정 하 여 재정의할 수 있습니다. 사용 방법에 대 한 CComClassFactory2 대신 CComClassFactory에서 지정 된 DECLARE_CLASSFACTORY2 매크로:

class ATL_NO_VTABLE CMyClass2 :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CMyClass2, &CLSID_MyClass>,
   public IDispatchImpl<IMyClass, &IID_IMyClass, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
   public IDispatchImpl<IMyDualInterface, &__uuidof(IMyDualInterface), &LIBID_NVC_ATL_COMLib, /* wMajor = */ 1, /* wMinor = */ 0>
{
public:
   DECLARE_CLASSFACTORY2(CMyLicense)

   // Remainder of class declaration omitted

클래스 팩터리를 정의 하는 다른 두 매크로 DECLARE_CLASSFACTORY_AUTO_THREADDECLARE_CLASSFACTORY_SINGLETON.

또한 ATL을 사용 하 여 typedef 기본 동작을 구현 하는 메커니즘입니다. 예를 들어,는 DECLARE_AGGREGATABLE 매크로 사용 하 여 typedef 라는 형식을 정의할 수 _CreatorClass, ATL.에서 참조 되 고 이때 파생된 클래스에는 typedef 기본 클래스의 같은 이름으로 typedef 결과 정의 사용 하 여 기본 동작을 재정의 하 고 ATL에서.

참고 항목

참조

Fundamentals of ATL COM Objects

기타 리소스

Aggregation and Class Factory Macros