NPOpenEnum 函数 (npapi.h)

打开网络资源或现有连接的枚举。 必须调用 NPOpenEnum 函数才能获取枚举的有效句柄。

语法

DWORD NPOpenEnum(
  [in]  DWORD          dwScope,
  [in]  DWORD          dwType,
  [in]  DWORD          dwUsage,
  [in]  LPNETRESOURCEW lpNetResource,
  [out] LPHANDLE       lphEnum
);

参数

[in] dwScope

确定枚举的范围。 这可以是以下其中一种。

含义
RESOURCE_CONNECTED
当前连接的所有资源。
RESOURCE_GLOBALNET
网络上的所有资源。
RESOURCE_CONTEXT
与用户的当前和默认网络上下文关联的资源 (用于“网络邻里”视图) 。 对此的解释留给提供程序。

[in] dwType

指定感兴趣的资源类型。 这是位掩码,可以是以下标志的任意组合。

含义
RESOURCETYPE_DISK
所有磁盘资源。
RESOURCETYPE_PRINT
所有打印资源。
RESOURCEUSAGE_ATTACHED
指定如果调用方未通过身份验证 (函数应失败,即使网络允许枚举而不进行身份验证) 也是如此。
 

如果 dwType 为 0 或只是RESOURCEUSAGE_ATTACHED,则返回所有类型的资源。 如果提供程序无法在同一级别区分打印资源和磁盘资源,则可能会返回所有资源。

[in] dwUsage

指定相关资源的使用情况。 这是位掩码,可以是以下标志的任意组合。

含义
RESOURCEUSAGE_CONNECTABLE
所有可连接资源
RESOURCEUSAGE_CONTAINER
所有容器资源
 

位掩码可以为零,以匹配所有标志。 如果未将 dwScope 设置为 RESOURCE_GLOBALNET,则可能会忽略此参数。

[in] lpNetResource

指向用于执行枚举的容器的指针。 NETRESOURCE 可以通过以前的 NPEnumResource 调用获取,或者由调用方构造,也可以为 NULL。 如果为 NULL,或者 NETRESOURCElpRemoteName 字段为 NULL,则提供程序应枚举其网络的顶层。 请注意,这意味着提供程序不能使用 NULLlpRemoteName 来表示任何网络资源。 调用方通常首先调用 NPOpenEnum 并将此参数设置为 NULL ,然后使用返回的结果进行进一步的枚举。 如果调用程序确切地知道要从中枚举的提供程序和远程路径,它可能会生成自己的 NETRESOURCE 结构以传入,并填写 lpProviderlpRemoteName 字段。 请注意,如果 dwScope RESOURCE_CONNECTED或RESOURCE_CONTEXT,则此参数将为 NULL

[out] lphEnum

指向可由 NPEnumResource 函数使用的句柄的指针。 使用完句柄后,通过调用 NPCloseEnum 函数释放句柄。

返回值

如果该函数成功,它应返回WN_SUCCESS。 否则,它应返回一个错误代码,其中可能包括以下代码之一。

返回代码 说明
WN_NOT_SUPPORTED
提供程序不支持所请求的枚举类型,或者无法浏览特定的网络资源。
WN_NOT_CONTAINER
lpNetResource 不指向容器。
WN_BAD_VALUE
指定的 dwScopedwUsagedwType 无效或参数组合不正确。
WN_NO_NETWORK
网络不存在。

要求

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