Ich habe einen MemoryStream. Dessen Daten möchte ich in die Zwischenablage kopieren, weil ich die Daten in einem anderen Programm brauche und dabei leider kein Weg über ein
COM-Interface möglich ist, sondern nur per
copy & paste.
Wäre an sich ja kein Problem mit einem der standardmäßigen ClipBoard Formate (wie z.B. CF_TEXT, CF_UNICODETEXT, etc). Mein Stream enthält jedoch neben mehreren Abschnitten mit AnsiText auch mehrfach $0-Bytes, ist also als binär zu behandeln. Somit ist die Übergabe an das Clipboard mit Hilfe des Formates CF_TEXT ausgeschlossen. Ein proprietäres ClipBoard Format CF_BINARY gibt es aber nicht.
Es ginge zwar notfalls auf dem Umweg über das Format CF_HDROP, wozu jedoch zunächst erst einmal die Abspeicherung der Streamdaten als File notwendig ist, auf welches dann durch Verwendung einer PDropFiles-Variablen (cf. ShlObj) zugegriffen werden muss. Gefällt mir aber nur als äußerste Notlösung.
Ich habe mehrfache Versuche unternommen, ein selbstdefiniertes, binäres Format zu deklarieren und mittels RegisterClipboardFormat() im System anzumelden, um damit dann die Daten unmittelbar aus dem Stream in das Clipboard befördern zu können, was aber bisher nicht zum Erfolg geführt hat.
Hat jemand eigene Erfahrung oder einen erfolgversprechenden Vorschlag ?