2017-11-02 7 views
1

Ich habe eine IDataObject implementiert, die die "Embedded Object" -Daten zu einem IStorage Medium zusammen mit einem METAFILEPICT und einem OBJECTDESCRIPTOR für die Vorschau schreibt. Das Objekt wird mit OleSetClipboard an die Zwischenablage übergeben.Warum verursacht OleFlushClipboard, dass mein Speicherobjekt seine Klassen-ID verliert?

Ich kann dies in Word einfügen, aber wenn ich OleFlushClipboard aufrufen, schlägt mit Fehler fehl "Word hat ein Problem festgestellt". Wenn ich die IStorage des Objekts hole, kann ich sehen, dass seine Klassen-ID nach dem Spülen auf CLSID_NULL zurückgesetzt wurde. Irgendwelche Ideen warum?

Antwort

0

Am Ende wurde das Problem durch den Aufruf IStorage::Commit nach dem Schreiben der ClsID gelöst. Aus irgendeinem Grund wurden die Änderungen in meinem speziellen Anwendungsfall nicht korrekt in den zugrunde liegenden Speicher geschrieben, der uns von der Zwischenablage zugewiesen wurde.

Verwandte Themen