IEnumIDList::Next 方法 (shobjidl_core.h)

检索枚举序列中指定数量的项标识符,并按检索到的项数前移当前位置。

语法

HRESULT Next(
  [in]  ULONG         celt,
  [out] PITEMID_CHILD *rgelt,
  [out] ULONG         *pceltFetched
);

参数

[in] celt

类型: ULONG

rgelt 参数引用的数组中的元素数。

[out] rgelt

类型: LPITEMIDLIST*

指向接收项标识符的 ITEMIDLIST 指针数组的指针的地址。 实现必须使用 CoTaskMemAlloc 分配这些项目标识符。 调用应用程序负责使用 CoTaskMemFree 释放项标识符。

数组中返回的 ITEMIDLIST 结构相对于要枚举的 IShellFolder

[out] pceltFetched

类型: ULONG*

指向一个值的指针,该值接收 rgelt 中实际返回的项标识符计数。 计数可以小于 celt 参数中指定的值。 仅当 celt = 1 时,此参数才能在条目上为 NULL,因为在这种情况下,该方法只能检索一个 (S_OK) 或零个 (S_FALSE) 项。

返回值

类型: HRESULT

如果方法成功检索了请求的 celt 元素,则返回S_OK。 仅当成功检索到请求的项的完整计数时,此方法才会返回S_OK。

S_FALSE指示请求的项多于枚举中保留的项目数。 pceltFetched 参数指向的值指定检索到的实际项数。 请注意,如果没有其他要检索的项目,该值将为 0。

否则返回 COM 定义的错误值。

注解

如果此方法返回组件对象模型 (COM) 错误代码 (由 FAILED 宏) 确定,则 rgelt 数组中没有任何条目在退出时有效。 如果此方法返回成功代码 ((如 S_OK 或 S_FALSE) ),则 pceltFetched 参数指向的 ULONG 将确定退出时 rgelt 数组中的有效条目数。

celt> 1 的情况下,这种区别很重要。 例如,如果传递 celt=10 并且只剩下 3 个元素,则 *pceltFetched 将为 3,该方法将返回S_FALSE这意味着你已到达文件末尾。 提取的三个元素将存储在 rgelt 中,并且有效。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)
DLL Shell32.dll (4.0 或更高版本)

另请参阅

IEnumIDList