【问题标题】:What's the relationship between SID_STopLevelBrowser and IWebBrowser2?SID_STopLevelBrowser 和 IWebBrowser2 有什么关系?
【发布时间】:2020-04-17 12:19:55
【问题描述】:

在Raymond 的demonstration 中,他首先获得了IWebBrowser2(或技术上的IWebBrowserApp),然后使用QueryService 到达SID_STopLevelBrowser。我想知道是否有人可以从概念上解释这两件事是什么以及它们之间的关系。一个在资源管理器窗口中的另一个里面吗?感谢您提供任何信息。

【问题讨论】:

  • 现在您应该知道 IServiceProvider 的用途了:stackoverflow.com/questions/59432866/… 和 SID_STopLevelBrowser(古老的知识)记录在旧的 Microsoft 知识库文章(Q257717“如何从 ActiveX 控件中检索顶级 IWebBrowser2 接口”中") 现在已经没有了,但是你可以在 Wayback 机器上找到:web.archive.org/web/20140417005545/https://…
  • 那么实际上有两个IWebBrowser2s?我不明白。你能解释一下对象的层次结构吗?此外,SID_STopLevelBrowser 似乎具有误导性,因为文章表明IWebBrowser2 处于更高的水平。对吗?
  • 任何 COM 接口都可以由任何类、事件实现,如果它没有特别记录的话(而且情况越来越糟......我们必须使用 Wayback 机器)。 SID_STopLevelBrowser 确保您从层次结构中的任何一级获得顶级一级。基本上没有更多的文档了。
  • 这大约是 1996 年,微软在互联网革命中有些措手不及。为了迎头赶上,他们试图让 Explorer 和浏览器之间的区别消失。结果并不好,他们有点坚持维护旧程序的兼容性。他们只能删除文档以阻止任何人继续使用它。不要气馁。

标签: shell winapi interface com iwebbrowser2


【解决方案1】:

SID_STopLevelBrowser 只是一个 GUID,告诉QueryService(在这种情况下)您对哪个层次结构对象感兴趣。您真正要问的是; IWebBrowserIShellBrowser 有什么区别。

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

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

Windows 95 的用户可以选择安装 IE4 而不进行 shell 更新,并且在这些系统上,Explorer 和 Internet Explorer 完全分离。

Raymond 请求这个其他浏览器对象,因为他需要调用 IShellBrowser::QueryActiveShellView 才能访问 shell 视图以及 IShellFolders 和 PIDL 的世界。

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

QueryService 不知道您请求的服务时,允许询问其客户端-站点/主机/“父级”/“子级”。如果你想获得“主”视图实例,你需要SID_STopLevelBrowser。同样,您可以在 IE7+ 中向顶级浏览器询问SID_SShellBrowser to get the current tab

【讨论】:

    猜你喜欢
    • 2016-09-28
    • 2013-07-02
    • 2017-02-06
    • 2022-01-03
    • 2020-03-05
    • 2012-09-27
    • 2016-03-21
    • 2015-07-08
    • 2018-12-31
    相关资源
    最近更新 更多