共用方式為


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 (include Prcomoem.h)

另請參閱

IPrintOemPrintTicketProvider

IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket