Función NPAddConnection3 (npapi.h)

La función NPAddConnection3 conecta un dispositivo local a un recurso de red. Realiza la misma operación que NPAddConnection , pero además permite especificar un identificador para la ventana que debe poseer los cuadros de diálogo resultantes y especificar cómo se debe establecer la conexión.

Sintaxis

DWORD NPAddConnection3(
  [in] HWND           hwndOwner,
  [in] LPNETRESOURCEW lpNetResource,
  [in] LPWSTR         lpPassword,
  [in] LPWSTR         lpUserName,
  [in] DWORD          dwFlags
);

Parámetros

[in] hwndOwner

Identificador de una ventana que debe poseer mensajes o cuadros de diálogo. Este identificador solo es válido si CONNECT_INTERACTIVE está establecido en dwFlags y el identificador solo se debe usar para generar cuadros de diálogo necesarios para la autenticación.

[in] lpNetResource

Puntero a una estructura NETRESOURCE que especifica el recurso de red al que se va a conectar. Se deben establecer los siguientes campos al realizar una conexión. Los otros se ignoran.

Valor Significado
lpRemoteName
Especifica el recurso de red al que se va a conectar.
lpLocalName
Especifica el nombre de un dispositivo local que se va a redirigir, como "F:" o "LPT1". Este nombre se trata como sin distinción entre mayúsculas y minúsculas y puede ser la cadena vacía o el puntero NULL . Si la cadena está vacía o NULL, la función se conecta al recurso de red sin realizar un redireccionamiento.
dwType
Especifica el tipo de recurso al que se va a conectar. Esto puede ser RESOURCETYPE_DISK, RESOURCETYPE_PRINT o RESOURCETYPE_ANY. El valor RESOURCETYPE_ANY se usa si el autor de la llamada no le importa o no lo sabe.

[in] lpPassword

Puntero a la contraseña que se va a usar para realizar la conexión, normalmente la contraseña asociada a lpUserName. El valor NULL se puede pasar para hacer que la función use la contraseña predeterminada. Se puede usar una cadena vacía para indicar que no hay contraseña. Cuando haya terminado de usar la contraseña, desactive la memoria mediante una llamada a la función SecureZeroMemory . Para obtener más información sobre cómo proteger la contraseña, consulte Control de contraseñas.

[in] lpUserName

Puntero al nombre de usuario usado para establecer la conexión. Si es NULL, se aplica el nombre de usuario predeterminado (el del usuario que ha iniciado sesión). Esto se usa cuando el usuario quiere conectarse a un recurso, pero tiene un nombre de usuario o cuenta asignado diferente para ese recurso.

[in] dwFlags

Cualquier combinación de los valores siguientes. El proveedor debe omitir cualquier otro bit de dwFlags que se pueda establecer.

Valor Significado
CONNECT_TEMPORARY
La conexión se está estableciendo con fines de exploración y probablemente se liberará rápidamente.
CONNECT_INTERACTIVE
La conexión puede tener interacción con el usuario con fines de autenticación.
CONNECT_PROMPT
No use ningún valor predeterminado para los nombres de usuario o contraseñas sin ofrecer al usuario una oportunidad de proporcionar una alternativa. Esta marca solo es válida si también se establece CONNECT_INTERACTIVE.
CONNECT_DEFERRED
No realice ninguna operación de red remota para establecer la conexión de red; en su lugar, restaure la conexión en un "estado desconectado". Intente la conexión real solo cuando algún proceso intente usar la conexión. Si se establece este bit, el autor de la llamada debe proporcionar lpLocalName.

Esta característica se usa para acelerar la restauración de conexiones de red en el inicio de sesión. Un proveedor que lo admita debe devolver el bit WNNC_CON_DEFERRED en NPGetCaps.

Valor devuelto

Si la función se realiza correctamente, devolverá WN_SUCCESS. De lo contrario, devolverá un código de error. Esto puede incluir una de las siguientes opciones.

Código devuelto Descripción
WN_BAD_NETNAME
El valor del miembro lpRemoteName de la estructura que se pasa a lpNetResource no es válido para este proveedor.
WN_BAD_LOCALNAME
El valor del miembro lpLocalName de la estructura que se pasa a lpNetResource no es válido.
WN_BAD_PASSWORD
La contraseña especificada no es válida.
WN_ALREADY_CONNECTED
El dispositivo especificado en el miembro lpLocalName de la estructura que se pasa a lpNetResource ya está conectado.
WN_ACCESS_DENIED
Se deniega el permiso para establecer la conexión.
WN_NO_NETWORK
La red no está presente.
WN_CANCEL
El usuario canceló el intento de realizar la conexión mediante un cuadro de diálogo que muestra el proveedor.

Comentarios

Si un proveedor muestra un cuadro de diálogo de contraseña porque las credenciales especificadas no son suficientes y se establece la marca CONNECT_INTERACTIVE, es posible que el proveedor no devuelva un código de error de acceso denegado (uno de ERROR_LOGON_FAILURE, WN_BAD_PASSWORD, WN_ACCESS_DENIED). El comportamiento sugerido es para que el proveedor siga pidiendo al usuario credenciales válidas hasta que el usuario los suministre o presione un botón "cancelar". Si se llama a NPAddConnection3 para realizar la conexión solicitada durante la función WNetConnectionDialog o WNetConnectionDialog1 y se devuelve un código de acceso denegado, la función WNetConnectionDialog o WNetConnectionDialog1 mostrará, en sí mismo, un cuadro de diálogo de contraseña.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado npapi.h

Consulte también

NPAddConnection