Changing the Default Class Factory and Aggregation Model
ATL을 사용 하 여 CComCoClass 개체에 대 한 기본 클래스 팩터리 및 집계 모델을 정의 합니다. CComCoClass다음 두 개의 매크로 지정합니다.
DECLARE_CLASSFACTORY 를 선언 하는 클래스 팩터리 CComClassFactory.
DECLARE_AGGREGATABLE 개체가 집계 될 수 있도록 선언 합니다.
이러한 기본값 중 하나를 클래스 정의에 다른 매크로 지정 하 여 재정의할 수 있습니다. 사용 방법에 대 한 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_THREAD 및 DECLARE_CLASSFACTORY_SINGLETON.
또한 ATL을 사용 하 여 typedef 기본 동작을 구현 하는 메커니즘입니다. 예를 들어,는 DECLARE_AGGREGATABLE 매크로 사용 하 여 typedef 라는 형식을 정의할 수 _CreatorClass, ATL.에서 참조 되 고 이때 파생된 클래스에는 typedef 기본 클래스의 같은 이름으로 typedef 결과 정의 사용 하 여 기본 동작을 재정의 하 고 ATL에서.
참고 항목
참조
Fundamentals of ATL COM Objects