I've used the WinAPI directly; this was to open the com port for writing and I just had a terminal emulator on the other end listening and displaying debug messages from my program. Probably doesn't take a lot of adapting (in fact may be usable directly for reading from the port):
Code:
CommPortHandle = OpenComm("com1",CommBufferSize,CommBufferSize);
if (CommPortHandle >= 0)
{
DCB dcb;
BuildCommDCB("com1:9600,n,8,1", &dcb);
dcb.BaudRate = 19200;
SetCommState(&dcb);
}