参数类型和描述

char cShortSessionID
表示空间短会话标识。
const PRINTINFO * const pPrintInfo
指向 PRINTINFO 结构的指针,其中提到了打印机设置。
nFlags
表示结构中哪些成员有效的位标志组合。这些标志可以单独使用,也可以通过将它们通过 OR 组合在一起来恢复属性页面来使用(在 PCSAPI32.H 中定义)。这些标志以及结构中相应的有效成员如下所示:
表示
结构中的有效成员
PCS_PRINT_PDT
bPDTMode, lpPDTFile
PCS_PRINT_PRINTMODE
nPrtMode、lpPrtToDskAppFile、lpPrtToDskSepFile、lpPrinterName
PCS_PRINT_PROMPT_DIALOG
bPromptDialog
nBufSize
必须设置为 0。这将被忽略。
nSizeNeeded
必须设置为 0。这将被忽略。
bPromptDialog
有效值如下:
  • 如果为 TRUE,则在打印前显示“打印机设置”对话框。
  • 如果为 FALSE,则在打印前不会显示“打印机设置”对话框。
bPDTMode
有效值如下:
  • 如果为 TRUE,则将连接设置为 PDT 方式。
  • 如果为 FALSE,则将连接设置为非 PDT 方式(GDI 方式)。
lpPDTFile
仅在将 bPDTMode 设置为 TRUE 时使用。如果将 bPDTMode 设置为 FALSE,将忽略此项。
这是一个以 null 结束的字符串,包含 PDT 文件的名称,必须是以下一项:
  • NULL

    使用连接中当前配置的 PDT 文件。如果连接中尚未配置 PDT 文件,则 API 将失败并出现异常。

  • 文件名,不带路径

    使用 Z and I Emulator for Windows 安装路径中 PDFPDT 子文件夹中的 lpPDTFile。

  • 文件的全限定路径名

    如果 lpPDTFile 不存在,API 将失败。

nPrtMode
这是指示连接的 PrintMode 的枚举值。枚举数据类型 PRINTMODE 在 PCSAPI32.H 中定义。nPrtMode 设置必须是以下一项:
  • PrtToDskAppend打印到磁盘 - 附加方式)

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

  • PrtToDskSeparate打印到磁盘 - 单独方式)

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

  • WinDefaultPrinterWindows 缺省打印机方式)

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

  • SpecificPrinter特定打印机方式)

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

lpPrtToDskAppFile
仅当将 nPrtMode 设置为 PrtToDskAppend 时,才使用此项。
这是一个以 null 结束的字符串,包含打印到磁盘 - 附加文件的名称,必须是以下一项:
  • NULL

    使用当前为连接中的 PrtToDskAppend 方式配置的文件。如果连接中尚未配置 PDT 文件,则 API 将失败。

  • 文件名,不带路径

    用户类应用程序数据目录路径用于查找文件。如果此文件存在,则使用此文件。否则,将在打印完成时创建此文件。

  • 文件的全限定路径名

    目录必须存在于路径中,否则 API 将失败。文件不需要存在于路径中。

lpPrtToDskSepFile
可能的值为如下所示:
  • 会话的打印到磁盘 - 单独文件的全限定路径名。
  • 如果未为会话配置打印到磁盘 - 单独文件,则为空字符串 ("")。
  • 缓冲区大小不足时截断的文件名。nSizeNeeded 成员包含所需缓冲区的大小。
lpPrinterName
仅当将 nPrtMode 设置为 SpecificPrinter 时,才使用此项。否则,此项将被忽略。这是包含打印机名的以 null 结束的字符串。如果打印机不存在,此成员将失败。
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 中定义的标志。