Estrutura PRINTPROVIDOR (winsplp.h)

Aviso

A partir do Windows 10, as APIs que dão suporte a provedores de impressão de terceiros são preteridas. A Microsoft não recomenda nenhum investimento em provedores de impressão de terceiros. Além disso, em Windows 8 e produtos mais recentes em que o modelo de driver de impressão v4 está disponível, os provedores de impressão de terceiros podem não criar ou gerenciar filas que usam drivers de impressão v4.

A estrutura PRINTPROVIDOR é usada como um parâmetro para a função InitializePrintProvidor de um provedor de impressão. Todos os valores de membro da estrutura são fornecidos pelo provedor.

Sintaxe

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;

Membros

fpOpenPrinter

(Obrigatório.) Ponteiro para a função OpenPrinter do provedor. No entanto, no nível do provedor, essa função deve fornecer um dos valores de retorno DWORD listados na tabela a seguir.

Retornar valor Definição
ROUTER_SUCCESS O provedor dá suporte à impressora especificada e a abriu.
ROUTER_STOP_ROUTING O provedor dá suporte à impressora especificada, mas ocorreu um erro e a impressora não pôde ser aberta. Supõe-se que nenhum outro provedor possa dar suporte à impressora. A função deve chamar SetLastError.
ROUTER_UNKNOWN O provedor não dá suporte à impressora especificada. A função deve chamar SetLastError e especificar ERROR_INVALID_NAME.

O roteador chama cada provedor até que um deles retorne ROUTER_SUCCESS ou ROUTER_STOP_ROUTING. Se o provedor retornar ROUTER_SUCCESS, ele também deverá retornar um identificador exclusivo. Para obter mais informações, consulte Introdução aos provedores de impressão.) O roteador primeiro tenta chamar a função OpenPrinterEx do provedor. Se essa função não tiver suporte, o roteador chamará OpenPrinter.

fpSetJob

(Obrigatório.) Ponteiro para a função SetJob do provedor.

fpGetJob

(Obrigatório.) Ponteiro para a função GetJob do provedor.

fpEnumJobs

(Obrigatório.) Ponteiro para a função EnumJobs do provedor.

fpAddPrinter

(Opcional. Pode ser NULL.) Ponteiro para a função AddPrinter do provedor.

fpDeletePrinter

(Opcional. Pode ser NULL.) Ponteiro para a função DeletePrinter do provedor.

fpSetPrinter

(Obrigatório.) Ponteiro para a função SetPrinter do provedor.

fpGetPrinter

(Obrigatório.) Ponteiro para a função GetPrinter do provedor. Se você estiver escrevendo um provedor de impressão de rede e GetPrinter estiver retornando uma estrutura PRINTER_INFO_2 , a função deverá fornecer apenas os membros da estrutura cJobs e Status . O provedor de impressão local) fornece o restante dos membros da estrutura.

fpEnumPrinters

(Obrigatório.) Ponteiro para a função EnumPrinters do provedor.

fpAddPrinterDriver

(Opcional. Pode ser NULL.) Ponteiro para a função AddPrinterDriver do provedor. Se o provedor não der suporte ao driver ou servidor especificado, ele deverá especificar ERROR_INVALID_NAME para SetLastError antes de retornar FALSE.

fpEnumPrinterDrivers

(Opcional. Pode ser NULL.) Ponteiro para a função EnumPrinterDrivers do provedor. Se o provedor não der suporte ao servidor especificado, ele deverá especificar ERROR_INVALID_NAME para SetLastError antes de retornar FALSE.

fpGetPrinterDriver

(Opcional. Pode ser NULL.) Ponteiro para a função GetPrinterDriver do provedor. O roteador primeiro tenta chamar a função GetPrinterDriverEx do provedor. Se essa função não tiver suporte, o roteador chamará GetPrinterDriver.

fpGetPrinterDriverDirectory

(Opcional. Pode ser NULL.) Ponteiro para a função GetPrinterDriverDirectory do provedor. Se o provedor não der suporte ao servidor especificado, ele deverá especificar ERROR_INVALID_NAME para SetLastError antes de retornar FALSE.

fpDeletePrinterDriver

(Opcional. Pode ser NULL.) Ponteiro para a função DeletePrinterDriver do provedor. Se o provedor não der suporte ao servidor especificado, ele deverá especificar ERROR_INVALID_NAME para SetLastError antes de retornar FALSE.

fpAddPrintProcessor

(Opcional. Pode ser NULL.) Ponteiro para a função AddPrintProcessor do provedor.

fpEnumPrintProcessors

(Opcional. Pode ser NULL.) Ponteiro para a função EnumPrintProcessors do provedor.

fpGetPrintProcessorDirectory

(Opcional. Pode ser NULL.) Ponteiro para a função GetPrintProcessorDirectory do provedor.

fpDeletePrintProcessor

(Opcional. Pode ser NULL.) Ponteiro para a função DeletePrintProcessor do provedor.

fpEnumPrintProcessorDatatypes

(Opcional. Pode ser NULL.) Ponteiro para a função EnumPrintProcessorDatatypes do provedor.

fpStartDocPrinter

(Obrigatório.) Ponteiro para a função StartDocPrinter do provedor.

fpStartPagePrinter

(Opcional. Pode ser NULL.) Ponteiro para a função StartPagePrinter do provedor.

fpWritePrinter

(Obrigatório.) Ponteiro para a função WritePrinter do provedor.

fpEndPagePrinter

(Opcional. Pode ser NULL.) Ponteiro para a função EndPagePrinterdo provedor.

fpAbortPrinter

(Obrigatório.) Ponteiro para a função AbortPrinter do provedor.

fpReadPrinter

(Opcional. Pode ser NULL.) Ponteiro para a função ReadPrinter do provedor.

fpEndDocPrinter

(Obrigatório.) Ponteiro para a função EndDocPrinter do provedor.

fpAddJob

(Obrigatório.) Ponteiro para a função AddJob do provedor.

fpScheduleJob

(Obrigatório.) Ponteiro para a função ScheduleJob do provedor.

fpGetPrinterData

(Opcional. Pode ser NULL.) Ponteiro para a função GetPrinterData do provedor.

fpSetPrinterData

(Opcional. Pode ser NULL.) Ponteiro para a função SetPrinterData do provedor.

fpWaitForPrinterChange

Obsoleto. Precisa ser NULL.

fpClosePrinter

(Obrigatório.) Ponteiro para a função ClosePrinter do provedor. Se um objeto de notificação de alteração de impressora tiver sido criado, o roteador chamará a função FindClosePrinterChangeNotification do provedor antes de chamar ClosePrinter.

fpAddForm

(Opcional. Pode ser NULL.) Ponteiro para a função AddForm do provedor.

fpDeleteForm

(Opcional. Pode ser NULL.) Ponteiro para a função DeleteForm do provedor.

fpGetForm

(Opcional. Pode ser NULL.) Ponteiro para a função GetForm do provedor.

fpSetForm

(Opcional. Pode ser NULL.) Ponteiro para a função SetForm do provedor.

fpEnumForms

(Opcional. Pode ser NULL.) Ponteiro para a função EnumForms do provedor.

fpEnumMonitors

(Opcional. Pode ser NULL.) Ponteiro para a função EnumMonitors do provedor, que é descrita na documentação do SDK do Windows. No entanto, no nível do provedor, essa função deve fornecer um dos valores retornados DWORD listados na tabela a seguir.

Retornar valor Definição
ROUTER_SUCCESS O provedor enumerou os monitores no servidor especificado.
ROUTER_STOP_ROUTING O provedor enumerou os monitores no servidor especificado e o roteador não deve chamar outros provedores.
ROUTER_UNKNOWN O provedor não dá suporte ao servidor especificado.

fpEnumPorts

Retornar valor Definição
ROUTER_SUCCESS O provedor enumerou as portas no servidor especificado.
ROUTER_STOP_ROUTING O provedor enumerou as portas no servidor especificado e o roteador não deve chamar outros provedores.
ROUTER_UNKNOWN O provedor não dá suporte ao servidor especificado.

fpAddPort

(Opcional. Pode ser NULL.) Ponteiro para a função AddPort do provedor. Se o provedor não der suporte à porta especificada, ele deverá fornecer ERROR_NOT_SUPPORTED para SetLastError antes de retornar FALSE.

fpConfigurePort

(Obrigatório.) Ponteiro para a função ConfigurePort do provedor. Se a função fornecer ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME ou ERROR_UNKNOWN_PORT para SetLastError, o roteador tentará chamar outro provedor.

fpDeletePort

(Obrigatório.) Ponteiro para a função DeletePort do provedor. Se o provedor não der suporte à porta especificada, ele deverá fornecer ERROR_NOT_SUPPORTED para SetLastError antes de retornar FALSE.

fpCreatePrinterIC

Apenas para uso interno. Precisa ser NULL.

fpPlayGdiScriptOnPrinterIC

Apenas para uso interno. Precisa ser NULL.

fpDeletePrinterIC

Apenas para uso interno. Precisa ser NULL.

fpAddPrinterConnection

(Opcional. Pode ser NULL.) Ponteiro para a função AddPrinterConnection do provedor.

fpDeletePrinterConnection

(Opcional. Pode ser NULL.) Ponteiro para a função DeletePrinterConnection do provedor.

fpPrinterMessageBox

Não usado. Precisa ser NULL.

fpAddMonitor

(Opcional. Pode ser NULL.) Ponteiro para a função AddMonitor do provedor. Se o provedor não der suporte ao monitor especificado, ele deverá fornecer ERROR_INVALID_NAME para SetLastError antes de retornar FALSE.

fpDeleteMonitor

(Opcional. Pode ser NULL.) Ponteiro para a função DeleteMonitor do provedor. Se o provedor não der suporte ao monitor especificado, ele deverá fornecer ERROR_INVALID_NAME para SetLastError antes de retornar FALSE.

fpResetPrinter

(Opcional. Pode ser NULL.) Ponteiro para a função ResetPrinter do provedor.

fpGetPrinterDriverEx

(Opcional. Pode ser NULL.) Ponteiro para a função GetPrinterDriverEx do provedor. Se não houver suporte para GetPrinterDriverEx , o roteador tentará chamar GetPrinterDriver.

fpFindFirstPrinterChangeNotification

(Opcional. Pode ser NULL.) Ponteiro para a função FindFirstPrinterChangeNotification do provedor.

fpFindClosePrinterChangeNotification

(Opcional. Pode ser NULL.) Ponteiro para a função FindClosePrinterChangeNotification do provedor.

fpAddPortEx

(Opcional. Pode ser NULL.) Ponteiro para a função AddPortEx do provedor. Se o provedor não der suporte à porta especificada, ele deverá fornecer ERROR_NOT_SUPPORTED para SetLastError antes de retornar FALSE.

fpShutDown

Apenas para uso interno. Precisa ser NULL.

fpRefreshPrinterChangeNotification

(Opcional. Pode ser NULL.) Ponteiro para a função RefreshPrinterChangeNotification do provedor.

fpOpenPrinterEx

Apenas para uso interno. Precisa ser NULL.

fpAddPrinterEx

Apenas para uso interno. Precisa ser NULL.

fpSetPort

(Opcional. Pode ser NULL.) Ponteiro para a função SetPort do provedor. Se a função fornecer ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME ou ERROR_UNKNOWN_PORT para SetLastError, o roteador tentará chamar outro provedor.

fpEnumPrinterData

(Opcional. Pode ser NULL.) Ponteiro para a função EnumPrinterData do provedor.

fpDeletePrinterData

(Opcional. Pode ser NULL.) Ponteiro para a função DeletePrinterData do provedor.

fpClusterSplOpen

Apenas para uso interno. Precisa ser NULL.

fpClusterSplClose

Apenas para uso interno. Precisa ser NULL.

fpClusterSplIsAlive

Apenas para uso interno. Precisa ser NULL.

fpSetPrinterDataEx

(Opcional. Pode ser NULL.) Ponteiro para a função SetPrinterDataEx do provedor.

fpGetPrinterDataEx

(Opcional. Pode ser NULL.) Ponteiro para a função GetPrinterDataEx do provedor.

fpEnumPrinterDataEx

(Opcional. Pode ser NULL.) Ponteiro para a função EnumPrinterDataEx do provedor.

fpEnumPrinterKey

(Opcional. Pode ser NULL.) Ponteiro para a função EnumPrinterKey do provedor.

fpDeletePrinterDataEx

(Opcional. Pode ser NULL.) Ponteiro para a função DeletePrinterDataEx do provedor.

fpDeletePrinterKey

(Opcional. Pode ser NULL.) Ponteiro para a função DeletePrinterKey do provedor.

fpSeekPrinter

Apenas para uso interno. Precisa ser NULL.

fpDeletePrinterDriverEx

(Opcional. Pode ser NULL.) Ponteiro para a função DeletePrinterDriverEx do provedor. Se o provedor não der suporte ao servidor especificado, ele deverá especificar ERROR_INVALID_NAME para SetLastError antes de retornar FALSE.

fpAddPerMachineConnection

Apenas para uso interno. Precisa ser NULL.

fpDeletePerMachineConnection

Apenas para uso interno. Precisa ser NULL.

fpEnumPerMachineConnections

Apenas para uso interno. Precisa ser NULL.

fpXcvData

(Opcional. Pode ser NULL.) Ponteiro para a função XcvData do provedor.

fpAddPrinterDriverEx

(Opcional. Pode ser NULL.) Ponteiro para a função AddPrinterDriverEx do provedor. Se o provedor não der suporte ao servidor especificado, ele deverá especificar ERROR_INVALID_NAME para SetLastError antes de retornar FALSE.

fpSplReadPrinter

Apenas para uso interno. Precisa ser NULL.

fpDriverUnloadComplete

Apenas para uso interno. Precisa ser NULL.

fpGetSpoolFileInfo

Apenas para uso interno. Precisa ser NULL.

fpCommitSpoolData

Apenas para uso interno. Precisa ser NULL.

fpCloseSpoolFileHandle

Apenas para uso interno. Precisa ser NULL.

fpFlushPrinter

Apenas para uso interno. Precisa ser NULL.

fpSendRecvBidiData

(Opcional. Pode ser NULL.) Ponteiro para a função SendRecvBidiData do provedor. Se esse parâmetro for NULL, isso significa que o provedor não dá suporte à comunicação bidi.

fpAddPrinterConnection2

Apenas para uso interno. Precisa ser NULL.

fpGetPrintClassObject

Apenas para uso interno. Precisa ser NULL.

fpReportJobProcessingProgress

Apenas para uso interno. Precisa ser NULL.

fpEnumAndLogProvidorObjects

Apenas para uso interno. Precisa ser NULL.

fpInternalGetPrinterDriver

Apenas para uso interno. Precisa ser NULL.

fpFindCompatibleDriver

Apenas para uso interno. Precisa ser NULL.

fpInstallPrinterDriverPackageFromConnection

Apenas para uso interno. Precisa ser NULL.

fpGetJobNamedPropertyValue

Apenas para uso interno. Precisa ser NULL.

fpSetJobNamedProperty

Apenas para uso interno. Precisa ser NULL.

fpDeleteJobNamedProperty

Apenas para uso interno. Precisa ser NULL.

fpEnumJobNamedProperties

Apenas para uso interno. Precisa ser NULL.

fpPowerEvent

Apenas para uso interno. Precisa ser NULL.

fpGetUserPropertyBag

Apenas para uso interno. Precisa ser NULL.

fpCanShutdown

Apenas para uso interno. Precisa ser NULL.

fpLogJobInfoForBranchOffice

Apenas para uso interno. Precisa ser NULL.

fpRegeneratePrintDeviceCapabilities

Apenas para uso interno. Precisa ser NULL.

fpPrintSupportOperation

Apenas para uso interno. Precisa ser NULL.

fpIppCreateJobOnPrinter

Apenas para uso interno. Precisa ser NULL.

fpIppGetJobAttributes

Apenas para uso interno. Precisa ser NULL.

fpIppSetJobAttributes

Apenas para uso interno. Precisa ser NULL.

fpIppGetPrinterAttributes

Apenas para uso interno. Precisa ser NULL.

fpIppSetPrinterAttributes

Apenas para uso interno. Precisa ser NULL.

fpIppCreateJobOnPrinterWithAttributes

Apenas para uso interno. Precisa ser NULL.

Comentários

Os ponteiros de função são listados na ordem em que são especificados dentro da estrutura PRINTPROVIDOR. Para ver as descrições de função agrupadas por recursos relacionados, consulte Funções definidas por provedores de impressão.

Requisitos

Requisito Valor
Cabeçalho winsplp.h (inclua Winsplp.h)

Confira também

FindFirstPrinterChangeNotification

InitializePrintProvidor

RefreshPrinterChangeNotification

SendRecvBidiData

XcvData