IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 方法 (prcomoem.h)
IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 方法會將列印票證轉換為 DEVMODEW 結構。
語法
HRESULT ConvertPrintTicketToDevMode(
[in] IXMLDOMDocument2 *pPrintTicket,
[in] ULONG cbDevmode,
[in, out] PDEVMODE pDevmode,
[in] ULONG cbDrvPrivateSize,
[in] PVOID pPrivateDevmode
);
參數
[in] pPrintTicket
輸入列印票證的指標。
[in] cbDevmode
輸入 DEVMODEW 結構的大小,以位元組為單位。 此大小包括 DEVMODEW 結構的公用和私人區段。
[in, out] pDevmode
輸入 DEVMODEW 結構的指標。 當 IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 傳回時,外掛程式的私人 DEVMODEW 結構將會包含從列印票證取得的資訊。
[in] cbDrvPrivateSize
外掛程式私人 DEVMODEW 結構的大小,以位元組為單位。
[in] pPrivateDevmode
外掛程式私人 DEVMODEW 結構的指標。
傳回值
如果作業成功,IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 應該會傳回S_OK。 否則,這個方法應該會傳回標準 COM 錯誤碼。
備註
核心驅動程式會先呼叫 IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 方法,再執行將列印票證轉換成 DEVMODEW 結構的一部分。 在呼叫此方法時,核心驅動程式會傳遞已完整填入的輸入列印票證,以及設定為預設值的 DEVMODEW 結構。 在轉換中,外掛程式必須在先前從 DEVMODEW 結構轉換成列印票證期間復原對列印票證所做的任何變更。 如果在此先前的轉換期間,外掛程式會將功能從私用命名空間移至公用命名空間,外掛程式必須將功能還原為適合核心驅動程式的格式,也就是核心驅動程式先前將功能放在 IPrintOemPrintTicketProvider 中提供給外掛程式的列印票證中:ConvertDevModeToPrintTicket 方法。 此還原是必要的,因此核心驅動程式可以辨識列印票證中的功能,並在核心驅動程式 DEVMODEW 結構的私用部分反映其設定,而核心驅動程式則會執行其列印票證到 DEVMODEW 轉換的一部分。
在系統將列印票證轉換回 DEVMODEW 結構之前,它會先載入預設的 DEVMODEW 結構。 然後,系統會呼叫提供者的 IPrintOemPrintTicketProvider::BindPrinter 方法。 然後,這個方法應該會讀取列印票證支援的所有設定,並在 DEVMODEW 結構中填入這些設定。 請注意,並非所有功能都必須表示,而且通常存在的 Option 實例可能不會包含提供者通常會填入的所有評分屬性實例。 如果提供者在從列印票證轉換成 DEVMODEW 期間,對系統填入的設定進行任何變更,提供者應該在 IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 方法中執行該變更的反轉。 提供者傳回之後,系統會覆寫列印票證中表示但提供者未明確停用的任何公用 DEVMODEW 設定。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | prcomoem.h (包含 Prcomoem.h) |