Bei Copydata gibst Du einen Speicherbereich und eine Länge an. Wie Du die Daten dort hineinschreibst, bleibt dir überlassen. Wenn es nur ein einziger String ist, dann geht das so:
Delphi-Quellcode:
CPData.dwData := 0;
CPData.cbData := Length (MyString);
CPData.lpData := @MyString[1];
SendMessage(hMainFormWnd, WM_COPYDATA, WPARAM(Application.Handle), LPARAM(@CPData));
Wenn man mehr verschicken will, z.B. Strukturen, muss man die irgendwie serialisieren. Dazu könnte man dann neben Memorystreams auch sowas wie JSON oder
XML verwenden, beide sind Standards, wobei JSON weniger Footprint / Overhead erzeugt. Aber, ach, dann wächst die Anwendung ja wieder um ein paar Kb. Und das geht bei
nonVCL ja nun wirklich nicht.
Heutzutage programmiert man ja auch wie vor 40 Jahren, oder wie ein C-Eremit.
Aber eine Fräge hätt ich nöch: Wenn
nonVCL sich auf die
Visual Control Library bezieht, wieso verzichtest Du dann auf TMemoryStream? MemoryStreams sind doch nun wirklich unsichtbar. Non-Visuell sozusagen...