Condividi tramite


Interfaccia IExplorerBrowser (shobjidl_core.h)

IExplorerBrowser è un oggetto browser che può essere spostato o che può ospitare una visualizzazione di un oggetto dati. Come oggetto browser completo, supporta anche un log di viaggi automatico.

Shell fornisce un'implementazione predefinita di IExplorerBrowser come CLSID_ExplorerBrowser. In genere, uno sviluppatore non deve fornire un'implementazione personalizzata di questa interfaccia.

Windows Software Development Kit (SDK) fornisce esempi completi che illustrano l'uso e l'interazione con IExplorerBrowser. Scaricare l'esempio di ricerca browser Explorer e l'esempio di contenuto personalizzato del browser Explorer.

Ereditarietà

L'interfaccia IExplorerBrowser eredita dall'interfaccia IUnknown . IExplorerBrowser include anche questi tipi di membri:

Metodi

L'interfaccia IExplorerBrowser include questi metodi.

 
IExplorerBrowser::Advise

Avvia una connessione con IExplorerBrowser per i callback degli eventi.
IExplorerBrowser::BrowseToIDList

Passa a un puntatore a un elenco di identificatori di elemento (PIDL)
IExplorerBrowser::BrowseToObject

Passa a un oggetto.
IExplorerBrowser::D estroy

Elimina il browser.
IExplorerBrowser::FillFromObject

Crea una cartella dei risultati e la riempie con elementi.
IExplorerBrowser::GetCurrentView

Ottiene un'interfaccia per la visualizzazione corrente del browser.
IExplorerBrowser::GetOptions

Ottiene le opzioni correnti del browser.
IExplorerBrowser::Initialize

Prepara il browser da esplorare.
IExplorerBrowser::RemoveAll

Rimuove tutti gli elementi dalla cartella dei risultati.
IExplorerBrowser::SetEmptyText

Imposta il testo vuoto predefinito.
IExplorerBrowser::SetFolderSettings

Imposta le impostazioni della cartella per la visualizzazione corrente.
IExplorerBrowser::SetOptions

Imposta le opzioni correnti del browser.
IExplorerBrowser::SetPropertyBag

Imposta il nome del contenitore delle proprietà.
IExplorerBrowser::SetRect

Imposta le dimensioni e la posizione delle finestre di visualizzazione create dal browser.
IExplorerBrowser::Unadvise

Termina una connessione di consulenza. (IExplorerBrowser.Unadvise)

Commenti

Ad esempio, il codice che mostra l'uso tipico di IExplorerBrowser e dei relativi metodi, vedere gli esempi Di contenuto personalizzato del browser Explorer e Esplora contenuti personalizzati.

Dopo aver chiamato il metodo Initialize dell'oggetto, il metodo Destroy deve essere chiamato per liberare tutte le risorse finestrate generate nella chiamata a Initialize.

L'oggetto che ospita l'oggetto ExplorerBrowser deve derivare da IServiceProvider e implementare QueryService per rispondere a qualsiasi query per il servizio. Ad esempio, il numero di riquadri visualizzati dal browser può essere controllato implementando IExplorerPaneVisibility e rispondendo a qualsiasi richiesta di servizio SID_ExplorerPaneVisibility.

I fotogrammi vengono disabilitati per impostazione predefinita. Per abilitare i frame e ottenere il set predefinito di riquadri, impostare il flag EBO_SHOWFRAMES usando il metodo IExplorerBrowser::SetOptions . I riquadri predefiniti, elencati come costanti IExplorerPaneVisibility , sono seguenti:

  • EP_NavPane
  • EP_Commands
  • EP_Commands_Organize
  • EP_Commands_View
  • EP_DetailsPane
  • EP_PreviewPane
  • EP_QueryPane
  • EP_AdvQueryPane
  • EP_StatusBar
  • EP_Ribbon
Per altre informazioni , vedere IExplorerPaneVisibility::GetPaneState .

I client dell'oggetto ExplorerBrowser possono implementare le interfacce ICommDlgBrowser, ICommDlgBrowser2 o ICommDlgBrowser3 e rispondere a una richiesta di servizio SID_SExplorerBrowserFrame nelle implementazioni di QueryService chiamate quando vengono chiamate le interfacce ICommDlgBrowser nel browser (in genere chiamate dalla visualizzazione come risultato delle azioni utente). Si noti che il client non riceve una chiamata a ICommDlgBrowser::IncludeObject se nel browser è stato impostato un filtro di cartella tramite una chiamata a IFolderFilterSite::SetFilter.

Per rimanere compatibili con alcune applicazioni precedenti, la visualizzazione Shell predefinita (DefView) esegue operazioni di filtro (ad esempio, operazioni di ricerca eseguite da una cartella di ricerca) nel thread dell'interfaccia utente. Per le nuove applicazioni, questo non è in genere desiderato; la ricerca deve essere eseguita in un thread in background. Per arrestare il thread dell'interfaccia utente dal filtro ed eseguire il filtro in un thread in background, specificare ICommDlgBrowser2 tramite la richiesta di servizio SID_SExplorerBrowserFrame. Quando viene chiamato ICommDlgBrowser2::GetViewFlags , deve restituire CDB2GVF_NOINCLUDEITEM. Ad esempio, se si passa a una cartella di ricerca in ExplorerBrowser e non si restituisce CDB2GVF_NOINCLUDEITEM, la visualizzazione può interrompere la risposta fino al completamento dell'intera ricerca.

L'architettura di Shell include tre componenti principali: il browser, le visualizzazioni e le origini dati, ad esempio IShellFolder. L'oggetto ExplorerBrowser gestisce la posizione corrente e lo spostamento in altre posizioni nello spazio dei nomi shell. Mantiene anche un log di viaggio (cronologia avanti e indietro). Il browser riceve una notifica quando le cose si verificano nella visualizzazione; ad esempio, quando l'utente fa doppio clic su una cartella. In risposta, il browser passa a tale posizione. Le origini dati sono gli oggetti che forniscono gli elementi e le cartelle nello spazio dei nomi. Hanno anche informazioni sulla posizione, ad esempio le proprietà degli elementi e cosa aggiungere al menu di scelta rapida quando la visualizzazione lo richiede. Inoltre, le origini dati sanno quali visualizzazioni devono essere create per rappresentare gli elementi in una posizione. In quasi tutte le istanze, le cartelle creano la visualizzazione predefinita di Shell (DefView). Pertanto, quando il browser si sposta, riceve un oggetto IShellFolder per la nuova posizione e chiede quale visualizzazione creare. Il browser crea quindi tale visualizzazione e lo rende visibile, nascondendo e distruggendo la visualizzazione che mostrava la posizione precedente. La vista è responsabile della comunicazione con IShellFolder per il percorso corrente e la richiesta di enumerazione degli elementi, che consente alla visualizzazione di visualizzare questi elementi all'utente. Quando l'utente interagisce con gli elementi, la visualizzazione comunica con IShellFolder per ottenere eventuali informazioni aggiuntive necessarie, ad esempio proprietà specifiche degli elementi o delle voci di menu di scelta rapida per l'elemento.

Se un'applicazione usa l'implementazione predefinita fornita da CLSID_ExplorerBrowser, inserirla nella finestra di un'applicazione e quindi passare a un percorso, ExplorerBrowser crea l'IShellView appropriato, come specificato dal percorso a cui viene eseguito l'esplorazione. L'applicazione può quindi chiedere a ExplorerBrowser di assegnargli un'interfaccia nella visualizzazione corrente, consentendo all'applicazione di modificare la visualizzazione direttamente se necessario. L'implementazione predefinita dell'oggetto visualizzazione Esplora risorse di Windows, creata da SHCreateShellFolderViewEx, supporta l'interfaccia IShellView. È possibile verificare di avere l'oggetto visualizzazione cartella Shell predefinito chiamando IExplorerBrowser::GetCurrentView e quindi chiamando QueryInterface nell'oggetto restituito usando l'ID dell'interfaccia IID_CDefView.

Windows 7 e versioni successive. CExplorerBrowser può supportare lo spostamento sul posto usando IServiceProvider::QueryService con l'ID servizio SID_SlnPlaceBrowser. Quando si usa SID_SInPlaceBrowser, lo stato CExplorerBrowser non può essere impostato su EBO_NAVIGATEONCE.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shobjidl_core.h (include Shobjidl.h)