Compartir a través de


Estructura PRINTPROVIDOR (winsplp.h)

Advertencia

A partir de Windows 10, las API que admiten proveedores de impresión de terceros están en desuso. Microsoft no recomienda ninguna inversión en proveedores de impresión de terceros. Además, en Windows 8 y productos más recientes en los que el modelo de controlador de impresión v4 está disponible, es posible que los proveedores de impresión de terceros no creen ni administren colas que usen controladores de impresión v4.

La estructura PRINTPROVIDOR se usa como parámetro para la función InitializePrintProvidor de un proveedor de impresión. El proveedor proporciona todos los valores de miembro de estructura.

Sintaxis

typedef struct _PRINTPROVIDOR {
  BOOL( )(PWSTR pPrinterName,PHANDLE phPrinter,PPRINTER_DEFAULTS pDefault)    *fpOpenPrinter;
  BOOL( )(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD Command)    *fpSetJob;
  BOOL( )(HANDLE hPrinter,DWORD JobId,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded)    *fpGetJob;
  BOOL( )(HANDLE hPrinter,DWORD FirstJob,DWORD NoJobs,DWORD Level,LPBYTE pJob,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)    *fpEnumJobs;
  HANDLE( )(LPWSTR pName,DWORD Level,LPBYTE pPrinter)  *fpAddPrinter;
  BOOL( )(HANDLE hPrinter)    *fpDeletePrinter;
  BOOL( )(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD Command)    *fpSetPrinter;
  BOOL( )(HANDLE hPrinter,DWORD Level,LPBYTE pPrinter,DWORD cbBuf,LPDWORD pcbNeeded)    *fpGetPrinter;
  BOOL( )(DWORD Flags,LPWSTR Name,DWORD Level,LPBYTE pPrinterEnum,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)    *fpEnumPrinters;
  BOOL( )(LPWSTR pName,DWORD Level,LPBYTE pDriverInfo)    *fpAddPrinterDriver;
  BOOL( )(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)    *fpEnumPrinterDrivers;
  BOOL( )(HANDLE hPrinter,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded)    *fpGetPrinterDriver;
  BOOL( )(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverDirectory,DWORD cbBuf,LPDWORD pcbNeeded)    *fpGetPrinterDriverDirectory;
  BOOL( )(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pDriverName)    *fpDeletePrinterDriver;
  BOOL( )(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pPathName,LPWSTR pPrintProcessorName)    *fpAddPrintProcessor;
  BOOL( )(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)    *fpEnumPrintProcessors;
  BOOL( )(LPWSTR pName,LPWSTR pEnvironment,DWORD Level,LPBYTE pPrintProcessorInfo,DWORD cbBuf,LPDWORD pcbNeeded)    *fpGetPrintProcessorDirectory;
  BOOL( )(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pPrintProcessorName)    *fpDeletePrintProcessor;
  BOOL( )(LPWSTR pName,LPWSTR pPrintProcessorName,DWORD Level,LPBYTE pDataypes,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)    *fpEnumPrintProcessorDatatypes;
  DWORD( )(HANDLE hPrinter,DWORD Level,LPBYTE pDocInfo)   *fpStartDocPrinter;
  BOOL( )(HANDLE hPrinter)    *fpStartPagePrinter;
  BOOL( )(HANDLE hPrinter,LPVOID pBuf,DWORD cbBuf,LPDWORD pcWritten)    *fpWritePrinter;
  BOOL( )(HANDLE hPrinter)    *fpEndPagePrinter;
  BOOL( )(HANDLE hPrinter)    *fpAbortPrinter;
  BOOL( )(HANDLE hPrinter,LPVOID pBuf,DWORD cbBuf,LPDWORD pNoBytesRead)    *fpReadPrinter;
  BOOL( )(HANDLE hPrinter)    *fpEndDocPrinter;
  BOOL( )(HANDLE hPrinter,DWORD Level,LPBYTE pData,DWORD cbBuf,LPDWORD pcbNeeded)    *fpAddJob;
  BOOL( )(HANDLE hPrinter,DWORD JobId)    *fpScheduleJob;
  DWORD( )(HANDLE hPrinter,LPWSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded)   *fpGetPrinterData;
  DWORD( )(HANDLE hPrinter,LPWSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData)   *fpSetPrinterData;
  DWORD( )(HANDLE hPrinter,DWORD Flags)   *fpWaitForPrinterChange;
  BOOL( )(HANDLE hPrinter)    *fpClosePrinter;
  BOOL( )(HANDLE hPrinter,DWORD Level,LPBYTE pForm)    *fpAddForm;
  BOOL( )(HANDLE hPrinter,LPWSTR pFormName)    *fpDeleteForm;
  BOOL( )(HANDLE hPrinter,LPWSTR pFormName,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded)    *fpGetForm;
  BOOL( )(HANDLE hPrinter,LPWSTR pFormName,DWORD Level,LPBYTE pForm)    *fpSetForm;
  BOOL( )(HANDLE hPrinter,DWORD Level,LPBYTE pForm,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)    *fpEnumForms;
  BOOL( )(LPWSTR pName,DWORD Level,LPBYTE pMonitors,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)    *fpEnumMonitors;
  BOOL( )(LPWSTR pName,DWORD Level,LPBYTE pPorts,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)    *fpEnumPorts;
  BOOL( )(LPWSTR pName,HWND hWnd,LPWSTR pMonitorName)    *fpAddPort;
  BOOL( )(LPWSTR pName,HWND hWnd,LPWSTR pPortName)    *fpConfigurePort;
  BOOL( )(LPWSTR pName,HWND hWnd,LPWSTR pPortName)    *fpDeletePort;
  HANDLE( )(HANDLE hPrinter,LPDEVMODEW pDevMode)  *fpCreatePrinterIC;
  BOOL( )(HANDLE hPrinterIC,LPBYTE pIn,DWORD cIn,LPBYTE pOut,DWORD cOut,DWORD ul)    *fpPlayGdiScriptOnPrinterIC;
  BOOL( )(HANDLE hPrinterIC)    *fpDeletePrinterIC;
  BOOL( )(LPWSTR pName)    *fpAddPrinterConnection;
  BOOL( )(LPWSTR pName)    *fpDeletePrinterConnection;
  DWORD( )(HANDLE hPrinter,DWORD Error,HWND hWnd,LPWSTR pText,LPWSTR pCaption,DWORD dwType)   *fpPrinterMessageBox;
  BOOL( )(LPWSTR pName,DWORD Level,LPBYTE pMonitorInfo)    *fpAddMonitor;
  BOOL( )(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pMonitorName)    *fpDeleteMonitor;
  BOOL( )(HANDLE hPrinter,LPPRINTER_DEFAULTS pDefault)    *fpResetPrinter;
  BOOL( )(HANDLE hPrinter,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded,DWORD dwClientMajorVersion,DWORD dwClientMinorVersion,PDWORD pdwServerMajorVersion,PDWORD pdwServerMinorVersion)    *fpGetPrinterDriverEx;
  BOOL( )(HANDLE hPrinter,DWORD fdwFlags,DWORD fdwOptions,HANDLE hNotify,PDWORD pfdwStatus,PVOID pPrinterNotifyOptions,PVOID pPrinterNotifyInit)    *fpFindFirstPrinterChangeNotification;
  BOOL( )(HANDLE hPrinter)    *fpFindClosePrinterChangeNotification;
  BOOL( )(LPWSTR pName,DWORD Level,LPBYTE lpBuffer,LPWSTR lpMonitorName)    *fpAddPortEx;
  BOOL( )(LPVOID pvReserved)    *fpShutDown;
  BOOL( )(HANDLE hPrinter,DWORD Reserved,PVOID pvReserved,PVOID pPrinterNotifyInfo)    *fpRefreshPrinterChangeNotification;
  BOOL( )(LPWSTR pPrinterName,LPHANDLE phPrinter,LPPRINTER_DEFAULTS pDefault,LPBYTE pClientInfo,DWORD Level)    *fpOpenPrinterEx;
  HANDLE( )(LPWSTR pName,DWORD Level,LPBYTE pPrinter,LPBYTE pClientInfo,DWORD ClientInfoLevel)  *fpAddPrinterEx;
  BOOL( )(LPWSTR pName,LPWSTR pPortName,DWORD Level,LPBYTE pPortInfo)    *fpSetPort;
  DWORD( )(HANDLE hPrinter,DWORD dwIndex,LPWSTR pValueName,DWORD cbValueName,LPDWORD pcbValueName,LPDWORD pType,LPBYTE pData,DWORD cbData,LPDWORD pcbData)   *fpEnumPrinterData;
  DWORD( )(HANDLE hPrinter,LPWSTR pValueName)   *fpDeletePrinterData;
  DWORD( )(LPCTSTR pszServer,LPCTSTR pszResource,PHANDLE phSpooler,LPCTSTR pszName,LPCTSTR pszAddress)   *fpClusterSplOpen;
  DWORD( )(HANDLE hSpooler)   *fpClusterSplClose;
  DWORD( )(HANDLE hSpooler)   *fpClusterSplIsAlive;
  DWORD( )(HANDLE hPrinter,LPCWSTR pKeyName,LPCWSTR pValueName,DWORD Type,LPBYTE pData,DWORD cbData)   *fpSetPrinterDataEx;
  DWORD( )(HANDLE hPrinter,LPCWSTR pKeyName,LPCWSTR pValueName,LPDWORD pType,LPBYTE pData,DWORD nSize,LPDWORD pcbNeeded)   *fpGetPrinterDataEx;
  DWORD( )(HANDLE hPrinter,LPCWSTR pKeyName,LPBYTE pEnumValues,DWORD cbEnumValues,LPDWORD pcbEnumValues,LPDWORD pnEnumValues)   *fpEnumPrinterDataEx;
  DWORD( )(HANDLE hPrinter,LPCWSTR pKeyName,LPWSTR pSubkey,DWORD cbSubkey,LPDWORD pcbSubkey)   *fpEnumPrinterKey;
  DWORD( )(HANDLE hPrinter,LPCWSTR pKeyName,LPCWSTR pValueName)   *fpDeletePrinterDataEx;
  DWORD( )(HANDLE hPrinter,LPCWSTR pKeyName)   *fpDeletePrinterKey;
  BOOL( )(HANDLE hPrinter,LARGE_INTEGER liDistanceToMove,PLARGE_INTEGER pliNewPointer,DWORD dwMoveMethod,BOOL bWrite)    *fpSeekPrinter;
  BOOL( )(LPWSTR pName,LPWSTR pEnvironment,LPWSTR pDriverName,DWORD dwDeleteFlag,DWORD dwVersionNum)    *fpDeletePrinterDriverEx;
  BOOL( )(LPCWSTR pServer,LPCWSTR pPrinterName,LPCWSTR pPrintServer,LPCWSTR pProvider)    *fpAddPerMachineConnection;
  BOOL( )(LPCWSTR pServer,LPCWSTR pPrinterName)    *fpDeletePerMachineConnection;
  BOOL( )(LPCWSTR pServer,LPBYTE pPrinterEnum,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)    *fpEnumPerMachineConnections;
  BOOL( )(HANDLE hXcv,LPCWSTR pszDataName,PBYTE pInputData,DWORD cbInputData,PBYTE pOutputData,DWORD cbOutputData,PDWORD pcbOutputNeeded,PDWORD pdwStatus)    *fpXcvData;
  BOOL( )(LPWSTR pName,DWORD Level,LPBYTE pDriverInfo,DWORD dwFileCopyFlags)    *fpAddPrinterDriverEx;
  BOOL()(HANDLE hPrinter,LPBYTE *pBuf,DWORD cbBuf)    * fpSplReadPrinter;
  BOOL( )(LPWSTR pDriverFile)    *fpDriverUnloadComplete;
  BOOL()(HANDLE hPrinter,LPWSTR *pSpoolDir,LPHANDLE phFile,HANDLE hSpoolerProcess,HANDLE hAppProcess)    * fpGetSpoolFileInfo;
  BOOL( )(HANDLE hPrinter,DWORD cbCommit)    *fpCommitSpoolData;
  BOOL( )(HANDLE hPrinter)    *fpCloseSpoolFileHandle;
  BOOL( )(HANDLE hPrinter,LPBYTE pBuf,DWORD cbBuf,LPDWORD pcWritten,DWORD cSleep)    *fpFlushPrinter;
  DWORD()(HANDLE hPrinter,LPCWSTR pAction,PBIDI_REQUEST_CONTAINER pReqData,PBIDI_RESPONSE_CONTAINER *ppResData)   * fpSendRecvBidiData;
  BOOL( )(LPCWSTR pName,DWORD dwLevel,PVOID pInfo)    *fpAddPrinterConnection2;
#if ...
  HRESULT((PCWSTR, const IID &,VOID **) * )fpGetPrintClassObject;
#else
  HRESULT(PCWSTR, const IID *,VOID **) * )(fpGetPrintClassObject;
#endif
  HRESULT( )(HANDLE hPrinter,ULONG jobId,EPrintXPSJobOperation jobOperation,EPrintXPSJobProgress jobProgress) *fpReportJobProcessingProgress;
  VOID()(DWORD dwLevel,VOID *pfOut)    * fpEnumAndLogProvidorObjects;
  HRESULT( )(HANDLE hPrinter,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded,DWORD dwClientMajorVersion,DWORD dwClientMinorVersion,PDWORD pdwServerMajorVersion,PDWORD pdwServerMinorVersion) *fpInternalGetPrinterDriver;
  HRESULT( )(LPCWSTR pcszPnpId,LPCWSTR pcszPortName,LPWSTR pszManufacturerName,DWORD cchManufacturerName,LPDWORD pcchRequiredManufacturerNameSize,LPWSTR pszModelName,DWORD cchModelName,LPDWORD pcchRequiredModelNameSize,LPDWORD pdwRank0Matches) *fpFindCompatibleDriver;
  HRESULT( )(LPCWSTR pcszConnectionName) *fpInstallPrinterDriverPackageFromConnection;
  DWORD()(HANDLE hPrinter,DWORD JobId,PCWSTR pszName,PrintPropertyValue *pValue)   * fpGetJobNamedPropertyValue;
  DWORD()(HANDLE hPrinter,DWORD JobId, const PrintNamedProperty *pProperty)   * fpSetJobNamedProperty;
  DWORD( )(HANDLE hPrinter,DWORD JobId,PCWSTR pszName)   *fpDeleteJobNamedProperty;
  DWORD(HANDLE hPrinter,DWORD JobId,DWORD *pcProperties,PrintNamedProperty **ppProperties)   * )(fpEnumJobNamedProperties;
  DWORD()(DWORD event,POWERBROADCAST_SETTING *pPowerSetting)   * fpPowerEvent;
  DWORD()(HANDLE hPrinter,HKEY *phKey)   * fpGetUserPropertyBag;
  BOOL( )()    *fpCanShutdown;
  DWORD( )(HANDLE hPrinter,PBranchOfficeJobDataContainer pJobDataContainer)   *fpLogJobInfoForBranchOffice;
  DWORD( )(HANDLE hPrinter)   *fpRegeneratePrintDeviceCapabilities;
  HRESULT( )(HANDLE hPrinter,DWORD JobId,DWORD dwOperationType,LPBYTE pInputData,DWORD cbInputData,LPDWORD pcWritten) *fpPrintSupportOperation;
  HRESULT()(HANDLE hPrinter,DWORD jobId,PCWSTR pdlFormat,DWORD jobAttributesBufferSize,PBYTE jobAttributeGroupBuffer,PDWORD ippResponseBufferSize,PBYTE *ippResponseBuffer) * fpIppCreateJobOnPrinter;
  HRESULT(NDLE hPrinter,DWORD JobId,DWORD attributeNameCount, const wchar_t **attributeNames,DWORD *ippResponseBufferSize,BYTE **ippResponseBuffer) * )(HAfpIppGetJobAttributes;
  HRESULT(ANDLE hPrinter,DWORD JobId,DWORD jobAttributeGroupBufferSize,BYTE *jobAttributeGroupBuffer,DWORD *ippResponseBufferSize,BYTE **ippResponseBuffer) * )(HfpIppSetJobAttributes;
  HRESULT(NDLE hPrinter,DWORD attributeNameCount, const wchar_t **attributeNames,DWORD *ippResponseBufferSize,BYTE **ippResponseBuffer) * )(HAfpIppGetPrinterAttributes;
  HRESULT(ANDLE hPrinter,DWORD jobAttributeGroupBufferSize,BYTE *jobAttributeGroupBuffer,DWORD *ippResponseBufferSize,BYTE **ippResponseBuffer) * )(HfpIppSetPrinterAttributes;
  HRESULT()(HANDLE hPrinter,DWORD jobId,PCWSTR pdlFormat,DWORD jobAttributesBufferSize,PBYTE jobAttributeGroupBuffer,DWORD operationAttributesBufferSize,PBYTE operationAttributeGroupBuffer,PDWORD ippResponseBufferSize,PBYTE *ippResponseBuffer) * fpIppCreateJobOnPrinterWithAttributes;
} PRINTPROVIDOR, *LPPRINTPROVIDOR;

Miembros

fpOpenPrinter

(Obligatorio). Puntero a la función OpenPrinter del proveedor. Sin embargo, en el nivel de proveedor, esta función debe proporcionar uno de los valores devueltos DWORD enumerados en la tabla siguiente.

Valor devuelto Definición
ROUTER_SUCCESS El proveedor admite la impresora especificada y la ha abierto.
ROUTER_STOP_ROUTING El proveedor admite la impresora especificada, pero se produjo un error y no se pudo abrir la impresora. Se supone que ningún otro proveedor puede admitir la impresora. La función debe llamar a SetLastError.
ROUTER_UNKNOWN El proveedor no admite la impresora especificada. La función debe llamar a SetLastError y especificar ERROR_INVALID_NAME.

El enrutador llama a cada proveedor hasta que uno de ellos devuelva ROUTER_SUCCESS o ROUTER_STOP_ROUTING. Si el proveedor devuelve ROUTER_SUCCESS, también debe devolver un identificador único. Para obtener más información, vea Introducción a los proveedores de impresión). El enrutador primero intenta llamar a la función OpenPrinterEx del proveedor. Si no se admite esa función, el enrutador llama a OpenPrinter.

fpSetJob

(Obligatorio). Puntero a la función SetJob del proveedor.

fpGetJob

(Obligatorio). Puntero a la función GetJob del proveedor.

fpEnumJobs

(Obligatorio). Puntero a la función EnumJobs del proveedor.

fpAddPrinter

(Opcional. Puede ser NULL). Puntero a la función AddPrinter del proveedor.

fpDeletePrinter

(Opcional. Puede ser NULL). Puntero a la función DeletePrinter del proveedor.

fpSetPrinter

(Obligatorio). Puntero a la función SetPrinter del proveedor.

fpGetPrinter

(Obligatorio). Puntero a la función GetPrinter del proveedor. Si va a escribir un proveedor de impresión de red y GetPrinter devuelve una estructura de PRINTER_INFO_2 , la función debe proporcionar solo los miembros de la estructura cJobs y Status . El proveedor de impresión local) proporciona el resto de los miembros de la estructura.

fpEnumPrinters

(Obligatorio). Puntero a la función EnumPrinters del proveedor.

fpAddPrinterDriver

(Opcional. Puede ser NULL). Puntero a la función AddPrinterDriver del proveedor. Si el proveedor no admite el controlador o el servidor especificados, debe especificar ERROR_INVALID_NAME a SetLastError antes de devolver FALSE.

fpEnumPrinterDrivers

(Opcional. Puede ser NULL). Puntero a la función EnumPrinterDrivers del proveedor. Si el proveedor no admite el servidor especificado, debe especificar ERROR_INVALID_NAME en SetLastError antes de devolver FALSE.

fpGetPrinterDriver

(Opcional. Puede ser NULL). Puntero a la función GetPrinterDriver del proveedor. El enrutador primero intenta llamar a la función GetPrinterDriverEx del proveedor. Si no se admite esa función, el enrutador llama a GetPrinterDriver.

fpGetPrinterDriverDirectory

(Opcional. Puede ser NULL). Puntero a la función GetPrinterDriverDirectory del proveedor. Si el proveedor no admite el servidor especificado, debe especificar ERROR_INVALID_NAME en SetLastError antes de devolver FALSE.

fpDeletePrinterDriver

(Opcional. Puede ser NULL). Puntero a la función DeletePrinterDriver del proveedor. Si el proveedor no admite el servidor especificado, debe especificar ERROR_INVALID_NAME en SetLastError antes de devolver FALSE.

fpAddPrintProcessor

(Opcional. Puede ser NULL). Puntero a la función AddPrintProcessor del proveedor.

fpEnumPrintProcessors

(Opcional. Puede ser NULL). Puntero a la función EnumPrintProcessors del proveedor.

fpGetPrintProcessorDirectory

(Opcional. Puede ser NULL). Puntero a la función GetPrintProcessorDirectory del proveedor.

fpDeletePrintProcessor

(Opcional. Puede ser NULL). Puntero a la función DeletePrintProcessor del proveedor.

fpEnumPrintProcessorDatatypes

(Opcional. Puede ser NULL). Puntero a la función EnumPrintProcessorDatatypes del proveedor.

fpStartDocPrinter

(Obligatorio). Puntero a la función StartDocPrinter del proveedor.

fpStartPagePrinter

(Opcional. Puede ser NULL). Puntero a la función StartPagePrinter del proveedor.

fpWritePrinter

(Obligatorio). Puntero a la función WritePrinter del proveedor.

fpEndPagePrinter

(Opcional. Puede ser NULL). Puntero a la función EndPagePrinterdel proveedor.

fpAbortPrinter

(Obligatorio). Puntero a la función AbortPrinter del proveedor.

fpReadPrinter

(Opcional. Puede ser NULL). Puntero a la función ReadPrinter del proveedor.

fpEndDocPrinter

(Obligatorio). Puntero a la función EndDocPrinter del proveedor.

fpAddJob

(Obligatorio). Puntero a la función AddJob del proveedor.

fpScheduleJob

(Obligatorio). Puntero a la función ScheduleJob del proveedor.

fpGetPrinterData

(Opcional. Puede ser NULL). Puntero a la función GetPrinterData del proveedor.

fpSetPrinterData

(Opcional. Puede ser NULL). Puntero a la función SetPrinterData del proveedor.

fpWaitForPrinterChange

Obsoleto. Debe ser NULL.

fpClosePrinter

(Obligatorio). Puntero a la función ClosePrinter del proveedor. Si se ha creado un objeto de notificación de cambio de impresora, el enrutador llama a la función FindClosePrinterChangeNotification del proveedor antes de llamar a ClosePrinter.

fpAddForm

(Opcional. Puede ser NULL). Puntero a la función AddForm del proveedor.

fpDeleteForm

(Opcional. Puede ser NULL). Puntero a la función DeleteForm del proveedor.

fpGetForm

(Opcional. Puede ser NULL). Puntero a la función GetForm del proveedor.

fpSetForm

(Opcional. Puede ser NULL). Puntero a la función SetForm del proveedor.

fpEnumForms

(Opcional. Puede ser NULL). Puntero a la función EnumForms del proveedor.

fpEnumMonitors

(Opcional. Puede ser NULL). Puntero a la función EnumMonitors del proveedor, que se describe en la documentación de Windows SDK. Sin embargo, en el nivel de proveedor, esta función debe proporcionar uno de los valores devueltos DWORD enumerados en la tabla siguiente.

Valor devuelto Definición
ROUTER_SUCCESS El proveedor ha enumerado los monitores en el servidor especificado.
ROUTER_STOP_ROUTING El proveedor ha enumerado los monitores en el servidor especificado y el enrutador no debe llamar a otros proveedores.
ROUTER_UNKNOWN El proveedor no admite el servidor especificado.

fpEnumPorts

Valor devuelto Definición
ROUTER_SUCCESS El proveedor ha enumerado los puertos en el servidor especificado.
ROUTER_STOP_ROUTING El proveedor ha enumerado los puertos en el servidor especificado y el enrutador no debe llamar a otros proveedores.
ROUTER_UNKNOWN El proveedor no admite el servidor especificado.

fpAddPort

(Opcional. Puede ser NULL). Puntero a la función AddPort del proveedor. Si el proveedor no admite el puerto especificado, debe proporcionar ERROR_NOT_SUPPORTED a SetLastError antes de devolver FALSE.

fpConfigurePort

(Obligatorio). Puntero a la función ConfigurePort del proveedor. Si la función proporciona ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME o ERROR_UNKNOWN_PORT a SetLastError, el enrutador intentará llamar a otro proveedor.

fpDeletePort

(Obligatorio). Puntero a la función DeletePort del proveedor. Si el proveedor no admite el puerto especificado, debe proporcionar ERROR_NOT_SUPPORTED a SetLastError antes de devolver FALSE.

fpCreatePrinterIC

Solo para uso interno. Debe ser NULL.

fpPlayGdiScriptOnPrinterIC

Solo para uso interno. Debe ser NULL.

fpDeletePrinterIC

Solo para uso interno. Debe ser NULL.

fpAddPrinterConnection

(Opcional. Puede ser NULL). Puntero a la función AddPrinterConnection del proveedor.

fpDeletePrinterConnection

(Opcional. Puede ser NULL). Puntero a la función DeletePrinterConnection del proveedor.

fpPrinterMessageBox

No se usa. Debe ser NULL.

fpAddMonitor

(Opcional. Puede ser NULL). Puntero a la función AddMonitor del proveedor. Si el proveedor no admite el monitor especificado, debe proporcionar ERROR_INVALID_NAME a SetLastError antes de devolver FALSE.

fpDeleteMonitor

(Opcional. Puede ser NULL). Puntero a la función DeleteMonitor del proveedor. Si el proveedor no admite el monitor especificado, debe proporcionar ERROR_INVALID_NAME a SetLastError antes de devolver FALSE.

fpResetPrinter

(Opcional. Puede ser NULL). Puntero a la función ResetPrinter del proveedor.

fpGetPrinterDriverEx

(Opcional. Puede ser NULL). Puntero a la función GetPrinterDriverEx del proveedor. Si no se admite GetPrinterDriverEx , el enrutador intenta llamar a GetPrinterDriver.

fpFindFirstPrinterChangeNotification

(Opcional. Puede ser NULL). Puntero a la función FindFirstPrinterChangeNotification del proveedor.

fpFindClosePrinterChangeNotification

(Opcional. Puede ser NULL). Puntero a la función FindClosePrinterChangeNotification del proveedor.

fpAddPortEx

(Opcional. Puede ser NULL). Puntero a la función AddPortEx del proveedor. Si el proveedor no admite el puerto especificado, debe proporcionar ERROR_NOT_SUPPORTED a SetLastError antes de devolver FALSE.

fpShutDown

Solo para uso interno. Debe ser NULL.

fpRefreshPrinterChangeNotification

(Opcional. Puede ser NULL). Puntero a la función RefreshPrinterChangeNotification del proveedor.

fpOpenPrinterEx

Solo para uso interno. Debe ser NULL.

fpAddPrinterEx

Solo para uso interno. Debe ser NULL.

fpSetPort

(Opcional. Puede ser NULL). Puntero a la función SetPort del proveedor. Si la función proporciona ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME o ERROR_UNKNOWN_PORT a SetLastError, el enrutador intentará llamar a otro proveedor.

fpEnumPrinterData

(Opcional. Puede ser NULL). Puntero a la función EnumPrinterData del proveedor.

fpDeletePrinterData

(Opcional. Puede ser NULL). Puntero a la función DeletePrinterData del proveedor.

fpClusterSplOpen

Solo para uso interno. Debe ser NULL.

fpClusterSplClose

Solo para uso interno. Debe ser NULL.

fpClusterSplIsAlive

Solo para uso interno. Debe ser NULL.

fpSetPrinterDataEx

(Opcional. Puede ser NULL). Puntero a la función SetPrinterDataEx del proveedor.

fpGetPrinterDataEx

(Opcional. Puede ser NULL). Puntero a la función GetPrinterDataEx del proveedor.

fpEnumPrinterDataEx

(Opcional. Puede ser NULL). Puntero a la función EnumPrinterDataEx del proveedor.

fpEnumPrinterKey

(Opcional. Puede ser NULL). Puntero a la función EnumPrinterKey del proveedor.

fpDeletePrinterDataEx

(Opcional. Puede ser NULL). Puntero a la función DeletePrinterDataEx del proveedor.

fpDeletePrinterKey

(Opcional. Puede ser NULL). Puntero a la función DeletePrinterKey del proveedor.

fpSeekPrinter

Solo para uso interno. Debe ser NULL.

fpDeletePrinterDriverEx

(Opcional. Puede ser NULL). Puntero a la función DeletePrinterDriverEx del proveedor. Si el proveedor no admite el servidor especificado, debe especificar ERROR_INVALID_NAME en SetLastError antes de devolver FALSE.

fpAddPerMachineConnection

Solo para uso interno. Debe ser NULL.

fpDeletePerMachineConnection

Solo para uso interno. Debe ser NULL.

fpEnumPerMachineConnections

Solo para uso interno. Debe ser NULL.

fpXcvData

(Opcional. Puede ser NULL). Puntero a la función XcvData del proveedor.

fpAddPrinterDriverEx

(Opcional. Puede ser NULL). Puntero a la función AddPrinterDriverEx del proveedor. Si el proveedor no admite el servidor especificado, debe especificar ERROR_INVALID_NAME en SetLastError antes de devolver FALSE.

fpSplReadPrinter

Solo para uso interno. Debe ser NULL.

fpDriverUnloadComplete

Solo para uso interno. Debe ser NULL.

fpGetSpoolFileInfo

Solo para uso interno. Debe ser NULL.

fpCommitSpoolData

Solo para uso interno. Debe ser NULL.

fpCloseSpoolFileHandle

Solo para uso interno. Debe ser NULL.

fpFlushPrinter

Solo para uso interno. Debe ser NULL.

fpSendRecvBidiData

(Opcional. Puede ser NULL). Puntero a la función SendRecvBidiData del proveedor. Si este parámetro es NULL, significa que el proveedor no admite la comunicación bidi.

fpAddPrinterConnection2

Solo para uso interno. Debe ser NULL.

fpGetPrintClassObject

Solo para uso interno. Debe ser NULL.

fpReportJobProcessingProgress

Solo para uso interno. Debe ser NULL.

fpEnumAndLogProvidorObjects

Solo para uso interno. Debe ser NULL.

fpInternalGetPrinterDriver

Solo para uso interno. Debe ser NULL.

fpFindCompatibleDriver

Solo para uso interno. Debe ser NULL.

fpInstallPrinterDriverPackageFromConnection

Solo para uso interno. Debe ser NULL.

fpGetJobNamedPropertyValue

Solo para uso interno. Debe ser NULL.

fpSetJobNamedProperty

Solo para uso interno. Debe ser NULL.

fpDeleteJobNamedProperty

Solo para uso interno. Debe ser NULL.

fpEnumJobNamedProperties

Solo para uso interno. Debe ser NULL.

fpPowerEvent

Solo para uso interno. Debe ser NULL.

fpGetUserPropertyBag

Solo para uso interno. Debe ser NULL.

fpCanShutdown

Solo para uso interno. Debe ser NULL.

fpLogJobInfoForBranchOffice

Solo para uso interno. Debe ser NULL.

fpRegeneratePrintDeviceCapabilities

Solo para uso interno. Debe ser NULL.

fpPrintSupportOperation

Solo para uso interno. Debe ser NULL.

fpIppCreateJobOnPrinter

Solo para uso interno. Debe ser NULL.

fpIppGetJobAttributes

Solo para uso interno. Debe ser NULL.

fpIppSetJobAttributes

Solo para uso interno. Debe ser NULL.

fpIppGetPrinterAttributes

Solo para uso interno. Debe ser NULL.

fpIppSetPrinterAttributes

Solo para uso interno. Debe ser NULL.

fpIppCreateJobOnPrinterWithAttributes

Solo para uso interno. Debe ser NULL.

Comentarios

Los punteros de función se muestran en el orden en que se especifican dentro de la estructura PRINTPROVIDOR. Para ver las descripciones de funciones agrupadas por funcionalidades relacionadas, consulte Funciones definidas por proveedores de impresión.

Requisitos

Requisito Valor
Header winsplp.h (incluya Winsplp.h)

Consulte también

FindFirstPrinterChangeNotification

InitializePrintProvidor

RefreshPrinterChangeNotification

SendRecvBidiData

XcvData