如何提取OLE容器的内容?

时间:2010-06-29 14:56:07

标签: c++ ms-word containers ole

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

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

  1. 打开OLE容器
  2. 提取每个组成文件并将其保存到磁盘
  3. 我找到了几个OLE自动化的例子(例如here),但我想做的事情似乎不那么常见,我没有找到具体的例子。

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

2 个答案:

答案 0 :(得分:4)

它被称为Compound Files,是Structured Storage API的一部分。你从StgOpenStorageEx()开始。它为Word .doc文件购买的很少,流本身具有复杂的二进制格式。要真正读取您要使用自动化的文档内容,让Word读取文件。这很少在C ++中完成,但该项目向您展示了如何。

答案 1 :(得分:2)

此网站http://www.endurasoft.com/vcd/ststo.htm包含教程,API信息和代码示例,可以完成我要查找的所有内容。