Mise en œuvre de CComObjectRootEx

CComObjectRootEx est essentiel — tous les objets ATL doivent avoir une instance de CComObjectRootEx ou de CComObjectRoot dans leur héritage. CComObjectRootEx fournit le mécanisme de QueryInterface par défaut basé sur les entrées de la carte COM.

Grâce à son plan de COM, les interfaces d'un objet sont exposés à un client lorsque le client interroge pour une interface. La requête est effectuée par l'intermédiaire de CComObjectRootEx::InternalQueryInterface. InternalQueryInterface gère uniquement les interfaces dans la table de mappage COM.

Vous pouvez entrer des interfaces dans la table de mappage COM avec la macro COM_INTERFACE_ENTRY ou l'une de ses variantes. Par exemple, le code suivant de la exemple BEEPER pénètre dans les interfaces IDispatch, IBeeperet ISupportErrorInfo dans la table de mappage COM

BEGI&N_COM_MAP(CBeeper)
 nbsp ; COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY(IBeeper)
   COM_INTERFACE_ENTRY_TEAR_OFF (IID_ISupportErrorInfo, CBeeper2)
END_COM_MAP)

Index