SID_STopLevelBrowser 和 IWebBrowser2 之间有什么关系?



在雷蒙德演示如何在一些外壳物体周围跳跃时,他首先获得了一个IWebBrowser2(或技术上IWebBrowserApp(,然后使用QueryService到达SID_STopLevelBrowser。我想知道是否有人可以从概念上解释这两件事是什么以及它们之间的关系。 一个在资源管理器窗口中的另一个内部吗? 感谢您提供任何信息。

SID_STopLevelBrowser只是一个 GUID,告诉QueryService(在本例中(你对哪个层次结构对象感兴趣。你真正要问的是;IWebBrowserIShellBrowser有什么区别.

IWebBrowser是一个 Internet Explorer 对象,但是当 Explorer.exe 在 Win98/IE4 中获得 Web 支持时,普通资源管理器也获得了托管网页的能力.exe此功能在 Vista 中被禁用/弃用(。另一方面,顶级(SID_STopLevelBrowser(IShellBrowser是托管IShellView的经典"主机"对象(所有版本的资源管理器中的文件列表(:

由命令行管理程序视图(实现 IShellView 的对象(的主机实现。公开为其承载的视图和在资源管理器窗口上下文中运行的其他对象提供服务的方法。

Windows 95的用户可以选择在没有shell更新的情况下安装IE4,在这些系统上,Explorer和Internet Explorer之间是完全分离的。

Raymond 请求另一个浏览器对象,因为他需要调用IShellBrowser::QueryActiveShellView来访问 shell 视图以及IShellFolder和 PIDL 的世界。

您可以将IShellBrowser视为IWebBrowser和/或IShellView的主机/容器,但请记住,当您在特殊的命名空间文件夹中时,IShellView可以由第三方实现,IShellBrowser可以由第三方文件资源管理器应用程序实现,因此您不能真正说IWebBrowser和资源管理器窗口的其他部分紧密相连。

QueryService不知道您请求的服务时,可以询问其客户端站点/主机/"父"/"子"。如果要获取"主"视图实例,则需要SID_STopLevelBrowser。同样,您可以要求顶级浏览器提供SID_SShellBrowser以获取IE7 +中的当前选项卡。

相关内容

  • 没有找到相关文章

最新更新