Accessing the parallel port directly under Windows 2000, XP, etc in a standard user app is not natively available, but there are a couple different solutions available.
The free one I use is called WinIo, and it is extremely easy to use. Compiles fine under C++ .net, simply add a header, link a library, and you’re off and running. You can find it here.
I was using GetPortVal() and SetPortVal() but it appears this is the slower way of accessing the port, MapPhysToLin() appears to be much quicker. I’ll investigate this.
I’m back into the swing of things, and have at least a couple months (of nights, anyways) to make some progress. Not sure yet where I head from here, but I’ll figure something out!