Author: cfinck Date: Wed Oct 26 12:37:27 2016 New Revision: 73039 URL: http://svn.reactos.org/svn/reactos?rev=73039&view=rev Log: [PRINTING] Finally merge my branch "colins-printing-for-freedom", giving us an initial implementation of a Win32-compatible Printing Stack (localmon, localspl, spoolss, spoolsv, winspool) You can now send raw data to parallel port printers using documented Win32 API. An example application is in my "winspool_print" commandline tool merged to rosapps. ReactOS folks, thanks for your support during the development of this, making my bachelor's thesis a reality! :)
Documentation/Thesis: https://svn.reactos.org/reactos/trunk/documentation/articles/Printing%20Stack%20Thesis/thesis.pdf Video: https://www.youtube.com/watch?v=cNzePucTOLY CORE-10489 Added: trunk/reactos/sdk/include/psdk/winspool.h - copied unchanged from r73027, branches/colins-printing-for-freedom/reactos/include/psdk/winspool.h trunk/reactos/sdk/include/reactos/idl/winspool.idl - copied unchanged from r73027, branches/colins-printing-for-freedom/reactos/include/reactos/idl/winspool.idl trunk/reactos/sdk/lib/skiplist/ - copied from r73027, branches/colins-printing-for-freedom/reactos/lib/skiplist/ trunk/reactos/win32ss/printing/ - copied from r73027, branches/colins-printing-for-freedom/reactos/win32ss/printing/ trunk/rosapps/applications/cmdutils/winspool_print/ - copied from r73027, branches/colins-printing-for-freedom/reactos/temp/winspool_print/ trunk/rostests/apitests/localspl/ - copied from r73027, branches/colins-printing-for-freedom/rostests/apitests/localspl/ trunk/rostests/apitests/spoolss/ - copied from r73027, branches/colins-printing-for-freedom/rostests/apitests/spoolss/ trunk/rostests/apitests/winprint/ - copied from r73027, branches/colins-printing-for-freedom/rostests/apitests/winprint/ trunk/rostests/apitests/winspool/ - copied from r73027, branches/colins-printing-for-freedom/rostests/apitests/winspool/ Removed: trunk/reactos/base/services/spoolsv/ trunk/reactos/dll/win32/localspl/ trunk/reactos/dll/win32/ntprint/ trunk/reactos/dll/win32/spoolss/ trunk/reactos/dll/win32/winspool/ Modified: trunk/ (props changed) trunk/reactos/ (props changed) trunk/reactos/base/services/CMakeLists.txt trunk/reactos/boot/bootdata/hivesys.inf trunk/reactos/dll/win32/CMakeLists.txt trunk/reactos/sdk/lib/CMakeLists.txt trunk/reactos/win32ss/CMakeLists.txt trunk/reactos/win32ss/printing/base/spoolsv/CMakeLists.txt trunk/reactos/win32ss/printing/base/winspool/CMakeLists.txt trunk/reactos/win32ss/printing/monitors/localmon/ui/CMakeLists.txt trunk/reactos/win32ss/printing/providers/localspl/CMakeLists.txt trunk/rosapps/applications/cmdutils/CMakeLists.txt trunk/rostests/ (props changed) trunk/rostests/apitests/CMakeLists.txt trunk/rostests/winetests/CMakeLists.txt Propchange: trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Wed Oct 26 12:37:27 2016 @@ -0,0 +1 @@ +/branches/colins-printing-for-freedom:67543-68405,68407-68414,68417-70595 Propchange: trunk/reactos/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Oct 26 12:37:27 2016 @@ -4,6 +4,7 @@ /branches/GSoC_2016/USB:72366,72376 /branches/GSoC_Network:51545-51546 /branches/cmake-bringup:50484,50693,50719,51544-52564 +/branches/colins-printing-for-freedom/reactos:67543-68405,68407-68414,68417-70595 /branches/condrv_restructure:63104-65657 /branches/header-work:45691-47721 /branches/kd++:58883-58973 Modified: trunk/reactos/base/services/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/CMakeLists.txt?rev=73039&r1=73038&r2=73039&view=diff ============================================================================== --- trunk/reactos/base/services/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/base/services/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -4,7 +4,6 @@ add_subdirectory(eventlog) add_subdirectory(rpcss) add_subdirectory(schedsvc) -add_subdirectory(spoolsv) add_subdirectory(srvsvc) add_subdirectory(svchost) add_subdirectory(tcpsvcs) Modified: trunk/reactos/boot/bootdata/hivesys.inf URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivesys.inf?rev=73039&r1=73038&r2=73039&view=diff ============================================================================== --- trunk/reactos/boot/bootdata/hivesys.inf [iso-8859-1] (original) +++ trunk/reactos/boot/bootdata/hivesys.inf [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -1252,13 +1252,37 @@ HKLM,"SYSTEM\CurrentControlSet\Control\PnP\Pci\CardList","Ali",0x00030003,\ 01,00,00,00,b9,10,21,15,00,00,00,00,00,00,00,00 + +; Printing HKLM,"SYSTEM\CurrentControlSet\Control\Print","MajorVersion",0x00010001,2 -HKLM,"SYSTEM\CurrentControlSet\Control\Print","MinorVersion",0x00010003,0 -HKLM,"SYSTEM\CurrentControlSet\Control\Print","PriorityClass",0x00010003,0 -HKLM,"SYSTEM\CurrentControlSet\Control\Print\Environments",,0x00000012 -HKLM,"SYSTEM\CurrentControlSet\Control\Print\Monitors",,0x00000012 -HKLM,"SYSTEM\CurrentControlSet\Control\Print\Monitors\Local Port","Driver",2,"localspl.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Print","MinorVersion",0x00010001,0 +HKLM,"SYSTEM\CurrentControlSet\Control\Print","PriorityClass",0x00010001,0 + +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Environments",,0x00000010 +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86","Directory",,"W32X86" +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Print Processors",,0x00000010 +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Print Processors\winprint","Driver",,"winprint.dll" + +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Monitors",,0x00000010 +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Monitors\Local Port","Driver",,"localmon.dll" + HKLM,"SYSTEM\CurrentControlSet\Control\Print\Printers",,0x00000012 +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Printers\Dummy Printer On LPT1","Attributes",0x00010001,0 +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Printers\Dummy Printer On LPT1","Datatype",,"RAW" +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Printers\Dummy Printer On LPT1","Description",,"" +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Printers\Dummy Printer On LPT1","Default DevMode",1,\ +00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ +00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,dc,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ +00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ +00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ +00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Printers\Dummy Printer On LPT1","Port",,"LPT1:" +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Printers\Dummy Printer On LPT1","Print Processor",,"winprint" +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Printers\Dummy Printer On LPT1","Printer Driver",,"Dummy Printer Driver" +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Printers\Dummy Printer On LPT1","Status",0x00010001,0 + +HKLM,"SYSTEM\CurrentControlSet\Control\Print\Providers",,0x00000010 + HKLM,"SYSTEM\CurrentControlSet\Control\ProductOptions","ProductType",2,"ServerNT" HKLM,"SYSTEM\CurrentControlSet\Control\ProductOptions","ProductSuite",0x00010002,"Terminal Server" Modified: trunk/reactos/dll/win32/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/CMakeLists.txt?rev=73039&r1=73038&r2=73039&view=diff ============================================================================== --- trunk/reactos/dll/win32/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -72,8 +72,6 @@ add_subdirectory(kernel32) add_subdirectory(kernel32_vista) add_subdirectory(loadperf) -add_subdirectory(localspl) -add_subdirectory(localui) add_subdirectory(lpk) add_subdirectory(lsasrv) add_subdirectory(lz32) @@ -139,7 +137,6 @@ add_subdirectory(ntdsapi) add_subdirectory(ntlanman) add_subdirectory(ntmarta) -add_subdirectory(ntprint) add_subdirectory(objsel) add_subdirectory(odbc32) add_subdirectory(odbccp32) @@ -194,7 +191,6 @@ add_subdirectory(sndblst) add_subdirectory(snmpapi) add_subdirectory(softpub) -add_subdirectory(spoolss) add_subdirectory(srclient) add_subdirectory(stdole2.tlb) add_subdirectory(stdole32.tlb) @@ -238,7 +234,6 @@ add_subdirectory(wininet) add_subdirectory(winmm) add_subdirectory(winscard) -add_subdirectory(winspool) add_subdirectory(winsta) add_subdirectory(wintrust) add_subdirectory(wlanapi) Modified: trunk/reactos/sdk/lib/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/lib/CMakeLists.txt?rev=73039&r1=73038&r2=73039&view=diff ============================================================================== --- trunk/reactos/sdk/lib/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/sdk/lib/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -42,6 +42,7 @@ add_subdirectory(rtl) add_subdirectory(scrnsave) +add_subdirectory(skiplist) add_subdirectory(strmiids) add_subdirectory(smlib) add_subdirectory(tdilib) Modified: trunk/reactos/win32ss/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/CMakeLists.txt?rev=73039&r1=73038&r2=73039&view=diff ============================================================================== --- trunk/reactos/win32ss/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/win32ss/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -16,6 +16,7 @@ endif() add_subdirectory(gdi/gdi32) +add_subdirectory(printing) add_subdirectory(reactx) add_subdirectory(user/user32) add_subdirectory(user/winsrv) Modified: trunk/reactos/win32ss/printing/base/spoolsv/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/printing/base/spoolsv/CMakeLists.txt?rev=73039&r1=73027&r2=73039&view=diff ============================================================================== --- trunk/reactos/win32ss/printing/base/spoolsv/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/win32ss/printing/base/spoolsv/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -1,6 +1,6 @@ -include_directories(${REACTOS_SOURCE_DIR}/include/reactos/idl) -add_rpc_files(server ${REACTOS_SOURCE_DIR}/include/reactos/idl/winspool.idl) +include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/idl) +add_rpc_files(server ${REACTOS_SOURCE_DIR}/sdk/include/reactos/idl/winspool.idl) list(APPEND SOURCE forms.c Modified: trunk/reactos/win32ss/printing/base/winspool/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/printing/base/winspool/CMakeLists.txt?rev=73039&r1=73027&r2=73039&view=diff ============================================================================== --- trunk/reactos/win32ss/printing/base/winspool/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/win32ss/printing/base/winspool/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -1,6 +1,6 @@ -include_directories(${REACTOS_SOURCE_DIR}/include/reactos/idl) -add_rpc_files(client ${REACTOS_SOURCE_DIR}/include/reactos/idl/winspool.idl) +include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/idl) +add_rpc_files(client ${REACTOS_SOURCE_DIR}/sdk/include/reactos/idl/winspool.idl) spec2def(winspool.drv winspool.spec ADD_IMPORTLIB) list(APPEND SOURCE Modified: trunk/reactos/win32ss/printing/monitors/localmon/ui/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/printing/monitors/localmon/ui/CMakeLists.txt?rev=73039&r1=73027&r2=73039&view=diff ============================================================================== --- trunk/reactos/win32ss/printing/monitors/localmon/ui/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/win32ss/printing/monitors/localmon/ui/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -1,6 +1,6 @@ add_definitions(-D__WINESRC__) -include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine) spec2def(localui.dll localui.spec) list(APPEND SOURCE Modified: trunk/reactos/win32ss/printing/providers/localspl/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/printing/providers/localspl/CMakeLists.txt?rev=73039&r1=73027&r2=73039&view=diff ============================================================================== --- trunk/reactos/win32ss/printing/providers/localspl/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/win32ss/printing/providers/localspl/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -1,7 +1,7 @@ spec2def(localspl.dll localspl.spec ADD_IMPORTLIB) -include_directories(${REACTOS_SOURCE_DIR}/lib/skiplist) +include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/skiplist) list(APPEND SOURCE jobs.c Modified: trunk/rosapps/applications/cmdutils/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/cmdutils/CMakeLists.txt?rev=73039&r1=73038&r2=73039&view=diff ============================================================================== --- trunk/rosapps/applications/cmdutils/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rosapps/applications/cmdutils/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -5,4 +5,5 @@ add_subdirectory(tee) add_subdirectory(touch) add_subdirectory(uptime) +add_subdirectory(winspool_print) add_subdirectory(y) Propchange: trunk/rostests/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Oct 26 12:37:27 2016 @@ -1,2 +1,3 @@ /branches/GSoC_2011/KMTestSuite:51165-53670 +/branches/colins-printing-for-freedom/rostests:67543-68405,68417-70595 /branches/ros-amd64-bringup/rostests:44459,44462,44537 Modified: trunk/rostests/apitests/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/CMakeLists.txt?rev=73039&r1=73038&r2=73039&view=diff ============================================================================== --- trunk/rostests/apitests/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -15,6 +15,7 @@ if(NOT ARCH STREQUAL "amd64") add_subdirectory(kernel32) endif() +add_subdirectory(localspl) add_subdirectory(msgina) add_subdirectory(msvcrt) add_subdirectory(ntdll) @@ -24,6 +25,7 @@ add_subdirectory(sdk) add_subdirectory(setupapi) add_subdirectory(shell32) +add_subdirectory(spoolss) add_subdirectory(psapi) add_subdirectory(user32) add_subdirectory(user32_dynamic) @@ -33,4 +35,6 @@ endif() add_subdirectory(winhttp) add_subdirectory(wininet) +add_subdirectory(winprint) +add_subdirectory(winspool) add_subdirectory(ws2_32) Modified: trunk/rostests/winetests/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/CMakeLists.txt?rev=73039&r1=73038&r2=73039&view=diff ============================================================================== --- trunk/rostests/winetests/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/winetests/CMakeLists.txt [iso-8859-1] Wed Oct 26 12:37:27 2016 @@ -112,7 +112,7 @@ add_subdirectory(winhttp) add_subdirectory(wininet) add_subdirectory(winmm) -add_subdirectory(winspool) +#add_subdirectory(winspool) add_subdirectory(wintrust) add_subdirectory(wlanapi) add_subdirectory(wldap32)