Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1367835
  • 博文数量: 946
  • 博客积分: 52360
  • 博客等级: 大将
  • 技术积分: 13080
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-07 17:31
文章分类

全部博文(946)

文章存档

2011年(1)

2008年(945)

我的朋友

分类: C/C++

2008-08-07 17:38:11

下载本文示例代码

下载源代码


好久没有给VC知识库发稿了,实在不好意思,由于前段时间实在太忙所以一直没有时间闲下心来写点东西,期间也有不少朋友给我来信讨论问题,我很感谢大家对我的支持,我欢迎大家继续来信,共同交流,共同进步!这次我想和大家一起讨论一下 Windows 的 Shell 扩展编程,首先在阅读以下内容之前我还是推荐大家看一下《COM技术内幕》这本大作,不过即使您没有有关的基础知识其实也是无所谓的,因为以下讲解是傻瓜式讲解。

开发环境
  • Windows Professional 2000
  • Microsoft Visual C 6.0 ATL3.0
参考文献
  • COM技术内幕
  • ATL应用与开发指南(第二版)
Windows外壳扩展
Windows外壳扩展的英文名称为:Windows Shell Extension。Windows外壳扩展是一类特殊的COM对象,在这类COM对象中用户可以加入自己的特殊功能,而Windows外壳扩展最终都会被Windows Explorer所引用。举个最简单的例子,比如 WinRar 应用程序,如果你安装完 WinRar 后,它会在你的右键菜单中加入很多快捷菜单,如 图1.1 所示:


图1.1

而上图却仅仅是外壳扩展编程中一种:"Context Menu Handler"。难道外壳扩展也分类吗?是的,但是不多,并且它们的实现大都一致,总体来说有如下几种分类:

表(一) 下载本文示例代码
处理器类型 何时触发 所做处理
Context menu 处理器 当用户鼠标右击文件或文件夹时触发。但是在Shell V4.71 中,用户在文件夹目录的空白处点击鼠标右键也会触发该事件。 加入上下文菜单项。
Property sheet 处理器 当用户鼠标右击文件,选择文件"属性"菜单弹出文件属性对话框时触发。 加入用户自定义属性页。
Drag and drop 处理器 当用户在文件夹或桌面中用鼠标右键Drag/Drop文件或文件夹时触发。 加入上下文菜单项。
Drop处理器 当某一数据对象被Drag Over/Dropped Into某一文件时触发。 加入任何用户自定义动作。
QueryInfo 处理器(Shell V4.71 ) 当用户鼠标滑过某一个文件或某一Shell对象时触发。 加入用户自定义提示信息(ToolTips)。
阅读(165) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~