2010-06-29 13 views
5

Ich muss eine MS Word-Datei (.doc) öffnen und die zugehörigen Dateien ('[1] CompObj', 'WordDocument' usw.) extrahieren. So etwas wie 7-Zip kann manuell verwendet werden, aber ich muss das programmatisch machen.Wie extrahiert man den Inhalt eines OLE-Containers?

Ich habe gesammelt, dass ein Word-Dokument ist ein OLE-Container (also warum 7-zip verwendet werden kann, um den Inhalt anzuzeigen), aber ich kann nicht arbeiten, wie man (unter Verwendung von C++):

  1. öffnen sie den OLE-Container
  2. Extrakt jeder Bestandteil Datei und speichert sie auf der Festplatte

ich ein paar Beispiele für OLE-Automatisierung gefunden haben (zB here), aber was ich will scheint zu tun, weniger häufig und ich zu sein Habe keine konkreten Beispiele gefunden.

Wenn jemand eine Idee von einer API (?!) Und Tutorial für die Arbeit mit OLE hat, wäre ich dankbar. Dito irgendwelche Codebeispiele.

Antwort

4

Es heißt Compound Files, Teil der Structured Storage API. Sie beginnen mit StgOpenStorageEx(). Es kauft wenig für eine Word-.doc-Datei, die Streams selbst haben ein ausgefeiltes Binärformat. Um wirklich lesen Sie den Dokumentinhalt, den Sie Automatisierung verwenden möchten, lassen Word die Datei lesen. Das wird in C++ selten gemacht, aber das Projekt zeigt Ihnen, wie.

+0

Es scheint, dass dieser Weg nur für Windows funktioniert ... Wie extrahieren Sie den Inhalt eines OLE-Containers für IOS? Ist es möglich? – MastAvalons