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)

另請參閱

IPrintOemPrintTicketProvider

IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket