Saving Treeview with data

Hi !!!

        I am using Delphi2 to create 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 snapshot.
        I've been using the SaveToStream and LoadFromStream method of
the TMemoryStream Object. (See below):

        TreeView1.SaveToStream(MyStream); {save content of treeView into
the Memory Stream}


        MyStream.Seek(0,0); {Load Saved Data back into Treeview}

        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.