IPrintOemPrintTicketProvider::BindPrinter 方法 (prcomoem.h)
IPrintOemPrintTicketProvider::BindPrinter 方法可讓核心驅動程式將一組私人命名空間統一資源識別符與裝置產生關聯。 這個方法也允許外掛程式快取稍後可以使用的資訊(例如印表機句柄)。
語法
HRESULT BindPrinter(
[in] HANDLE hPrinter,
[in] INT version,
[out] POEMPTOPTS pOptions,
[out] INT *cNamespaces,
[out] BSTR **ppNamespaces
);
參數
[in] hPrinter
多任務緩衝處理程式的列印句柄,由 Unidrv 提供。 提供者不應該隨時關閉此句柄,因為提供者的客戶端負責管理此句柄的存留期。 提供者可以快取列印句柄;此物件上所有未來的呼叫都會相對於與此句柄相關聯的印表機。
[in] version
列印架構的主要版本號碼。 Windows Vista 僅支援第 1 版。
[out] pOptions
接收下列其中一個列舉值的變數指標:
OEMPT_DEFAULT
系統會將私用 DEVMODEW 的二進位大型物件 [BLOB]) 二進位編碼方式, 結構放入列印票證中,將 DEVMODEW 轉換成列印票證。
OEMPT_NOSNAPSHOT
系統不會將私用 DEVMODEW 結構的二進位編碼 (BLOB) 放入列印票證中,將 DEVMODEW 轉換成列印票證。 如果列印票證中完整表示所有公用和私人 DEVMODEW 成員,請使用此值。
所呼叫的 OEM 物件應該設定此參數所指向的值。
[out] cNamespaces
變數的指標,可接收外掛程式中使用的私用命名空間 URI 數目。 這個數位代表 *ppNamespaces所指向數位中的字串計數。
[out] ppNamespaces
接收 BSTR 陣列第一個項目位址之變數的指標。 外掛程式會以命名空間 URI 填入每個數位位置。 如需此參數的詳細資訊,請參閱下列一節。
傳回值
IPrintOemPrintTicketProvider::BindPrinter 應該傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
S_OK | 作業成功。 |
E_VERSION_NOT_SUPPORTED | 外掛程式不支援 版本 參數中指定的列印架構版本。 |
言論
外掛程式負責配置由 ppNamespaces 參數和命名空間 URI 字串所指向之數位的記憶體。 數位應該使用 CoTaskMemAlloc 函式來配置;命名空間字串應該使用 SysAllocString 函式來配置。 這兩個函式都會在 Microsoft Windows SDK 檔中說明。 ppNamespaces 參數所指向的陣列不需要包含 Print Schema Keywords 或 Print Schema Framework 的命名空間。
系結至裝置可讓提供者快取特定物件,並處理該裝置上未來列印票證或列印功能服務所需的物件。 例如,可以快取 hPrinter 中的印表機句柄。 IPrintOemPrintTicketProvider::BindPrinter 保證只會呼叫一次。
IPrintOemPrintTicketProvider 物件不需要多次系結。 列印票證管理員一律使用不同的 IPrintOemPrintTicketProvider 對象實例來系結至不同的裝置。 在成功呼叫 IPrintOemPrintTicketProvider::BindPrinter 時,IPrintOemPrintTicketProvider 對象的參考計數應釋放所有資源。 (請注意,提供者不應該關閉傳遞至呼叫 BindPrinter的句柄。 如果支援多個版本,列印票證管理員可能會為相同裝置,在不同的版本中建立多個提供者。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | prcomoem.h (include Prcomoem.h) |
另請參閱
IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket