现在的位置: 首页 > 综合 > 正文

Shell扩展是个进程内服务器(运行在Explorer进程内)

2013年10月06日 ⁄ 综合 ⁄ 共 645字 ⁄ 字号 评论关闭
一个Shell扩展就是一个为Explorer添加功能的COM对象。 

Shell扩展是个进程内服务器(运行在Explorer进程内),它实现了一些接口来处理与 Explorer 的通信。 
ATL在我看来是设计Shell扩展最简单最快捷的方法, 如果没有它,你就不得不一遍又一遍地编写繁琐的 QueryInterface() 及AddRef()代码. 
另外,在Windows NT 和 2000上调试Shell扩展相对比较容易一些,这我以后会讲到的。

Shell扩展有很多种类型,每种类型都在各自不同的事件发生时被调用运行,但也有一些扩展的类型和调用情形是非常相似的。 

类型 何时被调用 应该作些什么  
Context menu 
扩展处理器  用户右键单击文件或文件夹对象时,
或在一个文件夹窗口中的背景处单击右键时(要求shell版本为4.71+) 添加菜单项到上下文菜单中 
Property sheet
扩展处理器  要显示一个文件对象的属性框时 添加定制属性页到属性表中 
Drag and drop 
扩展处理器  用户用右键拖放文件对象到文件夹窗口或桌面时 添加菜单项到上下文菜单中 
Drop 扩展处理器  用户拖动Shell对象并将它放到一个文件对象上时 任何想要的操作 
QueryInfo扩展处理器 (需要shell版本 4.71+)  用户将鼠标盘旋于文件或其他Shell对象的图标上时 返回一个浏览器用于显示在提示框中的字符串 

现在你可能想知道Shell扩展到底是什么样的. 如果你安装了 WinZip (有谁没装的吗?), 它就包含了多种的Shell扩展,其中也就有上下文菜单扩展. 

抱歉!评论已关闭.