NPAddConnection3 函数将本地设备连接到网络资源。 它执行与 NPAddConnection 相同的作,但此外,还可以指定窗口的句柄,该窗口应拥有任何生成的对话框,并指定应如何建立连接。
Syntax
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 位。
| 价值 | Meaning |
|---|---|
|
正在建立连接以用于浏览目的,可能很快就会发布。 |
|
连接可能与用户交互,以便进行身份验证。 |
|
请勿对用户名或密码使用任何默认值,而无需为用户提供提供替代方法的机会。 仅当同时设置CONNECT_INTERACTIVE时,此标志才有效。 |
|
不执行任何远程网络作来建立网络连接;而是还原处于“断开连接状态”的连接。 仅在某些进程尝试使用连接时尝试实际连接。 如果设置了此位,调用方必须提供 lpLocalName。
此功能用于加快在登录时还原网络连接的速度。 支持它的提供程序应返回 NPGetCaps 中的WNNC_CON_DEFERRED位。 |
返回值
如果函数成功,它将返回WN_SUCCESS。 否则,它将返回错误代码。 这可能包括以下项之一。
| 返回代码 | Description |
|---|---|
|
传递到 lpNetResource 的结构的 lpRemoteName 成员的值对此提供程序无效。 |
|
传递到 lpNetResource 的结构的 lpLocalName 成员的值无效。 |
|
指定的密码无效。 |
|
传递到 lpNetResource 的结构的 lpLocalName 成员中指定的设备已连接。 |
|
建立连接的权限被拒绝。 |
|
网络不存在。 |
|
用户使用提供程序显示的对话框取消了尝试建立连接。 |
注解
如果提供程序显示密码对话框,因为指定的凭据不足,并且设置了CONNECT_INTERACTIVE标志,则提供程序可能不会返回拒绝访问的错误代码(ERROR_LOGON_FAILURE、WN_BAD_PASSWORD、WN_ACCESS_DENIED之一)。 建议的行为是使提供程序继续要求用户提供有效凭据,直到用户提供凭据或按“取消”按钮。 如果调用 NPAddConnection3 以在 WNetConnectionDialog 或 WNetConnectionDialog1 函数期间请求连接,并返回访问被拒绝的代码,则 WNetConnectionDialog 或 WNetConnectionDialog1 函数本身将显示密码对话框。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows XP [仅限桌面应用] |
| 支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
| 目标平台 | Windows操作系统 |
| Header | npapi.h |
| Library | davclnt.lib |