Du könntest es mit WideString versuchen, der läuft nicht über den Delphi-Memory-Manager, also auch nicht über ShareMem
WideSrings kapseln einen
OLE-String ... bzw. es ist so Einer und die Speicherreservierungen werden von Delphi einfach nur an die entsprechenden
WinAPI-Funktionen weitergeleitet.
Diese Strings werden also von der Ole32.dll (glaub ich) behandelt (Speicher reservieren, freigeben, kopieren usw.)