Generic Composite Moniker Class
Recall that in general monikers are a composite list made up of other pieces. All monikers which are a generic composite of other monikers are instances of Generic Composite Moniker class whose implementation is provide with COM; there is no need for two Generic Composite Moniker classes.
The implementations of Generic Composite IMoniker::Reduce and Generic Composite IMoniker::BindToObject are particularly important as they manage the interactions between the various elements of the composite, and as a consequence define the semantics of binding to the moniker as a whole.
Generic composite monikers of size zero or of size one are never exposed outside of internal Generic Composite Moniker method implementations. From a client perspective, a Generic Composite Moniker always contains at least two elements.