En MS Windows, eso se hace con DDE o con COM
http://es.wikipedia.org/wiki/Dynamic_Data_Exchange
http://es.wikipedia.org/wiki/Component_Object_Model
Si lo que tenés que pasar no es muy frecuente y no requiere demasiada sincronía, se puede hacer perfectamente simple a mano: haces que el software que recibe los datos esté, cada X segundos, mirando un directorio, el software que emite los datos los escribe en ese directorio, el que recibe, al encontrar un archivo lo procesa y luego lo borra.
Acá tenemos cuncionando varios software con este esquema. Por comodidad, el formato del archivo es XML, con lo que tenemos todas las ventajas de validación del formato, además de hacerlo extensible.
Una de las ventajas de esta estrategia es que es multiplataforma: el cliente y el servidor no tienen por qué funcionar en el mismo SO.