Share via


IExplorerBrowser 介面 (shobjidl_core.h)

IExplorerBrowser 是瀏覽器物件,可以流覽或裝載資料物件的檢視。 做為功能完整的瀏覽器物件,它也支援自動移動記錄。

Shell 提供 IExplorerBrowser 的預設實作作為CLSID_ExplorerBrowser。 一般而言,開發人員不需要提供此介面的自訂實作。

Windows 軟體發展工具組 (SDK) 提供完整的範例,示範如何使用 IExplorerBrowser 與 IExplorerBrowser。 下載 Explorer 瀏覽器搜尋範例Explorer 瀏覽器自訂內容範例

繼承

IExplorerBrowser介面繼承自IUnknown介面。 IExplorerBrowser 也有下列類型的成員:

方法

IExplorerBrowser介面具有這些方法。

 
IExplorerBrowser::建議

針對事件回呼,起始與 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 及其方法之一般用法的程式碼範例,請參閱 Explorer 瀏覽器自訂內容 和 Explorer 瀏覽器自訂內容範例。

呼叫這個物件的 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 物件的用戶端可以實作ICommDlgBrowser、ICommDlgBrowser2ICommDlgBrowser3介面,並在其 QueryService 實作中回應SID_SExplorerBrowserFrame服務要求,這些要求會在瀏覽器上呼叫任何ICommDlgBrowser介面時呼叫, (通常從檢視呼叫,因為使用者動作) 。 請注意,如果瀏覽器上已呼叫IFolderFilterSite::SetFilter,用戶端就不會收到ICommDlgBrowser::IncludeObject的呼叫。

為了與某些較舊的應用程式保持相容,預設殼層檢視 (DefView) 會執行篩選作業 (例如,在 UI 執行緒上搜尋資料夾所執行的作業) 。 對於新的應用程式,這通常不需要;搜尋應該在背景執行緒上執行。 若要停止 UI 執行緒篩選,而是在背景執行緒上執行篩選,請透過SID_SExplorerBrowserFrame服務要求提供 ICommDlgBrowser2 。 呼叫 ICommDlgBrowser2::GetViewFlags 時,應該會傳回CDB2GVF_NOINCLUDEITEM。 例如,如果您流覽至 ExplorerBrowser 中的搜尋資料夾,而且您不會傳回CDB2GVF_NOINCLUDEITEM,則檢視可以停止回應,直到整個搜尋完成為止。

Shell 架構有三個主要元件:瀏覽器、檢視和資料來源 (例如 IShellFolder) 。 ExplorerBrowser 物件會維護目前的位置,並流覽至整個 Shell 命名空間中的其他位置。 它也會將移動記錄 (向前和回溯記錄) 。 瀏覽器會在檢視中發生事件時收到通知;例如,當使用者按兩下資料夾時。 為了回應,瀏覽器會巡覽至該位置。 資料來源是提供命名空間中專案和資料夾的物件。 它們也有位置的相關資訊,例如專案的屬性,以及在檢視要求時新增至操作功能表的內容。 此外,資料來源知道應該建立哪些檢視,以代表其位於某個位置的專案。 在幾乎所有情況下,資料夾都會建立 Shell 的預設檢視 (DefView) 。 因此,當瀏覽器巡覽時,它會接收新位置的 IShellFolder 物件,並要求它建立哪些檢視。 然後,瀏覽器會建立該檢視並讓它顯示,同時隱藏並終結顯示先前位置的檢視。 檢視負責與 目前位置的 IShellFolder 通訊,並要求它列舉專案,這可讓檢視向使用者顯示這些專案。 當使用者與專案互動時,檢視會與 IShellFolder 通訊,以取得它所需的任何其他資訊,例如專案的特定屬性或專案的操作功能表項目。

如果應用程式使用CLSID_ExplorerBrowser所提供的預設實作,將它插入應用程式視窗,然後流覽至某個位置,ExplorerBrowser 會建立適當的 IShellView ,如所流覽的位置所指定。 然後,應用程式可以要求 ExplorerBrowser 提供目前檢視上的介面,讓應用程式在必要時直接操作檢視。 SHCreateShellFolderViewEx所建立之 Windows 檔案總管檢視物件的預設實作支援IShellView介面。 您可以呼叫 IExplorerBrowser::GetCurrentView ,然後在使用介面識別碼IID_CDefView傳回的物件上呼叫 QueryInterface ,以確認您有預設的 Shell 資料夾檢視物件。

Windows 7 和更新版本。 CExplorerBrowser 可以使用 IServiceProvider::QueryService 搭配服務識別碼SID_SlnPlaceBrowser來支援就地流覽。 使用SID_SInPlaceBrowser時,CExplorerBrowser 狀態無法設定為 EBO_NAVIGATEONCE。

需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 shobjidl_core.h (包括 Shobjidl.h)