CComObjectRootEx 구현
CComObjectRootEx 는 필수 요소입니다. 모든 ATL 개체의 상속에는 하나의 인스턴스 CComObjectRootEx
또는 CComObjectRoot 가 있어야 합니다. CComObjectRootEx
에서는 COM 맵 엔트리를 기반으로 하는 기본 QueryInterface
메커니즘을 제공합니다.
클라이언트가 인터페이스를 쿼리하면 COM 맵을 통해 개체의 인터페이스가 클라이언트에 표시됩니다. 쿼리는 CComObjectRootEx::InternalQueryInterface
를 통해 수행됩니다. InternalQueryInterface
에서는 COM 맵 테이블의 인터페이스만 처리됩니다.
COM_INTERFACE_ENTRY 매크로 또는 해당 변형 중 하나를 사용하여 COM 맵 테이블에 인터페이스를 입력할 수 있습니다. 예를 들어 다음 코드는 IDispatch
, IBeeper
및 ISupportErrorInfo
인터페이스를 COM 맵 테이블에 입력합니다.
BEGIN_COM_MAP(CBeeper)
COM_INTERFACE_ENTRY(IBeeper)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY_TEAR_OFF(IID_ISupportErrorInfo, CBeeper2)
END_COM_MAP()