IOleContainer
The IOleContainer interface is used to enumerate objects in a compound document or lock a container in the running state. Container and object applications both implement this interface.When to Implement
Applications that support links and links to embedded objects implement this interface to provide object enumeration, name parsing, and silent updates of link sources. Simple, nonlinking containers do not need to implement IOleContainer if it is useful mainly to support links to embedded objects.When to Use
Call IOleContainer to enumerate the objects in a compound document or to lock a container so that silent updates of link sources can be carried out safely.Many applications inherit the functions of IOleContainer by implementing IOleItemContainer, which is used to bind item monikers.CComPtr
A COM interface specifying the type of pointer to be stored.ATL uses this class and the CComQIPtr class to manage COM interface pointers. Both classes perform automatic reference counting through calls to AddRef and Release. Overloaded operators handle pointer operations. CComQIPtr additionally supports automatic querying of interfaces though QueryInterface.template< class T >
class CComPtr 
Parameters

A COM interface specifying the type of pointer to be stored.