打开网络资源或现有连接的枚举。 必须调用 NPOpenEnum 函数才能获取枚举的有效句柄。
Syntax
DWORD NPOpenEnum(
[in] DWORD dwScope,
[in] DWORD dwType,
[in] DWORD dwUsage,
[in] LPNETRESOURCEW lpNetResource,
[out] LPHANDLE lphEnum
);
参数
[in] dwScope
确定枚举的范围。 这可以是下列项之一。
| 价值 | Meaning |
|---|---|
|
所有当前连接的资源。 |
|
网络上的所有资源。 |
|
与用户的当前和默认网络上下文关联的资源(用于“网络邻里”视图)。 此解释将留给提供程序。 |
[in] dwType
指定感兴趣的资源类型。 这是位掩码,可以是以下标志的任意组合。
| 价值 | Meaning |
|---|---|
|
所有磁盘资源。 |
|
所有打印资源。 |
|
指定如果调用方未进行身份验证(即使网络允许枚举而不进行身份验证),函数应失败。 |
如果 dwType 为 0 或只是RESOURCEUSAGE_ATTACHED,则返回所有类型的资源。 如果提供程序不能在同一级别区分打印资源和磁盘资源,则可能会返回所有资源。
[in] dwUsage
指定感兴趣的资源的使用情况。 这是位掩码,可以是以下标志的任意组合。
| 价值 | Meaning |
|---|---|
|
所有可连接资源 |
|
所有容器资源 |
位掩码可能为零,以匹配所有标志。 如果未将 dwScope 设置为RESOURCE_GLOBALNET,则可能会忽略此参数。
[in] lpNetResource
指向用于执行枚举的容器的指针。 NETRESOURCE 可以通过以前的 NPEnumResource 调用获取,也可以由调用方构造,也可以为 NULL。 如果为 NULL,或者 NETRESOURCE 的lpRemoteName 字段为 NULL,则提供程序应枚举其网络的顶层。 请注意,这意味着提供程序不能使用 NULL 的 lpRemoteName 来表示任何网络资源。 调用方通常通过调用 NPOpenEnum (此参数设置为 NULL )开始,然后使用返回的结果进行进一步枚举。 如果调用程序确切地知道要枚举的提供程序和远程路径,它可能会生成自己的 NETRESOURCE 结构以传入,填写 lpProvider 和 lpRemoteName 字段。 请注意,如果 dwScope 是RESOURCE_CONNECTED或RESOURCE_CONTEXT,则此参数将为 NULL。
[out] lphEnum
指向 NPEnumResource 函数可以使用的句柄的指针。 使用完句柄后,通过调用 NPCloseEnum 函数释放句柄。
返回值
如果函数成功,它应返回WN_SUCCESS。 否则,它应返回可能包含以下代码之一的错误代码。
| 返回代码 | Description |
|---|---|
|
提供程序不支持所请求的枚举类型,或者无法浏览特定的网络资源。 |
|
lpNetResource 不指向容器。 |
|
指定 了无效的 dwScope、 dwUsage 或 dwType 或参数组合错误。 |
|
网络不存在。 |
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows XP [仅限桌面应用] |
| 支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
| 目标平台 | Windows操作系统 |
| Header | npapi.h |
| Library | davclnt.lib |