IShellFolderView::重新排列方法 (shlobj_core.h)

[重新排列 可用于在“要求”部分中指定的操作系统中。 它可能在后续版本中变更或不可用。 请改用 GetSortColumns。]

根据排序规则重新排列视图中的项。

语法

HRESULT Rearrange(
  [in] LPARAM lParamSort
);

参数

[in] lParamSort

类型:LPARAM

指定应如何执行重新排列。

lParamSort 的下 16 位定义排序规则。 大多数应用程序将排序规则设置为默认值零,表示应按名称对项进行排序。 系统不定义任何其他排序规则。 某些文件夹对象可能允许调用应用程序使用低 16 位 lParamSort 来指定特定于文件夹的排序规则。 规则及其关联的 lParamSort 值由 文件夹定义。

当系统文件夹视图对象调用 IShellFolderView::重新排列时, lParamSort 的下 16 位用于指定要用于排列的列。

lParamSort 的上 16 位用于修改排序规则的标志。 系统当前定义以下修饰符标志。

SHCIDS_ALLFIELDS

版本 5.0。 排列 ITEMIDLIST 结构中包含的所有信息,而不仅仅是显示名称。 此标志仅对支持 IShellFolder2 接口的文件夹对象有效。 例如,如果这两个项是文件,则文件夹应排列其名称、大小、文件时间、属性和结构中的任何其他信息。 如果设置了此标志, 则 lParamSort 的下 16 位必须为零。

SHCIDS_CANONICALONLY

版本 5.0。 按名称排列时,请排列系统名称,而不是显示名称。 传递此标志时,只要 Shell 文件夹实现一致的排序函数,这两个项将按 Shell 文件夹确定的最有效条件排列。 此标志不能与其他标志组合使用。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

调用应用程序的注释

如果文件夹对象不支持 IShellFolder2,请不要在 lParamSort 中设置SHCIDS_ALLFIELDS标志。 这样做可能会产生不可预知的结果。 如果使用 SHCIDS_ALLFIELDS 标志,必须将 lParamSort 的下 16 位设置为零。

对实现者的说明

若要提取排序规则,请使用按位 AND 运算符 (&) 将 lParamSort 与 SHCIDS_COLUMNMASK (0X0000FFFF) 合并。 此操作会屏蔽 lParamSort 的上 16 位,包括 SHCIDS_ALLFIELDS 值。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shlobj_core.h