问题描述
我正在尝试恢复使用97-2003版本的Word文档。我不记得为什么这样做,但是我将Compound File streams保存到了一个文件夹中,这绝对是我想作为原始文档获得的东西。有什么解决办法吗?
谢谢!
解决方法
当然,从理论上讲,您应该可以恢复它。
您应该可以使用来创建根复合文档
StgCreateDocfile() // or StgCreateStorageEx()
如果成功,您将需要IStorage*
指针。
如果文件夹中有一个文件夹,则必须为每个文件夹创建子存储,然后递归执行。该API为IStorage::CreateStorage()
...查找它。
如果文件夹中有文件,则需要在与文件夹等效的存储中创建流。要创建流,请使用IStorage::CreateStream()
...查找参数。
查看您的屏幕快照,其中有一些流的名称类似于[1] CompObj或[5] SummaryDocumentInformation。对于[n]部分,它大概等于_T('\ 00n'),其中n为1或5或其他值-可能是控制字符。我已经在复合文件中看到了。如果要调查,请创建Word 97-2003文档并另存为.doc文件并检查结构。
因此,类似[1] CompObj的东西实际上是_T(“ \ 001CompObj”)
文件名中有关[n]的内容是有根据的/有经验的猜测。