Compartir a través de


Función AddPrinterConnection2

Agrega una conexión a la impresora especificada para el usuario actual y especifica los detalles de conexión.

Sintaxis

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

Parámetros

hWnd [in]

Identificador de la ventana primaria en la que se mostrará el cuadro de diálogo si el sistema de impresión debe descargar un controlador de impresora del servidor de impresión para esta conexión.

pszName [in]

Puntero a una cadena terminada en null constante que especifica el nombre de la impresora a la que el usuario actual desea conectarse.

dwLevel

Versión de la estructura a la que apunta pConnectionInfo. Actualmente, solo se define el nivel 1, por lo que el valor de dwLevel debe ser 1.

pConnectionInfo [in]

Puntero a una estructura de PRINTER_CONNECTION_INFO_1 . Consulte la sección Comentarios para obtener más información sobre este parámetro.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un valor distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Nota:

Se trata de una función de bloqueo o sincrónica que podría no devolverse inmediatamente. La rapidez con la que devuelve esta función depende de factores en tiempo de ejecución, como el estado de red, la configuración del servidor de impresión y los factores de implementación del controlador de impresora que son difíciles de predecir al escribir una aplicación. Llamar a esta función desde un subproceso que administra la interacción con la interfaz de usuario podría hacer que la aplicación parezca que no responde.

Cuando Windows Vista realiza una conexión a una impresora, es posible que tenga que copiar los archivos del controlador de impresora desde el servidor al que está conectada la impresora. Si el usuario no tiene permiso para copiar archivos en la ubicación adecuada, se produce un error en la función AddPrinterConnection2 y GetLastError devuelve ERROR_ACCESS_DENIED.

Si los archivos del controlador de impresora deben copiarse desde el servidor de impresión, pero no se pueden copiar silenciosamente debido a las directivas de grupo que están en vigor y PRINTER_CONNECTION_NO_UI se establece en pConnectionInfo-dwFlags>, no se mostrará ningún cuadro de diálogo y se producirá un error en la llamada.

Si el controlador de impresora local se puede usar para representar trabajos de impresión para esta impresora y la versión del controlador local no debe coincidir con la versión del controlador de impresora en el servidor, establezca PRINTER_CONNECTION_MISMATCH en pConnectionInfo-dwFlags> y asigne el puntero a una variable de cadena que contenga la ruta de acceso al controlador de impresora local a pConnectionInfo-pszDriverName>.

Se enumerará una conexión de impresora establecida mediante una llamada a AddPrinterConnection2 cuando se llame a EnumPrinters con dwType establecido en PRINTER_ENUM_CONNECTION.

La versión ANSI de esta función, AddPrinterConnection2A, no se admite y devuelve ERROR_NOT_SUPPORTED.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado
Winspool.h (incluye Windows.h)
Biblioteca
Winspool.lib
Archivo DLL
Winspool.drv
Nombres Unicode y ANSI
AddPrinterConnection2W (Unicode)

Consulte también

Impresión

Funciones de la API del administrador de trabajos de impresión

ConnectToPrinterDlg

EnumPrinters

DeletePrinterConnection