INamespaceWalk::Walk 方法 (shobjidl_core.h)
启动命名空间从指定根到给定深度的递归演练。
语法
HRESULT Walk(
[in] IUnknown *punkToWalk,
[in] DWORD dwFlags,
[in] int cDepth,
[in] INamespaceWalkCB *pnswcb
);
参数
[in] punkToWalk
类型: IUnknown*
要从中开始执行操作的根节点。 这可由以下对象之一表示。
如果 cDepth 足够大,将桌面的 IShellFolder 指定为根目录,可以遍视整个 Windows 命名空间。[in] dwFlags
类型:DWORD
控制步行操作的以下一个或多个标志。
NSWF_DEFAULT (0x00000000)
如果不想设置任何其他标志,请使用此值。
NSWF_NONE_IMPLIES_ALL (0x00000001)
如果同时满足以下两个条件,请收集文件夹中的所有项目:
- punkToWalk 是 IShellFolder 或 IShellView) (文件夹。
- 文件夹中当前未选择任何项目。
NSWF_ONE_IMPLIES_ALL (0x00000002)
如果同时满足以下两个条件,请收集文件夹中的所有项目:
- punkToWalk 是 IShellFolder 或 IShellView) (文件夹。
- 文件夹中的一个项目当前处于选中状态。
NSWF_DONT_TRAVERSE_LINKS (0x00000004)
不要遵循递归中) 链接 (.lnk、.url 和文件夹快捷方式;相反,请将其作为常规项返回。
NSWF_DONT_ACCUMULATE_RESULT (0x00000008)
请勿在命名空间访问期间收集节点的 PIDL。
NSWF_TRAVERSE_STREAM_JUNCTIONS (0x00000010)
在步行中包含流交汇点的内容。 例如,走进 .cab 文件的内容。
NSWF_FILESYSTEM_ONLY (0x00000020)
仅执行文件系统节点。
NSWF_SHOW_PROGRESS (0x00000040)
在浏览命名空间时显示带有进度栏的对话框。
NSWF_FLAG_VIEWORDER (0x00000080)
按查看顺序返回项。 仅当 punkToWalk 是 IShellView 对象时,这才适用。
NSWF_IGNORE_AUTOPLAY_HIDA (0x00000100)
请勿在数据对象中使用自动播放 HIDA。 这仅适用于 punkToWalk 是 IDataObject 对象时。
NSWF_ASYNC (0x00000200)
通过在后台线程上运行它,异步执行该演练。
NSWF_DONT_RESOLVE_LINKS (0x00000400)
遍历链接以 (返回.lnk、.url 和文件夹快捷方式的目标) ,但不验证这些目标是否存在 (解析) 。 这是一种优化,不会影响结果,除非可以找到并返回缺失或移动的目标。
NSWF_ACCUMULATE_FOLDERS (0x00000800)
NSWF_DONT_SORT (0x00001000)
不要维护所走项的排序顺序。
NSWF_USE_TRANSFER_MEDIUM (0x00002000)
NSWF_DONT_TRAVERSE_STREAM_JUNCTIONS (0x00004000)
NSWF_ANY_IMPLIES_ALL (0x00008000)
在 Windows 8 中引入。
[in] cDepth
类型: int
要通过命名空间层次结构降序的最大深度。 此深度从零开始。 设置为 0 可仅访问 由 punkToWalk 标识的文件夹,但不包含其子文件夹。
[in] pnswcb
类型: INamespaceWalkCB*
INamespaceWalk 使用的 INamespaceWalkCB 回调函数。 此参数可以为 NULL。 对象可以选择性地实现 INamespaceWalkCB2 和 IActionProgress 接口。 请参阅下面的备注。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
如果未传递 NSWF_SHOW_PROGRESS 标志,并且 pnswcb 参数指向的对象实现 IActionProgress,则 INamespaceWalk::Walk 方法会定期调用 IActionProgress::QueryCancel 方法,以确定是否应取消该操作。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl_core.h (包括 Shobjidl.h) |
Library | Shell32.lib |
DLL | Shell32.dll (版本 6.0 或更高版本) |