This site is a good source for programming the parallel port.
The basic idea is that you need a DLL, add-on or library that allows you to access the I/O Ports of the PC. For Windows XP on up you need a specific driver that will allow you do this as the OS doesn't offer access out of the box.
The Parallel port will generally reside at one of three address 278,378, 3BC. This port. have the bytes you are reading or writing.
The (base)+1 port allows access to the status bytes. IE. 279,379, 3BD
The (base)+2 port allows access to the control bytes. IE. 27A,37A,3BE
The parallel port documentation will tell not only how to implement the common modes (like bi-directional) but how to control the port at the byte level to implement your own custom.
Back in the day there was only the standard mode available. You pump out your bytes at the (base) port. Some application, like mine, manipulated individual bits of that ports as form of cheap Digital I/O Controller. We did use the status and control bytes as additional inputs and outputs. There were commands you can send to the Parallel Port chip configure the modes precisely.
Today there are are hundreds of sites with example of using the Parallel Port to solve all kinds of problems. I would be surprised that one of doesn't have something you can use for you specific application.
Again the book I recommend starting with is Parallel Port complete. It tells just about everything you need to start with. If your application is too esoteric for that book it will give a springboard from which you can find the exact setup you need.
Best Answer
I haven't tried it with a parallel port, but VMWare Workstation 6 (running Windows XP Pro on top of a real XP Pro host) allows me to talk to the serial ports just fine. I have a 2-port serial comms card in the machine and VMWare is configured to give control of the ports to the guest machine. (This is for a cheque-scanning device).
I haven't gotten into this with the USB versions of the cheque-scanner yet, but my experiences with VMWare Workstation on the PC (and VMWare Fusion on the Mac) would suggest that this will also work - it's pretty good at giving you access to the underlying devices if you take the trouble to configure the VM software at first.
I'll be interested to see what other responses you get. :-)