NPAddConnection3 函数 (npapi.h)

NPAddConnection3 函数将本地设备连接到网络资源。 它执行与 NPAddConnection 相同的操作,但此外,还可以指定窗口的句柄,该句柄应拥有任何生成的对话框,并指定应如何建立连接。

语法

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

参数

[in] hwndOwner

应拥有任何消息或对话框的窗口的句柄。 仅当在 dwFlags 中设置了CONNECT_INTERACTIVE时,此句柄才有效,并且该句柄只应用于生成身份验证所需的对话框。

[in] lpNetResource

指向 NETRESOURCE 结构的指针,该结构指定要连接到的网络资源。 建立连接时必须设置以下字段。 而忽略其他源的属性。

含义
lpRemoteName
指定要连接到的网络资源。
lpLocalName
指定要重定向的本地设备的名称,例如“F:”或“LPT1”。 此名称被视为不区分大小写,可以是空字符串或 NULL 指针。 如果字符串为空或 NULL,则函数连接到网络资源而不进行重定向。
dwType
指定要连接到的资源的类型。 这可以是RESOURCETYPE_DISK、RESOURCETYPE_PRINT或RESOURCETYPE_ANY。 如果调用方不关心或不知道,则使用RESOURCETYPE_ANY的值。

[in] lpPassword

指向要用于建立连接的密码的指针,通常是与 lpUserName 关联的密码。 可以传入 NULL 值,使函数使用默认密码。 空字符串可用于指示没有密码。 使用完密码后,通过调用 SecureZeroMemory 函数从内存中清除密码。 有关保护密码的详细信息,请参阅 处理密码

[in] lpUserName

指向用于建立连接的用户名的指针。 如果 为 NULL,则应用当前登录用户的默认用户名 () 。 当用户想要连接到某个资源,但为该资源分配了不同的用户名或帐户时,会使用此方法。

[in] dwFlags

以下值的任意组合。 提供程序应忽略可能设置的任何其他 dwFlags 位。

含义
CONNECT_TEMPORARY
正在建立用于浏览的连接,可能会很快释放。
CONNECT_INTERACTIVE
出于身份验证目的,连接可能与用户交互。
CONNECT_PROMPT
如果不为用户提供提供替代项的机会,则不要对用户名或密码使用任何默认值。 仅当同时设置了CONNECT_INTERACTIVE时,此标志才有效。
CONNECT_DEFERRED
不要执行任何远程网络操作来建立网络连接;相反,将连接还原为“断开连接状态”。 仅当某些进程尝试使用该连接时,才尝试实际连接。 如果设置了此位,则调用方必须提供 lpLocalName

此功能用于在登录时加快网络连接的还原速度。 支持它的提供程序应在 NPGetCaps 中返回WNNC_CON_DEFERRED位。

返回值

如果函数成功,它将返回WN_SUCCESS。 否则,它将返回错误代码。 这可能包括以下其中一项。

返回代码 说明
WN_BAD_NETNAME
传递到 lpNetResource 的结构的 lpRemoteName 成员的值对此提供程序无效。
WN_BAD_LOCALNAME
传递到 lpNetResource 的结构的 lpLocalName 成员的值无效。
WN_BAD_PASSWORD
指定的密码无效。
WN_ALREADY_CONNECTED
在传递到 lpNetResource 结构的 lpLocalName 成员中指定的设备已连接。
WN_ACCESS_DENIED
建立连接的权限被拒绝。
WN_NO_NETWORK
网络不存在。
WN_CANCEL
用户使用提供程序显示的对话框取消了建立连接的尝试。

注解

如果提供程序由于指定的凭据不足而显示密码对话框,并且CONNECT_INTERACTIVE标志已设置,则提供程序可能不会 (ERROR_LOGON_FAILURE、WN_BAD_PASSWORD、WN_ACCESS_DENIED) 之一返回拒绝访问的错误代码。 建议的行为是,提供程序可以继续要求用户提供有效凭据,直到用户提供凭据或按“取消”按钮。 如果调用 NPAddConnection3 以在 WNetConnectionDialog 或 WNetConnectionDialog1 函数期间请求的连接,并且返回拒绝访问的代码,则 WNetConnectionDialogWNetConnectionDialog1 函数本身将显示密码对话框。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 npapi.h

另请参阅

NPAddConnection