Windows外壳扩展
2011-04-12 17:17
253 查看
在Win32
操作系统
(包括
Win9X
、Windows
NT
、Windows
2000
)不但有方便的图
形用
户
(
GUI
)界面,微软还为
windows
用户
界面保留了
强
大的可
扩
充性。
其中
对
于
Windows
界面的操作
环
境(
这
里称
为
外壳
Shell
),微
软
提供了一
种
称
为
外壳
扩
展(
Shell
Extensions
)的功能来
实现
文件系
统
操作的可
编
程性。如果你的机器中安装了
Word 7.0
以上的版本,当你鼠
标
右
键单击
一个
DOC
文件,在
弹
出菜
单
中
选
“属性”
项
,在属性
页
中不
仅显
示
显
示文件的大小、建立日期等信息,同
时还
增加了
Doc
文档的摘要、
统计
等信息;又例如安装了
winZip
6.0
以上版本后,当
选
中一个或多
个文件或文件
夹
后在
单击
鼠
标
右
键
,在
弹
出的右
键
菜
单
中就增加了“
Add
To
Zip
”
等一个
zip
文件
压缩选项
。上面的
这
些功能都是通
过
Windows
外壳
扩
展来
实现
的。
Windows
外壳
扩
展是
这样实现
的。首先要
编
写外壳
扩
展程序,一个外壳
扩
展程序是基于
COM(Component
Object
Model)
组
件模型的。外壳是通
过
接口
(Interface)
来
访问对
象的。外壳
扩
展被
设计
成
32
位的
进
程中服
务
器程序,并且都是以
动态链
接
库
的形式
为
操作系
统
提供服
务
的。
写好外壳
扩
展程序后,必
须
将它
们
注册才能生效。所有的外壳
扩
展都必
须
在
Windows
注册表的
HKEY_CLASSES_ROOT/CLSID
键
之下
进
行注册。在
该键
下面可以找到
许
多名字像
{ACDE002F-0000-0000-C000-000000000046}
的
键
,
这类键
就是全局唯一
类标识
符。
每
一个外壳
扩
展都必
须
有一个全
局唯一
类标识
符,
Windows
正是通
过
此唯一
类标识
符来找到外壳
扩
展
处
理程序的。在
类标识
符之下的
InProcServer32
子
键
下
记录
着外壳
扩
展
动态链
接
库
在系
统
中的位置。
Windows
系统
支持以下
7
类
的外壳
扩
展功能:
(1)Context
menu
handlers
向特定类
型的文件
对
象增添上下文相
关
菜
单
;
(2)Drag-and-drop
handlers
用来支持当用户对
某
种类
型的文件
对
象
进
行拖放操作
时
的
OLE
数据传输
;
(3)Icon
handlers
用来向某个文件
对
象提供一个特有的
图标
,也可以
给
某一
类
文件
对
象指定
图标
;
(4)Property
sheet
handlers
给
文件
对
象增添属性
页
,属性
页
可以
为
同一
类
文件
对
象所共有,也可以
给
一个文件
对
象指定特有的属性
页
;
(5)Copy-hook
handlers
在文件夹对
象或者打印机
对
象被拷
贝
、移
动
、
删
除和重命名
时
,就会被系
统调
用,通
过为
Windows
增加Copy-hook
handlers
,可以允许
或者禁止其中的某些操作;
(6)Drop
target
handlers
在一个对
象被拖放到另一个
对
象上
时
,就会被系
统
被
调
用;
(7)Data
object
handlers
在文件被拖放、拷贝
或者粘
贴时
,就会被系
统
被
调
用。
操作系统
(包括
Win9X
、Windows
NT
、Windows
2000
)不但有方便的图
形用
户
(
GUI
)界面,微软还为
windows
用户
界面保留了
强
大的可
扩
充性。
其中
对
于
Windows
界面的操作
环
境(
这
里称
为
外壳
Shell
),微
软
提供了一
种
称
为
外壳
扩
展(
Shell
Extensions
)的功能来
实现
文件系
统
操作的可
编
程性。如果你的机器中安装了
Word 7.0
以上的版本,当你鼠
标
右
键单击
一个
DOC
文件,在
弹
出菜
单
中
选
“属性”
项
,在属性
页
中不
仅显
示
显
示文件的大小、建立日期等信息,同
时还
增加了
Doc
文档的摘要、
统计
等信息;又例如安装了
winZip
6.0
以上版本后,当
选
中一个或多
个文件或文件
夹
后在
单击
鼠
标
右
键
,在
弹
出的右
键
菜
单
中就增加了“
Add
To
Zip
”
等一个
zip
文件
压缩选项
。上面的
这
些功能都是通
过
Windows
外壳
扩
展来
实现
的。
Windows
外壳
扩
展是
这样实现
的。首先要
编
写外壳
扩
展程序,一个外壳
扩
展程序是基于
COM(Component
Object
Model)
组
件模型的。外壳是通
过
接口
(Interface)
来
访问对
象的。外壳
扩
展被
设计
成
32
位的
进
程中服
务
器程序,并且都是以
动态链
接
库
的形式
为
操作系
统
提供服
务
的。
写好外壳
扩
展程序后,必
须
将它
们
注册才能生效。所有的外壳
扩
展都必
须
在
Windows
注册表的
HKEY_CLASSES_ROOT/CLSID
键
之下
进
行注册。在
该键
下面可以找到
许
多名字像
{ACDE002F-0000-0000-C000-000000000046}
的
键
,
这类键
就是全局唯一
类标识
符。
每
一个外壳
扩
展都必
须
有一个全
局唯一
类标识
符,
Windows
正是通
过
此唯一
类标识
符来找到外壳
扩
展
处
理程序的。在
类标识
符之下的
InProcServer32
子
键
下
记录
着外壳
扩
展
动态链
接
库
在系
统
中的位置。
Windows
系统
支持以下
7
类
的外壳
扩
展功能:
(1)Context
menu
handlers
向特定类
型的文件
对
象增添上下文相
关
菜
单
;
(2)Drag-and-drop
handlers
用来支持当用户对
某
种类
型的文件
对
象
进
行拖放操作
时
的
OLE
数据传输
;
(3)Icon
handlers
用来向某个文件
对
象提供一个特有的
图标
,也可以
给
某一
类
文件
对
象指定
图标
;
(4)Property
sheet
handlers
给
文件
对
象增添属性
页
,属性
页
可以
为
同一
类
文件
对
象所共有,也可以
给
一个文件
对
象指定特有的属性
页
;
(5)Copy-hook
handlers
在文件夹对
象或者打印机
对
象被拷
贝
、移
动
、
删
除和重命名
时
,就会被系
统调
用,通
过为
Windows
增加Copy-hook
handlers
,可以允许
或者禁止其中的某些操作;
(6)Drop
target
handlers
在一个对
象被拖放到另一个
对
象上
时
,就会被系
统
被
调
用;
(7)Data
object
handlers
在文件被拖放、拷贝
或者粘
贴时
,就会被系
统
被
调
用。
相关文章推荐
- 如何调试Windows外壳扩展程序(Shell Extension)
- VC++ 外壳扩展编程之windows右键菜单
- VC++ 外壳扩展编程之windows右键菜单
- Windows外壳扩展保护文件夹
- 1、VS2005(c/c++)外壳扩展编程之windows右键菜单(1)
- Windows外壳扩展编程之添加右键菜单
- 利用Windows外壳扩展保护文件夹
- 2、VS2005(c/c++)外壳扩展编程之windows右键菜单(2)
- (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
- windows外壳扩展编程之windows右键菜单
- 利用Windows外壳扩展保护文件夹
- [Delphi] Windows 外壳扩展编程入门实例
- 3、VS2005(c/c++)外壳扩展编程之windows右键菜单(3)
- Windows外壳扩展编程之添加右键菜单
- VC++ 外壳扩展编程之windows右键菜单
- 利用Windows外壳扩展保护文件夹
- Delphi编写windows外壳扩展
- Windows 外壳扩展编程入门实例
- 利用Delphi编写Windows外壳扩展
- Delphi编写windows外壳扩展