Freigeben über


PRINTPROVIDOR-Struktur (winsplp.h)

Warnung

Ab Windows 10 sind die APIs, die Druckanbieter von Drittanbietern unterstützen, veraltet. Microsoft empfiehlt keine Investition in Druckanbieter von Drittanbietern. Darüber hinaus können Drittanbieter unter Windows 8 und neueren Produkten, bei 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 Strukturmemmemmwerte 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;

Angehörige

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 angeben.

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 zunächst, 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 cJobs und Status Strukturmember bereitstellen. Der lokalen Druckanbieter) stellt die restlichen Strukturmber 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 ERROR_INVALID_NAME SetLastError- angegeben werden, 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 zum SetLastError- angeben, bevor FALSE-zurückgegeben wird.

fpGetPrinterDriver

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

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 zum 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 zum 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--Funktion des 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

Obsolet. 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 angeben.

Rückgabewert Definition
ROUTER_SUCCESS Der Anbieter hat die Monitore auf dem angegebenen Server aufgezählt.
ROUTER_STOP_ROUTING Der Anbieter hat die Monitore auf dem angegebenen Server aufgezählt, 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 aufgezählt.
ROUTER_STOP_ROUTING Der Anbieter hat die Ports auf dem angegebenen Server aufgezählt, 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 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 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 SetLastError- bereitstellen, bevor FALSE-zurückgegeben wird.

fpCreatePrinterIC

Nur für die interne Verwendung. Muss NULL sein.

fpPlayGdiScriptOnPrinterIC

Nur für die interne Verwendung. Muss NULL sein.

fpDeletePrinterIC

Nur für die interne 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 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 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, GetPrinterDriveraufzurufen.

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 SetLastError- bereitstellen, bevor FALSE-zurückgegeben wird.

fpShutDown

Nur für die interne Verwendung. Muss NULL sein.

fpRefreshPrinterChangeNotification

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

fpOpenPrinterEx

Nur für die interne Verwendung. Muss NULL sein.

fpAddPrinterEx

Nur für die interne 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 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 für die interne Verwendung. Muss NULL sein.

fpClusterSplClose

Nur für die interne Verwendung. Muss NULL sein.

fpClusterSplIsAlive

Nur für die interne 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 für die interne 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 zum SetLastError- angeben, bevor FALSE-zurückgegeben wird.

fpAddPerMachineConnection

Nur für die interne Verwendung. Muss NULL sein.

fpDeletePerMachineConnection

Nur für die interne Verwendung. Muss NULL sein.

fpEnumPerMachineConnections

Nur für die interne 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 zum SetLastError- angeben, bevor FALSE-zurückgegeben wird.

fpSplReadPrinter

Nur für die interne Verwendung. Muss NULL sein.

fpDriverUnloadComplete

Nur für die interne Verwendung. Muss NULL sein.

fpGetSpoolFileInfo

Nur für die interne Verwendung. Muss NULL sein.

fpCommitSpoolData

Nur für die interne Verwendung. Muss NULL sein.

fpCloseSpoolFileHandle

Nur für die interne Verwendung. Muss NULL sein.

fpFlushPrinter

Nur für die interne 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 für die interne Verwendung. Muss NULL sein.

fpGetPrintClassObject

Nur für die interne Verwendung. Muss NULL sein.

fpReportJobProcessingProgress

Nur für die interne Verwendung. Muss NULL sein.

fpEnumAndLogProvidorObjects

Nur für die interne Verwendung. Muss NULL sein.

fpInternalGetPrinterDriver

Nur für die interne Verwendung. Muss NULL sein.

fpFindCompatibleDriver

Nur für die interne Verwendung. Muss NULL sein.

fpInstallPrinterDriverPackageFromConnection

Nur für die interne Verwendung. Muss NULL sein.

fpGetJobNamedPropertyValue

Nur für die interne Verwendung. Muss NULL sein.

fpSetJobNamedProperty

Nur für die interne Verwendung. Muss NULL sein.

fpDeleteJobNamedProperty

Nur für die interne Verwendung. Muss NULL sein.

fpEnumJobNamedProperties

Nur für die interne Verwendung. Muss NULL sein.

fpPowerEvent

Nur für die interne Verwendung. Muss NULL sein.

fpGetUserPropertyBag

Nur für die interne Verwendung. Muss NULL sein.

fpCanShutdown

Nur für die interne Verwendung. Muss NULL sein.

fpLogJobInfoForBranchOffice

Nur für die interne Verwendung. Muss NULL sein.

fpRegeneratePrintDeviceCapabilities

Nur für die interne Verwendung. Muss NULL sein.

fpPrintSupportOperation

Nur für die interne Verwendung. Muss NULL sein.

fpIppCreateJobOnPrinter

Nur für die interne Verwendung. Muss NULL sein.

fpIppGetJobAttributes

Nur für die interne Verwendung. Muss NULL sein.

fpIppSetJobAttributes

Nur für die interne Verwendung. Muss NULL sein.

fpIppGetPrinterAttributes

Nur für die interne Verwendung. Muss NULL sein.

fpIppSetPrinterAttributes

Nur für die interne Verwendung. Muss NULL sein.

fpIppCreateJobOnPrinterWithAttributes

Nur für die interne Verwendung. Muss NULL sein.

Bemerkungen

Funktionszeiger werden in der Reihenfolge aufgelistet, in der sie innerhalb der PRINTPROVIDOR-Struktur angegeben werden. Informationen zum Anzeigen von Funktionsbeschreibungen, die nach verwandten Funktionen gruppiert sind, finden Sie unter Von Druckanbietern definierten Funktionen.

Anforderungen

Anforderung Wert
Header- winsplp.h (include Winsplp.h)

Siehe auch

FindFirstPrinterChangeNotification-

InitializePrintProvidor

RefreshPrinterChangeNotification-

SendRecvBidiData-

XcvData-