IE里的探索之添加浏览器栏
(作者:青苹果工作室编译 2001年02月08日 13:28)
本文解释如何在 Microsoft Internet Explorer 中添加浏览器栏。如果你想向 Internet Explorer 的“工具”菜单中添加菜单项,首先应该熟悉注册表,还应该熟悉 band 对象。有关 band 对象的详细内容,可以参阅 SDK 中关于 Windows Shell API 的文档。
这里讨论的实现方式对 Internet Explorer 5 以上版本有效。关于如何在 Internet Explorer 4.0 里实现浏览器栏,参见 SDK 中关于 band 对象的文档。
实现步骤
按以下步骤在 Internet Explorer 中添加浏览器栏:
通过以“路径,resource_id”格式所指定的资源的路径和引用标志,我们可以引用保存在资源中的图标和字符串。例如,如果你想引用 Example.dll 中的字符串资源123,可以使用 "Example.dll, 123"。
注意:本文描述了如何为所有用户添加浏览器栏。如果你希望为单个用户添加浏览器栏,可以把下列步骤中的 HKEY_LOCAL_MACHINE 换成 HKEY_CURRENT_USER。
1. 创建全局唯一标识符 (GUID)。
2. 在注册表中的以下位置:
HKEY_CLASSES_ROOT\CLSID\
以 GUID 为键名创建一个新键,结果类似于:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>
<Your GUID>就是你在第一步里创建的合法 GUID。
默认的键值应该是在“查看”菜单中想要设置的浏览器栏的名字。
3. 在以下位置:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>
创建新键,Implemented Categories。结果类似于:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Implemented Categories
4. 以你的浏览器栏类型的 CATID 为键名创建新键。CATID 可以是以下值之一:
CATID | 描述 |
{00021494-0000-0000-C000-000000000046} | 水平浏览器栏 |
{00021493-0000-0000-C000-000000000046} | 垂直浏览器栏 |
结果类似于:
//水平浏览器栏
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Implemented Categories\{00021494-0000-0000-C000-000000000046}
//垂直浏览器栏
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Implemented Categories\{00021493-0000-0000-C000-000000000046}
5. 在以下位置:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>
创建新键,InProcServer32,结果类似于:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\InProcServer32
对 HTML 页面,将键值设置为 Shdocvw.dll 的全路径名。对浏览器栏,键值设置为它的 .dll 文件。
6. 在以下位置:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\InProcServer32
创建新键,ThreadingModel,结果类似于:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\InProcServer32\ThreadingModel
ThreadingModel 的键值设置为 "Apartment"。
7. 在以下位置:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>
创建新键,Instance,结果类似于:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance
8. 对显示 HTML 页面的浏览器栏本步是必须的,对其它浏览器栏本步是可选的。在以下位置:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance\
创建新键,CLSID,结果类似于:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance\CLSID
CLSID 的键值设置为:{4D5C8C2A-D075-11d0-B416-00C04FB90376}。
9. 在以下位置:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance
创建新键,InitPropertyBag,结果类似于:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance\InitPropertyBag
10. 对显示 HTML 页面的浏览器栏本步是必须的,对其它浏览器栏本步是可选的。在以下位置:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance\InitPropertyBag
创建新键,Url,结果类似于:
HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance\InitPropertyBag\Url
Url 的键值设置为包含浏览器栏内容的 HTML 文件的位置。
11. 删除以下注册表项:
HKEY_CLASSES_ROOT\Component Categories\{00021493-0000-0000-C000-000000000046}\Enum
HKEY_CLASSES_ROOT\Component Categories\{00021494-0000-0000-C000-000000000046}\Enum
12. 可选。在以下位置:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Ex