I was looking into this a few months ago when writing a serial port handling class. There is actually quite a lot of stuff out there. Look in the VisualC++ forum archives. It is all slightly different, and one class that EVERYONE was quoting was FULL of bugs.

I am not sure I can give you my code since I wrote it on company time, but if you are really, really desparate, drop me an email at [email protected] for some tips/chunks of code.