Windows7程序开发系列之二(JumpList篇2-Destination)-wilford的专栏-CSDN博客.docVIP

Windows7程序开发系列之二(JumpList篇2-Destination)-wilford的专栏-CSDN博客.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows7程序开发系列之二(JumpList篇2-Destination)-wilford的专栏-CSDN博客

wilford的专栏 一个人的游戏 条新通知 登录 注册 欢迎 退出 我的博客 配置 写文章 文章管理 博客首页 空间 博客 好友 相册 留言 用户操作 [留言]? [发消息]? [加为好友]? 订阅我的博客 ?? [编辑]ntwilford的公告 [编辑]文章分类 C++ DirectX Lua MinGW OGRE Windows开发 记事 随手做点翻译 学习日记 自给自足 [编辑]其它 挑战30天 C-C++ 入门极限系列教程 [编辑]英文的游戏开发站点 codesampler gamasutra gamedev The ZBuffer 存档 2010年06月(3) 2010年05月(2) 2009年12月(1) 2009年09月(2) 2009年08月(1) 2009年07月(2) 2009年05月(1) 2009年02月(1) 2008年09月(1) 2006年12月(2) 2006年10月(1) 2006年08月(5) 2006年07月(4) 2006年06月(7) 2006年05月(5) 公告: [意见反馈][官方博客] ? Windows 7程序开发系列之二(JumpList篇2 - Destination) 收藏 ??????? JumpList中除了有User Task外,还有Destination。与User Task不同,Destination中是与该程序相关联的文件的链接。Destination还可以分类,Windows已经自动为我们管理了“最近“和“常用“两个类别。比如记事本程序,使用“最近”这个类别: ?????? 这对于大多数程序已经足够。但Windows也为我们提供了管理自己的类别的接口。程序可以根据自己的需要,添加自己的类别。本节将介绍如何将自己的类别加入JumpList。 一、向 JumpList中加入自定义类别 ???? 首先来定义一些准备要放入JumpList的文件: ???? 响应按键消息,当按下“j”的时候,创建JumpList。 ???? 上面的代码首先在当前文件夹内,将上面定义的几个文件创建出来。然后其他的步骤与创建User Task类似。不过中途向IObejctCollection 接口中加入的是IShellItem 接口,而不是IShellLink 接口。创建IShellItem 接口时,先取得文件的完整路径,然后使用API函数SHCreateItemFromParsingName 创建。取得IObjectArray 接口后调用AppendCategory 将自定义的类别加入JumpList。 ???? 执行上面程序,在窗口上按“j”。没有作用,效果没有达到。前面提到过,Destination中的文件是与我们的应用程序关联的文件。我们加入的是3个txt文件,而我们的应用程序目前并没有与txt文件关联。下面还有一些工作要做。 二、Application ID ????? 首先要提一下AppID,它是一个字符串,Windows用它来标识一个程序。在缺省的情况下,我们的程序不需要设置AppID,Windows会自动为我们生成和管理AppID。但是在某些情况下,我们自己管理AppID更好,比如上面提到的文件关联。只有与我们的程序关联的文件才会显示到Destination中。Windows7中,任务栏按钮的分组也是以AppID为依据的,具有相同AppID的窗口,他们的任务栏按钮会被分为一组,即使它们由不同的程序创建。反之,具有不同AppID的窗口,即使她们是由同一个程序创建,它们的任务栏按钮也不会被分到一组中。下面我们来做一下这个实验: ?????? 1.为应用程序设置AppID。API函数SetCurrentProcessExplicitAppUserModelID 用于设置应用程序的AppID(函数名字稍微有点长)。 ?????? 2.为窗口设置AppID。窗口缺省的AppID与创建它的应用程序相同。因此,由同一个程序创建的两个窗口,在任务栏中会被归为一组(前提是这两个窗口都具有任务栏按钮)。如果我们为窗口设置不同的AppID,这两个窗口就不会被归为一组。设置窗口的AppID没有直接的API函数。与设置IShellLink 接口的title一样,需要用到IPropertyStore 这个接口。编写下面的函数,用于设置窗口的AppID。 ?????? 该函数接受一个窗口句柄和AppID(字符串)。通过API函数SHGetPropertyStoreForWindow 取得IPropertyStore 接口。通过字符串初始化一个PropVariant ,然后

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档