参数类型和描述
- char cShortSessionID
- 表示空间短会话标识。
- PRINTINFO * const pPrintInfo
- 指向 PRINTINFO 结构的指针,在该结构中指定了打印机设置。
- nFlags
- 必须设置为 0。这将被忽略。
- nBufSize
- 为以下字段分配的缓冲区大小:
- lpPDTFile
- lpPrtToDskAppFile
- lpPrtToDskSepFile
- lpPrinterName
如果将此成员设置为 0,则忽略字段。在 nSizeNeeded 中返回字段缓冲区所需的最大大小。
- nSizeNeeded
- 此成员的值由与以下字段相关的条件决定:
- lpPDTFile
- lpPrtToDskAppFile
- lpPrtToDskSepFile
- lpPrinterName
- 如果调用方分配的缓冲区的大小不足以返回上面列出的字段,则该值是所需的字节数。
- 如果调用方获得上面列出的多个字段,则该值是所需缓冲区的最大大小。
- 如果调用方将 nBufSize 设置为 0,则该成员包含上述字段的缓冲区所需的最大大小。
- bPromptDialog
- 有效值如下:
- 如果为 TRUE,则在打印前显示“打印机设置”对话框。
- 如果为 FALSE,则在打印前不会显示“打印机设置”对话框。
- bPDTMode
- 有效值如下:
- 如果为 TRUE,则主机会话处于 PDT 方式。
- 如果为 FALSE,则主机会话处于非 PDT 方式(GDI 方式)。
- lpPDTFile
- 如果调用方不想获取此成员,则必须将其设置为 NULL。如果这不是 null 指针,则返回 PDT 文件。这必须指向由调用方分配的大小为 nBufSize 的缓冲区。返回 API 时,此成员包含以下一项:
- 会话 PDT 文件的全限定路径名。
- 如果未在会话中 PDT 文件,则为空字符串 ("")。
- 缓冲区大小不足时截断的文件名。成员 nSizeNeeded 包含所需缓冲区的大小。
- nPrtMode
- 这是指示连接的 PrintMode 的枚举值。枚举数据类型 PRINTMODE 在 PCSAPI32.H 中定义。nPrtMode 设置必须是以下一项:
- PrtToDskAppend(打印到磁盘 - 附加方式)
这相当于在主机会话的打印机设置 → 打印机 → 打印到磁盘对话框中选择追加选项。
- PrtToDskSeparate(打印到磁盘 - 单独方式)
这相当于在主机会话的打印机设置 → 打印机 → 打印到磁盘对话框中选择单独选项。
- WinDefaultPrinter(Windows 缺省打印机方式)
这相当于在主机会话打印机设置对话框中选择使用 Windows 缺省打印机选项。
- SpecificPrinter(特定打印机方式)
这相当于在主机会话打印机设置对话框中选择打印机,而不选中使用 Windows 缺省打印机。
- PrtToDskAppend(打印到磁盘 - 附加方式)
- lpPrtToDskAppFile
- 如果调用方不想获取此成员,则必须将其设置为 NULL。如果这不是 null 指针,则返回打印到磁盘 - 附加文件。这必须指向由调用方分配的大小为 nBufSize 的缓冲区。返回 API 时,此成员包含以下一项:
- 会话打印到磁盘 - 附加文件的全限定路径名。
- 如果未为会话配置打印到磁盘 - 附加文件,则为空字符串 ("")。
- 缓冲区大小不足时截断的文件名。nSizeNeeded 成员包含所需缓冲区的大小。
- lpPrtToDskSepFile
- 如果调用方不想获取此成员,则必须将其设置为 NULL。如果这不是 null 指针,则返回打印到磁盘 - 单独文件。这必须指向由调用方分配的大小为 nBufSize 的缓冲区。返回 API 时,此成员包含以下一项:
- 会话打印到磁盘 - 单独文件的全限定路径名。
- 如果未为会话配置打印到磁盘 - 单独文件,则为空字符串 ("")。
- 缓冲区大小不足时截断的文件名。nSizeNeeded 成员包含所需缓冲区的大小。
- lpPrinterName
- 如果调用方不想获取此成员,则必须将其设置为 NULL。如果这不是 null 指针,则返回打印机的名称。这必须指向由调用方分配的大小为 nBufSize 的缓冲区。返回 API 时,此成员具有以下一项:
- 会话中配置的特定打印机的名称(如果主机会话 nPrtMode 是 SpecificPrinter)。
- 会话中配置的 Windows 缺省打印机的名称(如果主机会话 nPrtMode 为 WinDefaultPrinter)。
- 空字符串 ("")(如果主机会话 nPrtMode 为 PrtToDskAppend 或 PrtToDskSeparate)。
- 截断的打印机名称(如果缓冲区大小不足)。nSizeNeeded 具有所需的缓冲区大小。
PrinterName 必须采用以下格式:
例如:<Printer name> on <Port Name>IBM InfoPrint 40 PS on Network PortHP LaserJet 4050 Series PCL 6 on LPT1
- ULONG * const pErrorInfo
- 当 API 失败且返回码为 PCS_FAILURE 时,这将填充扩展错误信息。如果不需要错误的详细信息,则调用方必须将 pErrorInfo 设置为 NULL。
下节介绍了在 PCSAPI32.H 中定义的标志。