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)

如果同时满足以下两个条件,请收集文件夹中的所有项目:

NSWF_ONE_IMPLIES_ALL (0x00000002)

如果同时满足以下两个条件,请收集文件夹中的所有项目:

  • punkToWalkIShellFolderIShellView) (文件夹。
  • 文件夹中的一个项目当前处于选中状态。

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)

按查看顺序返回项。 仅当 punkToWalkIShellView 对象时,这才适用。

NSWF_IGNORE_AUTOPLAY_HIDA (0x00000100)

请勿在数据对象中使用自动播放 HIDA。 这仅适用于 punkToWalkIDataObject 对象时。

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。 对象可以选择性地实现 INamespaceWalkCB2IActionProgress 接口。 请参阅下面的备注。

返回值

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

另请参阅

INamespaceWalk

INamespaceWalkCB