[LOCALMON]
authorColin Finck <colin@reactos.org>
Mon, 6 Jul 2015 12:41:06 +0000 (12:41 +0000)
committerColin Finck <colin@reactos.org>
Mon, 6 Jul 2015 12:41:06 +0000 (12:41 +0000)
commit75f2cf5f6f16ce32a67cf7659c6450f787cdbdb6
tree4060d77bfa2e093fdf3a275648dc5887b1a43bff
parentd2c73472d06e7369e866aa24423892c512742b60
[LOCALMON]
Implement a Local Port Monitor for COM, FILE: and LPT ports, usable as a drop-in replacement for the Windows original.
Fully implements opening, enumerating and closing ports, starting and ending documents as well as reading and writing to ports along with Xcv data transfer between Port Monitor and Port Monitor UI.
Does not support IrDA printers unlike the Windows original, sorry guys :-P

The Windows Local Port Monitor is partly documented in an ancient DDK sample.
Additional information was gathered through API monitoring.

TODO:
- AddPort, DeletePort and PortIsValid Xcv functions need to be implemented.
- A real privilege check needs to be added to LocalmonXcvOpenPort.
- TESTING TESTING TESTING (under Windows) and fixing bugs.

To test it under Windows:
- Copy the compiled "localmon.dll" to the system32 directory.
- Open regedit.exe and move to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Local Port.
- Replace "localspl.dll" by "localmon.dll" for the "Driver" value.

[SPOOLSS]
- Properly stub EnumPortsW to let localmon compile.

svn path=/branches/colins-printing-for-freedom/; revision=68356
13 files changed:
reactos/win32ss/printing/base/spoolss/CMakeLists.txt
reactos/win32ss/printing/base/spoolss/ports.c [new file with mode: 0644]
reactos/win32ss/printing/base/spoolss/spoolss.spec
reactos/win32ss/printing/monitors/localmon/CMakeLists.txt
reactos/win32ss/printing/monitors/localmon/lang/de-DE.rc [new file with mode: 0644]
reactos/win32ss/printing/monitors/localmon/lang/en-US.rc [new file with mode: 0644]
reactos/win32ss/printing/monitors/localmon/localmon.rc
reactos/win32ss/printing/monitors/localmon/main.c
reactos/win32ss/printing/monitors/localmon/ports.c [new file with mode: 0644]
reactos/win32ss/printing/monitors/localmon/precomp.h
reactos/win32ss/printing/monitors/localmon/resource.h [new file with mode: 0644]
reactos/win32ss/printing/monitors/localmon/tools.c [new file with mode: 0644]
reactos/win32ss/printing/monitors/localmon/xcv.c [new file with mode: 0644]