PRINTPROVIDOR-Struktur (winsplp.h)

Warnung

Ab Windows 10 sind die APIs, die Druckanbieter von Drittanbietern unterstützen, veraltet. Microsoft empfiehlt keine Investitionen in Druckanbieter von Drittanbietern. Darüber hinaus können Druckanbieter von Drittanbietern in Windows 8 und neueren Produkten, in denen das v4-Drucktreibermodell verfügbar ist, keine Warteschlangen erstellen oder verwalten, die v4-Drucktreiber verwenden.

Die PRINTPROVIDOR-Struktur wird als Parameter für die InitializePrintProvidor-Funktion eines Druckanbieters verwendet. Alle Strukturmemberwerte werden vom Anbieter bereitgestellt.

Syntax

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;

Member

fpOpenPrinter

(Erforderlich.) Zeiger auf die OpenPrinter-Funktion des Anbieters. Auf Anbieterebene muss diese Funktion jedoch einen der in der folgenden Tabelle aufgeführten DWORD-Rückgabewerte bereitstellen.

Rückgabewert Definition
ROUTER_SUCCESS Der Anbieter unterstützt den angegebenen Drucker und hat ihn geöffnet.
ROUTER_STOP_ROUTING Der Anbieter unterstützt den angegebenen Drucker, aber es ist ein Fehler aufgetreten, und der Drucker konnte nicht geöffnet werden. Es wird davon ausgegangen, dass kein anderer Anbieter den Drucker unterstützen kann. Die Funktion muss SetLastError aufrufen.
ROUTER_UNKNOWN Der Anbieter unterstützt den angegebenen Drucker nicht. Die Funktion muss SetLastError aufrufen und ERROR_INVALID_NAME angeben.

Der Router ruft jeden Anbieter auf, bis einer von ihnen ROUTER_SUCCESS oder ROUTER_STOP_ROUTING zurückgibt. Wenn der Anbieter ROUTER_SUCCESS zurückgibt, muss er auch ein eindeutiges Handle zurückgeben. Weitere Informationen finden Sie unter Einführung in Druckanbieter.) Der Router versucht zuerst, die OpenPrinterEx-Funktion des Anbieters aufzurufen. Wenn diese Funktion nicht unterstützt wird, ruft der Router OpenPrinter auf.

fpSetJob

(Erforderlich.) Zeiger auf die SetJob-Funktion des Anbieters.

fpGetJob

(Erforderlich.) Zeiger auf die GetJob-Funktion des Anbieters.

fpEnumJobs

(Erforderlich.) Zeiger auf die EnumJobs-Funktion des Anbieters.

fpAddPrinter

(Optional. Kann NULL sein.) Zeiger auf die AddPrinter-Funktion des Anbieters.

fpDeletePrinter

(Optional. Kann NULL sein.) Zeiger auf die DeletePrinter-Funktion des Anbieters.

fpSetPrinter

(Erforderlich.) Zeiger auf die SetPrinter-Funktion des Anbieters.

fpGetPrinter

(Erforderlich.) Zeiger auf die GetPrinter-Funktion des Anbieters. Wenn Sie einen Netzwerkdruckanbieter schreiben und GetPrinter eine PRINTER_INFO_2 Struktur zurückgibt, sollte die Funktion nur die Strukturmitglieder cJobs und Status bereitstellen. Der lokale Druckanbieter) stellt die restlichen Strukturmitglieder bereit.

fpEnumPrinters

(Erforderlich.) Zeiger auf die EnumPrinters-Funktion des Anbieters.

fpAddPrinterDriver

(Optional. Kann NULL sein.) Zeiger auf die AddPrinterDriver-Funktion des Anbieters. Wenn der Anbieter den angegebenen Treiber oder Server nicht unterstützt, sollte er ERROR_INVALID_NAME zu SetLastError angeben, bevor FALSE zurückgegeben wird.

fpEnumPrinterDrivers

(Optional. Kann NULL sein.) Zeiger auf die EnumPrinterDrivers-Funktion des Anbieters. Wenn der Anbieter den angegebenen Server nicht unterstützt, sollte er ERROR_INVALID_NAME zu SetLastError angeben, bevor FALSE zurückgegeben wird.

fpGetPrinterDriver

(Optional. Kann NULL sein.) Zeiger auf die GetPrinterDriver-Funktion des Anbieters. Der Router versucht zuerst, die GetPrinterDriverEx-Funktion des Anbieters aufzurufen. Wenn diese Funktion nicht unterstützt wird, ruft der Router GetPrinterDriver auf.

fpGetPrinterDriverDirectory

(Optional. Kann NULL sein.) Zeiger auf die GetPrinterDriverDirectory-Funktion des Anbieters. Wenn der Anbieter den angegebenen Server nicht unterstützt, sollte er ERROR_INVALID_NAME zu SetLastError angeben, bevor FALSE zurückgegeben wird.

fpDeletePrinterDriver

(Optional. Kann NULL sein.) Zeiger auf die DeletePrinterDriver-Funktion des Anbieters. Wenn der Anbieter den angegebenen Server nicht unterstützt, sollte er ERROR_INVALID_NAME zu SetLastError angeben, bevor FALSE zurückgegeben wird.

fpAddPrintProcessor

(Optional. Kann NULL sein.) Zeiger auf die AddPrintProcessor-Funktion des Anbieters.

fpEnumPrintProcessors

(Optional. Kann NULL sein.) Zeiger auf die EnumPrintProcessors-Funktion des Anbieters.

fpGetPrintProcessorDirectory

(Optional. Kann NULL sein.) Zeiger auf die GetPrintProcessorDirectory-Funktion des Anbieters.

fpDeletePrintProcessor

(Optional. Kann NULL sein.) Zeiger auf die DeletePrintProcessor-Funktion des Anbieters.

fpEnumPrintProcessorDatatypes

(Optional. Kann NULL sein.) Zeiger auf die EnumPrintProcessorDatatypes-Funktion des Anbieters .

fpStartDocPrinter

(Erforderlich.) Zeiger auf die StartDocPrinter-Funktion des Anbieters.

fpStartPagePrinter

(Optional. Kann NULL sein.) Zeiger auf die StartPagePrinter-Funktion des Anbieters.

fpWritePrinter

(Erforderlich.) Zeiger auf die WritePrinter-Funktion des Anbieters.

fpEndPagePrinter

(Optional. Kann NULL sein.) Zeiger auf die EndPagePrinter-Funktiondes Anbieters.

fpAbortPrinter

(Erforderlich.) Zeiger auf die AbortPrinter-Funktion des Anbieters.

fpReadPrinter

(Optional. Kann NULL sein.) Zeiger auf die ReadPrinter-Funktion des Anbieters.

fpEndDocPrinter

(Erforderlich.) Zeiger auf die EndDocPrinter-Funktion des Anbieters.

fpAddJob

(Erforderlich.) Zeiger auf die AddJob-Funktion des Anbieters.

fpScheduleJob

(Erforderlich.) Zeiger auf die ScheduleJob-Funktion des Anbieters.

fpGetPrinterData

(Optional. Kann NULL sein.) Zeiger auf die GetPrinterData-Funktion des Anbieters.

fpSetPrinterData

(Optional. Kann NULL sein.) Zeiger auf die SetPrinterData-Funktion des Anbieters.

fpWaitForPrinterChange

Veraltet. Muss NULL sein.

fpClosePrinter

(Erforderlich.) Zeiger auf die ClosePrinter-Funktion des Anbieters. Wenn ein Druckeränderungsbenachrichtigungsobjekt erstellt wurde, ruft der Router die FindClosePrinterChangeNotification-Funktion des Anbieters auf, bevor ClosePrinter aufgerufen wird.

fpAddForm

(Optional. Kann NULL sein.) Zeiger auf die AddForm-Funktion des Anbieters.

fpDeleteForm

(Optional. Kann NULL sein.) Zeiger auf die DeleteForm-Funktion des Anbieters.

fpGetForm

(Optional. Kann NULL sein.) Zeiger auf die GetForm-Funktion des Anbieters.

fpSetForm

(Optional. Kann NULL sein.) Zeiger auf die SetForm-Funktion des Anbieters.

fpEnumForms

(Optional. Kann NULL sein.) Zeiger auf die EnumForms-Funktion des Anbieters.

fpEnumMonitors

(Optional. Kann NULL sein.) Zeiger auf die EnumMonitors-Funktion des Anbieters, die in der Windows SDK-Dokumentation beschrieben wird. Auf Anbieterebene muss diese Funktion jedoch einen der in der folgenden Tabelle aufgeführten DWORD-Rückgabewerte bereitstellen.

Rückgabewert Definition
ROUTER_SUCCESS Der Anbieter hat die Monitore auf dem angegebenen Server aufgelistet.
ROUTER_STOP_ROUTING Der Anbieter hat die Monitore auf dem angegebenen Server aufgelistet, und der Router sollte keine anderen Anbieter aufrufen.
ROUTER_UNKNOWN Der Anbieter unterstützt den angegebenen Server nicht.

fpEnumPorts

Rückgabewert Definition
ROUTER_SUCCESS Der Anbieter hat die Ports auf dem angegebenen Server aufgelistet.
ROUTER_STOP_ROUTING Der Anbieter hat die Ports auf dem angegebenen Server aufgelistet, und der Router sollte keine anderen Anbieter aufrufen.
ROUTER_UNKNOWN Der Anbieter unterstützt den angegebenen Server nicht.

fpAddPort

(Optional. Kann NULL sein.) Zeiger auf die AddPort-Funktion des Anbieters. Wenn der Anbieter den angegebenen Port nicht unterstützt, muss er ERROR_NOT_SUPPORTED an SetLastError bereitstellen, bevor FALSE zurückgegeben wird.

fpConfigurePort

(Erforderlich.) Zeiger auf die ConfigurePort-Funktion des Anbieters. Wenn die Funktion ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME oder ERROR_UNKNOWN_PORT an SetLastError bereitstellt, versucht der Router, einen anderen Anbieter aufzurufen.

fpDeletePort

(Erforderlich.) Zeiger auf die DeletePort-Funktion des Anbieters. Wenn der Anbieter den angegebenen Port nicht unterstützt, muss er ERROR_NOT_SUPPORTED an SetLastError bereitstellen, bevor FALSE zurückgegeben wird.

fpCreatePrinterIC

Nur zur internen Verwendung. Muss NULL sein.

fpPlayGdiScriptOnPrinterIC

Nur zur internen Verwendung. Muss NULL sein.

fpDeletePrinterIC

Nur zur internen Verwendung. Muss NULL sein.

fpAddPrinterConnection

(Optional. Kann NULL sein.) Zeiger auf die AddPrinterConnection-Funktion des Anbieters.

fpDeletePrinterConnection

(Optional. Kann NULL sein.) Zeiger auf die DeletePrinterConnection-Funktion des Anbieters.

fpPrinterMessageBox

Wird nicht verwendet. Muss NULL sein.

fpAddMonitor

(Optional. Kann NULL sein.) Zeiger auf die AddMonitor-Funktion des Anbieters. Wenn der Anbieter den angegebenen Monitor nicht unterstützt, muss er ERROR_INVALID_NAME an SetLastError bereitstellen, bevor FALSE zurückgegeben wird.

fpDeleteMonitor

(Optional. Kann NULL sein.) Zeiger auf die DeleteMonitor-Funktion des Anbieters. Wenn der Anbieter den angegebenen Monitor nicht unterstützt, muss er ERROR_INVALID_NAME an SetLastError bereitstellen, bevor FALSE zurückgegeben wird.

fpResetPrinter

(Optional. Kann NULL sein.) Zeiger auf die ResetPrinter-Funktion des Anbieters.

fpGetPrinterDriverEx

(Optional. Kann NULL sein.) Zeiger auf die GetPrinterDriverEx-Funktion des Anbieters. Wenn GetPrinterDriverEx nicht unterstützt wird, versucht der Router , GetPrinterDriver aufzurufen.

fpFindFirstPrinterChangeNotification

(Optional. Kann NULL sein.) Zeiger auf die FindFirstPrinterChangeNotification-Funktion des Anbieters.

fpFindClosePrinterChangeNotification

(Optional. Kann NULL sein.) Zeiger auf die FindClosePrinterChangeNotification-Funktion des Anbieters.

fpAddPortEx

(Optional. Kann NULL sein.) Zeiger auf die AddPortEx-Funktion des Anbieters. Wenn der Anbieter den angegebenen Port nicht unterstützt, muss er ERROR_NOT_SUPPORTED an SetLastError bereitstellen, bevor FALSE zurückgegeben wird.

fpShutDown

Nur zur internen Verwendung. Muss NULL sein.

fpRefreshPrinterChangeNotification

(Optional. Kann NULL sein.) Zeiger auf die RefreshPrinterChangeNotification-Funktion des Anbieters.

fpOpenPrinterEx

Nur zur internen Verwendung. Muss NULL sein.

fpAddPrinterEx

Nur zur internen Verwendung. Muss NULL sein.

fpSetPort

(Optional. Kann NULL sein.) Zeiger auf die SetPort-Funktion des Anbieters. Wenn die Funktion ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME oder ERROR_UNKNOWN_PORT an SetLastError bereitstellt, versucht der Router, einen anderen Anbieter aufzurufen.

fpEnumPrinterData

(Optional. Kann NULL sein.) Zeiger auf die EnumPrinterData-Funktion des Anbieters.

fpDeletePrinterData

(Optional. Kann NULL sein.) Zeiger auf die DeletePrinterData-Funktion des Anbieters.

fpClusterSplOpen

Nur zur internen Verwendung. Muss NULL sein.

fpClusterSplClose

Nur zur internen Verwendung. Muss NULL sein.

fpClusterSplIsAlive

Nur zur internen Verwendung. Muss NULL sein.

fpSetPrinterDataEx

(Optional. Kann NULL sein.) Zeiger auf die SetPrinterDataEx-Funktion des Anbieters.

fpGetPrinterDataEx

(Optional. Kann NULL sein.) Zeiger auf die GetPrinterDataEx-Funktion des Anbieters.

fpEnumPrinterDataEx

(Optional. Kann NULL sein.) Zeiger auf die EnumPrinterDataEx-Funktion des Anbieters.

fpEnumPrinterKey

(Optional. Kann NULL sein.) Zeiger auf die EnumPrinterKey-Funktion des Anbieters.

fpDeletePrinterDataEx

(Optional. Kann NULL sein.) Zeiger auf die DeletePrinterDataEx-Funktion des Anbieters.

fpDeletePrinterKey

(Optional. Kann NULL sein.) Zeiger auf die DeletePrinterKey-Funktion des Anbieters.

fpSeekPrinter

Nur zur internen Verwendung. Muss NULL sein.

fpDeletePrinterDriverEx

(Optional. Kann NULL sein.) Zeiger auf die DeletePrinterDriverEx-Funktion des Anbieters. Wenn der Anbieter den angegebenen Server nicht unterstützt, sollte er ERROR_INVALID_NAME in SetLastError angeben, bevor FALSE zurückgegeben wird.

fpAddPerMachineConnection

Nur zur internen Verwendung. Muss NULL sein.

fpDeletePerMachineConnection

Nur zur internen Verwendung. Muss NULL sein.

fpEnumPerMachineConnections

Nur zur internen Verwendung. Muss NULL sein.

fpXcvData

(Optional. Kann NULL sein.) Zeiger auf die XcvData-Funktion des Anbieters.

fpAddPrinterDriverEx

(Optional. Kann NULL sein.) Zeiger auf die AddPrinterDriverEx-Funktion des Anbieters. Wenn der Anbieter den angegebenen Server nicht unterstützt, sollte er ERROR_INVALID_NAME in SetLastError angeben, bevor FALSE zurückgegeben wird.

fpSplReadPrinter

Nur zur internen Verwendung. Muss NULL sein.

fpDriverUnloadComplete

Nur zur internen Verwendung. Muss NULL sein.

fpGetSpoolFileInfo

Nur zur internen Verwendung. Muss NULL sein.

fpCommitSpoolData

Nur zur internen Verwendung. Muss NULL sein.

fpCloseSpoolFileHandle

Nur zur internen Verwendung. Muss NULL sein.

fpFlushPrinter

Nur zur internen Verwendung. Muss NULL sein.

fpSendRecvBidiData

(Optional. Kann NULL sein.) Zeiger auf die SendRecvBidiData-Funktion des Anbieters. Wenn dieser Parameter NULL ist, bedeutet dies, dass der Anbieter die Bidi-Kommunikation nicht unterstützt.

fpAddPrinterConnection2

Nur zur internen Verwendung. Muss NULL sein.

fpGetPrintClassObject

Nur zur internen Verwendung. Muss NULL sein.

fpReportJobProcessingProgress

Nur zur internen Verwendung. Muss NULL sein.

fpEnumAndLogProvidorObjects

Nur zur internen Verwendung. Muss NULL sein.

fpInternalGetPrinterDriver

Nur zur internen Verwendung. Muss NULL sein.

fpFindCompatibleDriver

Nur zur internen Verwendung. Muss NULL sein.

fpInstallPrinterDriverPackageFromConnection

Nur zur internen Verwendung. Muss NULL sein.

fpGetJobNamedPropertyValue

Nur zur internen Verwendung. Muss NULL sein.

fpSetJobNamedProperty

Nur zur internen Verwendung. Muss NULL sein.

fpDeleteJobNamedProperty

Nur zur internen Verwendung. Muss NULL sein.

fpEnumJobNamedProperties

Nur zur internen Verwendung. Muss NULL sein.

fpPowerEvent

Nur zur internen Verwendung. Muss NULL sein.

fpGetUserPropertyBag

Nur zur internen Verwendung. Muss NULL sein.

fpCanShutdown

Nur zur internen Verwendung. Muss NULL sein.

fpLogJobInfoForBranchOffice

Nur zur internen Verwendung. Muss NULL sein.

fpRegeneratePrintDeviceCapabilities

Nur zur internen Verwendung. Muss NULL sein.

fpPrintSupportOperation

Nur zur internen Verwendung. Muss NULL sein.

fpIppCreateJobOnPrinter

Nur zur internen Verwendung. Muss NULL sein.

fpIppGetJobAttributes

Nur zur internen Verwendung. Muss NULL sein.

fpIppSetJobAttributes

Nur zur internen Verwendung. Muss NULL sein.

fpIppGetPrinterAttributes

Nur zur internen Verwendung. Muss NULL sein.

fpIppSetPrinterAttributes

Nur zur internen Verwendung. Muss NULL sein.

fpIppCreateJobOnPrinterWithAttributes

Nur zur internen Verwendung. Muss NULL sein.

Hinweise

Funktionszeiger werden in der Reihenfolge aufgeführt, in der sie innerhalb der PRINTPROVIDOR-Struktur angegeben sind. Funktionsbeschreibungen, die nach verwandten Funktionen gruppiert sind, finden Sie unter Von Druckanbietern definierte Funktionen.

Anforderungen

Anforderung Wert
Header winsplp.h (winsplp.h einschließen)

Weitere Informationen

FindFirstPrinterChangeNotification

InitializePrintProvidor

RefreshPrinterChangeNotification

SendRecvBidiData

XcvData