Sound quite good, the only complaint I can make is that you probably should use "Stream" instead of "MemStream" to make your method more generic (usable with any Stream derived class you will need in future).
MemStream is very specific Stream kind, with rather limited use.
Mirek
Steam has the only pure virtual member,is this desired?
Yes. Stream itself does not specificy the "media".
You define your function to work with "Stream", then use specific Stream derived class to store/load from file, memory of whatever.