[WINSPOOL] Add tracing to all exported APIs.

This commit is contained in:
Colin Finck 2017-12-09 12:00:09 +01:00
parent 45b9b5c1ef
commit 1f6f08eca0
10 changed files with 112 additions and 7 deletions

View file

@ -2,7 +2,7 @@
* PROJECT: ReactOS Spooler API * PROJECT: ReactOS Spooler API
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Functions giving information about DEVMODE structures * PURPOSE: Functions giving information about DEVMODE structures
* COPYRIGHT: Copyright 2016 Colin Finck (colin@reactos.org) * COPYRIGHT: Copyright 2016-2017 Colin Finck (colin@reactos.org)
*/ */
#include "precomp.h" #include "precomp.h"
@ -136,6 +136,8 @@ IsValidDevmodeA(PDEVMODEA pDevmode, size_t DevmodeSize)
PMINIMUM_SIZE_TABLE pTable = MinimumSizeA; PMINIMUM_SIZE_TABLE pTable = MinimumSizeA;
WORD wRequiredSize; WORD wRequiredSize;
TRACE("IsValidDevmodeA(%p, %lu)\n", pDevmode, DevmodeSize);
// Check if a Devmode was given at all. // Check if a Devmode was given at all.
if (!pDevmode) if (!pDevmode)
goto Failure; goto Failure;
@ -186,6 +188,8 @@ IsValidDevmodeW(PDEVMODEW pDevmode, size_t DevmodeSize)
PMINIMUM_SIZE_TABLE pTable = MinimumSizeW; PMINIMUM_SIZE_TABLE pTable = MinimumSizeW;
WORD wRequiredSize; WORD wRequiredSize;
TRACE("IsValidDevmodeW(%p, %lu)\n", pDevmode, DevmodeSize);
// Check if a Devmode was given at all. // Check if a Devmode was given at all.
if (!pDevmode) if (!pDevmode)
goto Failure; goto Failure;

View file

@ -2,7 +2,7 @@
* PROJECT: ReactOS Spooler API * PROJECT: ReactOS Spooler API
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Functions for managing print jobs * PURPOSE: Functions for managing print jobs
* COPYRIGHT: Copyright 2015 Colin Finck (colin@reactos.org) * COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org)
*/ */
#include "precomp.h" #include "precomp.h"
@ -59,6 +59,7 @@ _MarshallUpJobInfo(PBYTE pJobInfo, DWORD Level)
BOOL WINAPI BOOL WINAPI
AddJobA(HANDLE hPrinter, DWORD Level, PBYTE pData, DWORD cbBuf, PDWORD pcbNeeded) AddJobA(HANDLE hPrinter, DWORD Level, PBYTE pData, DWORD cbBuf, PDWORD pcbNeeded)
{ {
TRACE("AddJobA(%p, %lu, %p, %lu, %p)\n", hPrinter, Level, pData, cbBuf, pcbNeeded);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -69,6 +70,8 @@ AddJobW(HANDLE hPrinter, DWORD Level, PBYTE pData, DWORD cbBuf, PDWORD pcbNeeded
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("AddJobW(%p, %lu, %p, %lu, %p)\n", hPrinter, Level, pData, cbBuf, pcbNeeded);
if (!pHandle) if (!pHandle)
{ {
dwErrorCode = ERROR_INVALID_HANDLE; dwErrorCode = ERROR_INVALID_HANDLE;
@ -98,6 +101,7 @@ Cleanup:
BOOL WINAPI BOOL WINAPI
EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, DWORD Level, PBYTE pJob, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, DWORD Level, PBYTE pJob, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
{ {
TRACE("EnumJobsA(%p, %lu, %lu, %lu, %p, %lu, %p, %p)\n", hPrinter, FirstJob, NoJobs, Level, pJob, cbBuf, pcbNeeded, pcReturned);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -110,6 +114,8 @@ EnumJobsW(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, DWORD Level, PBYTE pJob
PBYTE p = pJob; PBYTE p = pJob;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("EnumJobsW(%p, %lu, %lu, %lu, %p, %lu, %p, %p)\n", hPrinter, FirstJob, NoJobs, Level, pJob, cbBuf, pcbNeeded, pcReturned);
if (!pHandle) if (!pHandle)
{ {
dwErrorCode = ERROR_INVALID_HANDLE; dwErrorCode = ERROR_INVALID_HANDLE;
@ -150,6 +156,7 @@ Cleanup:
BOOL WINAPI BOOL WINAPI
GetJobA(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJob, DWORD cbBuf, PDWORD pcbNeeded) GetJobA(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJob, DWORD cbBuf, PDWORD pcbNeeded)
{ {
TRACE("GetJobA(%p, %lu, %lu, %p, %lu, %p)\n", hPrinter, JobId, Level, pJob, cbBuf, pcbNeeded);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -160,6 +167,8 @@ GetJobW(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJob, DWORD cbBuf, PDWO
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("GetJobW(%p, %lu, %lu, %p, %lu, %p)\n", hPrinter, JobId, Level, pJob, cbBuf, pcbNeeded);
if (!pHandle) if (!pHandle)
{ {
dwErrorCode = ERROR_INVALID_HANDLE; dwErrorCode = ERROR_INVALID_HANDLE;
@ -195,6 +204,8 @@ ScheduleJob(HANDLE hPrinter, DWORD dwJobID)
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("ScheduleJob(%p, %lu)\n", hPrinter, dwJobID);
if (!pHandle) if (!pHandle)
{ {
dwErrorCode = ERROR_INVALID_HANDLE; dwErrorCode = ERROR_INVALID_HANDLE;
@ -221,6 +232,7 @@ Cleanup:
BOOL WINAPI BOOL WINAPI
SetJobA(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJobInfo, DWORD Command) SetJobA(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJobInfo, DWORD Command)
{ {
TRACE("SetJobA(%p, %lu, %lu, %p, %lu)\n", hPrinter, JobId, Level, pJobInfo, Command);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -232,6 +244,8 @@ SetJobW(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJobInfo, DWORD Command
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
WINSPOOL_JOB_CONTAINER JobContainer; WINSPOOL_JOB_CONTAINER JobContainer;
TRACE("SetJobW(%p, %lu, %lu, %p, %lu)\n", hPrinter, JobId, Level, pJobInfo, Command);
if (!pHandle) if (!pHandle)
{ {
dwErrorCode = ERROR_INVALID_HANDLE; dwErrorCode = ERROR_INVALID_HANDLE;

View file

@ -2,7 +2,7 @@
* PROJECT: ReactOS Spooler API * PROJECT: ReactOS Spooler API
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Main functions * PURPOSE: Main functions
* COPYRIGHT: Copyright 2015 Colin Finck (colin@reactos.org) * COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org)
*/ */
#include "precomp.h" #include "precomp.h"
@ -72,6 +72,8 @@ midl_user_free(void __RPC_FAR* ptr)
BOOL WINAPI BOOL WINAPI
DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{ {
TRACE("DllMain(%p, %lu, %p)\n", hinstDLL, fdwReason, lpvReserved);
switch (fdwReason) switch (fdwReason)
{ {
case DLL_PROCESS_ATTACH: case DLL_PROCESS_ATTACH:
@ -89,6 +91,8 @@ SpoolerInit(VOID)
BOOL bReturnValue = FALSE; BOOL bReturnValue = FALSE;
DWORD dwErrorCode; DWORD dwErrorCode;
TRACE("SpoolerInit()\n");
// Nothing to initialize here yet, but pass this call to the Spool Service as well. // Nothing to initialize here yet, but pass this call to the Spool Service as well.
RpcTryExcept RpcTryExcept
{ {

View file

@ -2,7 +2,7 @@
* PROJECT: ReactOS Spooler API * PROJECT: ReactOS Spooler API
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Functions related to Print Monitors * PURPOSE: Functions related to Print Monitors
* COPYRIGHT: Copyright 2015 Colin Finck (colin@reactos.org) * COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org)
*/ */
#include "precomp.h" #include "precomp.h"
@ -25,6 +25,7 @@ _MarshallUpMonitorInfo(PBYTE pMonitorInfo, DWORD Level)
BOOL WINAPI BOOL WINAPI
AddMonitorW(PWSTR pName, DWORD Level, PBYTE pMonitors) AddMonitorW(PWSTR pName, DWORD Level, PBYTE pMonitors)
{ {
TRACE("AddMonitorW(%S, %lu, %p)\n", pName, Level, pMonitors);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -32,6 +33,7 @@ AddMonitorW(PWSTR pName, DWORD Level, PBYTE pMonitors)
BOOL WINAPI BOOL WINAPI
DeleteMonitorW(PWSTR pName, PWSTR pEnvironment, PWSTR pMonitorName) DeleteMonitorW(PWSTR pName, PWSTR pEnvironment, PWSTR pMonitorName)
{ {
TRACE("DeleteMonitorW(%S, %S, %S)\n", pName, pEnvironment, pMonitorName);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -43,6 +45,8 @@ EnumMonitorsW(PWSTR pName, DWORD Level, PBYTE pMonitors, DWORD cbBuf, PDWORD pcb
DWORD i; DWORD i;
PBYTE p = pMonitors; PBYTE p = pMonitors;
TRACE("EnumMonitorsW(%S, %lu, %p, %lu, %p, %p)\n", pName, Level, pMonitors, cbBuf, pcbNeeded, pcReturned);
// Do the RPC call // Do the RPC call
RpcTryExcept RpcTryExcept
{ {

View file

@ -2,7 +2,7 @@
* PROJECT: ReactOS Spooler API * PROJECT: ReactOS Spooler API
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Functions related to Ports * PURPOSE: Functions related to Ports
* COPYRIGHT: Copyright 2015 Colin Finck (colin@reactos.org) * COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org)
*/ */
#include "precomp.h" #include "precomp.h"
@ -25,6 +25,7 @@ _MarshallUpPortInfo(PBYTE pPortInfo, DWORD Level)
BOOL WINAPI BOOL WINAPI
AddPortW(PWSTR pName, HWND hWnd, PWSTR pMonitorName) AddPortW(PWSTR pName, HWND hWnd, PWSTR pMonitorName)
{ {
TRACE("AddPortW(%S, %p, %S)\n", pName, hWnd, pMonitorName);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -32,6 +33,7 @@ AddPortW(PWSTR pName, HWND hWnd, PWSTR pMonitorName)
BOOL WINAPI BOOL WINAPI
ConfigurePortW(PWSTR pName, HWND hWnd, PWSTR pPortName) ConfigurePortW(PWSTR pName, HWND hWnd, PWSTR pPortName)
{ {
TRACE("ConfigurePortW(%S, %p, %S)\n", pName, hWnd, pPortName);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -39,6 +41,7 @@ ConfigurePortW(PWSTR pName, HWND hWnd, PWSTR pPortName)
BOOL WINAPI BOOL WINAPI
DeletePortW(PWSTR pName, HWND hWnd, PWSTR pPortName) DeletePortW(PWSTR pName, HWND hWnd, PWSTR pPortName)
{ {
TRACE("DeletePortW(%S, %p, %S)\n", pName, hWnd, pPortName);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -50,6 +53,8 @@ EnumPortsW(PWSTR pName, DWORD Level, PBYTE pPorts, DWORD cbBuf, PDWORD pcbNeeded
DWORD i; DWORD i;
PBYTE p = pPorts; PBYTE p = pPorts;
TRACE("EnumPortsW(%S, %lu, %p, %lu, %p, %p)\n", pName, Level, pPorts, cbBuf, pcbNeeded, pcReturned);
// Do the RPC call // Do the RPC call
RpcTryExcept RpcTryExcept
{ {

View file

@ -10,6 +10,7 @@
LONG WINAPI LONG WINAPI
AdvancedDocumentPropertiesW(HWND hWnd, HANDLE hPrinter, PWSTR pDeviceName, PDEVMODEW pDevModeOutput, PDEVMODEW pDevModeInput) 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; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -17,6 +18,7 @@ AdvancedDocumentPropertiesW(HWND hWnd, HANDLE hPrinter, PWSTR pDeviceName, PDEVM
DWORD WINAPI DWORD WINAPI
GetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded) GetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded)
{ {
TRACE("GetPrinterDataA(%p, %s, %p, %p, %lu, %p)\n", hPrinter, pValueName, pType, pData, nSize, pcbNeeded);
return GetPrinterDataExA(hPrinter, "PrinterDriverData", pValueName, pType, pData, nSize, pcbNeeded); return GetPrinterDataExA(hPrinter, "PrinterDriverData", pValueName, pType, pData, nSize, pcbNeeded);
} }
@ -33,6 +35,8 @@ GetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, LPCSTR pValueName, LPDWORD p
PWSTR pwszKeyName = NULL; PWSTR pwszKeyName = NULL;
PWSTR pwszValueName = NULL; PWSTR pwszValueName = NULL;
TRACE("GetPrinterDataExA(%p, %s, %s, %p, %p, %lu, %p)\n", hPrinter, pKeyName, pValueName, pType, pData, nSize, pcbNeeded);
if (pKeyName) if (pKeyName)
{ {
// Convert pKeyName to a Unicode string pwszKeyName // Convert pKeyName to a Unicode string pwszKeyName
@ -191,6 +195,8 @@ GetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, LPCWSTR pValueName, LPDWORD
DWORD dwType = REG_NONE; DWORD dwType = REG_NONE;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("GetPrinterDataExW(%p, %S, %S, %p, %p, %lu, %p)\n", hPrinter, pKeyName, pValueName, pType, pData, nSize, pcbNeeded);
// Sanity checks // Sanity checks
if (!pHandle) if (!pHandle)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
@ -223,12 +229,14 @@ GetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, LPCWSTR pValueName, LPDWORD
DWORD WINAPI DWORD WINAPI
GetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded) GetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded)
{ {
TRACE("GetPrinterDataW(%p, %S, %p, %p, %lu, %p)\n", hPrinter, pValueName, pType, pData, nSize, pcbNeeded);
return GetPrinterDataExW(hPrinter, L"PrinterDriverData", pValueName, pType, pData, nSize, pcbNeeded); return GetPrinterDataExW(hPrinter, L"PrinterDriverData", pValueName, pType, pData, nSize, pcbNeeded);
} }
DWORD WINAPI DWORD WINAPI
SetPrinterDataA(HANDLE hPrinter, PSTR pValueName, DWORD Type, PBYTE pData, DWORD cbData) SetPrinterDataA(HANDLE hPrinter, PSTR pValueName, DWORD Type, PBYTE pData, DWORD cbData)
{ {
TRACE("SetPrinterDataA(%p, %s, %lu, %p, %lu)\n", hPrinter, pValueName, Type, pData, cbData);
return SetPrinterDataExA(hPrinter, "PrinterDriverData", pValueName, Type, pData, cbData); return SetPrinterDataExA(hPrinter, "PrinterDriverData", pValueName, Type, pData, cbData);
} }
@ -241,6 +249,8 @@ SetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, LPCSTR pValueName, DWORD Typ
PWSTR pwszValueName = NULL; PWSTR pwszValueName = NULL;
PWSTR pUnicodeData = NULL; PWSTR pUnicodeData = NULL;
TRACE("SetPrinterDataExA(%p, %s, %s, %lu, %p, %lu)\n", hPrinter, pKeyName, pValueName, Type, pData, cbData);
if (pKeyName) if (pKeyName)
{ {
// Convert pKeyName to a Unicode string pwszKeyName // Convert pKeyName to a Unicode string pwszKeyName
@ -313,6 +323,8 @@ SetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, LPCWSTR pValueName, DWORD T
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("SetPrinterDataExW(%p, %S, %S, %lu, %p, %lu)\n", hPrinter, pKeyName, pValueName, Type, pData, cbData);
// Sanity checks // Sanity checks
if (!pHandle) if (!pHandle)
return ERROR_INVALID_HANDLE; return ERROR_INVALID_HANDLE;
@ -337,5 +349,6 @@ SetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, LPCWSTR pValueName, DWORD T
DWORD WINAPI DWORD WINAPI
SetPrinterDataW(HANDLE hPrinter, PWSTR pValueName, DWORD Type, PBYTE pData, DWORD cbData) SetPrinterDataW(HANDLE hPrinter, PWSTR pValueName, DWORD Type, PBYTE pData, DWORD cbData)
{ {
TRACE("SetPrinterDataW(%p, %S, %lu, %p, %lu)\n", hPrinter, pValueName, Type, pData, cbData);
return SetPrinterDataExW(hPrinter, L"PrinterDriverData", pValueName, Type, pData, cbData); return SetPrinterDataExW(hPrinter, L"PrinterDriverData", pValueName, Type, pData, cbData);
} }

View file

@ -2,7 +2,7 @@
* PROJECT: ReactOS Spooler API * PROJECT: ReactOS Spooler API
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Functions related to Printer Drivers * PURPOSE: Functions related to Printer Drivers
* COPYRIGHT: Copyright 2015 Colin Finck (colin@reactos.org) * COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org)
*/ */
#include "precomp.h" #include "precomp.h"
@ -10,6 +10,7 @@
BOOL WINAPI BOOL WINAPI
AddPrinterDriverW(PWSTR pName, DWORD Level, PBYTE pDriverInfo) AddPrinterDriverW(PWSTR pName, DWORD Level, PBYTE pDriverInfo)
{ {
TRACE("AddPrinterDriverW(%S, %lu, %p)\n", pName, Level, pDriverInfo);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -17,6 +18,7 @@ AddPrinterDriverW(PWSTR pName, DWORD Level, PBYTE pDriverInfo)
BOOL WINAPI BOOL WINAPI
DeletePrinterDriverW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName) DeletePrinterDriverW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName)
{ {
TRACE("DeletePrinterDriverW(%S, %S, %S)\n", pName, pEnvironment, pDriverName);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -24,6 +26,7 @@ DeletePrinterDriverW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName)
BOOL WINAPI BOOL WINAPI
EnumPrinterDriversW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) EnumPrinterDriversW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
{ {
TRACE("EnumPrinterDriversW(%S, %S, %lu, %p, %lu, %p, %p)\n", pName, pEnvironment, Level, pDriverInfo, cbBuf, pcbNeeded, pcReturned);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -31,6 +34,7 @@ EnumPrinterDriversW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverI
BOOL WINAPI BOOL WINAPI
GetPrinterDriverDirectoryW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverDirectory, DWORD cbBuf, PDWORD pcbNeeded) GetPrinterDriverDirectoryW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverDirectory, DWORD cbBuf, PDWORD pcbNeeded)
{ {
TRACE("GetPrinterDriverDirectoryW(%S, %S, %lu, %p, %lu, %p)\n", pName, pEnvironment, Level, pDriverDirectory, cbBuf, pcbNeeded);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }

View file

@ -215,6 +215,7 @@ _StartDocPrinterWithRPC(PSPOOLER_HANDLE pHandle, PDOC_INFO_1W pDocInfo1)
HANDLE WINAPI HANDLE WINAPI
AddPrinterW(PWSTR pName, DWORD Level, PBYTE pPrinter) AddPrinterW(PWSTR pName, DWORD Level, PBYTE pPrinter)
{ {
TRACE("AddPrinterW(%S, %lu, %p)\n", pName, Level, pPrinter);
UNIMPLEMENTED; UNIMPLEMENTED;
return NULL; return NULL;
} }
@ -225,6 +226,8 @@ ClosePrinter(HANDLE hPrinter)
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("ClosePrinter(%p)\n", hPrinter);
// Sanity checks. // Sanity checks.
if (!pHandle) if (!pHandle)
{ {
@ -259,24 +262,28 @@ Cleanup:
DWORD WINAPI DWORD WINAPI
DeviceCapabilitiesA(LPCSTR pDevice, LPCSTR pPort, WORD fwCapability, LPSTR pOutput, const DEVMODEA* pDevMode) 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);
return 0; return 0;
} }
DWORD WINAPI DWORD WINAPI
DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort, WORD fwCapability, LPWSTR pOutput, const DEVMODEW* pDevMode) 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);
return 0; return 0;
} }
LONG WINAPI LONG WINAPI
DocumentPropertiesA(HWND hWnd, HANDLE hPrinter, LPSTR pDeviceName, PDEVMODEA pDevModeOutput, PDEVMODEA pDevModeInput, DWORD fMode) 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; return 0;
} }
LONG WINAPI LONG WINAPI
DocumentPropertiesW(HWND hWnd, HANDLE hPrinter, LPWSTR pDeviceName, PDEVMODEW pDevModeOutput, PDEVMODEW pDevModeInput, DWORD fMode) 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; return 0;
} }
@ -286,6 +293,8 @@ EndDocPrinter(HANDLE hPrinter)
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("EndDocPrinter(%p)\n", hPrinter);
// Sanity checks. // Sanity checks.
if (!pHandle) if (!pHandle)
{ {
@ -339,6 +348,8 @@ EndPagePrinter(HANDLE hPrinter)
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("EndPagePrinter(%p)\n", hPrinter);
// Sanity checks. // Sanity checks.
if (!pHandle) if (!pHandle)
{ {
@ -374,6 +385,7 @@ Cleanup:
BOOL WINAPI BOOL WINAPI
EnumPrintersA(DWORD Flags, PSTR Name, DWORD Level, PBYTE pPrinterEnum, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) EnumPrintersA(DWORD Flags, PSTR Name, DWORD Level, PBYTE pPrinterEnum, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
{ {
TRACE("EnumPrintersA(%lu, %s, %lu, %p, %lu, %p, %p)\n", Flags, Name, Level, pPrinterEnum, cbBuf, pcbNeeded, pcReturned);
return FALSE; return FALSE;
} }
@ -382,6 +394,8 @@ EnumPrintersW(DWORD Flags, PWSTR Name, DWORD Level, PBYTE pPrinterEnum, DWORD cb
{ {
DWORD dwErrorCode; DWORD dwErrorCode;
TRACE("EnumPrintersW(%lu, %S, %lu, %p, %lu, %p, %p)\n", Flags, Name, Level, pPrinterEnum, cbBuf, pcbNeeded, pcReturned);
// Dismiss invalid levels already at this point. // Dismiss invalid levels already at this point.
if (Level == 3 || Level > 5) if (Level == 3 || Level > 5)
{ {
@ -424,6 +438,8 @@ GetDefaultPrinterA(LPSTR pszBuffer, LPDWORD pcchBuffer)
DWORD dwErrorCode; DWORD dwErrorCode;
PWSTR pwszBuffer = NULL; PWSTR pwszBuffer = NULL;
TRACE("GetDefaultPrinterA(%p, %p)\n", pszBuffer, pcchBuffer);
// Sanity check. // Sanity check.
if (!pcchBuffer) if (!pcchBuffer)
{ {
@ -472,6 +488,8 @@ GetDefaultPrinterW(LPWSTR pszBuffer, LPDWORD pcchBuffer)
PWSTR pwszDevice = NULL; PWSTR pwszDevice = NULL;
PWSTR pwszComma; PWSTR pwszComma;
TRACE("GetDefaultPrinterW(%p, %p)\n", pszBuffer, pcchBuffer);
// Sanity check. // Sanity check.
if (!pcchBuffer) if (!pcchBuffer)
{ {
@ -554,18 +572,21 @@ Cleanup:
BOOL WINAPI BOOL WINAPI
GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, DWORD cbBuf, LPDWORD pcbNeeded) GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, DWORD cbBuf, LPDWORD pcbNeeded)
{ {
TRACE("GetPrinterA(%p, %lu, %p, %lu, %p)\n", hPrinter, Level, pPrinter, cbBuf, pcbNeeded);
return FALSE; return FALSE;
} }
BOOL WINAPI BOOL WINAPI
GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded) GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded)
{ {
TRACE("GetPrinterDriverA(%p, %s, %lu, %p, %lu, %p)\n", hPrinter, pEnvironment, Level, pDriverInfo, cbBuf, pcbNeeded);
return FALSE; return FALSE;
} }
BOOL WINAPI BOOL WINAPI
GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded) GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded)
{ {
TRACE("GetPrinterDriverW(%p, %S, %lu, %p, %lu, %p)\n", hPrinter, pEnvironment, Level, pDriverInfo, cbBuf, pcbNeeded);
return FALSE; return FALSE;
} }
@ -574,6 +595,8 @@ GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, DWORD cbBuf, LPDWORD
{ {
DWORD dwErrorCode; DWORD dwErrorCode;
TRACE("GetPrinterW(%p, %lu, %p, %lu, %p)\n", hPrinter, Level, pPrinter, cbBuf, pcbNeeded);
// Dismiss invalid levels already at this point. // Dismiss invalid levels already at this point.
if (Level > 9) if (Level > 9)
{ {
@ -615,6 +638,8 @@ OpenPrinterA(LPSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSA pDefaul
PWSTR pwszPrinterName = NULL; PWSTR pwszPrinterName = NULL;
PRINTER_DEFAULTSW wDefault = { 0 }; PRINTER_DEFAULTSW wDefault = { 0 };
TRACE("OpenPrinterA(%s, %p, %p)\n", pPrinterName, phPrinter, pDefault);
if (pPrinterName) if (pPrinterName)
{ {
// Convert pPrinterName to a Unicode string pwszPrinterName // Convert pPrinterName to a Unicode string pwszPrinterName
@ -680,6 +705,8 @@ OpenPrinterW(LPWSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSW pDefau
WINSPOOL_DEVMODE_CONTAINER DevModeContainer = { 0 }; WINSPOOL_DEVMODE_CONTAINER DevModeContainer = { 0 };
ACCESS_MASK AccessRequired = 0; ACCESS_MASK AccessRequired = 0;
TRACE("OpenPrinterW(%S, %p, %p)\n", pPrinterName, phPrinter, pDefault);
// Sanity check // Sanity check
if (!phPrinter) if (!phPrinter)
{ {
@ -737,6 +764,8 @@ ReadPrinter(HANDLE hPrinter, PVOID pBuf, DWORD cbBuf, PDWORD pNoBytesRead)
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("ReadPrinter(%p, %p, %lu, %p)\n", hPrinter, pBuf, cbBuf, pNoBytesRead);
// Sanity checks. // Sanity checks.
if (!pHandle) if (!pHandle)
{ {
@ -764,6 +793,7 @@ Cleanup:
BOOL WINAPI BOOL WINAPI
ResetPrinterW(HANDLE hPrinter, PPRINTER_DEFAULTSW pDefault) ResetPrinterW(HANDLE hPrinter, PPRINTER_DEFAULTSW pDefault)
{ {
TRACE("ResetPrinterW(%p, %p)\n", hPrinter, pDefault);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -775,6 +805,8 @@ SetDefaultPrinterA(LPCSTR pszPrinter)
DWORD cch; DWORD cch;
PWSTR pwszPrinter = NULL; PWSTR pwszPrinter = NULL;
TRACE("SetDefaultPrinterA(%s)\n", pszPrinter);
if (pszPrinter) if (pszPrinter)
{ {
// Convert pszPrinter to a Unicode string pwszPrinter // Convert pszPrinter to a Unicode string pwszPrinter
@ -814,6 +846,8 @@ SetDefaultPrinterW(LPCWSTR pszPrinter)
PWSTR pwszDeviceValueData = NULL; PWSTR pwszDeviceValueData = NULL;
WCHAR wszPrinter[MAX_PRINTER_NAME + 1]; WCHAR wszPrinter[MAX_PRINTER_NAME + 1];
TRACE("SetDefaultPrinterW(%S)\n", pszPrinter);
// Open the Devices registry key. // Open the Devices registry key.
dwErrorCode = (DWORD)RegOpenKeyExW(HKEY_CURRENT_USER, wszDevicesKey, 0, KEY_READ, &hDevicesKey); dwErrorCode = (DWORD)RegOpenKeyExW(HKEY_CURRENT_USER, wszDevicesKey, 0, KEY_READ, &hDevicesKey);
if (dwErrorCode != ERROR_SUCCESS) if (dwErrorCode != ERROR_SUCCESS)
@ -913,6 +947,7 @@ Cleanup:
BOOL WINAPI BOOL WINAPI
SetPrinterW(HANDLE hPrinter, DWORD Level, PBYTE pPrinter, DWORD Command) SetPrinterW(HANDLE hPrinter, DWORD Level, PBYTE pPrinter, DWORD Command)
{ {
TRACE("SetPrinterW(%p, %lu, %p, %lu)\n", hPrinter, Level, pPrinter, Command);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -926,6 +961,8 @@ StartDocPrinterA(HANDLE hPrinter, DWORD Level, PBYTE pDocInfo)
DWORD dwReturnValue = 0; DWORD dwReturnValue = 0;
PDOC_INFO_1A pDocInfo1 = (PDOC_INFO_1A)pDocInfo; PDOC_INFO_1A pDocInfo1 = (PDOC_INFO_1A)pDocInfo;
TRACE("StartDocPrinterA(%p, %lu, %p)\n", hPrinter, Level, pDocInfo);
// Only check the minimum required for accessing pDocInfo. // Only check the minimum required for accessing pDocInfo.
// Additional sanity checks are done in StartDocPrinterW. // Additional sanity checks are done in StartDocPrinterW.
if (!pDocInfo1) if (!pDocInfo1)
@ -1016,6 +1053,8 @@ StartDocPrinterW(HANDLE hPrinter, DWORD Level, PBYTE pDocInfo)
PDOC_INFO_1W pDocInfo1 = (PDOC_INFO_1W)pDocInfo; PDOC_INFO_1W pDocInfo1 = (PDOC_INFO_1W)pDocInfo;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("StartDocPrinterW(%p, %lu, %p)\n", hPrinter, Level, pDocInfo);
// Sanity checks. // Sanity checks.
if (!pHandle) if (!pHandle)
{ {
@ -1100,6 +1139,8 @@ StartPagePrinter(HANDLE hPrinter)
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("StartPagePrinter(%p)\n", hPrinter);
// Sanity checks. // Sanity checks.
if (!pHandle) if (!pHandle)
{ {
@ -1130,6 +1171,8 @@ WritePrinter(HANDLE hPrinter, PVOID pBuf, DWORD cbBuf, PDWORD pcWritten)
DWORD dwErrorCode; DWORD dwErrorCode;
PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter; PSPOOLER_HANDLE pHandle = (PSPOOLER_HANDLE)hPrinter;
TRACE("WritePrinter(%p, %p, %lu, %p)\n", hPrinter, pBuf, cbBuf, pcWritten);
// Sanity checks. // Sanity checks.
if (!pHandle) if (!pHandle)
{ {
@ -1181,5 +1224,6 @@ Cleanup:
BOOL WINAPI BOOL WINAPI
XcvDataW(HANDLE hXcv, PCWSTR pszDataName, PBYTE pInputData, DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded, PDWORD pdwStatus) XcvDataW(HANDLE hXcv, PCWSTR pszDataName, PBYTE pInputData, DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded, PDWORD pdwStatus)
{ {
TRACE("XcvDataW(%p, %S, %p, %lu, %p, %lu, %p, %p)\n", hXcv, pszDataName, pInputData, cbInputData, pOutputData, cbOutputData, pcbOutputNeeded, pdwStatus);
return FALSE; return FALSE;
} }

View file

@ -29,6 +29,7 @@ _MarshallUpPrintProcessorInfo(PPRINTPROCESSOR_INFO_1W* ppPrintProcessorInfo1)
BOOL WINAPI BOOL WINAPI
AddPrintProcessorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPathName, PWSTR pPrintProcessorName) AddPrintProcessorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPathName, PWSTR pPrintProcessorName)
{ {
TRACE("AddPrintProcessorW(%S, %S, %S, %S)\n", pName, pEnvironment, pPathName, pPrintProcessorName);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -36,6 +37,7 @@ AddPrintProcessorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPathName, PWSTR pPrin
BOOL WINAPI BOOL WINAPI
DeletePrintProcessorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPrintProcessorName) DeletePrintProcessorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPrintProcessorName)
{ {
TRACE("DeletePrintProcessorW(%S, %S, %S)\n", pName, pEnvironment, pPrintProcessorName);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -43,6 +45,7 @@ DeletePrintProcessorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPrintProcessorName
BOOL WINAPI BOOL WINAPI
EnumPrintProcessorDatatypesA(PSTR pName, LPSTR pPrintProcessorName, DWORD Level, PBYTE pDatatypes, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned) EnumPrintProcessorDatatypesA(PSTR pName, LPSTR pPrintProcessorName, DWORD Level, PBYTE pDatatypes, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
{ {
TRACE("EnumPrintProcessorDatatypesA(%s, %s, %lu, %p, %lu, %p, %p)\n", pName, pPrintProcessorName, Level, pDatatypes, cbBuf, pcbNeeded, pcReturned);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -52,6 +55,8 @@ EnumPrintProcessorDatatypesW(PWSTR pName, LPWSTR pPrintProcessorName, DWORD Leve
{ {
DWORD dwErrorCode; DWORD dwErrorCode;
TRACE("EnumPrintProcessorDatatypesW(%S, %S, %lu, %p, %lu, %p, %p)\n", pName, pPrintProcessorName, Level, pDatatypes, cbBuf, pcbNeeded, pcReturned);
// Sanity checks // Sanity checks
if (Level != 1) if (Level != 1)
{ {
@ -90,6 +95,8 @@ EnumPrintProcessorsW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pPrintP
{ {
DWORD dwErrorCode; DWORD dwErrorCode;
TRACE("EnumPrintProcessorsW(%S, %S, %lu, %p, %lu, %p, %p)\n", pName, pEnvironment, Level, pPrintProcessorInfo, cbBuf, pcbNeeded, pcReturned);
// Choose our current environment if the caller didn't give any. // Choose our current environment if the caller didn't give any.
if (!pEnvironment) if (!pEnvironment)
pEnvironment = (PWSTR)wszCurrentEnvironment; pEnvironment = (PWSTR)wszCurrentEnvironment;
@ -127,6 +134,8 @@ GetPrintProcessorDirectoryA(PSTR pName, PSTR pEnvironment, DWORD Level, PBYTE pP
PWSTR pwszEnvironment = NULL; PWSTR pwszEnvironment = NULL;
PWSTR pwszPrintProcessorInfo = NULL; PWSTR pwszPrintProcessorInfo = NULL;
TRACE("GetPrintProcessorDirectoryA(%s, %s, %lu, %p, %lu, %p)\n", pName, pEnvironment, Level, pPrintProcessorInfo, cbBuf, pcbNeeded);
if (pName) if (pName)
{ {
// Convert pName to a Unicode string pwszName. // Convert pName to a Unicode string pwszName.
@ -199,6 +208,8 @@ GetPrintProcessorDirectoryW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE
{ {
DWORD dwErrorCode; DWORD dwErrorCode;
TRACE("GetPrintProcessorDirectoryW(%S, %S, %lu, %p, %lu, %p)\n", pName, pEnvironment, Level, pPrintProcessorInfo, cbBuf, pcbNeeded);
// Sanity checks // Sanity checks
if (Level != 1) if (Level != 1)
{ {

View file

@ -2,7 +2,7 @@
* PROJECT: ReactOS Spooler API * PROJECT: ReactOS Spooler API
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Functions related to Print Providers * PURPOSE: Functions related to Print Providers
* COPYRIGHT: Copyright 2015 Colin Finck (colin@reactos.org) * COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org)
*/ */
#include "precomp.h" #include "precomp.h"
@ -10,6 +10,7 @@
BOOL WINAPI BOOL WINAPI
AddPrintProvidorW(PWSTR pName, DWORD Level, PBYTE pProviderInfo) AddPrintProvidorW(PWSTR pName, DWORD Level, PBYTE pProviderInfo)
{ {
TRACE("AddPrintProvidorW(%S, %lu, %p)\n", pName, Level, pProviderInfo);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }
@ -17,6 +18,7 @@ AddPrintProvidorW(PWSTR pName, DWORD Level, PBYTE pProviderInfo)
BOOL WINAPI BOOL WINAPI
DeletePrintProvidorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPrintProviderName) DeletePrintProvidorW(PWSTR pName, PWSTR pEnvironment, PWSTR pPrintProviderName)
{ {
TRACE("DeletePrintProvidorW(%S, %S, %S)\n", pName, pEnvironment, pPrintProviderName);
UNIMPLEMENTED; UNIMPLEMENTED;
return FALSE; return FALSE;
} }