Dynamic Composition
The idea behind dynamic composition is that you’ve got a COM object and you want QueryInterface() to return an interface from a different object. COM supports 2 types of dynamic composition, tear-off interfaces and COM Aggregation.
Dynamic composition is a generic COM idea, but in practice you’d better use use ATL.