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 。
“ 最近” 类别显示在默认跳转列表中,但若要将其与自定义类别一起显示在自定义跳转列表中,必须通过此方法显式请求它。
使用 AppendCategory 和 AppendKnownCategory 时,应将自定义跳转列表设计为避免任何项出现在多个类别中。 如果两个类别只是对相同数据的不同视图,则应删除其中一个类别,因为它使用跳转列表空间,而不会为用户带来方便。 系统不会隐藏重复项,但固定目标除外,在这种情况下,该目标显示在“固定”类别中,并隐藏在所有其他类别中。
“常用”和“最近”类别可能包含一定程度的重叠,因此不应同时将这两个类别添加到单个跳转列表。 两者中哪一个最适合你的应用程序取决于其性质。 生成文件的应用程序(如 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::AddUserTasks