NPOpenEnum 函数 (npapi.h)

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

Syntax

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

参数

[in] dwScope

确定枚举的范围。 这可以是下列项之一。

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

[in] dwType

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

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

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

[in] dwUsage

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

价值 Meaning
RESOURCEUSAGE_CONNECTABLE
所有可连接资源
RESOURCEUSAGE_CONTAINER
所有容器资源
 

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

[in] lpNetResource

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

[out] lphEnum

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

返回值

如果函数成功,它应返回WN_SUCCESS。 否则,它应返回可能包含以下代码之一的错误代码。

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

要求

Requirement 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows操作系统
Header npapi.h
Library davclnt.lib