AddPrinterConnection2 函数

为当前用户添加与指定打印机的连接,并指定连接详细信息。

语法

BOOL AddPrinterConnection2(
  _In_ HWND    hWnd,
  _In_ LPCTSTR pszName,
       DWORD   dwLevel,
  _In_ PVOID   pConnectionInfo
);

参数

hWnd [in]

父窗口的句柄,如果打印系统必须为此连接从打印服务器下载打印机驱动程序,则会在其中显示对话框。

pszName [in]

指向以 null 结尾的常量字符串的指针,该字符串指定当前用户希望连接到的打印机的名称。

dwLevel

pConnectionInfo 指向的结构的版本。 目前,仅定义了级别 1,因此 dwLevel 的值必须为 1。

pConnectionInfo [in]

指向 PRINTER_CONNECTION_INFO_1 结构的指针。 有关此参数的详细信息,请参阅“备注”部分。

返回值

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

如果函数失败,则返回值为零。 有关扩展的错误信息,请调用 GetLastError

备注

注意

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

当 Windows Vista 连接到打印机时,它可能需要从打印机连接到的服务器复制打印机驱动程序文件。 如果用户无权将文件复制到相应位置, 则 AddPrinterConnection2 函数将失败, GetLastError 将返回ERROR_ACCESS_DENIED。

如果打印机驱动程序文件必须从打印服务器复制,但由于组策略有效且PRINTER_CONNECTION_NO_UI在 pConnectionInfo-dwFlags> 中设置,则不会显示任何对话框,并且调用将失败。

如果本地打印机驱动程序可用于呈现此打印机的打印作业,并且本地驱动程序的版本必须与服务器上的打印机驱动程序版本不匹配,请在 pConnectionInfo-dwFlags> 中设置PRINTER_CONNECTION_MISMATCH,并将指针分配给包含 pConnectionInfo-pszDriverName> 本地打印机驱动程序路径的字符串变量。

在将 dwType 设置为 PRINTER_ENUM_CONNECTION 的情况下调用 EnumPrinters 时,将枚举通过调用 AddPrinterConnection2 建立的打印机连接。

不支持此函数的 ANSI 版本 AddPrinterConnection2A,并返回 ERROR_NOT_SUPPORTED

要求

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

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

另请参阅

打印

打印后台处理程序 API 函数

ConnectToPrinterDlg

EnumPrinters

DeletePrinterConnection