Implementace CComObjectRootEx
CComObjectRootEx je nezbytné; všechny objekty ATL musí mít ve své dědičnosti jednu instanci CComObjectRootEx
nebo CComObjectRoot . CComObjectRootEx
poskytuje výchozí QueryInterface
mechanismus založený na položkách mapování modelu COM.
Prostřednictvím mapování modelu COM jsou rozhraní objektu zpřístupněna klientovi, když se klient dotáže na rozhraní. Dotaz se provádí prostřednictvím CComObjectRootEx::InternalQueryInterface
. InternalQueryInterface
zpracovává pouze rozhraní v tabulce mapování modelu COM.
Rozhraní můžete zadat do tabulky mapy MODELU pomocí COM_INTERFACE_ENTRY makra nebo jedné z jejích variant. Například následující kód zadá rozhraní IDispatch
, IBeeper
a ISupportErrorInfo
do tabulky mapování modelu COM:
BEGIN_COM_MAP(CBeeper)
COM_INTERFACE_ENTRY(IBeeper)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY_TEAR_OFF(IID_ISupportErrorInfo, CBeeper2)
END_COM_MAP()