2010-06-29 5 views
5

Je dois ouvrir un fichier MS Word (.doc) et extraire ses fichiers constituants ('[1] CompObj', 'WordDocument', etc.). Quelque chose comme 7-zip peut être utilisé pour le faire manuellement, mais je dois le faire par programmation.Comment extraire le contenu d'un conteneur OLE?

J'ai compris qu'un document Word est un conteneur OLE (donc pourquoi peut être utilisé 7-zip pour afficher son contenu), mais je ne peux pas travailler comment (en C++):

  1. ouvrir le conteneur OLE
  2. extrait chaque fichier constituant et enregistrez-le sur le disque

J'ai trouvé quelques exemples d'automatisation OLE (par exemple here) mais ce que je veux faire semble être moins fréquentes et je Je n'ai trouvé aucun exemple spécifique.

Si quelqu'un a une idée d'une API (?!) Et un tutoriel pour travailler avec OLE, je serais reconnaissant. Idem tout échantillon de code.

Répondre

4

Il s'agit de fichiers composés, qui font partie de l'API de stockage structuré. Vous commencez avec StgOpenStorageEx(). Il vous achète peu pour un fichier .doc Word, les flux eux-mêmes ont un format binaire sophistiqué. Pour vraiment lire le contenu du document que vous souhaitez utiliser l'automatisation, laissant Word lire le fichier. C'est rarement fait en C++ mais ce projet vous montre comment.

+0

Il semble que cette façon fonctionne uniquement pour Windows ... Comment extraire le contenu d'un conteneur OLE pour IOS? C'est possible? – MastAvalons

Questions connexes