
CParallelPort
v1.13 An MFC class to control parallel ports on 95, 98, ME, NT, 2000, XP
& 2003
The code is based on the ideas and code from the book
"Parallel Port Complete" which I would recommend you read, if you want
to learn more about parallel ports and their programmatic use. The class allows you to read
and write values to the port using low level port IO while at the same time
making sure that the code does not cause problems for other apps using the
parallel ports using normal Win32 calls.
Features
- Simple and clean C++
interface.
- All the code is UNICODE
compliant and build configurations are provided for this.
- The code works on NT, 2000, XP
and 2003
just as well as on 95,98 & ME.
- The code can be used in a
console application or GUI app without problems.
- The code implements a simple
file transfer class which the sample app uses to implement a simple client /
server app to transfer files from PC to PC via "LPT1". Testing on
my lowly Pentium 233 laptop yielding a consistent transfer rate of 40 - 50
KB / S using Nibble mode on an SPP port.
Copyright
- You are allowed to include the source code in
any product (commercial, shareware, freeware or otherwise) when your product
is released in binary form.
- You are allowed to modify the source code in
any way you want except you cannot modify the copyright details at the top
of each module.
- If you want to distribute source code with
your application, then you are only allowed to distribute versions released
by the author. This is to maintain a single distribution point for the
source code.
Usage
- To use the class in your code
simply include parallelport.cpp in your project and #include parallelport.h
in which ever of your modules needs to make calls to the classes.
- Your code will need to include MFC either statically or
dynamically.
- You may want to add afxtempl.h to your pre compiled
header to improve compilation speed.
- To see the class in action, have a look at the code in
_tmain in the module "main.cpp".
- If you are going to be using the CParallelPort code on
Windows NT / Windows 2000, then you will need to download and install the
freeware DriverLINX PortIO driver. As a convenience, you can download a self extracting
installer from the author's web site at http://www.naughter.com/download/port95nt.exe.
Alternatively you can download it from the DriverLINX download page at http://www.sstnet.com/ftp/unsupported/port95nt.exe.
The developers of DriverLINX are SSTNET and can be reached at http://www.sstnet.com.
The enclosed zip file contains
the CParallelPort source code, documentation and a simple MFC
console app which implements a simple client / server app to transfer files from
PC to PC via "LPT1". For further details on how to use the
class have a look at function _tmain in the module main.cpp.
Updates
V1.0 (5 April 2000)
V1.1 (21 July 2000)
- Now works on NT / Windows 2000 thanks to DriverLINX Port I/O Driver
- Made all typedefs and enums local to the appropiate class rather than polluting the global namespace.
You will get compiler errors if you have code using v1.0 of the class. It is
a simple change to fix this, just to use the scope operator "CParallelPort::"
before all the enums you used.
V1.11 (12 April 2003)
- Updated copyright details.
- Updated documentation to refer to new DriverLinx web
site.
- Code now issues compile time message if conio or
afxpriv are not in your PCH.
V1.12 (11 June 2003)
- Reviewed all places where exceptions are throw and the
details which are logged in TRACE statements.
V1.13 (24 September 2004)
- Fixed a problem in the sample app where there were two
instances of the CParallelPort which was causing problems with CArray upon
startup.
- Fixed problems with the sample app when compiled for
Unicode. The Linker entry point symbol is now "wmainCRTStartup".