다음을 통해 공유


PRINTPROVIDOR 구조체(winsplp.h)

경고

Windows 10 타사 인쇄 공급자를 지원하는 API는 더 이상 사용되지 않습니다. Microsoft는 타사 인쇄 공급자에 대한 투자를 권장하지 않습니다. 또한 v4 인쇄 드라이버 모델을 사용할 수 있는 Windows 8 최신 제품에서는 타사 인쇄 공급자가 v4 인쇄 드라이버를 사용하는 큐를 만들거나 관리할 수 없습니다.

PRINTPROVIDOR 구조체는 인쇄 공급자의 InitializePrintProvidor 함수에 대한 매개 변수로 사용됩니다. 모든 구조체 멤버 값은 공급자가 제공합니다.

구문

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;

멤버

fpOpenPrinter

(필수) 공급자의 OpenPrinter 함수에 대한 포인터입니다. 그러나 공급자 수준에서 이 함수는 다음 표에 나열된 DWORD 반환 값 중 하나를 제공해야 합니다.

반환 값 정의
ROUTER_SUCCESS 공급자는 지정된 프린터를 지원하며 프린터를 열었습니다.
ROUTER_STOP_ROUTING 공급자가 지정된 프린터를 지원하지만 오류가 발생하여 프린터를 열 수 없습니다. 다른 공급자가 프린터를 지원할 수 없다고 가정합니다. 함수는 SetLastError를 호출해야 합니다.
ROUTER_UNKNOWN 공급자는 지정된 프린터를 지원하지 않습니다. 함수는 SetLastError 를 호출하고 ERROR_INVALID_NAME 지정해야 합니다.

라우터는 각 공급자 중 하나가 ROUTER_SUCCESS 또는 ROUTER_STOP_ROUTING 반환할 때까지 각 공급자를 호출합니다. 공급자가 ROUTER_SUCCESS 반환하는 경우 고유한 핸들도 반환해야 합니다. 자세한 내용은 인쇄 공급자 소개를 참조하세요.) 라우터는 먼저 공급자의 OpenPrinterEx 함수를 호출하려고 시도합니다. 해당 함수가 지원되지 않는 경우 라우터는 OpenPrinter를 호출합니다.

fpSetJob

(필수) 공급자의 SetJob 함수에 대한 포인터입니다.

fpGetJob

(필수) 공급자의 GetJob 함수에 대한 포인터입니다.

fpEnumJobs

(필수) 공급자의 EnumJobs 함수에 대한 포인터입니다.

fpAddPrinter

(선택 사항. NULL일 수 있습니다.) 공급자의 AddPrinter 함수에 대한 포인터입니다.

fpDeletePrinter

(선택 사항. NULL일 수 있습니다.) 공급자의 DeletePrinter 함수에 대한 포인터입니다.

fpSetPrinter

(필수) 공급자의 SetPrinter 함수에 대한 포인터입니다.

fpGetPrinter

(필수) 공급자의 GetPrinter 함수에 대한 포인터입니다. 네트워크 인쇄 공급자를 작성하고GetPrinterPRINTER_INFO_2 구조를 반환하는 경우 함수는 cJobsStatus 구조체 멤버만 제공해야 합니다. 로컬 인쇄 공급자)는 나머지 구조체 멤버를 제공합니다.

fpEnumPrinters

(필수) 공급자의 EnumPrinters 함수에 대한 포인터입니다.

fpAddPrinterDriver

(선택 사항. NULL일 수 있습니다.) 공급자의 AddPrinterDriver 함수에 대한 포인터입니다. 공급자가 지정된 드라이버 또는 서버를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 ERROR_INVALID_NAME 지정해야 합니다.

fpEnumPrinterDrivers

(선택 사항. NULL일 수 있습니다.) 공급자의 EnumPrinterDrivers 함수에 대한 포인터입니다. 공급자가 지정된 서버를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 ERROR_INVALID_NAME 지정해야 합니다.

fpGetPrinterDriver

(선택 사항. NULL일 수 있습니다.) 공급자의 GetPrinterDriver 함수에 대한 포인터입니다. 라우터는 먼저 공급자의 GetPrinterDriverEx 함수를 호출하려고 시도합니다. 해당 함수가 지원되지 않는 경우 라우터는 GetPrinterDriver를 호출합니다.

fpGetPrinterDriverDirectory

(선택 사항. NULL일 수 있습니다.) 공급자의 GetPrinterDriverDirectory 함수에 대한 포인터입니다 . 공급자가 지정된 서버를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 ERROR_INVALID_NAME 지정해야 합니다.

fpDeletePrinterDriver

(선택 사항. NULL일 수 있습니다.) 공급자의 DeletePrinterDriver 함수에 대한 포인터입니다. 공급자가 지정된 서버를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 ERROR_INVALID_NAME 지정해야 합니다.

fpAddPrintProcessor

(선택 사항. NULL일 수 있습니다.) 공급자의 AddPrintProcessor 함수에 대한 포인터입니다.

fpEnumPrintProcessors

(선택 사항. NULL일 수 있습니다.) 공급자의 EnumPrintProcessors 함수에 대한 포인터입니다.

fpGetPrintProcessorDirectory

(선택 사항. NULL일 수 있습니다.) 공급자의 GetPrintProcessorDirectory 함수에 대한 포인터입니다 .

fpDeletePrintProcessor

(선택 사항. NULL일 수 있습니다.) 공급자의 DeletePrintProcessor 함수에 대한 포인터입니다.

fpEnumPrintProcessorDatatypes

(선택 사항. NULL일 수 있습니다.) 공급자의 EnumPrintProcessorDatatypes 함수에 대한 포인터입니다 .

fpStartDocPrinter

(필수) 공급자의 StartDocPrinter 함수에 대한 포인터입니다.

fpStartPagePrinter

(선택 사항. NULL일 수 있습니다.) 공급자의 StartPagePrinter 함수에 대한 포인터입니다.

fpWritePrinter

(필수) 공급자의 WritePrinter 함수에 대한 포인터입니다.

fpEndPagePrinter

(선택 사항. NULL일 수 있습니다.) 공급자의 EndPagePrinter함수에 대한 포인터입니다.

fpAbortPrinter

(필수) 공급자의 AbortPrinter 함수에 대한 포인터입니다.

fpReadPrinter

(선택 사항. NULL일 수 있습니다.) 공급자의 ReadPrinter 함수에 대한 포인터입니다.

fpEndDocPrinter

(필수) 공급자의 EndDocPrinter 함수에 대한 포인터입니다.

fpAddJob

(필수) 공급자의 AddJob 함수에 대한 포인터입니다.

fpScheduleJob

(필수) 공급자의 ScheduleJob 함수에 대한 포인터입니다.

fpGetPrinterData

(선택 사항. NULL일 수 있습니다.) 공급자의 GetPrinterData 함수에 대한 포인터입니다.

fpSetPrinterData

(선택 사항. NULL일 수 있습니다.) 공급자의 SetPrinterData 함수에 대한 포인터입니다.

fpWaitForPrinterChange

사용되지 않습니다. Null이어야 합니다.

fpClosePrinter

(필수) 공급자의 ClosePrinter 함수에 대한 포인터입니다. 프린터 변경 알림 개체가 만들어진 경우 라우터는 ClosePrinter를 호출하기 전에 공급자의 FindClosePrinterChangeNotification 함수를 호출합니다.

fpAddForm

(선택 사항. NULL일 수 있습니다.) 공급자의 AddForm 함수에 대한 포인터입니다.

fpDeleteForm

(선택 사항. NULL일 수 있습니다.) 공급자의 DeleteForm 함수에 대한 포인터입니다.

fpGetForm

(선택 사항. NULL일 수 있습니다.) 공급자의 GetForm 함수에 대한 포인터입니다.

fpSetForm

(선택 사항. NULL일 수 있습니다.) 공급자의 SetForm 함수에 대한 포인터입니다.

fpEnumForms

(선택 사항. NULL일 수 있습니다.) 공급자의 EnumForms 함수에 대한 포인터입니다.

fpEnumMonitors

(선택 사항. NULL일 수 있습니다.) Windows SDK 설명서에 설명된 공급자의 EnumMonitors 함수에 대한 포인터입니다. 그러나 공급자 수준에서 이 함수는 다음 표에 나열된 DWORD 반환 값 중 하나를 제공해야 합니다.

반환 값 정의
ROUTER_SUCCESS 공급자가 지정된 서버에서 모니터를 열거했습니다.
ROUTER_STOP_ROUTING 공급자가 지정된 서버에서 모니터를 열거했으며 라우터는 다른 공급자를 호출해서는 안 됩니다.
ROUTER_UNKNOWN 공급자는 지정된 서버를 지원하지 않습니다.

fpEnumPorts

반환 값 정의
ROUTER_SUCCESS 공급자가 지정된 서버의 포트를 열거했습니다.
ROUTER_STOP_ROUTING 공급자가 지정된 서버의 포트를 열거했으며 라우터는 다른 공급자를 호출해서는 안 됩니다.
ROUTER_UNKNOWN 공급자는 지정된 서버를 지원하지 않습니다.

fpAddPort

(선택 사항. NULL일 수 있습니다.) 공급자의 AddPort 함수에 대한 포인터입니다. 공급자가 지정된 포트를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 ERROR_NOT_SUPPORTED 제공해야 합니다.

fpConfigurePort

(필수) 공급자의 ConfigurePort 함수에 대한 포인터입니다. 함수가 SetLastError에 ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME 또는 ERROR_UNKNOWN_PORT 제공하는 경우 라우터는 다른 공급자를 호출하려고 시도합니다.

fpDeletePort

(필수) 공급자의 DeletePort 함수에 대한 포인터입니다. 공급자가 지정된 포트를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 ERROR_NOT_SUPPORTED 제공해야 합니다.

fpCreatePrinterIC

내부 전용입니다. Null이어야 합니다.

fpPlayGdiScriptOnPrinterIC

내부 전용입니다. Null이어야 합니다.

fpDeletePrinterIC

내부 전용입니다. Null이어야 합니다.

fpAddPrinterConnection

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 AddPrinterConnection 함수에 대한 포인터입니다.

fpDeletePrinterConnection

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 DeletePrinterConnection 함수에 대한 포인터입니다.

fpPrinterMessageBox

사용되지 않습니다. Null이어야 합니다.

fpAddMonitor

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 AddMonitor 함수에 대한 포인터입니다. 공급자가 지정된 모니터를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 ERROR_INVALID_NAME 제공해야 합니다.

fpDeleteMonitor

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 DeleteMonitor 함수에 대한 포인터입니다. 공급자가 지정된 모니터를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 ERROR_INVALID_NAME 제공해야 합니다.

fpResetPrinter

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 ResetPrinter 함수에 대한 포인터입니다.

fpGetPrinterDriverEx

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 GetPrinterDriverEx 함수에 대한 포인터입니다. GetPrinterDriverEx가 지원되지 않는 경우 라우터는 GetPrinterDriver를 호출하려고 시도합니다.

fpFindFirstPrinterChangeNotification

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 FindFirstPrinterChangeNotification 함수에 대한 포인터입니다.

fpFindClosePrinterChangeNotification

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 FindClosePrinterChangeNotification 함수에 대한 포인터입니다.

fpAddPortEx

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 AddPortEx 함수에 대한 포인터입니다. 공급자가 지정된 포트를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 ERROR_NOT_SUPPORTED 제공해야 합니다.

fpShutDown

내부 전용입니다. Null이어야 합니다.

fpRefreshPrinterChangeNotification

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 RefreshPrinterChangeNotification 함수에 대한 포인터입니다.

fpOpenPrinterEx

내부 전용입니다. Null이어야 합니다.

fpAddPrinterEx

내부 전용입니다. Null이어야 합니다.

fpSetPort

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 SetPort 함수에 대한 포인터입니다. 함수가 SetLastError에 ERROR_NOT_SUPPORTED, ERROR_INVALID_NAME 또는 ERROR_UNKNOWN_PORT 제공하는 경우 라우터는 다른 공급자를 호출하려고 시도합니다.

fpEnumPrinterData

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 EnumPrinterData 함수에 대한 포인터입니다.

fpDeletePrinterData

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 DeletePrinterData 함수에 대한 포인터입니다.

fpClusterSplOpen

내부 전용입니다. Null이어야 합니다.

fpClusterSplClose

내부 전용입니다. Null이어야 합니다.

fpClusterSplIsAlive

내부 전용입니다. Null이어야 합니다.

fpSetPrinterDataEx

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 SetPrinterDataEx 함수에 대한 포인터입니다.

fpGetPrinterDataEx

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 GetPrinterDataEx 함수에 대한 포인터입니다.

fpEnumPrinterDataEx

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 EnumPrinterDataEx 함수에 대한 포인터입니다.

fpEnumPrinterKey

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 EnumPrinterKey 함수에 대한 포인터입니다.

fpDeletePrinterDataEx

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 DeletePrinterDataEx 함수에 대한 포인터입니다.

fpDeletePrinterKey

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 DeletePrinterKey 함수에 대한 포인터입니다.

fpSeekPrinter

내부 전용입니다. Null이어야 합니다.

fpDeletePrinterDriverEx

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 DeletePrinterDriverEx 함수에 대한 포인터입니다. 공급자가 지정된 서버를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 대한 ERROR_INVALID_NAME 지정해야 합니다.

fpAddPerMachineConnection

내부 전용입니다. Null이어야 합니다.

fpDeletePerMachineConnection

내부 전용입니다. Null이어야 합니다.

fpEnumPerMachineConnections

내부 전용입니다. Null이어야 합니다.

fpXcvData

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 XcvData 함수에 대한 포인터입니다.

fpAddPrinterDriverEx

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 AddPrinterDriverEx 함수에 대한 포인터입니다. 공급자가 지정된 서버를 지원하지 않는 경우 FALSE를 반환하기 전에 SetLastError에 대한 ERROR_INVALID_NAME 지정해야 합니다.

fpSplReadPrinter

내부 전용입니다. Null이어야 합니다.

fpDriverUnloadComplete

내부 전용입니다. Null이어야 합니다.

fpGetSpoolFileInfo

내부 전용입니다. Null이어야 합니다.

fpCommitSpoolData

내부 전용입니다. Null이어야 합니다.

fpCloseSpoolFileHandle

내부 전용입니다. Null이어야 합니다.

fpFlushPrinter

내부 전용입니다. Null이어야 합니다.

fpSendRecvBidiData

(선택 사항입니다. NULL일 수 있습니다.) 공급자의 SendRecvBidiData 함수에 대한 포인터입니다. 이 매개 변수가 NULL인 경우 공급자가 양방향 통신을 지원하지 않음을 의미합니다.

fpAddPrinterConnection2

내부 전용입니다. Null이어야 합니다.

fpGetPrintClassObject

내부 전용입니다. Null이어야 합니다.

fpReportJobProcessingProgress

내부 전용입니다. Null이어야 합니다.

fpEnumAndLogProvidorObjects

내부 전용입니다. Null이어야 합니다.

fpInternalGetPrinterDriver

내부 전용입니다. Null이어야 합니다.

fpFindCompatibleDriver

내부 전용입니다. Null이어야 합니다.

fpInstallPrinterDriverPackageFromConnection

내부 전용입니다. Null이어야 합니다.

fpGetJobNamedPropertyValue

내부 전용입니다. Null이어야 합니다.

fpSetJobNamedProperty

내부 전용입니다. Null이어야 합니다.

fpDeleteJobNamedProperty

내부 전용입니다. Null이어야 합니다.

fpEnumJobNamedProperties

내부 전용입니다. Null이어야 합니다.

fpPowerEvent

내부 전용입니다. Null이어야 합니다.

fpGetUserPropertyBag

내부 전용입니다. Null이어야 합니다.

fpCanShutdown

내부 전용입니다. Null이어야 합니다.

fpLogJobInfoForBranchOffice

내부 전용입니다. Null이어야 합니다.

fpRegeneratePrintDeviceCapabilities

내부 전용입니다. Null이어야 합니다.

fpPrintSupportOperation

내부 전용입니다. Null이어야 합니다.

fpIppCreateJobOnPrinter

내부 전용입니다. Null이어야 합니다.

fpIppGetJobAttributes

내부 전용입니다. Null이어야 합니다.

fpIppSetJobAttributes

내부 전용입니다. Null이어야 합니다.

fpIppGetPrinterAttributes

내부 전용입니다. Null이어야 합니다.

fpIppSetPrinterAttributes

내부 전용입니다. Null이어야 합니다.

fpIppCreateJobOnPrinterWithAttributes

내부 전용입니다. Null이어야 합니다.

설명

함수 포인터는 PRINTPROVIDOR 구조 내에서 지정된 순서대로 나열됩니다. 관련 기능별로 그룹화된 함수 설명을 보려면 인쇄 공급자에 의해 정의된 함수를 참조하세요.

요구 사항

요구 사항
헤더 winsplp.h(Winsplp.h 포함)

추가 정보

FindFirstPrinterChangeNotification

InitializePrintProvidor

RefreshPrinterChangeNotification

SendRecvBidiData

XcvData