templatelt; 클래스포함 된 >
CComPolyObject 클래스: 공용 IUnknown, 공공 CComObjectRootEx <포함 된:: _ThreadModel::ThreadModelNoCS >
매개 변수
포함 된
CComObjectRoot 또는 CComObjectRootEx에서 뿐만 아니라 개체에 지원 하려는 다른 인터페이스에서 파생 된 클래스。
CComPolyObject 구현 IUnknown 집계 또는 테이블인 개체에 대 한。
CComPolyObject 의 인스턴스를 만들 때 외부 알의 값이 검사 됩니다. NULL인 경우 IUnknown 테이블인된 개체에 대해 구현 됩니다. 집계 개체에 대 한 IUnknown 구현 외부 알 NULL이 아닌 경우。
CComPolyObject 사용의 장점은 CComAggObject 및 CComObject 집계 및 테이블인 경우를 처리 하기 위해 모듈에 필요 하지 않는. 단일 CComPolyObject 개체는 두 경우를 처리합니다. 이 모듈에 존재 하는 vtable의 복사본 하나만 함수 중 하나의 복사본을 의미 합니다. 귀하의 vtable 큰 경우이 실질적으로 모듈 크기를 줄일 수 있습니다. 그러나, 귀하의 vtable 작은 경우 CComPolyObject 를 사용 하 여 발생할 수 있습니다 약간 더 큰 모듈 크기는 집계 또는 테이블인 개체에 대 한 최적화 되지 않은 때문에 CComObject , CComAggObject 그리고。
DECLARE_POLY_AGGREGATABLE 매크로 개체의 클래스 정의에 지정 된, CComPolyObject 개체를 만들려면 사용 됩니다. DECLARE_POLY_AGGREGATABLE 는 자동으로 ATL 개체 마법사를 사용 하 여 모든 권한 또는 Internet Explorer 컨트롤을 만들 경우 선언。
집계 하는 경우 CComPolyObject 개체가 자체 IUnknown, 외부 개체의 IUnknown, 별도로 고 자체 참조 카운트를 유지 합니다. CComPolyObject CComContainedObject 를 사용 하 여 외부 알에 위임。
집계에 대 한 자세한 내용은 다음 웹 사이트를 참조 하십시오. 문서 기본 ATL COM 개체。
# include lt;atlcom.h>
참고 항목nbsp;CComObjectRootEx, DECLARE_POLY_AGGREGATABLE(&N)