3 Stimmen

Wie mache ich einen Stream für COM verpacken?

Ich verwende ein in Delphi geschriebenes COM-Objekt, das einen Stream erfordert.

Die von VS generierte Schnittstelle fordert einen Parameter vom Typ "object".

comReader.LoadFromStream(object stream)

Wenn ich einen FileStream oder MemoryStream verwende, erhalte ich eine "Ungültiges Argument"-Ausnahme.

Wie kann ich einen Stream für die COM-Verbrauchmarshallerung verwenden?

2voto

Stecya Punkte 22308

Ich denke, du solltest einen Wrapper für .Net Stream erstellen, der das COM IStream Interface implementiert

Siehe diesen Artikel (Es gibt eine teilweise Implementierung)

1voto

sehe Punkte 346808

Bearbeiten Ich habe diese interessante Antwort gefunden: Wie deklariere ich ein IStream in idl, so dass Visual Studio es auf s.w.interop.comtypes abbildet?

Im Grunde genommen möchten Sie System.Runtime.InteropServices.ComTypes.IStream implementieren oder eine bereits implementierende Klasse verwenden.

Falls alles andere fehlschlägt, sollten Sie in der Lage sein, beliebige Daten mit UnmanagedMemoryStream zu marshallen. (MSDN-Seite)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X