如何提取OLE容器的内容?

Ben*_*n L 5 c++ containers ole ms-word

我需要打开一个MS Word文件(.doc)并提取其组成文件('[1] CompObj','WordDocument'等).像7-zip这样的东西可以手动执行,但我需要以编程方式执行此操作.

我已经收集到Word文档是一个OLE容器(因此可以使用7-zip来查看其内容)但我无法弄清楚如何(使用C++):

  1. 打开OLE容器
  2. 提取每个组成文件并将其保存到磁盘

我已经找到了几个OLE自动化的例子(例如这里),但我想要做的似乎不太常见,我没有找到具体的例子.

如果有人知道API(?!)和使用OLE的教程,我将不胜感激.同上任何代码示例.

Han*_*ant 4

它称为复合文件,是结构化存储 API 的一部分。您从 StgOpenStorageEx() 开始。对于 Word .doc 文件来说,它的成本很低,流本身具有复杂的二进制格式。要真正读取文档内容,您需要使用自动化,让 Word 读取文件。这在 C++ 中很少实现,但该项目向您展示了如何实现。