NPOpenEnum 函数 (npapi.h)
打开网络资源或现有连接的枚举。 必须调用 NPOpenEnum 函数才能获取枚举的有效句柄。
语法
DWORD NPOpenEnum(
[in] DWORD dwScope,
[in] DWORD dwType,
[in] DWORD dwUsage,
[in] LPNETRESOURCEW lpNetResource,
[out] LPHANDLE lphEnum
);
参数
[in] dwScope
确定枚举的范围。 这可以是以下其中一种。
值 | 含义 |
---|---|
|
当前连接的所有资源。 |
|
网络上的所有资源。 |
|
与用户的当前和默认网络上下文关联的资源 (用于“网络邻里”视图) 。 对此的解释留给提供程序。 |
[in] dwType
指定感兴趣的资源类型。 这是位掩码,可以是以下标志的任意组合。
值 | 含义 |
---|---|
|
所有磁盘资源。 |
|
所有打印资源。 |
|
指定如果调用方未通过身份验证 (函数应失败,即使网络允许枚举而不进行身份验证) 也是如此。 |
如果 dwType 为 0 或只是RESOURCEUSAGE_ATTACHED,则返回所有类型的资源。 如果提供程序无法在同一级别区分打印资源和磁盘资源,则可能会返回所有资源。
[in] dwUsage
指定相关资源的使用情况。 这是位掩码,可以是以下标志的任意组合。
值 | 含义 |
---|---|
|
所有可连接资源 |
|
所有容器资源 |
位掩码可以为零,以匹配所有标志。 如果未将 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。 否则,它应返回一个错误代码,其中可能包括以下代码之一。
返回代码 | 说明 |
---|---|
|
提供程序不支持所请求的枚举类型,或者无法浏览特定的网络资源。 |
|
lpNetResource 不指向容器。 |
|
指定的 dwScope、 dwUsage 或 dwType 无效或参数组合不正确。 |
|
网络不存在。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | npapi.h |