Partager via


STRUCTURE PRINTPROVIDOR (winsplp.h)

Avertissement

À compter de Windows 10, les API qui prennent en charge les fournisseurs d’impression tiers sont déconseillées. Microsoft ne recommande aucun investissement dans des fournisseurs d’impression tiers. En outre, sur Windows 8 et les produits plus récents où le modèle de pilote d’impression v4 est disponible, les fournisseurs d’impression tiers peuvent ne pas créer ou gérer de files d’attente qui utilisent des pilotes d’impression v4.

La structure PRINTPROVIDOR est utilisée comme paramètre pour la fonction InitializePrintProvidor d’un fournisseur d’impression. Toutes les valeurs membres de structure sont fournies par le fournisseur.

Syntaxe

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;

Membres

fpOpenPrinter

(Obligatoire.) Pointeur vers la fonction OpenPrinter du fournisseur. Toutefois, au niveau du fournisseur, cette fonction doit fournir l’une des valeurs de retour DWORD répertoriées dans le tableau suivant.

Valeur retournée Définition
ROUTER_SUCCESS Le fournisseur prend en charge l’imprimante spécifiée et l’a ouverte.
ROUTER_STOP_ROUTING Le fournisseur prend en charge l’imprimante spécifiée, mais une erreur s’est produite et l’imprimante n’a pas pu être ouverte. Il est supposé qu’aucun autre fournisseur ne peut prendre en charge l’imprimante. La fonction doit appeler SetLastError.
ROUTER_UNKNOWN Le fournisseur ne prend pas en charge l’imprimante spécifiée. La fonction doit appeler SetLastError et spécifier ERROR_INVALID_NAME.

Le routeur appelle chaque fournisseur jusqu’à ce que l’un d’eux retourne ROUTER_SUCCESS ou ROUTER_STOP_ROUTING. Si le fournisseur retourne ROUTER_SUCCESS, il doit également retourner un handle unique. Pour plus d’informations, consultez Présentation des fournisseurs d’impression.) Le routeur tente d’abord d’appeler la fonction OpenPrinterEx du fournisseur. Si cette fonction n’est pas prise en charge, le routeur appelle OpenPrinter.

fpSetJob

(Obligatoire.) Pointeur vers la fonction SetJob du fournisseur.

fpGetJob

(Obligatoire.) Pointeur vers la fonction GetJob du fournisseur.

fpEnumJobs

(Obligatoire.) Pointeur vers la fonction EnumJobs du fournisseur.

fpAddPrinter

(Facultatif. Peut être NULL.) Pointeur vers la fonction AddPrinter du fournisseur.

fpDeletePrinter

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeletePrinter du fournisseur.

fpSetPrinter

(Obligatoire.) Pointeur vers la fonction SetPrinter du fournisseur.

fpGetPrinter

(Obligatoire.) Pointeur vers la fonction GetPrinter du fournisseur. Si vous écrivez un fournisseur d’impression réseau et que GetPrinter retourne une structure PRINTER_INFO_2 , la fonction doit fournir uniquement les membres de la structure cJobs et Status . Le fournisseur d’impression local) fournit le reste des membres de la structure.

fpEnumPrinters

(Obligatoire.) Pointeur vers la fonction EnumPrinters du fournisseur.

fpAddPrinterDriver

(Facultatif. Peut être NULL.) Pointeur vers la fonction AddPrinterDriver du fournisseur. Si le fournisseur ne prend pas en charge le pilote ou le serveur spécifié, il doit spécifier ERROR_INVALID_NAME à SetLastError avant de retourner FALSE.

fpEnumPrinterDrivers

(Facultatif. Peut être NULL.) Pointeur vers la fonction EnumPrinterDrivers du fournisseur. Si le fournisseur ne prend pas en charge le serveur spécifié, il doit spécifier ERROR_INVALID_NAME à SetLastError avant de retourner FALSE.

fpGetPrinterDriver

(Facultatif. Peut être NULL.) Pointeur vers la fonction GetPrinterDriver du fournisseur. Le routeur tente d’abord d’appeler la fonction GetPrinterDriverEx du fournisseur. Si cette fonction n’est pas prise en charge, le routeur appelle GetPrinterDriver.

fpGetPrinterDriverDirectory

(Facultatif. Peut être NULL.) Pointeur vers la fonction GetPrinterDriverDirectory du fournisseur. Si le fournisseur ne prend pas en charge le serveur spécifié, il doit spécifier ERROR_INVALID_NAME à SetLastError avant de retourner FALSE.

fpDeletePrinterDriver

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeletePrinterDriver du fournisseur. Si le fournisseur ne prend pas en charge le serveur spécifié, il doit spécifier ERROR_INVALID_NAME à SetLastError avant de retourner FALSE.

fpAddPrintProcessor

(Facultatif. Peut être NULL.) Pointeur vers la fonction AddPrintProcessor du fournisseur.

fpEnumPrintProcessors

(Facultatif. Peut être NULL.) Pointeur vers la fonction EnumPrintProcessors du fournisseur.

fpGetPrintProcessorDirectory

(Facultatif. Peut être NULL.) Pointeur vers la fonction GetPrintProcessorDirectory du fournisseur.

fpDeletePrintProcessor

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeletePrintProcessor du fournisseur.

fpEnumPrintProcessorDatatypes

(Facultatif. Peut être NULL.) Pointeur vers la fonction EnumPrintProcessorDatatypes du fournisseur.

fpStartDocPrinter

(Obligatoire.) Pointeur vers la fonction StartDocPrinter du fournisseur.

fpStartPagePrinter

(Facultatif. Peut être NULL.) Pointeur vers la fonction StartPagePrinter du fournisseur.

fpWritePrinter

(Obligatoire.) Pointeur vers la fonction WritePrinter du fournisseur.

fpEndPagePrinter

(Facultatif. Peut être NULL.) Pointeur vers la fonction EndPagePrinterdu fournisseur.

fpAbortPrinter

(Obligatoire.) Pointeur vers la fonction AbortPrinter du fournisseur.

fpReadPrinter

(Facultatif. Peut être NULL.) Pointeur vers la fonction ReadPrinter du fournisseur.

fpEndDocPrinter

(Obligatoire.) Pointeur vers la fonction EndDocPrinter du fournisseur.

fpAddJob

(Obligatoire.) Pointeur vers la fonction AddJob du fournisseur.

fpScheduleJob

(Obligatoire.) Pointeur vers la fonction ScheduleJob du fournisseur.

fpGetPrinterData

(Facultatif. Peut être NULL.) Pointeur vers la fonction GetPrinterData du fournisseur.

fpSetPrinterData

(Facultatif. Peut être NULL.) Pointeur vers la fonction SetPrinterData du fournisseur.

fpWaitForPrinterChange

Obsolète. Doit être NULL.

fpClosePrinter

(Obligatoire.) Pointeur vers la fonction ClosePrinter du fournisseur. Si un objet de notification de modification d’imprimante a été créé, le routeur appelle la fonction FindClosePrinterChangeNotification du fournisseur avant d’appeler ClosePrinter.

fpAddForm

(Facultatif. Peut être NULL.) Pointeur vers la fonction AddForm du fournisseur.

fpDeleteForm

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeleteForm du fournisseur.

fpGetForm

(Facultatif. Peut être NULL.) Pointeur vers la fonction GetForm du fournisseur.

fpSetForm

(Facultatif. Peut être NULL.) Pointeur vers la fonction SetForm du fournisseur.

fpEnumForms

(Facultatif. Peut être NULL.) Pointeur vers la fonction EnumForms du fournisseur.

fpEnumMonitors

(Facultatif. Peut être NULL.) Pointeur vers la fonction EnumMonitors du fournisseur, qui est décrite dans la documentation SDK Windows. Toutefois, au niveau du fournisseur, cette fonction doit fournir l’une des valeurs de retour DWORD répertoriées dans le tableau suivant.

Valeur retournée Définition
ROUTER_SUCCESS Le fournisseur a énuméré les moniteurs sur le serveur spécifié.
ROUTER_STOP_ROUTING Le fournisseur a énuméré les moniteurs sur le serveur spécifié, et le routeur ne doit pas appeler d’autres fournisseurs.
ROUTER_UNKNOWN Le fournisseur ne prend pas en charge le serveur spécifié.

fpEnumPorts

Valeur retournée Définition
ROUTER_SUCCESS Le fournisseur a énuméré les ports sur le serveur spécifié.
ROUTER_STOP_ROUTING Le fournisseur a énuméré les ports sur le serveur spécifié et le routeur ne doit pas appeler d’autres fournisseurs.
ROUTER_UNKNOWN Le fournisseur ne prend pas en charge le serveur spécifié.

fpAddPort

(Facultatif. Peut être NULL.) Pointeur vers la fonction AddPort du fournisseur. Si le fournisseur ne prend pas en charge le port spécifié, il doit fournir ERROR_NOT_SUPPORTED à SetLastError avant de retourner FALSE.

fpConfigurePort

(Obligatoire.) Pointeur vers la fonction ConfigurePort du fournisseur. Si la fonction fournit ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME ou ERROR_UNKNOWN_PORT à SetLastError, le routeur tente d’appeler un autre fournisseur.

fpDeletePort

(Obligatoire.) Pointeur vers la fonction DeletePort du fournisseur. Si le fournisseur ne prend pas en charge le port spécifié, il doit fournir ERROR_NOT_SUPPORTED à SetLastError avant de retourner FALSE.

fpCreatePrinterIC

À usage interne uniquement. Doit être NULL.

fpPlayGdiScriptOnPrinterIC

À usage interne uniquement. Doit être NULL.

fpDeletePrinterIC

À usage interne uniquement. Doit être NULL.

fpAddPrinterConnection

(Facultatif. Peut être NULL.) Pointeur vers la fonction AddPrinterConnection du fournisseur.

fpDeletePrinterConnection

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeletePrinterConnection du fournisseur.

fpPrinterMessageBox

Non utilisé. Doit être NULL.

fpAddMonitor

(Facultatif. Peut être NULL.) Pointeur vers la fonction AddMonitor du fournisseur. Si le fournisseur ne prend pas en charge le moniteur spécifié, il doit fournir ERROR_INVALID_NAME à SetLastError avant de retourner FALSE.

fpDeleteMonitor

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeleteMonitor du fournisseur. Si le fournisseur ne prend pas en charge le moniteur spécifié, il doit fournir ERROR_INVALID_NAME à SetLastError avant de retourner FALSE.

fpResetPrinter

(Facultatif. Peut être NULL.) Pointeur vers la fonction ResetPrinter du fournisseur.

fpGetPrinterDriverEx

(Facultatif. Peut être NULL.) Pointeur vers la fonction GetPrinterDriverEx du fournisseur. Si GetPrinterDriverEx n’est pas pris en charge, le routeur tente d’appeler GetPrinterDriver.

fpFindFirstPrinterChangeNotification

(Facultatif. Peut être NULL.) Pointeur vers la fonction FindFirstPrinterChangeNotification du fournisseur.

fpFindClosePrinterChangeNotification

(Facultatif. Peut être NULL.) Pointeur vers la fonction FindClosePrinterChangeNotification du fournisseur.

fpAddPortEx

(Facultatif. Peut être NULL.) Pointeur vers la fonction AddPortEx du fournisseur. Si le fournisseur ne prend pas en charge le port spécifié, il doit fournir ERROR_NOT_SUPPORTED à SetLastError avant de retourner FALSE.

fpShutDown

À usage interne uniquement. Doit être NULL.

fpRefreshPrinterChangeNotification

(Facultatif. Peut être NULL.) Pointeur vers la fonction RefreshPrinterChangeNotification du fournisseur.

fpOpenPrinterEx

À usage interne uniquement. Doit être NULL.

fpAddPrinterEx

À usage interne uniquement. Doit être NULL.

fpSetPort

(Facultatif. Peut être NULL.) Pointeur vers la fonction SetPort du fournisseur. Si la fonction fournit ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME ou ERROR_UNKNOWN_PORT à SetLastError, le routeur tente d’appeler un autre fournisseur.

fpEnumPrinterData

(Facultatif. Peut être NULL.) Pointeur vers la fonction EnumPrinterData du fournisseur.

fpDeletePrinterData

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeletePrinterData du fournisseur.

fpClusterSplOpen

À usage interne uniquement. Doit être NULL.

fpClusterSplClose

À usage interne uniquement. Doit être NULL.

fpClusterSplIsAlive

À usage interne uniquement. Doit être NULL.

fpSetPrinterDataEx

(Facultatif. Peut être NULL.) Pointeur vers la fonction SetPrinterDataEx du fournisseur.

fpGetPrinterDataEx

(Facultatif. Peut être NULL.) Pointeur vers la fonction GetPrinterDataEx du fournisseur.

fpEnumPrinterDataEx

(Facultatif. Peut être NULL.) Pointeur vers la fonction EnumPrinterDataEx du fournisseur.

fpEnumPrinterKey

(Facultatif. Peut être NULL.) Pointeur vers la fonction EnumPrinterKey du fournisseur.

fpDeletePrinterDataEx

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeletePrinterDataEx du fournisseur.

fpDeletePrinterKey

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeletePrinterKey du fournisseur.

fpSeekPrinter

À usage interne uniquement. Doit être NULL.

fpDeletePrinterDriverEx

(Facultatif. Peut être NULL.) Pointeur vers la fonction DeletePrinterDriverEx du fournisseur. Si le fournisseur ne prend pas en charge le serveur spécifié, il doit spécifier ERROR_INVALID_NAME à SetLastError avant de retourner FALSE.

fpAddPerMachineConnection

À usage interne uniquement. Doit être NULL.

fpDeletePerMachineConnection

À usage interne uniquement. Doit être NULL.

fpEnumPerMachineConnections

À usage interne uniquement. Doit être NULL.

fpXcvData

(Facultatif. Peut être NULL.) Pointeur vers la fonction XcvData du fournisseur.

fpAddPrinterDriverEx

(Facultatif. Peut être NULL.) Pointeur vers la fonction AddPrinterDriverEx du fournisseur. Si le fournisseur ne prend pas en charge le serveur spécifié, il doit spécifier ERROR_INVALID_NAME à SetLastError avant de retourner FALSE.

fpSplReadPrinter

À usage interne uniquement. Doit être NULL.

fpDriverUnloadComplete

À usage interne uniquement. Doit être NULL.

fpGetSpoolFileInfo

À usage interne uniquement. Doit être NULL.

fpCommitSpoolData

À usage interne uniquement. Doit être NULL.

fpCloseSpoolFileHandle

À usage interne uniquement. Doit être NULL.

fpFlushPrinter

À usage interne uniquement. Doit être NULL.

fpSendRecvBidiData

(Facultatif. Peut être NULL.) Pointeur vers la fonction SendRecvBidiData du fournisseur. Si ce paramètre a la valeur NULL, cela signifie que le fournisseur ne prend pas en charge la communication bidi.

fpAddPrinterConnection2

À usage interne uniquement. Doit être NULL.

fpGetPrintClassObject

À usage interne uniquement. Doit être NULL.

fpReportJobProcessingProgress

À usage interne uniquement. Doit être NULL.

fpEnumAndLogProvidorObjects

À usage interne uniquement. Doit être NULL.

fpInternalGetPrinterDriver

À usage interne uniquement. Doit être NULL.

fpFindCompatibleDriver

À usage interne uniquement. Doit être NULL.

fpInstallPrinterDriverPackageFromConnection

À usage interne uniquement. Doit être NULL.

fpGetJobNamedPropertyValue

À usage interne uniquement. Doit être NULL.

fpSetJobNamedProperty

À usage interne uniquement. Doit être NULL.

fpDeleteJobNamedProperty

À usage interne uniquement. Doit être NULL.

fpEnumJobNamedProperties

À usage interne uniquement. Doit être NULL.

fpPowerEvent

À usage interne uniquement. Doit être NULL.

fpGetUserPropertyBag

À usage interne uniquement. Doit être NULL.

fpCanShutdown

À usage interne uniquement. Doit être NULL.

fpLogJobInfoForBranchOffice

À usage interne uniquement. Doit être NULL.

fpRegeneratePrintDeviceCapabilities

À usage interne uniquement. Doit être NULL.

fpPrintSupportOperation

À usage interne uniquement. Doit être NULL.

fpIppCreateJobOnPrinter

À usage interne uniquement. Doit être NULL.

fpIppGetJobAttributes

À usage interne uniquement. Doit être NULL.

fpIppSetJobAttributes

À usage interne uniquement. Doit être NULL.

fpIppGetPrinterAttributes

À usage interne uniquement. Doit être NULL.

fpIppSetPrinterAttributes

À usage interne uniquement. Doit être NULL.

fpIppCreateJobOnPrinterWithAttributes

À usage interne uniquement. Doit être NULL.

Remarques

Les pointeurs de fonction sont répertoriés dans l’ordre dans lequel ils sont spécifiés dans la structure PRINTPROVIDOR. Pour afficher les descriptions de fonctions regroupées par fonctionnalités associées, consultez Fonctions définies par les fournisseurs d’impression.

Configuration requise

Condition requise Valeur
En-tête winsplp.h (inclure Winsplp.h)

Voir aussi

FindFirstPrinterChangeNotification

InitializePrintProvidor

RefreshPrinterChangeNotification

SendRecvBidiData

XcvData