列印提供者所定義的函式
警告
從 Windows 10 開始,支援第三方列印提供者的 API 已被取代。 Microsoft 不建議對第三方列印提供者進行任何投資。 此外,在 v4 列印驅動程式模型的 Windows 8 和較新版本產品上,第三方列印提供者可能不會建立或管理使用 v4 列印驅動程式的佇列。
本主題列出列印提供者可提供的所有函式。 這些函式大部分都會在 Microsoft Windows SDK 檔中說明。 如果在 Windows 驅動程式套件 (WDK) 描述函式,函式名稱會提供相關聯參考頁面的連結。
所有列印提供者都必須為所有列出的函式提供指標。 不過,大部分廠商提供的列印提供者都是「部分提供者」,不需要支援函式所定義的許多作業。 因此,許多函式指標可以是 NULL。 如需部分列印提供者的詳細資訊,請參閱 撰寫網路列印提供者。
在下列函式清單中,必須支援的函式會標示為「必要」。
所有列印提供者都必須匯出初始化函式 InitializePrintProvidor。 所有其他函式的指標都必須在 PRINTPROVIDOR 結構中提供。 (請注意,這兩個名稱拼錯,但與頭檔 Winsplp.h.) 中顯示的名稱一致
函式分為群組,並在下列各節中呈現:
初始化函式
列印佇列管理功能
印表機驅動程式管理功能
列印作業建立函式
列印作業排程函式
表單管理功能
列印處理器管理功能
列印監視器管理功能
埠管理功能
登錄管理功能
其他函式
初始化函式
函式 | 描述 |
---|---|
InitializePrintProvidor (必要) | 初始化列印提供者,並傳回所提供函式的指標。 |
列印佇列管理功能
函式 | 描述 |
---|---|
AddPrinter | 將列印佇列新增至列印提供者所管理的列印佇列清單,並將列印處理器與列印佇列產生關聯。 |
AddPrinterConnection | 建立與指定列印佇列的連接。 |
ClosePrinter (必要) | 停用對指定列印佇列的呼叫端存取。 |
DeletePrinter | 從列印提供者所管理的列印佇列清單中刪除列印佇列。 |
DeletePrinterConnection | 拿掉指定之列印佇列的連接。 |
EnumPrinters (必要) | 列舉目前由列印提供者管理的列印佇列清單。 |
FindClosePrinterChangeNotification | 停用 FindFirstPrinterChangeNotification 所啟用的印表機變更通知。 |
FindFirstPrinterChangeNotification | 傳回呼叫端可用來等候指定印表機事件的等候物件的句柄。 |
GetPrinter (必要) | 傳回指定之列印佇列的目前參數值。 |
OpenPrinter (必要) | 允許呼叫端存取指定的列印佇列。 |
RefreshPrinterChangeNotification | 如果用戶端使用PRINTER_NOTIFY_OPTIONS_REFRESH旗標集呼叫 FindNextPrinterChangeNotification ,則由路由器呼叫。 |
ResetPrinter | 修改列印佇列的數據類型或 DEVMODEW 結構。 |
SetPrinter (必要) | 設定指定之列印佇列的參數。 |
WaitForPrinterChange | 已過時。 |
印表機驅動程式管理功能
函式 | 描述 |
---|---|
AddPrinterDriver | 將指定的印表機驅動程式檔案新增至指定的伺服器。 |
AddPrinterDriverEx | 與 AddPrinterDriver 相同,具有其他參數。 |
DeletePrinterDriver | 刪除指定之印表機驅動程式檔案在指定伺服器上的存取權。 |
DeletePrinterDriverEx | 與 DeletePrinterDriver 相同,具有其他參數。 |
EnumPrinterDrivers | 傳回已藉由呼叫 AddPrinterDriver 或 AddPrinterDriverEx 新增至指定伺服器的印表機驅動程式清單。 |
GetPrinterDriver | 傳回印表機驅動程式的相關信息,呼叫端接著可以傳遞至 AddPrinterDriver。 (傳回的資訊通常是從 INF file.) |
[GetPrinterDriverEx | 與 GetPrinterDriver 相同,具有其他參數。 |
GetPrinterDriverDirectory | 傳回伺服器印表機驅動程式目錄的名稱。 |
列印作業建立函式
函式 | 描述 |
---|---|
AbortPrinter (必要) | 嘗試從指定的列印佇列中刪除目前的作業。 |
AddJob (必要) | 傳回作業標識碼和多任務緩衝處理檔案路徑。 呼叫端會使用 CreateFile 和 WriteFile 將數據傳送至多任務緩衝處理檔案。 |
EndDocPrinter (必要) | 執行作業完成作業。 |
EndPagePrinter | 執行頁面完成作業。 |
ReadPrinter | 從雙向印表機取得狀態資訊。 |
ScheduleJob (必要) | 通知提供者可以排程指定的作業。 作業是由先前 由 AddJob 傳回的作業識別碼所指定。 |
StartDocPrinter (必要) | 準備列印提供者以開始多任務緩衝處理列印作業。 |
StartPagePrinter | 準備列印提供者以接收列印作業頁面。 |
WritePrinter (必要) | 接收列印作業數據流的一部分。 |
注意
AddJob...ScheduleJob 序列是 StartDocPrinter 的替代方案...EndDocPrinter 序列。
列印作業排程函式
函式 | 描述 |
---|---|
EnumJobs (必要) | 傳回排程列印作業的清單。 |
需要 GetJob () | 傳回作業參數。 |
SetJob (必要) | 取消、暫停、繼續或重新啟動列印作業,或設定作業參數。 |
表單管理功能
函式 | 描述 |
---|---|
AddForm | 將指定的表單新增至指定印表機可用的表單清單。 |
DeleteForm | 從指定印表機可用的表單清單中移除指定的表單。 |
EnumForms | 傳回指定印表機可用的表單清單。 |
GetForm | 傳回指定表單的特性。 |
SetForm | 修改指定表單的特性。 |
列印處理器管理功能
函式 | 描述 |
---|---|
AddPrintProcessor | 在指定的伺服器上安裝列印處理器,並將它新增至列印提供者可以呼叫的列印處理器清單。 |
DeletePrintProcessor | 從列印提供者可以呼叫的列印處理器清單中刪除列印處理器。 |
EnumPrintProcessorDataTypes | 傳回列印處理器所支援的數據類型清單,這些數據類型可由列印提供者呼叫。 |
EnumPrintProcessors | 傳回列印提供者可以呼叫的列印處理器清單。 |
GetPrintProcessorDirectory | 傳回必須儲存列印處理器檔案的目錄路徑。 |
列印監視器管理功能
函式 | 描述 |
---|---|
AddMonitor | 將列印監視器新增至列印提供者可以呼叫的列印監視器清單。 |
DeleteMonitor | 從列印提供者可以呼叫的列印監視器清單中刪除列印監視器。 |
EnumMonitors | 傳回列印提供者可以呼叫的列印監視器清單。 |
埠管理功能
函式 | 描述 |
---|---|
AddPort | 將印表機埠新增至可用的埠清單,通常是藉由呼叫指定的埠監視器的 AddPortUI 函式。 |
AddPortEx (/previous-versions/ff545025 (v%3dvs.85) ) | 與 AddPort 相同,具有其他參數。 |
ConfigurePort (必要) | 設定印表機埠,通常是藉由呼叫指定的埠監視器的 ConfigurePortUI 函式。 |
DeletePort (必要) | 從可用的印表機埠清單中刪除印表機埠,通常是藉由呼叫指定的埠監視器 的 DeletePortUI 函式。 |
EnumPorts (必要) | 傳回可用的印表機埠清單。 |
SetPort | 設定指定印表機埠的參數。 |
登錄管理功能
函式 | 描述 |
---|---|
DeletePrinterData | 在指定的印表機 的 PrinterDriverData 機碼下,刪除目前指派給指定值名稱的值。 |
DeletePrinterDataEx | 與 DeletePrinterData 相同,具有其他參數。 |
DeletePrinterKey | 如果指定的機碼及其子機碼目前儲存在指定印表機的 PrinterDriverData 機碼下的登錄中,則會刪除它們。 |
EnumPrinterData | 傳回每個值名稱和目前指派的值,這些值儲存在指定印表機的 PrinterDriverData 機碼之下的登錄中。 |
EnumPrinterDataEx | 與 EnumPrinterData 相同,具有其他參數。 |
EnumPrinterKey | 傳回登錄中目前包含在指定機碼名稱下的子機碼清單。 |
GetPrinterData | 傳回目前指派給指定值名稱的值,該值會儲存在指定印表機的 PrinterDriverData 機碼下的登錄中。 |
GetPrinterDataEx | 與 GetPrinterData 相同,具有其他參數。 |
SetPrinterData | 在指定的印表機 PrinterDriverData 機碼下,將指定的值名稱和值儲存在登錄中。 |
SetPrinterDataEx | 與 SetPrinterData 相同,具有其他參數。 |
其他函式
函式 | 描述 |
---|---|
XcvData | 提供埠監視器 UI DLL 與埠監視器伺服器 DLL 之間的通訊路徑。 |