SEF支持本文中所说的两种类型的NSE。
这次要说的是如何支持NSE的两种类型:
RootedNon-rooted
这两个微软发明的名词有些误导。有人会以为前者是在桌面上,后者是像RarFS那样的file viewer,实际正好相反。 :)
注册NSE的时候,如果选择:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpaceHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpaceHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\NetworkNeighborhood\NameSpaceHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace注册你的COM,那么你的NSE就会被添加到对应的位置。比如,你可以在网络邻居里面增加个虚拟的机器,也可以在My Computer里面装个虚拟的文件夹。
如果你选择注册file viewer,方法是:
HKEY_CLASSES_ROOT\.rar,默认值为你的NSE的ProgID
HKEY_CLASSES_ROOT\RarFS.Folder,默认值为你的NSE的名称
|- CLSID,默认值为你的NSE的CLSID
|- DefaultIcon,默认值格式为“你的NSE DLL的全路径短文件名,-id”
还有一种方法,是
HKEY_CLASSES_ROOT\.rar,默认值为{CLSID\你的NSE的CLSID}
这种方法的缺点是,在IE下载.rar文件时,会显示Unknown File Type。
至于如何实现上下文菜单和属性页,就不多说了吧?