共用方式為


PTConvertDevModeToPrintTicket 函式 (prntvpt.h)

DEVMODE 結構轉換成 IStream內的列印票證。

語法

HRESULT PTConvertDevModeToPrintTicket(
  [in] HPTPROVIDER       hProvider,
       ULONG             cbDevmode,
  [in] PDEVMODE          pDevmode,
  [in] EPrintTicketScope scope,
       IStream           *pPrintTicket
);

參數

[in] hProvider

開啟列印票證提供者的控制碼。 PTOpenProviderPTOpenProviderEx函式會傳回此控制碼。

cbDevmode

DEVMODE的大小,以位元組為單位。

[in] pDevmode

DEVMODE的指標。

[in] scope

值,指定 pPrintTicket的範圍。 此值可以指定單頁、整份檔或列印工作中的所有檔。 pDevmode中超出指定範圍的設定將不會包含在pPrintTicket中。 請參閱<備註>。

pPrintTicket

IStream的指標,其搜尋位置位於列印票證的開頭。

傳回值

如果作業成功,傳回值會S_OK,否則 HRESULT 會包含錯誤碼。

如果在不同的執行緒中開啟 hProvider則 HRESULT 會E_INVALIDARG。

如需 COM 錯誤碼的詳細資訊,請參閱 錯誤處理

備註

注意 這是封鎖或同步函式,可能不會立即傳回。 此函式傳回的速度取決於執行時間因素,例如網路狀態、列印伺服器設定和印表機驅動程式實作—撰寫應用程式時難以預測的因素。 從管理與使用者介面互動的執行緒呼叫此函式,可能會使應用程式看起來沒有回應。
 
hProvider 必須是在與用於此函式之執行緒相同的執行緒中開啟的控制碼。

如果 pDevmode 指向不同的印表機,其設定可能會遺失,並以預設值取代。

pDevmode中超出範圍的設定不會包含在pPrintTicket中。 例如,如果範圍是單一頁面,則不包含全作業設定和全檔設定。 作業範圍包括檔範圍和頁面範圍。 檔範圍包含頁面範圍。

PTConvertDevModeToPrintTicket會從資料流程目前的搜尋點開始,將列印票證寫入pPrintTicket所參考的IStream在 PTConvertDevModeToPrintTicket傳回之後,呼叫端必須將搜尋點重設為初始搜尋點,才能讀取函式所傳回的列印票證。

需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 prntvpt.h
程式庫 Prntvpt.lib
Dll Prntvpt.dll

另請參閱

列印架構

列印多工緩衝處理器 API 函式

列印