When attributes are added to or deleted from a TInternalAttributeGroup, or when EndChanges is called, it notifies its handles. See "Batching change notification" on page 164.
Typically, you derive from TInternalAttributeGroup and TAttributeGroupHandle in pairs. You might not need to derive from these if you don't have to attach additional data or protocol to the group.
This class is not synchronized, meaning it is not multithread safe. It is instantiated by a TAttributeGroupHandle. It copies attributes that are added to it, so it has value semantics.