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 结构的指针,该结构指定要连接到的网络资源。 建立连接时必须设置以下字段。 而忽略其他源的属性。
[in] lpPassword
指向要用于建立连接的密码的指针,通常是与 lpUserName 关联的密码。 可以传入 NULL 值,使函数使用默认密码。 空字符串可用于指示没有密码。 使用完密码后,通过调用 SecureZeroMemory 函数从内存中清除密码。 有关保护密码的详细信息,请参阅 处理密码。
[in] lpUserName
指向用于建立连接的用户名的指针。 如果 为 NULL,则应用当前登录用户的默认用户名 () 。 当用户想要连接到某个资源,但为该资源分配了不同的用户名或帐户时,会使用此方法。
[in] dwFlags
以下值的任意组合。 提供程序应忽略可能设置的任何其他 dwFlags 位。
值 | 含义 |
---|---|
|
正在建立用于浏览的连接,可能会很快释放。 |
|
出于身份验证目的,连接可能与用户交互。 |
|
如果不为用户提供提供替代项的机会,则不要对用户名或密码使用任何默认值。 仅当同时设置了CONNECT_INTERACTIVE时,此标志才有效。 |
|
不要执行任何远程网络操作来建立网络连接;相反,将连接还原为“断开连接状态”。 仅当某些进程尝试使用该连接时,才尝试实际连接。 如果设置了此位,则调用方必须提供 lpLocalName。
此功能用于在登录时加快网络连接的还原速度。 支持它的提供程序应在 NPGetCaps 中返回WNNC_CON_DEFERRED位。 |
返回值
如果函数成功,它将返回WN_SUCCESS。 否则,它将返回错误代码。 这可能包括以下其中一项。
返回代码 | 说明 |
---|---|
|
传递到 lpNetResource 的结构的 lpRemoteName 成员的值对此提供程序无效。 |
|
传递到 lpNetResource 的结构的 lpLocalName 成员的值无效。 |
|
指定的密码无效。 |
|
在传递到 lpNetResource 结构的 lpLocalName 成员中指定的设备已连接。 |
|
建立连接的权限被拒绝。 |
|
网络不存在。 |
|
用户使用提供程序显示的对话框取消了建立连接的尝试。 |
注解
如果提供程序由于指定的凭据不足而显示密码对话框,并且CONNECT_INTERACTIVE标志已设置,则提供程序可能不会 (ERROR_LOGON_FAILURE、WN_BAD_PASSWORD、WN_ACCESS_DENIED) 之一返回拒绝访问的错误代码。 建议的行为是,提供程序可以继续要求用户提供有效凭据,直到用户提供凭据或按“取消”按钮。 如果调用 NPAddConnection3 以在 WNetConnectionDialog 或 WNetConnectionDialog1 函数期间请求的连接,并且返回拒绝访问的代码,则 WNetConnectionDialog 或 WNetConnectionDialog1 函数本身将显示密码对话框。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | npapi.h |