一个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扩展,其中也就有上下文菜单扩展.
Shell扩展是个进程内服务器(运行在Explorer进程内)
最新推荐文章于 2023-12-21 23:14:23 发布