不好意思,没有能够仔细看清题目
SaveToFile or SaveToStream or SaveAsDocument都是利用Compound Storage存储相关内容的
详细信息清查看关于OleSave的介绍,见下面摘录
用UltraEdit打开察看,在用OleCaotainer.SaveToFile保存的内容里
格式上比正常的CompoundFile多了12字节,应该是保存的该对象的CLSID吧,(没有校对)
之后的数据看起来就是ComponeFile,但在利用StgOpenStorage打开时报错
版本不同,也许应该要利用Ex函数吧,留待大家继续攻下去,呵呵
OleSave does the following:
Calls the IPersistStorage::GetClassID method to get the CLSID of the object.
Writes the CLSID to the storage object using the WriteClassStg function.
Calls the IPersistStorage::Save method to save the object.
If there were no errors on the save; calls the IStorage::Commit method to commit the changes.
Note [red]Static objects are saved into a stream called CONTENTS[/red]. Static metafile objects get saved in "placeable metafile format" and static DIB data gets saved in "DIB file format." These formats are defined to be the OLE standards for metafile and DIB. All data transferred using an IStream interface or a file (that is, via IDataObject::GetDataHere) must be in these formats. Also, all objects whose default file format is a metafile or DIB must write their data into a CONTENTS stream using these standard formats.