templatelt; 클래스ThreadModel(&L) gt;
CComObjectRootEx 클래스: 공용 CComObjectRootBase(&G)
매개 변수
ThreadModel
원하는 스레딩 모델을 구현 하는 누구의 메서드 클래스입니다. CComSingleThreadModel, CComMultiThreadModel, 또는 CComMultiThreadModelNoCS ThreadModel 를 설정 하 여 스레딩 모델을 명시적으로 선택할 수 있습니다. CComObjectThreadModel 또는 CComGlobalsThreadModel 을 ThreadModel 로 설정 하 여 서버의 기본 스레드 모델을 받아들일 수 있습니다.
CComObjectRootEx 테이블인 및 집계 개체에 대 한 개체 참조 개수 관리를 처리합니다. 개체가 집계 되지 개체를 집계 하는 경우에 외부 알 수 없는 포인터를 보유 하 고 하는 경우 개체 참조 카운트를 보유 하고있다. 집계 개체에 대 한 CComObjectRootEx 방법은 구성, 하 고 내부 인터페이스를 릴리스 또는 내부 개체를 삭제할 때 삭제에서 외부 개체를 보호 하기 위해 내부 개체의 오류 처리를 사용할 수 있습니다.
CComObjectRootEx 또는 CComObjectRoot 에서 상속 해야 하는 COM 서버를 구현 하는 클래스。
ATL CComPolyObjectlt;의 인스턴스를 만들고 클래스 정의 DECLARE_POLY_AGGREGATABLE 매크로 지정 하는 경우CYourClass > IClassFactory::CreateInstance 라고 합니다. 생성 하는 동안 외부 알 수 없는 값 체크. NULL인 경우 IUnknown 테이블인된 개체에 대해 구현 됩니다. 집계 개체에 대 한 IUnknown 구현 외부 알 NULL이 아닌 경우。
ATL CComObjectlt;의 인스턴스를 만들고 클래스는 DECLARE_POLY_AGGREGATABLE 매크로 지정 하지 않으면,CYourClass > 테이블인 개체 CComAggObject <CYourClass> 의 인스턴스 또는 집계 개체에 대 한。
CComPolyObject 사용의 장점은 CComAggObject 및 CComObject 집계 및 테이블인 경우를 처리 하기 위해 모듈에 필요 하지 않는. 단일 CComPolyObject 개체는 두 경우를 처리합니다. 따라서 해당 vtable의 복사본 하나만 및 하나의 복사본의 기능 모듈에 존재 합니다. 귀하의 vtable 큰 경우이 실질적으로 모듈 크기를 줄일 수 있습니다. 그러나, 귀하의 vtable 작은 경우 CComPolyObject 를 사용 하 여 발생할 수 있습니다 약간 더 큰 모듈 크기는 집계 또는 테이블인 개체에 대 한 최적화 되지 않은 때문에 CComObject , CComAggObject 그리고。
DECLARE_POLY_AGGREGATABLE 매크로 자동으로 추가 클래스 정의에 ATL 개체 마법사에서 모든 권한 또는 Internet Explorer 컨트롤을 만들 때。
개체가 집계 하는 경우 IUnknown CComAggObject 또는 CComPolyObject구현 됩니다. 이러한 클래스, CComObjectRootEx OuterQueryInterface, OuterAddRef및 OuterRelease 외부 알을 전달 하도록 QueryInterface, AddRef및 Release 호출을 위임 합니다. 모든 집계 개체를 만드는 클래스에 CComObjectRootEx::FinalConstruct 를 무시 하 고 CComObjectRootEx::FinalRelease 집계 모든 개체를 무시 하는 일반적으로。
개체가 집계 되지 IUnknown CComObject 또는 CComPolyObject구현 됩니다. 이 경우 QueryInterface, AddRef및 Release 를 호출 위임 CComObjectRootEx InternalQueryInterface, InternalAddRef및 InternalRelease 를 실제 작업을 수행 하。
# include lt;atlcom.h>
참고 항목nbsp;CComAggObject, CComObject, CComPolyObject(&N)