I've dealt with this issue on a few occasions.
Note that ComRd and ComRdByte, and ComRdTerm will spinlock (busy wait) for incoming bytes and use all available cpu bandwidth.
You could either probe the inqueue with GetInQLen() or use the com callback mechanism to avoid spinlocking on com reads if that's a problem. If your app (or any other app on the system) doesn't have anything else it should be doing then this technique may be OK. It's certainly easy to implement. Note that you should always get a timeout (-99) status, and that you should set the timeout value to something that makes sense for your application.
You might want to flush the inqueue when you start your app - poorly implemented devices can put out garbage on their serial ports when they are powered up.
rs-232 just isn't a robust scheme compared to IEEE 488 (GPIB) for instance. GPIB defines low level messages and mechanisms for handling arbitrary length messages (the EOI uniline command), clearing the interface, clearing the device, flow control, etc.