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
ExplorerBrowser 物件的用戶端可以實作ICommDlgBrowser、ICommDlgBrowser2或ICommDlgBrowser3介面,並在其 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) |