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 或更高版本) |