ICustomDestinationList::AppendKnownCategory 方法 (shobjidl_core.h)

指定“ 常用 ”或“ 最近” 类别应包含在自定义跳转列表中。

语法

HRESULT AppendKnownCategory(
  [in] KNOWNDESTCATEGORY category
);

参数

[in] category

类型: KNOWNDESTCATEGORY

以下值之一,指示要添加到列表的已知类别:

KDC_FREQUENT (1)

0x1。 添加“ 常用 ”类别。

KDC_RECENT (2)

0x2。 添加“ 最近” 类别。

返回值

类型: HRESULT

如果成功,则返回 S_OK,否则返回错误值。

如果存在隐私组策略或用户隐私设置,则可能会影响此方法的结果。 这些隐私设置不允许包含基于个人使用情况的用户特定项目的类别。 因此,通过此方法添加的 “最近” 或“ 常用 ”类别将不包含任何数据,并且不会显示没有数据的类别。 但是,在这种情况下,此方法调用不会导致代码失败。

注解

在调用此方法之前,必须调用 ICustomDestinationList::BeginList

最近” 类别显示在默认跳转列表中,但若要将其与自定义类别一起显示在自定义跳转列表中,必须通过此方法显式请求它。

使用 AppendCategoryAppendKnownCategory 时,应将自定义跳转列表设计为避免任何项出现在多个类别中。 如果两个类别只是对相同数据的不同视图,则应删除其中一个类别,因为它使用跳转列表空间,而不会为用户带来方便。 系统不会隐藏重复项,但固定目标除外,在这种情况下,该目标显示在“固定”类别中,并隐藏在所有其他类别中。

“常用”和“最近”类别可能包含一定程度的重叠,因此不应同时将这两个类别添加到单个跳转列表。 两者中哪一个最适合你的应用程序取决于其性质。 生成文件的应用程序(如 Microsoft Word或Microsoft 画图)应使用“最近”类别,因为用户最有可能希望返回到他们最近处理的文件。 用于浏览或播放其他位置创建的数据的应用程序应使用 “频繁 ”类别,因为用户更有可能访问更多项,其中许多项仅访问一次。 换句话说,如果应用程序最有可能每次访问大量项目几次,这给用户想要多次访问的较小项目集造成干扰,那么 “频繁” 是最佳选择。 如果应用程序更有可能在大多数时间访问较少数量的较新项,则应选择“最近”。

自定义跳转列表中的类别(包括已知的“ 最近” 或“ 常用 ”类别)按添加顺序显示,最近添加的类别位于列表底部。

不显示通过 ICustomDestinationList::BeginList 中的 pcMinItems 参数指向的值添加的任意数量的目标。

不显示空类别。

“常用”和“最近”类别的内容是针对直接使用 SHAddToRecentDocs 的每个应用程序计算的。 在某些情况下,用户操作(例如通过 Windows 资源管理器打开文件或使用通用文件对话框打开、保存或创建文件),Shell 代表应用程序调用 SHAddToRecentDocs ,使用情况统计信息中也会考虑这些调用。 当目标从其跳转列表启动时,Shell 还代表应用程序调用 SHAddToRecentDocs 。 但是,应用程序最好显式调用 SHAddToRecentDocs 本身,即使预期 Shell 会进行调用。 这可以保证记录使用情况,并且跟踪最近或频繁使用情况的算法将针对任何重复调用进行更正。

要求

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

另请参阅

ICustomDestinationList

ICustomDestinationList::AddUserTasks

ICustomDestinationList::AppendCategory

任务栏扩展