EnumForms 函数

EnumForms 函数枚举指定打印机支持的窗体。

语法

BOOL EnumForms(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pForm,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded,
  _Out_ LPDWORD pcReturned
);

参数

hPrinter [in]

应为其枚举窗体的打印机的句柄。 使用 OpenPrinterAddPrinter 函数检索打印机句柄。

级别 [in]

指定 pForm 指向的结构的版本。 此值必须为 1 或 2。

pForm [out]

指向一个或多个 FORM_INFO_1 结构或一个或多个 FORM_INFO_2 结构的指针。 所有结构将具有相同的级别。

cbBuf [in]

指定 pForm 指向的缓冲区的大小(以字节为单位)。

线路板 [out]

指向一个变量的指针,该变量接收复制到数组的字节数,如果操作成功) ,则 pForm 指向该数组 (;如果操作因 cbBuf 太小) 而失败,则 (所需的字节数。

pcReturned [out]

指向一个变量的指针,该变量接收复制到 pForm 指向的数组中的结构数。

返回值

如果函数成功,则返回值为非零值。

如果函数失败,则返回值为零。

注解

注意

这是一个阻塞或同步函数,可能不会立即返回。 此函数的返回速度取决于运行时因素,例如网络状态、打印服务器配置以及编写应用程序时难以预测的打印机驱动程序实现因素。 从管理与用户界面交互的线程调用此函数可能会使应用程序看起来无响应。

如果调用方是远程调用方,级别为 2,则返回的FORM_INFO_2结构的 StringType 值将始终STRING_LANGPAIR

在 Windows Vista 中,当 hPrinter 引用远程打印服务器或由打印服务器托管的打印机并且远程打印服务器上至少有一个打开的打印机连接时,将从本地缓存中检索 EnumForms 返回的表单数据。 在所有其他配置中,从远程打印服务器查询表单数据。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Winspool.h (包括 Windows.h)

Winspool.lib
DLL
Winspool.drv
Unicode 和 ANSI 名称
EnumFormsW (Unicode) 和 EnumFormsA (ANSI)

另请参阅

打印

打印后台处理程序 API 函数

AddPrinter

FORM_INFO_1

OpenPrinter