Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153/* * PROJECT: ReactOS Spooler Router * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) * PURPOSE: Functions related to Printer Configuration Data * COPYRIGHT: Copyright 2017 Colin Finck (colin@reactos.org) */
#include "precomp.h"
DWORD WINAPIDeletePrinterDataExW(HANDLE hPrinter, PCWSTR pKeyName, PCWSTR pValueName){ PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
// Sanity checks. if (!pHandle) { SetLastError(ERROR_INVALID_PARAMETER); return FALSE; }
return pHandle->pPrintProvider->PrintProvider.fpDeletePrinterDataEx(pHandle->hPrinter, pKeyName, pValueName);}
DWORD WINAPIDeletePrinterDataW(HANDLE hPrinter, PWSTR pValueName){ PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
// Sanity checks. if (!pHandle) { SetLastError(ERROR_INVALID_PARAMETER); return FALSE; }
return pHandle->pPrintProvider->PrintProvider.fpDeletePrinterData(pHandle->hPrinter, pValueName);}
DWORD WINAPIDeletePrinterKeyW(HANDLE hPrinter, PCWSTR pKeyName){ PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
// Sanity checks. if (!pHandle) { SetLastError(ERROR_INVALID_PARAMETER); return FALSE; }
return pHandle->pPrintProvider->PrintProvider.fpDeletePrinterKey(pHandle->hPrinter, pKeyName);}
DWORD WINAPIEnumPrinterDataExW(HANDLE hPrinter, PCWSTR pKeyName, PBYTE pEnumValues, DWORD cbEnumValues, PDWORD pcbEnumValues, PDWORD pnEnumValues){ PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
// Sanity checks. if (!pHandle) { SetLastError(ERROR_INVALID_PARAMETER); return FALSE; }
return pHandle->pPrintProvider->PrintProvider.fpEnumPrinterDataEx(pHandle->hPrinter, pKeyName, pEnumValues, cbEnumValues, pcbEnumValues, pnEnumValues);}
DWORD WINAPIEnumPrinterDataW(HANDLE hPrinter, DWORD dwIndex, PWSTR pValueName, DWORD cbValueName, PDWORD pcbValueName, PDWORD pType, PBYTE pData, DWORD cbData, PDWORD pcbData){ PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
// Sanity checks. if (!pHandle) { SetLastError(ERROR_INVALID_PARAMETER); return FALSE; }
return pHandle->pPrintProvider->PrintProvider.fpEnumPrinterData(pHandle->hPrinter, dwIndex, pValueName, cbValueName, pcbValueName, pType, pData, cbData, pcbData);}
DWORD WINAPIEnumPrinterKeyW(HANDLE hPrinter, PCWSTR pKeyName, PWSTR pSubkey, DWORD cbSubkey, PDWORD pcbSubkey){ PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
// Sanity checks. if (!pHandle) { SetLastError(ERROR_INVALID_PARAMETER); return FALSE; }
return pHandle->pPrintProvider->PrintProvider.fpEnumPrinterKey(pHandle->hPrinter, pKeyName, pSubkey, cbSubkey, pcbSubkey);}
DWORD WINAPIGetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, LPCWSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded){ PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
// Sanity check. if (!pHandle) { // Yes, Windows checks for the handle here and sets the last error to ERROR_INVALID_HANDLE, // but returns FALSE and not the error code. SetLastError(ERROR_INVALID_HANDLE); return FALSE; }
// Call GetPrinterDataEx of the Print Provider. return pHandle->pPrintProvider->PrintProvider.fpGetPrinterDataEx(pHandle->hPrinter, pKeyName, pValueName, pType, pData, nSize, pcbNeeded);}
DWORD WINAPIGetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded){ // The ReactOS Printing Stack forwards all GetPrinterData calls to GetPrinterDataEx as soon as possible. // This function may only be called if spoolss.dll is used together with Windows Printing Stack components. WARN("This function should never be called!\n"); return GetPrinterDataExW(hPrinter, L"PrinterDriverData", pValueName, pType, pData, nSize, pcbNeeded);}
DWORD WINAPISetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, LPCWSTR pValueName, DWORD Type, LPBYTE pData, DWORD cbData){ PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
// Sanity check. if (!pHandle) { // Yes, Windows checks for the handle here and sets the last error to ERROR_INVALID_HANDLE, // but returns FALSE and not the error code. SetLastError(ERROR_INVALID_HANDLE); return FALSE; }
// Call SetPrinterDataEx of the Print Provider. return pHandle->pPrintProvider->PrintProvider.fpSetPrinterDataEx(pHandle->hPrinter, pKeyName, pValueName, Type, pData, cbData);}
DWORD WINAPISetPrinterDataW(HANDLE hPrinter, PWSTR pValueName, DWORD Type, PBYTE pData, DWORD cbData){ // The ReactOS Printing Stack forwards all SetPrinterData calls to SetPrinterDataEx as soon as possible. // This function may only be called if spoolss.dll is used together with Windows Printing Stack components. WARN("This function should never be called!\n"); return SetPrinterDataExW(hPrinter, L"PrinterDriverData", pValueName, Type, pData, cbData);}