Ich denke ehr, das Problem liegt darin, dass jede Anwendung ihren eigenen Adressraum besitzen. Wenn du also eine Adresse von Anwendung a an Anwendung b übergibst. Dann steht an der Adresse in Anwendung b etwas anderes.
Ich weiss jetzt leider nicht wie, aber du musst Prozessübergeifenden Speicher erstellen. Irgendwie funktioniert das mit
File Mapping frag aber bitte nicht wie. Eventuell kannst du auch GlobalAddAtom nutzen, damit können aber nur Strings (dürfen nicht $00 enthalten) übertragen werden.