Author: dchapyshev
Date: Sat Jan 3 05:18:58 2009
New Revision: 38527
URL:
http://svn.reactos.org/svn/reactos?rev=38527&view=rev
Log:
- Add spoolss from Wine
Added:
trunk/reactos/dll/win32/spoolss/ (with props)
trunk/reactos/dll/win32/spoolss/spoolss.rbuild (with props)
trunk/reactos/dll/win32/spoolss/spoolss.spec (with props)
trunk/reactos/dll/win32/spoolss/spoolss_main.c (with props)
Modified:
trunk/reactos/baseaddress.rbuild
trunk/reactos/boot/bootdata/packages/reactos.dff
trunk/reactos/dll/win32/win32.rbuild
trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/baseaddress.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/baseaddress.rbuild?rev=385…
==============================================================================
--- trunk/reactos/baseaddress.rbuild [iso-8859-1] (original)
+++ trunk/reactos/baseaddress.rbuild [iso-8859-1] Sat Jan 3 05:18:58 2009
@@ -110,6 +110,7 @@
<property name="BASEADDRESS_COREDLL" value="0x73d80000" />
<property name="BASEADDRESS_KSUSER" value="0x73ea0000" />
<property name="BASEADDRESS_ICMP" value="0x741f0000" />
+ <property name="BASEADDRESS_SPOOLSS" value="0x742a0000" />
<property name="BASEADDRESS_QUARTZ" value="0x747d0000" />
<property name="BASEADDRESS_USERENV" value="0x74850000" />
<property name="BASEADDRESS_WS2_32" value="0x74aa0000" />
Modified: trunk/reactos/boot/bootdata/packages/reactos.dff
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/packages/rea…
==============================================================================
--- trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] (original)
+++ trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] Sat Jan 3 05:18:58
2009
@@ -341,6 +341,7 @@
dll\win32\shlwapi\shlwapi.dll 1
dll\win32\smdll\smdll.dll 1
dll\win32\snmpapi\snmpapi.dll 1
+dll\win32\spoolss\spoolss.dll 1
dll\win32\stdole2.tlb\stdole2.tlb 1
dll\win32\stdole32.tlb\stdole32.tlb 1
dll\win32\sxs\sxs.dll 1
Propchange: trunk/reactos/dll/win32/spoolss/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Sat Jan 3 05:18:58 2009
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/reactos/dll/win32/spoolss/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/reactos/dll/win32/spoolss/
------------------------------------------------------------------------------
bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/reactos/dll/win32/spoolss/
------------------------------------------------------------------------------
tsvn:logminsize = 10
Added: trunk/reactos/dll/win32/spoolss/spoolss.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/spoolss/spoolss.…
==============================================================================
--- trunk/reactos/dll/win32/spoolss/spoolss.rbuild (added)
+++ trunk/reactos/dll/win32/spoolss/spoolss.rbuild [iso-8859-1] Sat Jan 3 05:18:58 2009
@@ -1,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<group>
+<module name="spoolss" type="win32dll"
baseaddress="${BASEADDRESS_SPOOLSS}" installbase="system32"
installname="spoolss.dll" allowwarnings="true">
+ <importlibrary definition="spoolss.spec" />
+ <include base="spoolss">.</include>
+ <include base="ReactOS">include/reactos/wine</include>
+ <define name="__WINESRC__" />
+ <file>spoolss_main.c</file>
+ <library>wine</library>
+ <library>winspool</library>
+ <library>kernel32</library>
+ <library>ntdll</library>
+</module>
+</group>
Propchange: trunk/reactos/dll/win32/spoolss/spoolss.rbuild
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/dll/win32/spoolss/spoolss.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/spoolss/spoolss.…
==============================================================================
--- trunk/reactos/dll/win32/spoolss/spoolss.spec (added)
+++ trunk/reactos/dll/win32/spoolss/spoolss.spec [iso-8859-1] Sat Jan 3 05:18:58 2009
@@ -1,0 +1,151 @@
+@ stub AbortPrinter
+@ stub AddFormW
+@ stub AddJobW
+@ stub AddMonitorW
+@ stub AddPerMachineConnectionW
+@ stub AddPortExW
+@ stub AddPortW
+@ stub AddPrintProcessorW
+@ stub AddPrintProvidorW
+@ stub AddPrinterConnectionW
+@ stub AddPrinterDriverExW
+@ stub AddPrinterDriverW
+@ stub AddPrinterExW
+@ stub AddPrinterW
+@ stdcall AllocSplStr(wstr)
+@ stub AppendPrinterNotifyInfoData
+@ stdcall BuildOtherNamesFromMachineName(ptr ptr)
+@ stub CallDrvDevModeConversion
+@ stub CallRouterFindFirstPrinterChangeNotification
+@ stub ClosePrinter
+@ stub ClusterSplClose
+@ stub ClusterSplIsAlive
+@ stub ClusterSplOpen
+@ stub ConfigurePortW
+@ stub CreatePrinterIC
+@ stub DbgGetPointers
+@ stub DeleteFormW
+@ stub DeleteMonitorW
+@ stub DeletePerMachineConnectionW
+@ stub DeletePortW
+@ stub DeletePrintProcessorW
+@ stub DeletePrintProvidorW
+@ stub DeletePrinter
+@ stub DeletePrinterConnectionW
+@ stub DeletePrinterDataExW
+@ stub DeletePrinterDataW
+@ stub DeletePrinterDriverExW
+@ stub DeletePrinterDriverW
+@ stub DeletePrinterIC
+@ stub DeletePrinterKeyW
+@ stdcall DllAllocSplMem(long)
+@ stdcall DllFreeSplMem(ptr)
+@ stdcall DllFreeSplStr(wstr)
+@ stub EndDocPrinter
+@ stub EndPagePrinter
+@ stub EnumFormsW
+@ stub EnumJobsW
+@ stub EnumMonitorsW
+@ stub EnumPerMachineConnectionsW
+@ stdcall EnumPortsW(wstr long ptr ptr ptr ptr) winspool.drv.EnumPortsW
+@ stub EnumPrintProcessorDatatypesW
+@ stub EnumPrintProcessorsW
+@ stub EnumPrinterDataExW
+@ stub EnumPrinterDataW
+@ stub EnumPrinterDriversW
+@ stub EnumPrinterKeyW
+@ stub EnumPrintersW
+@ stub FindClosePrinterChangeNotification
+@ stub FlushPrinter
+@ stub FormatPrinterForRegistryKey
+@ stub FormatRegistryKeyForPrinter
+@ stub FreeOtherNames
+@ stub GetClientUserHandle
+@ stub GetFormW
+@ stub GetJobAttributes
+@ stub GetJobW
+@ stub GetNetworkId
+@ stub GetPrintProcessorDirectoryW
+@ stub GetPrinterDataExW
+@ stub GetPrinterDataW
+@ stub GetPrinterDriverDirectoryW
+@ stub GetPrinterDriverExW
+@ stub GetPrinterDriverW
+@ stub GetPrinterW
+@ stdcall ImpersonatePrinterClient(long)
+@ stdcall InitializeRouter()
+@ stdcall IsLocalCall()
+@ stub IsNamedPipeRpcCall
+@ stub LoadDriver
+@ stub LoadDriverFiletoConvertDevmode
+@ stub MIDL_user_allocate1
+@ stub MIDL_user_free1
+@ stub MarshallDownStructure
+@ stub MarshallUpStructure
+@ stub OldGetPrinterDriverW
+@ stub OpenPrinterExW
+@ stub OpenPrinterPortW
+@ stub OpenPrinterW
+@ stub PackStrings
+@ stub PartialReplyPrinterChangeNotification
+@ stub PlayGdiScriptOnPrinterIC
+@ stub PrinterHandleRundown
+@ stub PrinterMessageBoxW
+@ stub ProvidorFindClosePrinterChangeNotification
+@ stub ProvidorFindFirstPrinterChangeNotification
+@ stub ReadPrinter
+@ stub ReallocSplMem
+@ stub ReallocSplStr
+@ stub RemoteFindFirstPrinterChangeNotification
+@ stub ReplyClosePrinter
+@ stub ReplyOpenPrinter
+@ stub ReplyPrinterChangeNotification
+@ stub ResetPrinterW
+@ stdcall RevertToPrinterSelf()
+@ stub RouterAllocPrinterNotifyInfo
+@ stub RouterFindFirstPrinterChangeNotification
+@ stub RouterFindNextPrinterChangeNotification
+@ stub RouterFreePrinterNotifyInfo
+@ stub RouterRefreshPrinterChangeNotification
+@ stub RouterReplyPrinter
+@ stub ScheduleJob
+@ stub SeekPrinter
+@ stub SetAllocFailCount
+@ stub SetFormW
+@ stub SetJobW
+@ stub SetPortW
+@ stub SetPrinterDataExW
+@ stub SetPrinterDataW
+@ stub SetPrinterW
+@ stub SplCloseSpoolFileHandle
+@ stub SplCommitSpoolData
+@ stub SplDriverUnloadComplete
+@ stub SplGetSpoolFileInfo
+@ stdcall SplInitializeWinSpoolDrv(ptr)
+@ stdcall SplIsUpgrade()
+@ stub SplProcessPnPEvent
+@ stub SplReadPrinter
+@ stub SplRegisterForDeviceEvents
+@ stub SplStartPhase2Init
+@ stub SplUnregisterForDeviceEvents
+@ stub SpoolerFindClosePrinterChangeNotification
+@ stub SpoolerFindFirstPrinterChangeNotification
+@ stub SpoolerFindNextPrinterChangeNotification
+@ stub SpoolerFreePrinterNotifyInfo
+@ stdcall SpoolerHasInitialized()
+@ stdcall SpoolerInit()
+@ stub StartDocPrinterW
+@ stub StartPagePrinter
+@ stub UnloadDriver
+@ stub UnloadDriverFile
+@ stub UpdateBufferSize
+@ stub UpdatePrinterRegAll
+@ stub UpdatePrinterRegUser
+@ stub WaitForPrinterChange
+@ stdcall WaitForSpoolerInitialization()
+@ stub WritePrinter
+@ stub XcvDataW
+@ stub bGetDevModePerUser
+@ stub bSetDevModePerUser
+@ stub pszDbgAllocMsgA
+@ stub vDbgLogError
Propchange: trunk/reactos/dll/win32/spoolss/spoolss.spec
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/dll/win32/spoolss/spoolss_main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/spoolss/spoolss_…
==============================================================================
--- trunk/reactos/dll/win32/spoolss/spoolss_main.c (added)
+++ trunk/reactos/dll/win32/spoolss/spoolss_main.c [iso-8859-1] Sat Jan 3 05:18:58 2009
@@ -1,0 +1,369 @@
+/*
+ * Implementation of the Spooler-Service helper DLL
+ *
+ * Copyright 2006 Detlef Riekenberg
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "winerror.h"
+#include "winreg.h"
+
+#include "wingdi.h"
+#include "winspool.h"
+#include "ddk/winsplp.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(spoolss);
+
+/* ################################ */
+
+static CRITICAL_SECTION backend_cs;
+static CRITICAL_SECTION_DEBUG backend_cs_debug =
+{
+ 0, 0, &backend_cs,
+ { &backend_cs_debug.ProcessLocksList, &backend_cs_debug.ProcessLocksList },
+ 0, 0, { (DWORD_PTR)(__FILE__ ": backend_cs") }
+};
+static CRITICAL_SECTION backend_cs = { &backend_cs_debug, -1, 0, 0, 0, 0 };
+
+/* ################################ */
+
+static HMODULE hwinspool;
+static HMODULE hlocalspl;
+static BOOL (WINAPI *pInitializePrintProvidor)(LPPRINTPROVIDOR, DWORD, LPWSTR);
+
+static PRINTPROVIDOR * backend;
+
+/* ################################ */
+
+static const WCHAR localspldllW[] =
{'l','o','c','a','l','s','p','l','.','d','l','l',0};
+static const WCHAR winspooldrvW[] =
{'w','i','n','s','p','o','o','l','.','d','r','v',0};
+
+/******************************************************************************
+ * backend_load [internal]
+ *
+ * load and init our backend (the local printprovider: "localspl.dll")
+ *
+ * PARAMS
+ *
+ * RETURNS
+ * Success: TRUE
+ * Failure: FALSE and RPC_S_SERVER_UNAVAILABLE
+ *
+ * NOTES
+ * In windows, the spooler router (spoolss.dll) support multiple
+ * printprovider (localspl.dll for the local system)
+ *
+ */
+static BOOL backend_load(void)
+{
+ static PRINTPROVIDOR mybackend;
+ DWORD res;
+
+ if (backend) return TRUE;
+
+ EnterCriticalSection(&backend_cs);
+ hlocalspl = LoadLibraryW(localspldllW);
+ if (hlocalspl) {
+ pInitializePrintProvidor = (void *) GetProcAddress(hlocalspl,
"InitializePrintProvidor");
+ if (pInitializePrintProvidor) {
+
+ /* native localspl does not clear unused entries */
+ memset(&mybackend, 0, sizeof(mybackend));
+ res = pInitializePrintProvidor(&mybackend, sizeof(mybackend), NULL);
+ if (res) {
+ backend = &mybackend;
+ LeaveCriticalSection(&backend_cs);
+ TRACE("backend: %p (%p)\n", backend, hlocalspl);
+ return TRUE;
+ }
+ }
+ FreeLibrary(hlocalspl);
+ }
+
+ LeaveCriticalSection(&backend_cs);
+
+ WARN("failed to load the backend: %u\n", GetLastError());
+ SetLastError(RPC_S_SERVER_UNAVAILABLE);
+ return FALSE;
+}
+
+/******************************************************************
+ * unload_backend [internal]
+ *
+ */
+static void backend_unload(void)
+{
+ EnterCriticalSection(&backend_cs);
+ if (backend) {
+ backend = NULL;
+ FreeLibrary(hlocalspl);
+ }
+ LeaveCriticalSection(&backend_cs);
+}
+
+/******************************************************************************
+ *
+ */
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+ TRACE("(%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
+
+ switch (fdwReason) {
+ case DLL_WINE_PREATTACH:
+ return FALSE; /* prefer native version */
+ case DLL_PROCESS_ATTACH: {
+ DisableThreadLibraryCalls(hinstDLL);
+ break;
+
+ case DLL_PROCESS_DETACH:
+ backend_unload();
+ break;
+ }
+ }
+ return TRUE;
+}
+
+/******************************************************************
+ * AllocSplStr [SPOOLSS.@]
+ *
+ * Create a copy from the String on the Spooler-Heap
+ *
+ * PARAMS
+ * pwstr [I] PTR to the String to copy
+ *
+ * RETURNS
+ * Failure: NULL
+ * Success: PTR to the copied String
+ *
+ */
+LPWSTR WINAPI AllocSplStr(LPCWSTR pwstr)
+{
+ LPWSTR res = NULL;
+ DWORD len;
+
+ TRACE("(%s)\n", debugstr_w(pwstr));
+ if (!pwstr) return NULL;
+
+ len = (lstrlenW(pwstr) + 1) * sizeof(WCHAR);
+ res = HeapAlloc(GetProcessHeap(), 0, len);
+ if (res) lstrcpyW(res, pwstr);
+
+ TRACE("returning %p\n", res);
+ return res;
+}
+
+/******************************************************************
+ * BuildOtherNamesFromMachineName [SPOOLSS.@]
+ */
+BOOL WINAPI BuildOtherNamesFromMachineName(LPVOID * ptr1, LPVOID * ptr2)
+{
+ FIXME("(%p, %p) stub\n", ptr1, ptr2);
+
+ *ptr1 = NULL;
+ *ptr2 = NULL;
+ return FALSE;
+}
+
+/******************************************************************
+ * DllAllocSplMem [SPOOLSS.@]
+ *
+ * Allocate cleared memory from the spooler heap
+ *
+ * PARAMS
+ * size [I] Number of bytes to allocate
+ *
+ * RETURNS
+ * Failure: NULL
+ * Success: PTR to the allocated memory
+ *
+ * NOTES
+ * We use the process heap (Windows use a separate spooler heap)
+ *
+ */
+LPVOID WINAPI DllAllocSplMem(DWORD size)
+{
+ LPVOID res;
+
+ res = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
+ TRACE("(%d) => %p\n", size, res);
+ return res;
+}
+
+/******************************************************************
+ * DllFreeSplMem [SPOOLSS.@]
+ *
+ * Free the allocated spooler memory
+ *
+ * PARAMS
+ * memory [I] PTR to the memory allocated by DllAllocSplMem
+ *
+ * RETURNS
+ * Failure: FALSE
+ * Success: TRUE
+ *
+ * NOTES
+ * We use the process heap (Windows use a separate spooler heap)
+ *
+ */
+
+BOOL WINAPI DllFreeSplMem(LPBYTE memory)
+{
+ TRACE("(%p)\n", memory);
+ return HeapFree(GetProcessHeap(), 0, memory);
+}
+
+/******************************************************************
+ * DllFreeSplStr [SPOOLSS.@]
+ *
+ * Free the allocated Spooler-String
+ *
+ * PARAMS
+ * pwstr [I] PTR to the WSTR, allocated by AllocSplStr
+ *
+ * RETURNS
+ * Failure: FALSE
+ * Success: TRUE
+ *
+ */
+
+BOOL WINAPI DllFreeSplStr(LPWSTR pwstr)
+{
+ TRACE("(%s) PTR: %p\n", debugstr_w(pwstr), pwstr);
+ return HeapFree(GetProcessHeap(), 0, pwstr);
+}
+
+
+/******************************************************************
+ * ImpersonatePrinterClient [SPOOLSS.@]
+ */
+BOOL WINAPI ImpersonatePrinterClient(HANDLE hToken)
+{
+ FIXME("(%p) stub\n", hToken);
+ return TRUE;
+}
+
+/******************************************************************
+ * InitializeRouter [SPOOLSS.@]
+ */
+BOOL WINAPI InitializeRouter(void)
+{
+ TRACE("()\n");
+ return backend_load();
+}
+
+/******************************************************************
+ * IsLocalCall [SPOOLSS.@]
+ */
+BOOL WINAPI IsLocalCall(void)
+{
+ FIXME("() stub\n");
+ return TRUE;
+}
+
+/******************************************************************
+ * RevertToPrinterSelf [SPOOLSS.@]
+ */
+HANDLE WINAPI RevertToPrinterSelf(void)
+{
+ FIXME("() stub\n");
+ return (HANDLE) 0xdead0947;
+}
+
+/******************************************************************
+ * SplInitializeWinSpoolDrv [SPOOLSS.@]
+ *
+ * Dynamic load "winspool.drv" and fill an array with some function-pointer
+ *
+ * PARAMS
+ * table [I] array of function-pointer to fill
+ *
+ * RETURNS
+ * Success: TRUE
+ * Failure: FALSE
+ *
+ * NOTES
+ * Native "spoolss.dll" from w2k fill the table with 11 Function-Pointer.
+ * We implement the XP-Version (The table has only 9 Pointer)
+ *
+ */
+BOOL WINAPI SplInitializeWinSpoolDrv(LPVOID * table)
+{
+ DWORD res;
+
+ TRACE("(%p)\n", table);
+
+ hwinspool = LoadLibraryW(winspooldrvW);
+ if (!hwinspool) return FALSE;
+
+ table[0] = (void *) GetProcAddress(hwinspool, "OpenPrinterW");
+ table[1] = (void *) GetProcAddress(hwinspool, "ClosePrinter");
+ table[2] = (void *) GetProcAddress(hwinspool, "SpoolerDevQueryPrintW");
+ table[3] = (void *) GetProcAddress(hwinspool, "SpoolerPrinterEvent");
+ table[4] = (void *) GetProcAddress(hwinspool, "DocumentPropertiesW");
+ table[5] = (void *) GetProcAddress(hwinspool, (LPSTR) 212); /* LoadPrinterDriver */
+ table[6] = (void *) GetProcAddress(hwinspool, (LPSTR) 213); /* RefCntLoadDriver */
+ table[7] = (void *) GetProcAddress(hwinspool, (LPSTR) 214); /* RefCntUnloadDriver
*/
+ table[8] = (void *) GetProcAddress(hwinspool, (LPSTR) 215); /* ForceUnloadDriver */
+
+ for (res = 0; res < 9; res++) {
+ if (table[res] == NULL) return FALSE;
+ }
+
+ return TRUE;
+
+}
+
+/******************************************************************
+ * SplIsUpgrade [SPOOLSS.@]
+ */
+BOOL WINAPI SplIsUpgrade(void)
+{
+ FIXME("() stub\n");
+ return FALSE;
+}
+
+/******************************************************************
+ * SpoolerHasInitialized [SPOOLSS.@]
+ */
+BOOL WINAPI SpoolerHasInitialized(void)
+{
+ FIXME("() stub\n");
+ return TRUE;
+}
+
+/******************************************************************
+ * SpoolerInit [SPOOLSS.@]
+ */
+BOOL WINAPI SpoolerInit(void)
+{
+ FIXME("() stub\n");
+ return TRUE;
+}
+
+/******************************************************************
+ * WaitForSpoolerInitialization [SPOOLSS.@]
+ */
+BOOL WINAPI WaitForSpoolerInitialization(void)
+{
+ FIXME("() stub\n");
+ return TRUE;
+}
Propchange: trunk/reactos/dll/win32/spoolss/spoolss_main.c
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/dll/win32/win32.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/win32.rbuild?rev…
==============================================================================
--- trunk/reactos/dll/win32/win32.rbuild [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/win32.rbuild [iso-8859-1] Sat Jan 3 05:18:58 2009
@@ -355,6 +355,9 @@
<directory name="snmpapi">
<xi:include href="snmpapi/snmpapi.rbuild" />
</directory>
+<directory name="spoolss">
+ <xi:include href="spoolss/spoolss.rbuild" />
+</directory>
<directory name="stdole2.tlb">
<xi:include href="stdole2.tlb/stdole2.rbuild" />
</directory>
Modified: trunk/reactos/media/doc/README.WINE
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
==============================================================================
--- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original)
+++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sat Jan 3 05:18:58 2009
@@ -98,6 +98,7 @@
reactos/dll/win32/shdocvw # Synced to Wine-0_9_5
reactos/dll/win32/shfolder # Autosync
reactos/dll/win32/shlwapi # Autosync
+reactos/dll/win32/spoolss # Autosync
reactos/dll/win32/stdole2.tlb # Autosync
reactos/dll/win32/sxs # Autosync
reactos/dll/win32/tapi32 # Autosync