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構造体を返す場合、関数は cJobs および Status 構造体のメンバーのみを指定する必要があります。 ローカル印刷プロバイダー) は、構造体メンバーの残りの部分を提供します。

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 を指定できます)。)プロバイダーの EnumMonitors 関数へのポインター。これは、Windows SDKドキュメントで説明されています。 ただし、プロバイダー レベルでは、この関数は次の表に示す 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 の場合は、プロバイダーが bidi 通信をサポートしていないことを意味します。

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 構造体内で指定された順序で一覧表示されます。 関連する機能別にグループ化された関数の説明については、「 印刷プロバイダーによって定義される関数」を参照してください。

要件

要件
Header winsplp.h (Winsplp.h を含む)

こちらもご覧ください

FindFirstPrinterChangeNotification

InitializePrintProvidor

RefreshPrinterChangeNotification

SendRecvBidiData

XcvData