IPrint::P rint 方法 (docobj.h)
使用指定的作業需求,在指定的印表機上列印物件。
語法
HRESULT Print(
[in] DWORD grfFlags,
[in, out] DVTARGETDEVICE **pptd,
[in, out] PAGESET **ppPageSet,
[in, out] STGMEDIUM *pstgmOptions,
[in] IContinueCallback *pcallback,
[in] LONG nFirstPage,
[out] LONG *pcPagesPrinted,
[out] LONG *pnLastPage
);
參數
[in] grfFlags
從 PRINTFLAG 列舉指定列印選項的位欄位。
PRINTFLAG_MAYBOTHERUSER (1)
PRINTFLAG_PROMPTUSER (2)
PRINTFLAG_USERMAYCHANGEPRINTER (4)
PRINTFLAG_RECOMPOSETODEVICE (8)
PRINTFLAG_DONTACTUALLYPRINT (16)
PRINTFLAG_FORCEPROPERTIES (32)
PRINTFLAG_PRINTTOFILE (64)
[in, out] pptd
描述目標列印裝置之 DVTARGETDEVICE 結構的指標。
[in, out] ppPageSet
PAGESET指標變數的指標,接收結構的指標,指出要列印的頁面。
[in, out] pstgmOptions
序列化 OLE 屬性集中物件特定列印選項的指標。 這個參數在輸入或傳回時可以是 Null 。
[in] pcallback
檢視網站上的 IContinueCallback 介面指標,其會定期以人為回應速度輪詢,以判斷是否應該放棄列印。 此參數可以是 Null。
[in] nFirstPage
要列印之第一頁的頁碼。 此值會覆寫先前傳遞至 IPrint::SetInitialPageNum的任何值。
[out] pcPagesPrinted
變數的指標,可接收成功列印的實際頁數。
[out] pnLastPage
變數的指標,可接收列印最後一頁的頁碼。
傳回值
這個方法可以傳回標準傳回值E_UNEXPECTED,以及下列值。
傳回碼 | 描述 |
---|---|
|
已成功完成命令。 |
|
列印程式在完成之前已取消。 *pcPagesPrinted 指出在發生此錯誤之前,實際上已成功列印的頁面數目。 |
|
**ppPageSet 或 nFirstPage 中指定的頁面不存在。 |
備註
要列印物件的印表機是由pptd所指向的DVTARGETDEVICE結構表示。 目標裝置中的 DEVMODE 結構表示整個作業印表機特定選項,例如複本數目、紙張大小和列印品質。 DEVMODE結構也可能在dmOrientation成員中包含方向資訊, (dmFields成員) 中指出。 如果存在,則應該使用這個紙張方向;如果不存在,則會使用物件內容所決定的自然方向。
由於使用者輸入的可能性, pptd 和 ppPageSet 參數都是 [in,out] 結構。 如果沒有使用者互動 (亦即,如果未) 設定PRINTFLAG_PROMPTUSER旗標,則目標裝置和頁面集的輸入和輸出都必須相同。 不過,如果使用者收到列印選項的提示,則物件會傳回適合使用者實際選擇的目標裝置和頁面集資訊。
pstgmOptions參數也是 [in,out]。 結束時,物件應該寫入 *pstgmOptions 任何需要重現此確切列印工作的物件特定資訊。 範例可能包括使用者在試算表應用程式中選取 「工作表、筆記或兩者」。 傳遞的資料格式為序列化屬性集。 只有在後續呼叫相同物件時,資料才很有用。 由於後續呼叫可能會指定不同的使用者互動旗標、目標裝置或其他設定,因此呼叫端可能會在稍微不同的列印內容中以相同方式列印檔案多次。
需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | docobj.h |