So auf dem Trocknenden innerhalb einiger Zeilen geht es ja.
Kommt vielleicht nur nichts (sinnvolles) an? Also eher ein Problem vom Senden und Empfangen.
PS: Hast du die Funktionen nochmal hier per Hand geschrieben anstatt kopiert?
In GetOleElementSize() muss es varInt64 anstatt vart64 heißen.
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var
stream: TMemoryStream;
MyVariant, MyVariant2: OleVariant;
MyStrings, MyStrings2: TArray<string>;
begin
MyStrings := MyStrings + ['Hello World, was geht?', 'Alles frisch auf dem Tisch?', 'Huhu, Tifi!'];
MyVariant := MyStrings;
stream := OleVariantToMemStrm(MyVariant);
MyVariant2 := MemStrmToOleVariant(stream);
stream.Free;
MyStrings2 := MyVariant2;
ShowMessage(MyStrings2[2]);
end;