Ya he resuelto el problema:
La lectura del puerto es como siempre se ha hecho, con una lectura a un Comm estandar.
HANDLE hSer;
COMMTIMEOUTS ctmoNew, ctmoOld;
char InBuff[500];
DWORD dwBytesRead;
if( !ReadFile(hSer, InBuff, sizeof(InBuff), &dwBytesRead, NULL) ) {
ShowMessage( "ERROR: " + String(GetLastError()) );
}
else {
if( dwBytesRead > 0 ) {
ShowMessage( String(InBuff).Trim() );
for( int i=0; i<500; i++) InBuff[0] = ' ';
PurgeComm(hSer,PURGE_TXCLEAR);
}
}
Lo que he puesto aquí es mas o menos orientativo, ya que mi codigo real son algunas lineas mas, ya que entre otras cosas, tengo que interpretar lo que devuelve en la varialbe InBuff.
Bueno, el caso por el que no podia obtener nada del puerto en un principio es por que la dichosa centralita está configurada para "contestar" por el puerto Comm SOLO a la aplicación del fabricante, así que por eso a mi no me devolvia nada, a pesar de tener el codigo 100% correcto.
Al final se solucionó facilmente, usando una aplicación de configuración de centralitas llamado "Siemens HICOM 150 E OFFICE Handbuch und Assistant E".
Con este software puede configurar cambiando el valor de un desplegable para indicarle a la centralita que emitiese también por el Comm correspondiente.
Con eso se solucionaron todos mis problemas con la centralita.
De todas formas, si necesitais mas información al respecto, me lo comentais.