I've got this old Windows program that prints by writing directly to an LPT port. Unfortunately, the number of printers we can get that are compatible with it keep dwindling. The obvious choice to just ditch the program and move on to something more modern isn't available right now. I don't have access to the source code, so modifying the program isn't on the table either.
What I'd like to do is write a program that creates a fake LPT port, reads and interprets the data sent by the old software to that port, and then prints using the actual Windows print spooler. I already know how to print, and I'm pretty sure I can decode the raw data I get, so all I need is help creating the virtual parallel port.
I'm using C++ for this, because that's what I have available right now.