IPrintOemPrintTicketProvider::BindPrinter 方法 (prcomoem.h)
IPrintOemPrintTicketProvider::BindPrinter 方法可讓核心驅動程式將一組私人命名空間統一資源標識符關聯 (URI 與裝置) 。 這個方法也允許外掛程式快取資訊 (,例如印表機句柄) ,稍後可以使用。
語法
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
系統會將二進位編碼 (二進位大型物件 [BLOB],) 私人 DEVMODEW 結構放入列印票證,以將 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 參數所指向的數位不需要包含列印架構關鍵詞或列印架構架構的命名空間。
系結至裝置可讓提供者快取特定物件,並處理未來在該裝置上列印票證或列印功能服務所需的物件。 例如,可以快取 hPrinter 中的印表機句柄。 IPrintOemPrintTicketProvider::BindPrinter 保證只會呼叫一次。
IPrintOemPrintTicketProvider 物件不一定能夠系結一次以上。 列印票證管理員一律使用不同的 IPrintOemPrintTicketProvider 物件實例來系結至不同的裝置。 當 IPrintOemPrintTicketProvider 對象的參考計數為零時,應該釋放成功呼叫 IPrintOemPrintTicketProvider::BindPrinter 的所有資源。 (請注意,提供者不應該關閉傳遞至 BindPrinter 呼叫的句柄) 。 如果支援多個版本,列印票證管理員可能會針對相同裝置在不同的版本中建立多個提供者。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | prcomoem.h (包含 Prcomoem.h) |
另請參閱
IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket