Si es cierto
WM_COPYDATA también podría servirte, la diferencia en que siempre tendría que mandar un mensaje siempre que la información del primer programa cambiara, y con el fichero mapeado, el segundo programa siempre tendría acceso a la información sin necesidad de nada más.
Es obvio que el primer programa debería permanecer ejecutándose y con el fichero mapeado para que el segundo encuentre la información.
También se me olvidó decirte en el anterior mensaje que una vez finalizado, cerraras el fichero mapeado.
Código Delphi
[-]
if FicheroM<>0 then
begin
UnmapViewOfFile(xxxxx);
CloseHandle(xxxxx);
end;