From 46b9165909e145bc8668c564d5ad764fa6553138 Mon Sep 17 00:00:00 2001 From: Colin Finck Date: Sat, 9 Dec 2017 13:35:42 +0100 Subject: [PATCH] [WINSPOOL] Provide stubs with tracing and reasonable failure codes for even more popular Spooler APIs. This may get more applications to work which previously called into the WINE-generated stubs (that throw an exception). It also improves debug logs when the "winspool" debug channel is enabled. With such detailed debug logs, we may get an idea which winspool APIs need to be implemented sooner than others. --- win32ss/printing/base/winspool/CMakeLists.txt | 1 + win32ss/printing/base/winspool/forms.c | 88 +++++++++ win32ss/printing/base/winspool/monitors.c | 24 +++ win32ss/printing/base/winspool/ports.c | 64 ++++++ win32ss/printing/base/winspool/printerdata.c | 106 +++++++++- .../printing/base/winspool/printerdrivers.c | 56 ++++++ win32ss/printing/base/winspool/printers.c | 56 +++++- .../printing/base/winspool/printprocessors.c | 40 +++- .../printing/base/winspool/printproviders.c | 16 ++ win32ss/printing/base/winspool/winspool.spec | 182 +++++++++--------- 10 files changed, 531 insertions(+), 102 deletions(-) create mode 100644 win32ss/printing/base/winspool/forms.c diff --git a/win32ss/printing/base/winspool/CMakeLists.txt b/win32ss/printing/base/winspool/CMakeLists.txt index 71d18ba9a47..b4dcf8a163b 100644 --- a/win32ss/printing/base/winspool/CMakeLists.txt +++ b/win32ss/printing/base/winspool/CMakeLists.txt @@ -5,6 +5,7 @@ spec2def(winspool.drv winspool.spec ADD_IMPORTLIB) list(APPEND SOURCE devmode.c + forms.c jobs.c main.c monitors.c diff --git a/win32ss/printing/base/winspool/forms.c b/win32ss/printing/base/winspool/forms.c new file mode 100644 index 00000000000..50ce5613387 --- /dev/null +++ b/win32ss/printing/base/winspool/forms.c @@ -0,0 +1,88 @@ +/* + * PROJECT: ReactOS Spooler API + * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) + * PURPOSE: Functions related to Forms + * COPYRIGHT: Copyright 2017 Colin Finck (colin@reactos.org) + */ + +#include "precomp.h" + +BOOL WINAPI +AddFormA(HANDLE hPrinter, DWORD Level, PBYTE pForm) +{ + TRACE("AddFormA(%p, %lu, %p)\n", hPrinter, Level, pForm); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +AddFormW(HANDLE hPrinter, DWORD Level, PBYTE pForm) +{ + TRACE("AddFormW(%p, %lu, %p)\n", hPrinter, Level, pForm); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +DeleteFormA(HANDLE hPrinter, PSTR pFormName) +{ + TRACE("DeleteFormA(%p, %s)\n", hPrinter, pFormName); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +DeleteFormW(HANDLE hPrinter, PWSTR pFormName) +{ + TRACE("DeleteFormW(%p, %S)\n", hPrinter, pFormName); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +EnumFormsA(HANDLE hPrinter, DWORD Level, PBYTE pForm, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) +{ + TRACE("EnumFormsA(%p, %lu, %p, %lu, %p, %p)\n", hPrinter, Level, pForm, cbBuf, pcbNeeded, pcReturned); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +EnumFormsW(HANDLE hPrinter, DWORD Level, PBYTE pForm, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) +{ + TRACE("EnumFormsW(%p, %lu, %p, %lu, %p, %p)\n", hPrinter, Level, pForm, cbBuf, pcbNeeded, pcReturned); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +GetFormA(HANDLE hPrinter, PSTR pFormName, DWORD Level, PBYTE pForm, DWORD cbBuf, PDWORD pcbNeeded) +{ + TRACE("GetFormA(%p, %s, %lu, %p, %lu, %p)\n", hPrinter, pFormName, Level, pForm, cbBuf, pcbNeeded); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +GetFormW(HANDLE hPrinter, PWSTR pFormName, DWORD Level, PBYTE pForm, DWORD cbBuf, PDWORD pcbNeeded) +{ + TRACE("GetFormW(%p, %S, %lu, %p, %lu, %p)\n", hPrinter, pFormName, Level, pForm, cbBuf, pcbNeeded); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +SetFormA(HANDLE hPrinter, PSTR pFormName, DWORD Level, PBYTE pForm) +{ + TRACE("SetFormA(%p, %s, %lu, %p)\n", hPrinter, pFormName, Level, pForm); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +SetFormW(HANDLE hPrinter, PWSTR pFormName, DWORD Level, PBYTE pForm) +{ + TRACE("SetFormW(%p, %S, %lu, %p)\n", hPrinter, pFormName, Level, pForm); + UNIMPLEMENTED; + return FALSE; +} diff --git a/win32ss/printing/base/winspool/monitors.c b/win32ss/printing/base/winspool/monitors.c index a5b30fe7f5c..4a368951265 100644 --- a/win32ss/printing/base/winspool/monitors.c +++ b/win32ss/printing/base/winspool/monitors.c @@ -22,6 +22,14 @@ _MarshallUpMonitorInfo(PBYTE pMonitorInfo, DWORD Level) } } +BOOL WINAPI +AddMonitorA(PSTR pName, DWORD Level, PBYTE pMonitors) +{ + TRACE("AddMonitorA(%s, %lu, %p)\n", pName, Level, pMonitors); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI AddMonitorW(PWSTR pName, DWORD Level, PBYTE pMonitors) { @@ -30,6 +38,14 @@ AddMonitorW(PWSTR pName, DWORD Level, PBYTE pMonitors) return FALSE; } +BOOL WINAPI +DeleteMonitorA(PSTR pName, PSTR pEnvironment, PSTR pMonitorName) +{ + TRACE("DeleteMonitorA(%s, %s, %s)\n", pName, pEnvironment, pMonitorName); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI DeleteMonitorW(PWSTR pName, PWSTR pEnvironment, PWSTR pMonitorName) { @@ -38,6 +54,14 @@ DeleteMonitorW(PWSTR pName, PWSTR pEnvironment, PWSTR pMonitorName) return FALSE; } +BOOL WINAPI +EnumMonitorsA(PSTR pName, DWORD Level, PBYTE pMonitors, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) +{ + TRACE("EnumMonitorsA(%s, %lu, %p, %lu, %p, %p)\n", pName, Level, pMonitors, cbBuf, pcbNeeded, pcReturned); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI EnumMonitorsW(PWSTR pName, DWORD Level, PBYTE pMonitors, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) { diff --git a/win32ss/printing/base/winspool/ports.c b/win32ss/printing/base/winspool/ports.c index 4e8d020e843..28977bdaeb7 100644 --- a/win32ss/printing/base/winspool/ports.c +++ b/win32ss/printing/base/winspool/ports.c @@ -22,6 +22,30 @@ _MarshallUpPortInfo(PBYTE pPortInfo, DWORD Level) } } +BOOL WINAPI +AddPortA(PSTR pName, HWND hWnd, PSTR pMonitorName) +{ + TRACE("AddPortA(%s, %p, %s)\n", pName, hWnd, pMonitorName); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +AddPortExA(PSTR pName, DWORD Level, PBYTE lpBuffer, PSTR lpMonitorName) +{ + TRACE("AddPortExA(%s, %lu, %p, %s)\n", pName, Level, lpBuffer, lpMonitorName); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +AddPortExW(PWSTR pName, DWORD Level, PBYTE lpBuffer, PWSTR lpMonitorName) +{ + TRACE("AddPortExA(%S, %lu, %p, %S)\n", pName, Level, lpBuffer, lpMonitorName); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI AddPortW(PWSTR pName, HWND hWnd, PWSTR pMonitorName) { @@ -30,6 +54,14 @@ AddPortW(PWSTR pName, HWND hWnd, PWSTR pMonitorName) return FALSE; } +BOOL WINAPI +ConfigurePortA(PSTR pName, HWND hWnd, PSTR pPortName) +{ + TRACE("ConfigurePortA(%s, %p, %s)\n", pName, hWnd, pPortName); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI ConfigurePortW(PWSTR pName, HWND hWnd, PWSTR pPortName) { @@ -38,6 +70,14 @@ ConfigurePortW(PWSTR pName, HWND hWnd, PWSTR pPortName) return FALSE; } +BOOL WINAPI +DeletePortA(PSTR pName, HWND hWnd, PSTR pPortName) +{ + TRACE("DeletePortA(%s, %p, %s)\n", pName, hWnd, pPortName); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI DeletePortW(PWSTR pName, HWND hWnd, PWSTR pPortName) { @@ -46,6 +86,14 @@ DeletePortW(PWSTR pName, HWND hWnd, PWSTR pPortName) return FALSE; } +BOOL WINAPI +EnumPortsA(PSTR pName, DWORD Level, PBYTE pPorts, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) +{ + TRACE("EnumPortsA(%s, %lu, %p, %lu, %p, %p)\n", pName, Level, pPorts, cbBuf, pcbNeeded, pcReturned); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI EnumPortsW(PWSTR pName, DWORD Level, PBYTE pPorts, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) { @@ -84,3 +132,19 @@ EnumPortsW(PWSTR pName, DWORD Level, PBYTE pPorts, DWORD cbBuf, PDWORD pcbNeeded SetLastError(dwErrorCode); return (dwErrorCode == ERROR_SUCCESS); } + +BOOL WINAPI +SetPortA(PSTR pName, PSTR pPortName, DWORD dwLevel, PBYTE pPortInfo) +{ + TRACE("SetPortA(%s, %s, %lu, %p)\n", pName, pPortName, dwLevel, pPortInfo); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +SetPortW(PWSTR pName, PWSTR pPortName, DWORD dwLevel, PBYTE pPortInfo) +{ + TRACE("SetPortW(%S, %S, %lu, %p)\n", pName, pPortName, dwLevel, pPortInfo); + UNIMPLEMENTED; + return FALSE; +} diff --git a/win32ss/printing/base/winspool/printerdata.c b/win32ss/printing/base/winspool/printerdata.c index 8904bb74d35..aefa944872f 100644 --- a/win32ss/printing/base/winspool/printerdata.c +++ b/win32ss/printing/base/winspool/printerdata.c @@ -7,12 +7,116 @@ #include "precomp.h" +LONG WINAPI +AdvancedDocumentPropertiesA(HWND hWnd, HANDLE hPrinter, PSTR pDeviceName, PDEVMODEA pDevModeOutput, PDEVMODEA pDevModeInput) +{ + TRACE("AdvancedDocumentPropertiesA(%p, %p, %s, %p, %p)\n", hWnd, hPrinter, pDeviceName, pDevModeOutput, pDevModeInput); + UNIMPLEMENTED; + return 0; +} + LONG WINAPI AdvancedDocumentPropertiesW(HWND hWnd, HANDLE hPrinter, PWSTR pDeviceName, PDEVMODEW pDevModeOutput, PDEVMODEW pDevModeInput) { TRACE("AdvancedDocumentPropertiesW(%p, %p, %S, %p, %p)\n", hWnd, hPrinter, pDeviceName, pDevModeOutput, pDevModeInput); UNIMPLEMENTED; - return FALSE; + return 0; +} + +DWORD WINAPI +DeletePrinterDataA(HANDLE hPrinter, PSTR pValueName) +{ + TRACE("DeletePrinterDataA(%p, %s)\n", hPrinter, pValueName); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +DeletePrinterDataExA(HANDLE hPrinter, PCSTR pKeyName, PCSTR pValueName) +{ + TRACE("DeletePrinterDataExA(%p, %s, %s)\n", hPrinter, pKeyName, pValueName); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +DeletePrinterDataExW(HANDLE hPrinter, PCWSTR pKeyName, PCWSTR pValueName) +{ + TRACE("DeletePrinterDataExW(%p, %S, %S)\n", hPrinter, pKeyName, pValueName); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +DeletePrinterDataW(HANDLE hPrinter, PWSTR pValueName) +{ + TRACE("DeletePrinterDataW(%p, %S)\n", hPrinter, pValueName); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +DeletePrinterKeyA(HANDLE hPrinter, PCSTR pKeyName) +{ + TRACE("DeletePrinterKeyA(%p, %s)\n", hPrinter, pKeyName); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +DeletePrinterKeyW(HANDLE hPrinter, PCWSTR pKeyName) +{ + TRACE("DeletePrinterKeyW(%p, %S)\n", hPrinter, pKeyName); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +EnumPrinterDataA(HANDLE hPrinter, DWORD dwIndex, PSTR pValueName, DWORD cbValueName, PDWORD pcbValueName, PDWORD pType, PBYTE pData, DWORD cbData, PDWORD pcbData) +{ + TRACE("EnumPrinterDataA(%p, %lu, %s, %lu, %p, %p, %p, %lu, %p)\n", hPrinter, dwIndex, pValueName, cbValueName, pcbValueName, pType, pData, cbData, pcbData); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +EnumPrinterDataExA(HANDLE hPrinter, PCSTR pKeyName, PBYTE pEnumValues, DWORD cbEnumValues, PDWORD pcbEnumValues, PDWORD pnEnumValues) +{ + TRACE("EnumPrinterDataExA(%p, %s, %p, %lu, %p, %p)\n", hPrinter, pKeyName, pEnumValues, cbEnumValues, pcbEnumValues, pnEnumValues); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +EnumPrinterDataExW(HANDLE hPrinter, PCWSTR pKeyName, PBYTE pEnumValues, DWORD cbEnumValues, PDWORD pcbEnumValues, PDWORD pnEnumValues) +{ + TRACE("EnumPrinterDataExW(%p, %S, %p, %lu, %p, %p)\n", hPrinter, pKeyName, pEnumValues, cbEnumValues, pcbEnumValues, pnEnumValues); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +EnumPrinterDataW(HANDLE hPrinter, DWORD dwIndex, PWSTR pValueName, DWORD cbValueName, PDWORD pcbValueName, PDWORD pType, PBYTE pData, DWORD cbData, PDWORD pcbData) +{ + TRACE("EnumPrinterDataW(%p, %lu, %S, %lu, %p, %p, %p, %lu, %p)\n", hPrinter, dwIndex, pValueName, cbValueName, pcbValueName, pType, pData, cbData, pcbData); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +EnumPrinterKeyA(HANDLE hPrinter, PCSTR pKeyName, PSTR pSubkey, DWORD cbSubkey, PDWORD pcbSubkey) +{ + TRACE("EnumPrinterKeyA(%p, %s, %s, %lu, %p)\n", hPrinter, pKeyName, pSubkey, cbSubkey, pcbSubkey); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; +} + +DWORD WINAPI +EnumPrinterKeyW(HANDLE hPrinter, PCWSTR pKeyName, PWSTR pSubkey, DWORD cbSubkey, PDWORD pcbSubkey) +{ + TRACE("EnumPrinterKeyW(%p, %S, %S, %lu, %p)\n", hPrinter, pKeyName, pSubkey, cbSubkey, pcbSubkey); + UNIMPLEMENTED; + return ERROR_NOT_SUPPORTED; } DWORD WINAPI diff --git a/win32ss/printing/base/winspool/printerdrivers.c b/win32ss/printing/base/winspool/printerdrivers.c index d35e8045715..de877810856 100644 --- a/win32ss/printing/base/winspool/printerdrivers.c +++ b/win32ss/printing/base/winspool/printerdrivers.c @@ -7,6 +7,30 @@ #include "precomp.h" +BOOL WINAPI +AddPrinterDriverA(PSTR pName, DWORD Level, PBYTE pDriverInfo) +{ + TRACE("AddPrinterDriverA(%s, %lu, %p)\n", pName, Level, pDriverInfo); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +AddPrinterDriverExA(PSTR pName, DWORD Level, PBYTE pDriverInfo, DWORD dwFileCopyFlags) +{ + TRACE("AddPrinterDriverExA(%s, %lu, %p, %lu)\n", pName, Level, pDriverInfo, dwFileCopyFlags); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +AddPrinterDriverExW(PWSTR pName, DWORD Level, PBYTE pDriverInfo, DWORD dwFileCopyFlags) +{ + TRACE("AddPrinterDriverExW(%S, %lu, %p, %lu)\n", pName, Level, pDriverInfo, dwFileCopyFlags); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI AddPrinterDriverW(PWSTR pName, DWORD Level, PBYTE pDriverInfo) { @@ -15,6 +39,30 @@ AddPrinterDriverW(PWSTR pName, DWORD Level, PBYTE pDriverInfo) return FALSE; } +BOOL WINAPI +DeletePrinterDriverA(PSTR pName, PSTR pEnvironment, PSTR pDriverName) +{ + TRACE("DeletePrinterDriverA(%s, %s, %s)\n", pName, pEnvironment, pDriverName); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +DeletePrinterDriverExA(PSTR pName, PSTR pEnvironment, PSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag) +{ + TRACE("DeletePrinterDriverExA(%s, %s, %s, %lu, %lu)\n", pName, pEnvironment, pDriverName, dwDeleteFlag, dwVersionFlag); + UNIMPLEMENTED; + return FALSE; +} + +BOOL WINAPI +DeletePrinterDriverExW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag) +{ + TRACE("DeletePrinterDriverExW(%S, %S, %S, %lu, %lu)\n", pName, pEnvironment, pDriverName, dwDeleteFlag, dwVersionFlag); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI DeletePrinterDriverW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName) { @@ -23,6 +71,14 @@ DeletePrinterDriverW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName) return FALSE; } +BOOL WINAPI +EnumPrinterDriversA(PSTR pName, PSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) +{ + TRACE("EnumPrinterDriversA(%s, %s, %lu, %p, %lu, %p, %p)\n", pName, pEnvironment, Level, pDriverInfo, cbBuf, pcbNeeded, pcReturned); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI EnumPrinterDriversW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) { diff --git a/win32ss/printing/base/winspool/printers.c b/win32ss/printing/base/winspool/printers.c index 72837570989..ffe18230897 100644 --- a/win32ss/printing/base/winspool/printers.c +++ b/win32ss/printing/base/winspool/printers.c @@ -212,6 +212,22 @@ _StartDocPrinterWithRPC(PSPOOLER_HANDLE pHandle, PDOC_INFO_1W pDocInfo1) return dwErrorCode; } +BOOL WINAPI +AbortPrinter(HANDLE hPrinter) +{ + TRACE("AbortPrinter(%p)\n", hPrinter); + UNIMPLEMENTED; + return FALSE; +} + +HANDLE WINAPI +AddPrinterA(PSTR pName, DWORD Level, PBYTE pPrinter) +{ + TRACE("AddPrinterA(%s, %lu, %p)\n", pName, Level, pPrinter); + UNIMPLEMENTED; + return NULL; +} + HANDLE WINAPI AddPrinterW(PWSTR pName, DWORD Level, PBYTE pPrinter) { @@ -259,10 +275,19 @@ Cleanup: return (dwErrorCode == ERROR_SUCCESS); } +BOOL WINAPI +DeletePrinter(HANDLE hPrinter) +{ + TRACE("DeletePrinter(%p)\n", hPrinter); + UNIMPLEMENTED; + return FALSE; +} + DWORD WINAPI DeviceCapabilitiesA(LPCSTR pDevice, LPCSTR pPort, WORD fwCapability, LPSTR pOutput, const DEVMODEA* pDevMode) { TRACE("DeviceCapabilitiesA(%s, %s, %hu, %p, %p)\n", pDevice, pPort, fwCapability, pOutput, pDevMode); + UNIMPLEMENTED; return 0; } @@ -270,6 +295,7 @@ DWORD WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort, WORD fwCapability, LPWSTR pOutput, const DEVMODEW* pDevMode) { TRACE("DeviceCapabilitiesW(%S, %S, %hu, %p, %p)\n", pDevice, pPort, fwCapability, pOutput, pDevMode); + UNIMPLEMENTED; return 0; } @@ -277,14 +303,16 @@ LONG WINAPI DocumentPropertiesA(HWND hWnd, HANDLE hPrinter, LPSTR pDeviceName, PDEVMODEA pDevModeOutput, PDEVMODEA pDevModeInput, DWORD fMode) { TRACE("DocumentPropertiesA(%p, %p, %s, %p, %p, %lu)\n", hWnd, hPrinter, pDeviceName, pDevModeOutput, pDevModeInput, fMode); - return 0; + UNIMPLEMENTED; + return -1; } LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter, LPWSTR pDeviceName, PDEVMODEW pDevModeOutput, PDEVMODEW pDevModeInput, DWORD fMode) { TRACE("DocumentPropertiesW(%p, %p, %S, %p, %p, %lu)\n", hWnd, hPrinter, pDeviceName, pDevModeOutput, pDevModeInput, fMode); - return 0; + UNIMPLEMENTED; + return -1; } BOOL WINAPI @@ -432,6 +460,14 @@ Cleanup: return (dwErrorCode == ERROR_SUCCESS); } +BOOL WINAPI +FlushPrinter(HANDLE hPrinter, PVOID pBuf, DWORD cbBuf, PDWORD pcWritten, DWORD cSleep) +{ + TRACE("FlushPrinter(%p, %p, %lu, %p, %lu)\n", hPrinter, pBuf, cbBuf, pcWritten, cSleep); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI GetDefaultPrinterA(LPSTR pszBuffer, LPDWORD pcchBuffer) { @@ -790,6 +826,14 @@ Cleanup: return (dwErrorCode == ERROR_SUCCESS); } +BOOL WINAPI +ResetPrinterA(HANDLE hPrinter, PPRINTER_DEFAULTSA pDefault) +{ + TRACE("ResetPrinterA(%p, %p)\n", hPrinter, pDefault); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI ResetPrinterW(HANDLE hPrinter, PPRINTER_DEFAULTSW pDefault) { @@ -944,6 +988,14 @@ Cleanup: return (dwErrorCode == ERROR_SUCCESS); } +BOOL WINAPI +SetPrinterA(HANDLE hPrinter, DWORD Level, PBYTE pPrinter, DWORD Command) +{ + TRACE("SetPrinterA(%p, %lu, %p, %lu)\n", hPrinter, Level, pPrinter, Command); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI SetPrinterW(HANDLE hPrinter, DWORD Level, PBYTE pPrinter, DWORD Command) { diff --git a/win32ss/printing/base/winspool/printprocessors.c b/win32ss/printing/base/winspool/printprocessors.c index 0e5acc7ef6f..406297de6f0 100644 --- a/win32ss/printing/base/winspool/printprocessors.c +++ b/win32ss/printing/base/winspool/printprocessors.c @@ -1,9 +1,9 @@ /* - * PROJECT: ReactOS Spooler API - * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) - * PURPOSE: Functions related to Print Processors - * COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org) - */ +* PROJECT: ReactOS Spooler API +* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) +* PURPOSE: Functions related to Print Processors +* COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org) +*/ #include "precomp.h" #include @@ -26,6 +26,14 @@ _MarshallUpPrintProcessorInfo(PPRINTPROCESSOR_INFO_1W* ppPrintProcessorInfo1) *ppPrintProcessorInfo1 += sizeof(PRINTPROCESSOR_INFO_1W); } +BOOL WINAPI +AddPrintProcessorA(PSTR pName, PSTR pEnvironment, PSTR pPathName, PSTR pPrintProcessorName) +{ + TRACE("AddPrintProcessorA(%s, %s, %s, %s)\n", pName, pEnvironment, pPathName, pPrintProcessorName); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI AddPrintProcessorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPathName, PWSTR pPrintProcessorName) { @@ -34,6 +42,14 @@ AddPrintProcessorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPathName, PWSTR pPrin return FALSE; } +BOOL WINAPI +DeletePrintProcessorA(PSTR pName, PSTR pEnvironment, PSTR pPrintProcessorName) +{ + TRACE("DeletePrintProcessorA(%s, %s, %s)\n", pName, pEnvironment, pPrintProcessorName); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI DeletePrintProcessorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPrintProcessorName) { @@ -69,7 +85,7 @@ EnumPrintProcessorDatatypesW(PWSTR pName, LPWSTR pPrintProcessorName, DWORD Leve { dwErrorCode = _RpcEnumPrintProcessorDatatypes(pName, pPrintProcessorName, Level, pDatatypes, cbBuf, pcbNeeded, pcReturned); } - RpcExcept(EXCEPTION_EXECUTE_HANDLER) + RpcExcept(EXCEPTION_EXECUTE_HANDLER) { dwErrorCode = RpcExceptionCode(); ERR("_RpcEnumPrintProcessorDatatypes failed with exception code %lu!\n", dwErrorCode); @@ -90,6 +106,14 @@ Cleanup: return (dwErrorCode == ERROR_SUCCESS); } +BOOL WINAPI +EnumPrintProcessorsA(PSTR pName, PSTR pEnvironment, DWORD Level, PBYTE pPrintProcessorInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) +{ + TRACE("EnumPrintProcessorsA(%s, %s, %lu, %p, %lu, %p, %p)\n", pName, pEnvironment, Level, pPrintProcessorInfo, cbBuf, pcbNeeded, pcReturned); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI EnumPrintProcessorsW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pPrintProcessorInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) { @@ -106,7 +130,7 @@ EnumPrintProcessorsW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pPrintP { dwErrorCode = _RpcEnumPrintProcessors(pName, pEnvironment, Level, pPrintProcessorInfo, cbBuf, pcbNeeded, pcReturned); } - RpcExcept(EXCEPTION_EXECUTE_HANDLER) + RpcExcept(EXCEPTION_EXECUTE_HANDLER) { dwErrorCode = RpcExceptionCode(); } @@ -226,7 +250,7 @@ GetPrintProcessorDirectoryW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE { dwErrorCode = _RpcGetPrintProcessorDirectory(pName, pEnvironment, Level, pPrintProcessorInfo, cbBuf, pcbNeeded); } - RpcExcept(EXCEPTION_EXECUTE_HANDLER) + RpcExcept(EXCEPTION_EXECUTE_HANDLER) { dwErrorCode = RpcExceptionCode(); } diff --git a/win32ss/printing/base/winspool/printproviders.c b/win32ss/printing/base/winspool/printproviders.c index 3ad4894bb2e..58efb89f202 100644 --- a/win32ss/printing/base/winspool/printproviders.c +++ b/win32ss/printing/base/winspool/printproviders.c @@ -7,6 +7,14 @@ #include "precomp.h" +BOOL WINAPI +AddPrintProvidorA(PSTR pName, DWORD Level, PBYTE pProviderInfo) +{ + TRACE("AddPrintProvidorA(%s, %lu, %p)\n", pName, Level, pProviderInfo); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI AddPrintProvidorW(PWSTR pName, DWORD Level, PBYTE pProviderInfo) { @@ -15,6 +23,14 @@ AddPrintProvidorW(PWSTR pName, DWORD Level, PBYTE pProviderInfo) return FALSE; } +BOOL WINAPI +DeletePrintProvidorA(PSTR pName, PSTR pEnvironment, PSTR pPrintProviderName) +{ + TRACE("DeletePrintProvidorW(%s, %s, %s)\n", pName, pEnvironment, pPrintProviderName); + UNIMPLEMENTED; + return FALSE; +} + BOOL WINAPI DeletePrintProvidorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPrintProviderName) { diff --git a/win32ss/printing/base/winspool/winspool.spec b/win32ss/printing/base/winspool/winspool.spec index 1083ebcf0e1..5d8fed463e5 100644 --- a/win32ss/printing/base/winspool/winspool.spec +++ b/win32ss/printing/base/winspool/winspool.spec @@ -6,67 +6,67 @@ 105 stub PerfCollect 106 stub PerfOpen 107 stub ADVANCEDSETUPDIALOG -108 stub AbortPrinter -109 stub AddFormA -110 stub AddFormW -111 stdcall AddJobA(long long ptr long ptr) -112 stdcall AddJobW(long long ptr long ptr) -113 stub AddMonitorA +108 stdcall AbortPrinter(ptr) +109 stdcall AddFormA(ptr long ptr) +110 stdcall AddFormW(ptr long ptr) +111 stdcall AddJobA(ptr long ptr long ptr) +112 stdcall AddJobW(ptr long ptr long ptr) +113 stdcall AddMonitorA(str long ptr) 114 stdcall AddMonitorW(wstr long ptr) -115 stub AddPortA -116 stub AddPortExA -117 stub AddPortExW -118 stdcall AddPortW(wstr long wstr) -119 stub AddPrintProcessorA +115 stdcall AddPortA(str ptr str) +116 stdcall AddPortExA(str long ptr str) +117 stdcall AddPortExW(wstr long ptr wstr) +118 stdcall AddPortW(wstr ptr wstr) +119 stdcall AddPrintProcessorA(str str str str) 120 stdcall AddPrintProcessorW(wstr wstr wstr wstr) -121 stub AddPrintProvidorA +121 stdcall AddPrintProvidorA(str long ptr) 122 stdcall AddPrintProvidorW(wstr long ptr) -123 stub AddPrinterA +123 stdcall AddPrinterA(str long ptr) 124 stub AddPrinterConnectionA 125 stub AddPrinterConnectionW -126 stub AddPrinterDriverA -127 stub AddPrinterDriverExA -128 stub AddPrinterDriverExW +126 stdcall AddPrinterDriverA(str long ptr) +127 stdcall AddPrinterDriverExA(str long ptr long) +128 stdcall AddPrinterDriverExW(wstr long ptr long) 129 stdcall AddPrinterDriverW(wstr long ptr) 130 stdcall AddPrinterW(wstr long ptr) -131 stub AdvancedDocumentPropertiesA -132 stdcall AdvancedDocumentPropertiesW(long long wstr ptr ptr) +131 stdcall AdvancedDocumentPropertiesA(ptr ptr str ptr ptr) +132 stdcall AdvancedDocumentPropertiesW(ptr ptr wstr ptr ptr) 133 stub AdvancedSetupDialog -134 stdcall ClosePrinter(long) +134 stdcall ClosePrinter(ptr) 135 stub CloseSpoolFileHandle 136 stub CommitSpoolData -137 stub ConfigurePortA -138 stdcall ConfigurePortW(wstr long wstr) +137 stdcall ConfigurePortA(str ptr str) +138 stdcall ConfigurePortW(wstr ptr wstr) 139 stub ConnectToPrinterDlg 140 stub ConvertAnsiDevModeToUnicodeDevmode 141 stub ConvertUnicodeDevModeToAnsiDevmode 142 stub CreatePrinterIC 143 stub DEVICECAPABILITIES 144 stub DEVICEMODE -145 stub DeleteFormA -146 stub DeleteFormW -147 stub DeleteMonitorA +145 stdcall DeleteFormA(ptr str) +146 stdcall DeleteFormW(ptr wstr) +147 stdcall DeleteMonitorA(str str str) 148 stdcall DeleteMonitorW(wstr wstr wstr) -149 stub DeletePortA -150 stdcall DeletePortW(wstr long wstr) -151 stub DeletePrintProcessorA +149 stdcall DeletePortA(str ptr str) +150 stdcall DeletePortW(wstr ptr wstr) +151 stdcall DeletePrintProcessorA(str str str) 152 stdcall DeletePrintProcessorW(wstr wstr wstr) -153 stub DeletePrintProvidorA +153 stdcall DeletePrintProvidorA(str str str) 154 stdcall DeletePrintProvidorW(wstr wstr wstr) -155 stub DeletePrinter +155 stdcall DeletePrinter(ptr) 156 stub DeletePrinterConnectionA 157 stub DeletePrinterConnectionW -158 stub DeletePrinterDataA -159 stub DeletePrinterDataExA -160 stub DeletePrinterDataExW -161 stub DeletePrinterDataW -162 stub DeletePrinterDriverA -163 stub DeletePrinterDriverExA -164 stub DeletePrinterDriverExW +158 stdcall DeletePrinterDataA(ptr str) +159 stdcall DeletePrinterDataExA(ptr str str) +160 stdcall DeletePrinterDataExW(ptr wstr wstr) +161 stdcall DeletePrinterDataW(ptr wstr) +162 stdcall DeletePrinterDriverA(str str str) +163 stdcall DeletePrinterDriverExA(str str str long long) +164 stdcall DeletePrinterDriverExW(wstr wstr wstr long long) 165 stdcall DeletePrinterDriverW(wstr wstr wstr) 166 stub DeletePrinterIC -167 stub DeletePrinterKeyA -168 stub DeletePrinterKeyW +167 stdcall DeletePrinterKeyA(ptr str) +168 stdcall DeletePrinterKeyW(ptr wstr) 169 stub DevQueryPrint 170 stub DevQueryPrintEx 171 stub DeviceCapabilities @@ -75,29 +75,29 @@ 174 stub DeviceMode 175 stub DevicePropertySheets 176 stub DocumentEvent -177 stdcall DocumentPropertiesA(long long ptr ptr ptr long) -178 stdcall DocumentPropertiesW(long long ptr ptr ptr long) +177 stdcall DocumentPropertiesA(ptr ptr ptr ptr ptr long) +178 stdcall DocumentPropertiesW(ptr ptr ptr ptr ptr long) 179 stub DocumentPropertySheets 180 stub EXTDEVICEMODE -181 stdcall EndDocPrinter(long) -182 stdcall EndPagePrinter(long) -183 stub EnumFormsA -184 stub EnumFormsW -185 stdcall EnumJobsA(long long long long ptr long ptr ptr) -186 stdcall EnumJobsW(long long long long ptr long ptr ptr) -187 stub EnumMonitorsA +181 stdcall EndDocPrinter(ptr) +182 stdcall EndPagePrinter(ptr) +183 stdcall EnumFormsA(ptr long ptr long ptr ptr) +184 stdcall EnumFormsW(ptr long ptr long ptr ptr) +185 stdcall EnumJobsA(ptr long long long ptr long ptr ptr) +186 stdcall EnumJobsW(ptr long long long ptr long ptr ptr) +187 stdcall EnumMonitorsA(str long ptr long ptr ptr) 188 stdcall EnumMonitorsW(wstr long ptr long ptr ptr) -189 stub EnumPortsA +189 stdcall EnumPortsA(str long ptr long ptr ptr) 190 stdcall EnumPortsW(wstr long ptr long ptr ptr) 191 stdcall EnumPrintProcessorDatatypesA(ptr ptr long ptr long ptr ptr) 192 stdcall EnumPrintProcessorDatatypesW(ptr ptr long ptr long ptr ptr) -193 stub EnumPrintProcessorsA -194 stdcall EnumPrintProcessorsW(ptr ptr long ptr long ptr ptr) -195 stub EnumPrinterDataA -196 stub EnumPrinterDataExA -197 stub EnumPrinterDataExW -198 stub EnumPrinterDataW -199 stub EnumPrinterDriversA +193 stdcall EnumPrintProcessorsA(str str long ptr long ptr ptr) +194 stdcall EnumPrintProcessorsW(wstr wstr long ptr long ptr ptr) +195 stdcall EnumPrinterDataA(ptr long str long ptr ptr ptr long ptr) +196 stdcall EnumPrinterDataExA(ptr str ptr long ptr ptr) +197 stdcall EnumPrinterDataExW(ptr wstr ptr long ptr ptr) +198 stdcall EnumPrinterDataW(ptr long wstr long ptr ptr ptr long ptr) +199 stdcall EnumPrinterDriversA(str str long ptr long ptr ptr) 200 stdcall EnumPrinterDriversW(wstr wstr long ptr long ptr ptr) 201 stdcall GetDefaultPrinterA(ptr ptr) 202 stdcall SetDefaultPrinterA(str) @@ -123,7 +123,7 @@ 222 stub -noname SendRecvBidiData 223 stub -noname RouterFreeBidiResponseContainer 224 stub -noname ExternalConnectToLd64In32Server -225 stub EnumPrinterKeyA +225 stdcall EnumPrinterKeyA(ptr str str long ptr) 226 stub -noname PrintUIWebPnpEntry 227 stub -noname PrintUIWebPnpPostEntry 228 stub -noname PrintUICreateInstance @@ -131,31 +131,31 @@ 230 stub -noname PrintUIPrinterSetup 231 stub -noname PrintUIServerPropPages 232 stub -noname AddDriverCatalog -233 stub EnumPrinterKeyW +233 stdcall EnumPrinterKeyW(ptr wstr wstr long ptr) 234 stdcall EnumPrintersA(long ptr long ptr long ptr ptr) 235 stdcall EnumPrintersW(long ptr long ptr long ptr ptr) 236 stub ExtDeviceMode 237 stub FindClosePrinterChangeNotification 238 stub FindFirstPrinterChangeNotification 239 stub FindNextPrinterChangeNotification -240 stub FlushPrinter +240 stdcall FlushPrinter(ptr ptr long ptr long) 241 stub FreePrinterNotifyInfo -242 stub GetFormA -243 stub GetFormW -244 stdcall GetJobA(long long long ptr long ptr) -245 stdcall GetJobW(long long long ptr long ptr) +242 stdcall GetFormA(ptr str long ptr long ptr) +243 stdcall GetFormW(ptr str long ptr long ptr) +244 stdcall GetJobA(ptr long long ptr long ptr) +245 stdcall GetJobW(ptr long long ptr long ptr) 246 stdcall GetPrintProcessorDirectoryA(str str long ptr long ptr) 247 stdcall GetPrintProcessorDirectoryW(wstr wstr long ptr long ptr) -248 stdcall GetPrinterA(long long ptr long ptr) -249 stdcall GetPrinterDataA(long str ptr ptr long ptr) -250 stdcall GetPrinterDataExA(long str str ptr ptr long ptr) -251 stdcall GetPrinterDataExW(long wstr wstr ptr ptr long ptr) -252 stdcall GetPrinterDataW(long wstr ptr ptr long ptr) -253 stdcall GetPrinterDriverA(long str long ptr long ptr) +248 stdcall GetPrinterA(ptr long ptr long ptr) +249 stdcall GetPrinterDataA(ptr str ptr ptr long ptr) +250 stdcall GetPrinterDataExA(ptr str str ptr ptr long ptr) +251 stdcall GetPrinterDataExW(ptr wstr wstr ptr ptr long ptr) +252 stdcall GetPrinterDataW(ptr wstr ptr ptr long ptr) +253 stdcall GetPrinterDriverA(ptr str long ptr long ptr) 254 stdcall -stub GetPrinterDriverDirectoryA(str str long ptr long ptr) 255 stdcall GetPrinterDriverDirectoryW(wstr wstr long ptr long ptr) -256 stdcall GetPrinterDriverW(long wstr long ptr long ptr) -257 stdcall GetPrinterW(long long ptr long ptr) +256 stdcall GetPrinterDriverW(ptr wstr long ptr long ptr) +257 stdcall GetPrinterW(ptr long ptr long ptr) 258 stub GetSpoolFileHandle 259 stdcall IsValidDevmodeA(ptr long) 260 stdcall IsValidDevmodeW(ptr long) @@ -168,33 +168,33 @@ 267 stub QueryColorProfile 268 stub QueryRemoteFonts 269 stub QuerySpoolMode -270 stdcall ReadPrinter(long ptr long ptr) -271 stub ResetPrinterA -272 stdcall ResetPrinterW(long ptr) -273 stdcall ScheduleJob(long long) +270 stdcall ReadPrinter(ptr ptr long ptr) +271 stdcall ResetPrinterA(ptr ptr) +272 stdcall ResetPrinterW(ptr ptr) +273 stdcall ScheduleJob(ptr long) 274 stub SeekPrinter 275 stub SetAllocFailCount -276 stub SetFormA -277 stub SetFormW -278 stdcall SetJobA(long long long ptr long) -279 stdcall SetJobW(long long long ptr long) -280 stub SetPortA -281 stub SetPortW -282 stub SetPrinterA -283 stdcall SetPrinterDataA(long str long ptr long) -284 stdcall SetPrinterDataExA(long str str long ptr long) -285 stdcall SetPrinterDataExW(long wstr wstr long ptr long) -286 stdcall SetPrinterDataW(long wstr long ptr long) -287 stdcall SetPrinterW(long long ptr long) +276 stdcall SetFormA(ptr str long str) +277 stdcall SetFormW(ptr str long str) +278 stdcall SetJobA(ptr long long ptr long) +279 stdcall SetJobW(ptr long long ptr long) +280 stdcall SetPortA(str str long ptr) +281 stdcall SetPortW(wstr wstr long ptr) +282 stdcall SetPrinterA(ptr long ptr long) +283 stdcall SetPrinterDataA(ptr str long ptr long) +284 stdcall SetPrinterDataExA(ptr str str long ptr long) +285 stdcall SetPrinterDataExW(ptr wstr wstr long ptr long) +286 stdcall SetPrinterDataW(ptr wstr long ptr long) +287 stdcall SetPrinterW(ptr long ptr long) 288 stub SplDriverUnloadComplete 289 stub SpoolerDevQueryPrintW 290 stdcall SpoolerInit() 291 stub SpoolerPrinterEvent 292 stub StartDocDlgA 293 stub StartDocDlgW -294 stdcall StartDocPrinterA(long long ptr) -295 stdcall StartDocPrinterW(long long ptr) -296 stdcall StartPagePrinter(long) +294 stdcall StartDocPrinterA(ptr long ptr) +295 stdcall StartDocPrinterW(ptr long ptr) +296 stdcall StartPagePrinter(ptr) 297 stub WaitForPrinterChange -298 stdcall WritePrinter(long ptr long ptr) -299 stdcall XcvDataW(long wstr ptr long ptr long ptr ptr) +298 stdcall WritePrinter(ptr ptr long ptr) +299 stdcall XcvDataW(ptr wstr ptr long ptr long ptr ptr) -- 2.17.1