Fonction NPAddConnection3 (npapi.h)

La fonction NPAddConnection3 connecte un appareil local à une ressource réseau. Il effectue la même opération que NPAddConnection , mais vous permet en outre de spécifier un handle à la fenêtre qui doit posséder toutes les boîtes de dialogue résultantes et de spécifier la façon dont la connexion doit être établie.

Syntaxe

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

Paramètres

[in] hwndOwner

Handle d’une fenêtre qui doit posséder tous les messages ou boîtes de dialogue. Ce handle n’est valide que si CONNECT_INTERACTIVE est défini dans dwFlags et que le handle doit uniquement être utilisé pour produire des boîtes de dialogue nécessaires à l’authentification.

[in] lpNetResource

Pointeur vers une structure NETRESOURCE qui spécifie la ressource réseau à laquelle se connecter. Les champs suivants doivent être définis lors de l’établissement d’une connexion. Les autres sont ignorés.

Valeur Signification
lpRemoteName
Spécifie la ressource réseau à laquelle se connecter.
lpLocalName
Spécifie le nom d’un appareil local à rediriger, par exemple « F : » ou « LPT1 ». Ce nom est traité comme ne respectant pas la casse et peut être la chaîne vide ou le pointeur NULL . Si la chaîne est vide ou NULL, la fonction se connecte à la ressource réseau sans effectuer de redirection.
dwType
Spécifie le type de ressource à laquelle se connecter. Cela peut être RESOURCETYPE_DISK, RESOURCETYPE_PRINT ou RESOURCETYPE_ANY. La valeur RESOURCETYPE_ANY est utilisée si l’appelant ne se soucie pas ou ne sait pas.

[in] lpPassword

Pointeur vers le mot de passe à utiliser pour établir la connexion, normalement le mot de passe associé à lpUserName. La valeur NULL peut être transmise pour que la fonction utilise le mot de passe par défaut. Une chaîne vide peut être utilisée pour indiquer aucun mot de passe. Lorsque vous avez terminé d’utiliser le mot de passe, effacez-le de la mémoire en appelant la fonction SecureZeroMemory . Pour plus d’informations sur la protection du mot de passe, consultez Gestion des mots de passe.

[in] lpUserName

Pointeur vers le nom d’utilisateur utilisé pour établir la connexion. Si la valeur est NULL, le nom d’utilisateur par défaut (celui de l’utilisateur actuellement connecté) est appliqué. Cette option est utilisée lorsque l’utilisateur souhaite se connecter à une ressource, mais qu’il a un nom d’utilisateur ou un compte attribué différent pour cette ressource.

[in] dwFlags

Toute combinaison des valeurs suivantes. Le fournisseur doit ignorer tous les autres bits de dwFlags qui peuvent être définis.

Valeur Signification
CONNECT_TEMPORARY
La connexion est en cours d’établissement à des fins de navigation et sera probablement publiée rapidement.
CONNECT_INTERACTIVE
La connexion peut avoir une interaction avec l’utilisateur à des fins d’authentification.
CONNECT_PROMPT
N’utilisez pas les valeurs par défaut pour les noms d’utilisateur ou les mots de passe sans offrir à l’utilisateur une possibilité de fournir une alternative. Cet indicateur n’est valide que si CONNECT_INTERACTIVE est également défini.
CONNECT_DEFERRED
N’effectuez aucune opération réseau à distance pour créer la connexion réseau ; au lieu de cela, restaurez la connexion dans un « état déconnecté ». N’essayez la connexion réelle que lorsqu’un processus tente d’utiliser la connexion. Si ce bit est défini, l’appelant doit fournir lpLocalName.

Cette fonctionnalité est utilisée pour accélérer la restauration des connexions réseau lors de l’ouverture de session. Un fournisseur qui le prend en charge doit retourner le WNNC_CON_DEFERRED bit dans NPGetCaps.

Valeur retournée

Si la fonction réussit, elle retourne WN_SUCCESS. Dans le cas contraire, un code d’erreur est retourné. Cela peut inclure l’un des éléments suivants.

Code de retour Description
WN_BAD_NETNAME
La valeur du membre lpRemoteName de la structure passée dans lpNetResource n’est pas valide pour ce fournisseur.
WN_BAD_LOCALNAME
La valeur du membre lpLocalName de la structure passée dans lpNetResource n’est pas valide.
WN_BAD_PASSWORD
Le mot de passe spécifié n’est pas valide.
WN_ALREADY_CONNECTED
L’appareil spécifié dans le membre lpLocalName de la structure passée dans lpNetResource est déjà connecté.
WN_ACCESS_DENIED
L’autorisation d’établir la connexion est refusée.
WN_NO_NETWORK
Le réseau n’est pas présent.
WN_CANCEL
La tentative de connexion a été annulée par l’utilisateur à l’aide d’une boîte de dialogue affichée par le fournisseur.

Remarques

Si un fournisseur affiche une boîte de dialogue de mot de passe parce que les informations d’identification spécifiées sont insuffisantes et que l’indicateur de CONNECT_INTERACTIVE est défini, le fournisseur peut ne pas renvoyer un code d’erreur d’accès refusé (l’un des ERROR_LOGON_FAILURE, WN_BAD_PASSWORD, WN_ACCESS_DENIED). Le comportement suggéré consiste à ce que le fournisseur continue de demander à l’utilisateur des informations d’identification valides jusqu’à ce que l’utilisateur les fournisse ou appuie sur un bouton « Annuler ». Si NPAddConnection3 est appelé pour effectuer la connexion demandée pendant la fonction WNetConnectionDialog ou WNetConnectionDialog1 et qu’un code d’accès refusé est retourné, la fonction WNetConnectionDialog ou WNetConnectionDialog1 affiche elle-même une boîte de dialogue de mot de passe.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête npapi.h

Voir aussi

NPAddConnection