Shell:
进程:Explorer.exe
组件
1.Program manager //ListView 和Header control组成
2.Taskbar
3.Desktop
桌面上的图标只是ListView显示的一些内容
Shell extension
是将自己代码让Explorer.exe来执行
Shell extension有两点
1.shell view extension
2.namespace extension
Shell的编程方式:
1.API //let you access the basix functionality of the shell
2.COM //approach springs into life
Shell
Shell由folder组成
1.namespace
the collection of all folders is called the shell's namespace
a.ordinary folders(file folders)
b.custom folders
2.file object
file object is not always a file,a file is a file object
file object is elements of folder
how to identify each item in shell's namespace?
path like files(c:/program file/network.txt)?
and others like network disk?
a general way of identifying its items is needed.
3.PIDLs
PIDL -the acronym stands for poiter to an identifer list
Drive/Directoty/File/Ext--------->Path Name
| | | |
Item Item Item Item
ID ID ID ID ---->ITEMIDLIST
ITEMID(cb,..)
the next element in the list can be calculated by adding cb bytes to the address of
the current SHITEMID object
注册表中的项用ITEMIDLIST 表示
PITEMIDLIST--->ITEMID(KH_CLS_ROOT)--ITEMID(/htmlfile)--ITEM(DefaultValue)
hook --- a piece of code