Saving TreeView with data

Hi !!!

        I am creating a Tree using the TreeView component (Win 95), with data
structure associated to each node. I want to be able to take a snapshot
of the tree before doing any transaction (eg. delete, add, or move
node), so that I can UNDO any transaction, by loading back the previous
        I've been using the SaveToStream and LoadFromStream method of the
TMemoryStream Object.  It saves and loads the tree Ok, but it only saves
& loads the nodes' names not the data associated with each node. (???)
        I also found a ISTORAGE interface and IPERSISTSTORAGE (API), I wonder
if this works, if so, How?  Or are there better ways to do this. Please,
someone solve this problem for me.