Функция 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>, диалоговые окна не будут отображаться, и вызов завершится ошибкой.

Если локальный драйвер принтера можно использовать для отрисовки заданий печати для этого принтера, а версия локального драйвера не должна соответствовать версии драйвера принтера на сервере, задайте PRINTER_CONNECTION_MISMATCH в pConnectionInfo-dwFlags> и назначьте указатель на строковую переменную, содержащую путь к локальному драйверу принтера, в pConnectionInfo-pszDriverName>.

Подключение к принтеру, установленное путем вызова AddPrinterConnection2 , будет перечислено при вызове EnumPrinters с параметром dwType , для PRINTER_ENUM_CONNECTION.

Версия ANSI этой функции AddPrinterConnection2A не поддерживается и возвращает ERROR_NOT_SUPPORTED.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2008 [только классические приложения]
Заголовок
Winspool.h (включая Windows.h)
Библиотека
Winspool.lib
DLL
Winspool.drv
Имя в кодировке Юникод и ANSI
AddPrinterConnection2W (Юникод)

См. также раздел

Вывод на печать

Функции API очереди печати принтера

ConnectToPrinterDlg

EnumPrinters

DeletePrinterConnection