参数类型和描述

char cShortSessionID
表示空间短会话标识。
PRINTINFO * const pPrintInfo
指向 PRINTINFO 结构的指针,在该结构中指定了打印机设置。
nFlags
必须设置为 0。这将被忽略。
nBufSize
为以下字段分配的缓冲区大小:
  • lpPDTFile
  • lpPrtToDskAppFile
  • lpPrtToDskSepFile
  • lpPrinterName
如果在单个 API 调用中检索到这些成员中的多个,则调用方必须为所有缓冲区分配相同的大小,并在此成员中传递该大小。

如果将此成员设置为 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打印到磁盘 - 单独方式)

    这相当于在主机会话的打印机设置 → 打印机 → 打印到磁盘对话框中选择单独选项。

  • WinDefaultPrinterWindows 缺省打印机方式)

    这相当于在主机会话打印机设置对话框中选择使用 Windows 缺省打印机选项。

  • SpecificPrinter特定打印机方式)

    这相当于在主机会话打印机设置对话框中选择打印机,而不选中使用 Windows 缺省打印机

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 Port
  • HP LaserJet 4050 Series PCL 6 on LPT1
ULONG * const pErrorInfo
当 API 失败且返回码为 PCS_FAILURE 时,这将填充扩展错误信息。如果不需要错误的详细信息,则调用方必须将 pErrorInfo 设置为 NULL。

下节介绍了在 PCSAPI32.H 中定义的标志。