A shell item represents an absolute IDList in the bound state; that is it holds the data source instance object and child IDlist as members to perform its work.
Shellitem also implements marshal by value to enable the efficient use of these objects as interchange currency between COM apartments.