代码之家  ›  专栏  ›  技术社区  ›  Ben L

如何提取OLE容器的内容?

  •  5
  • Ben L  · 技术社区  · 14 年前

    我需要中断打开MS Word文件(.doc)并提取其组成文件(“[1]compobj”、“worddocument”等)。像7-zip之类的东西可以手动完成,但我需要通过编程来完成。

    我已经知道Word文档是一个OLE容器(因此为什么可以使用7个ZIP来查看它的内容),但是我不知道如何使用(C++):

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

    我发现了一些OLE自动化的例子(例如 here )但我想做的似乎不太常见,我没有找到具体的例子。

    如果有人知道API(?!)以及与Ole合作的教程,我将不胜感激。同上,任何代码示例。

    2 回复  |  直到 10 年前
        1
  •  4
  •   Hans Passant    14 年前

    它被称为复合文件,是结构化存储API的一部分。从stgopenstorageex()开始。它只为word.doc文件买了一点东西,流本身有一个复杂的二进制格式。到 真正地 读取要使用自动化的文档内容,让Word读取该文件。这很少在C++中完成,但是这个项目会告诉你如何。

        2
  •  2
  •   Ben L    14 年前

    本网站 http://www.endurasoft.com/vcd/ststo.htm 包含教程、API信息和代码示例,它们完成了我所寻找的一切。