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的标准返回值以及以下值。

返回代码 说明
S_OK
该方法已成功完成。
PRINT_E_CANCELED
打印过程在完成之前已取消。 *pcPagesPrinted 指示在发生此错误之前实际上已成功打印的页数。
PRINT_E_NOSUCHPAGE
ppPageSetnFirstPage 中指定的页面不存在。

备注

要打印对象的打印机由 pptd 指向的 DVTARGETDEVICE 结构指示。 目标设备中的 DEVMODE 结构指示特定于整个作业打印机的选项,例如副本数、纸张大小和打印质量。 DEVMODE 结构还可以在 dmOrientation 成员中包含方向信息, (dmFields 成员) 中指明了这一点。 如果存在,则应使用此纸张方向:如果不存在,则使用由对象内容确定的自然方向。

由于用户输入的可能性, pptdppPageSet 参数都是 [in,out] 结构。 在没有用户交互 (即,如果未) 设置PRINTFLAG_PROMPTUSER标志,则目标设备和页面集在输入和输出上必须相同。 但是,如果系统提示用户输入打印选项,则对象将返回与用户实际选择的内容相对应的目标设备和页面集信息。

pstgmOptions 参数也是 [in,out]。 退出时,对象应向 *pstgmOptions 写入它重现此确切打印作业所需的任何特定于对象的信息。 示例可能包括用户是否在电子表格应用程序中选择了“工作表和/或备注”。 传递的数据采用序列化属性集的格式。 通常,只有在后续调用同一对象时,数据才有用。 由于后续调用可能会指定不同的用户交互标志、目标设备或其他设置,因此调用方可能导致在略有不同的打印上下文中以相同方式多次打印文档。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 docobj.h

请参阅

IPrint