IExplorerBrowser 接口 (shobjidl_core.h)

IExplorerBrowser 是一个浏览器对象,可以导航或托管数据对象的视图。 作为功能齐全的浏览器对象,它还支持自动旅行日志。

Shell 提供 IExplorerBrowser 的默认实现作为CLSID_ExplorerBrowser。 通常,开发人员不需要提供此接口的自定义实现。

Windows 软件开发工具包 (SDK) 提供了完整的示例,演示 IExplorerBrowser 的使用和交互。 下载 资源管理器浏览器搜索示例资源管理器浏览器自定义内容示例

继承

IExplorerBrowser 接口继承自 IUnknown 接口。 IExplorerBrowser 也有以下类型的成员:

方法

IExplorerBrowser 接口具有这些方法。

 
IExplorerBrowser::Advise

为事件回调启动与 IExplorerBrowser 的连接。
IExplorerBrowser::BrowseToIDList

浏览到指向项标识符列表的指针, (PIDL)
IExplorerBrowser::BrowseToObject

浏览到 对象。
IExplorerBrowser::D estroy

销毁浏览器。
IExplorerBrowser::FillFromObject

创建一个结果文件夹,并用项目填充该文件夹。
IExplorerBrowser::GetCurrentView

获取浏览器当前视图的接口。
IExplorerBrowser::GetOptions

获取当前浏览器选项。
IExplorerBrowser::Initialize

准备要导航的浏览器。
IExplorerBrowser::RemoveAll

从结果文件夹中删除所有项目。
IExplorerBrowser::SetEmptyText

设置默认的空文本。
IExplorerBrowser::SetFolderSettings

设置当前视图的文件夹设置。
IExplorerBrowser::SetOptions

设置当前浏览器选项。
IExplorerBrowser::SetPropertyBag

设置属性包的名称。
IExplorerBrowser::SetRect

设置浏览器创建的视图窗口的大小和位置。
IExplorerBrowser::Unadvise

终止建议连接。 (IExplorerBrowser.Unadvise)

注解

有关显示 IExplorerBrowser 及其方法的典型用法的示例代码,请参阅 资源管理器浏览器自定义内容 和资源管理器浏览器自定义内容示例。

调用此对象的 Initialize 方法后,必须调用其 Destroy 方法,以释放在对 Initialize 的调用中生成的任何窗口资源。

承载 ExplorerBrowser 对象的 对象应派生自 IServiceProvider 并实现 QueryService 以响应任何服务查询。 例如,可以通过实现 IExplorerPaneVisibility 并响应任何SID_ExplorerPaneVisibility服务请求来控制浏览器显示的窗格数。

默认情况下,帧处于禁用状态。 若要启用帧并获取默认窗格集,请使用 IExplorerBrowser::SetOptions 方法设置EBO_SHOWFRAMES标志。 默认窗格(列为 IExplorerPaneVisibility 常量)包括:

  • EP_NavPane
  • EP_Commands
  • EP_Commands_Organize
  • EP_Commands_View
  • EP_DetailsPane
  • EP_PreviewPane
  • EP_QueryPane
  • EP_AdvQueryPane
  • EP_StatusBar
  • EP_Ribbon
有关详细信息,请参阅 IExplorerPaneVisibility::GetPaneState

ExplorerBrowser 对象的客户端可以实现 ICommDlgBrowserICommDlgBrowser2ICommDlgBrowser3 接口,并在其 QueryService 实现中响应SID_SExplorerBrowserFrame服务请求,当浏览器上调用任何 ICommDlgBrowser 接口时, (通常由于用户操作) 从视图中调用。 请注意,如果已通过调用 IFolderFilterSite::SetFilter 在浏览器中设置了文件夹筛选器,则客户端不会收到对 ICommDlgBrowser::IncludeObject 的调用。

为了保持与某些旧应用程序兼容,默认 Shell 视图 (DefView) 执行筛选操作 (例如,搜索文件夹在 UI 线程上执行的搜索操作) 。 对于新应用程序,这通常不需要;搜索应在后台线程上执行。 若要停止 UI 线程筛选并在后台线程上运行筛选,请通过SID_SExplorerBrowserFrame服务请求提供 ICommDlgBrowser2 。 调用 ICommDlgBrowser2::GetViewFlags 时,它应返回CDB2GVF_NOINCLUDEITEM。 例如,如果导航到 ExplorerBrowser 中的搜索文件夹,但不返回CDB2GVF_NOINCLUDEITEM,则视图可以停止响应,直到整个搜索完成。

Shell 体系结构有三个main组件:浏览器、视图和数据源 (例如 IShellFolder) 。 ExplorerBrowser 对象在整个 Shell 命名空间中维护当前位置和指向其他位置的导航。 它还将旅行日志 (向前和后退历史记录) 。 当视图中发生事件时,浏览器会收到通知;例如,当用户双击文件夹时。 作为响应,浏览器导航到该位置。 数据源是提供命名空间中的项和文件夹的对象。 它们还包含有关位置的信息,例如项的属性,以及视图请求时要添加到上下文菜单的内容。 此外,数据源知道应创建哪个视图来表示其位于某个位置的项。 在几乎所有情况下,文件夹都会创建 Shell 的默认视图 (DefView) 。 因此,当浏览器导航时,它会收到新位置的 IShellFolder 对象,并询问它要创建哪个视图。 然后,浏览器创建该视图并使其可见,同时隐藏并销毁显示上一位置的视图。 视图负责与 IShellFolder 通信以获取当前位置,并请求它枚举项,这样视图就可以向用户显示这些项目。 当用户与项交互时,视图会与 IShellFolder 通信以获取所需的任何其他信息,例如项的特定属性或项的上下文菜单条目。

如果应用程序使用 CLSID_ExplorerBrowser 提供的默认实现,将其插入应用程序窗口,然后浏览到某个位置,ExplorerBrowser 将创建由它浏览到的位置所指定的正确 IShellView 。 然后,应用程序可以请求 ExplorerBrowser 为它提供当前视图上的接口,从而允许应用程序根据需要直接操作视图。 由 SHCreateShellFolderViewEx 创建的 Windows 资源管理器视图对象的默认实现支持接口 IShellView。 可以通过调用 IExplorerBrowser::GetCurrentView ,然后在使用接口 ID IID_CDefView返回的对象上调用 QueryInterface 来验证是否具有默认的 Shell 文件夹视图对象。

Windows 7 及更高版本。 CExplorerBrowser 可以通过将 IServiceProvider::QueryService 与服务 ID SID_SlnPlaceBrowser配合使用来支持就地导航。 使用 SID_SInPlaceBrowser 时,CExplorerBrowser 状态不能设置为 EBO_NAVIGATEONCE。

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)