Share via


IExplorerBrowser-Schnittstelle (shobjidl_core.h)

IExplorerBrowser ist ein Browserobjekt, das entweder navigiert werden kann oder das eine Ansicht eines Datenobjekts hosten kann. Als Browserobjekt mit vollem Funktionsumfang unterstützt es auch ein automatisches Reiseprotokoll.

Die Shell stellt eine Standardimplementierung von IExplorerBrowser als CLSID_ExplorerBrowser bereit. In der Regel muss ein Entwickler keine benutzerdefinierte Implementierung dieser Schnittstelle bereitstellen.

Das Windows Software Development Kit (SDK) enthält vollständige Beispiele, die die Verwendung von und die Interaktion mit IExplorerBrowser veranschaulichen. Laden Sie das beispiel für die Explorer Browsersuche und das beispiel für benutzerdefinierte Inhalte für Explorer Browser herunter.

Vererbung

Die IExplorerBrowser-Schnittstelle erbt von der IUnknown-Schnittstelle . IExplorerBrowser verfügt auch über folgende Arten von Membern:

Methoden

Die IExplorerBrowser-Schnittstelle verfügt über diese Methoden.

 
IExplorerBrowser::Advise

Initiiert eine Verbindung mit IExplorerBrowser für Ereignisrückrufe.
IExplorerBrowser::BrowseToIDList

Navigieren zu einem Zeiger auf eine Elementbezeichnerliste (PIDL)
IExplorerBrowser::BrowseToObject

Navibiert zu einem -Objekt.
IExplorerBrowser::D estroy

Zerstört den Browser.
IExplorerBrowser::FillFromObject

Erstellt einen Ergebnisordner und füllt ihn mit Elementen.
IExplorerBrowser::GetCurrentView

Ruft eine Schnittstelle für die aktuelle Ansicht des Browsers ab.
IExplorerBrowser::GetOptions

Ruft die aktuellen Browseroptionen ab.
IExplorerBrowser::Initialize

Bereitet den Browser für die Navigation vor.
IExplorerBrowser::RemoveAll

Entfernt alle Elemente aus dem Ergebnisordner.
IExplorerBrowser::SetEmptyText

Legt den standardmäßigen leeren Text fest.
IExplorerBrowser::SetFolderSettings

Legt die Ordnereinstellungen für die aktuelle Ansicht fest.
IExplorerBrowser::SetOptions

Legt die aktuellen Browseroptionen fest.
IExplorerBrowser::SetPropertyBag

Legt den Namen des Eigenschaftenbehälters fest.
IExplorerBrowser::SetRect

Legt die Größe und Position der ansichtsfenster fest, die vom Browser erstellt werden.
IExplorerBrowser::Unadvise

Beendet eine Empfehlungsverbindung. (IExplorerBrowser.Unadvise)

Hinweise

Beispielcode, der die typische Verwendung von IExplorerBrowser und seinen Methoden veranschaulicht, finden Sie in den Beispielen Explorer Benutzerdefinierte Browserinhalte und benutzerdefinierte Browserinhalte Explorer.

Nach dem Aufrufen der Initialize-Methode dieses Objekts muss die Destroy-Methode aufgerufen werden, um alle Ressourcen im Fensterfenster freizugeben, die im Aufruf von Initialize generiert wurden.

Das Objekt, das das ExplorerBrowser-Objekt hostet, sollte von IServiceProvider abgeleitet werden und QueryService implementieren, um auf Abfragen für den Dienst zu reagieren. Beispielsweise kann die Anzahl der vom Browser angezeigten Bereiche gesteuert werden, indem IExplorerPaneVisibility implementiert und auf alle SID_ExplorerPaneVisibility-Dienstanforderungen reagiert wird.

Frames sind standardmäßig deaktiviert. Um Frames zu aktivieren und den Standardsatz von Bereichen abzurufen, legen Sie das EBO_SHOWFRAMES-Flag mithilfe der IExplorerBrowser::SetOptions-Methode fest. Die Standardbereiche, die als IExplorerPaneVisibility-Konstanten aufgeführt sind, sind die folgenden:

  • EP_NavPane
  • EP_Commands
  • EP_Commands_Organize
  • EP_Commands_View
  • EP_DetailsPane
  • EP_PreviewPane
  • EP_QueryPane
  • EP_AdvQueryPane
  • EP_StatusBar
  • EP_Ribbon
Weitere Informationen finden Sie unter IExplorerPaneVisibility::GetPaneState .

Clients des ExplorerBrowser-Objekts können die Schnittstellen ICommDlgBrowser, ICommDlgBrowser2 oder ICommDlgBrowser3 implementieren und auf eine SID_SExplorerBrowserFrame-Dienstanforderung in ihren QueryService-Implementierungen reagieren, die aufgerufen werden, wenn ICommDlgBrowser-Schnittstellen im Browser aufgerufen werden (in der Regel aus der Ansicht als Ergebnis von Benutzeraktionen aufgerufen). Beachten Sie, dass der Client keinen Aufruf von ICommDlgBrowser::IncludeObject empfängt , wenn ein Ordnerfilter im Browser durch einen Aufruf von IFolderFilterSite::SetFilter festgelegt wurde.

Um mit einigen älteren Anwendungen kompatibel zu bleiben, führt die Standardshellansicht (DefView) Filtervorgänge (z. B. Suchvorgänge, die von einem Suchordner ausgeführt werden) im UI-Thread aus. Bei neuen Anwendungen ist dies in der Regel nicht erwünscht. Die Suche sollte in einem Hintergrundthread ausgeführt werden. Um die Filterung des UI-Threads zu beenden und stattdessen die Filterung für einen Hintergrundthread auszuführen, geben Sie ICommDlgBrowser2 über die SID_SExplorerBrowserFrame-Dienstanforderung an. Wenn ICommDlgBrowser2::GetViewFlags aufgerufen wird, sollte CDB2GVF_NOINCLUDEITEM zurückgegeben werden. Wenn Sie beispielsweise in ExplorerBrowser zu einem Suchordner navigieren und nicht CDB2GVF_NOINCLUDEITEM zurückgeben, kann die Ansicht nicht mehr reagieren, bis die gesamte Suche abgeschlossen ist.

Die Shellarchitektur verfügt über drei Standard Komponenten: den Browser, die Ansichten und die Datenquellen (z. B. IShellFolder). Das ExplorerBrowser-Objekt verwaltet den aktuellen Speicherort und die Navigation zu anderen Speicherorten im shell-Namespace. Außerdem wird ein Reiseprotokoll (Vorwärts- und Rückverlauf) gespeichert. Der Browser wird benachrichtigt, wenn dinge in der Ansicht passieren; beispielsweise, wenn der Benutzer auf einen Ordner doppelklicken. Als Reaktion navigiert der Browser zu diesem Speicherort. Die Datenquellen sind die Objekte, die die Elemente und Ordner im Namespace bereitstellen. Sie verfügen auch über Informationen zum Speicherort, z. B. die Eigenschaften der Elemente und was dem Kontextmenü hinzugefügt werden soll, wenn die Ansicht dies anfordert. Darüber hinaus wissen die Datenquellen, welche Ansicht erstellt werden soll, um ihre Elemente an einem Speicherort darzustellen. In fast allen Fällen erstellen die Ordner die Standardansicht der Shell (DefView). Daher empfängt der Browser während der Navigation ein IShellFolder-Objekt für den neuen Speicherort und fragt, welche Ansicht erstellt werden soll. Der Browser erstellt dann diese Ansicht und macht sie sichtbar, während die Ansicht, die den vorherigen Speicherort angezeigt hat, ausgeblendet und dann zerstört wird. Die Ansicht ist für die Kommunikation mit IShellFolder für den aktuellen Speicherort verantwortlich und fordert sie auf, die Elemente aufzulisten, sodass die Ansicht diese Elemente für den Benutzer anzeigen kann. Während der Benutzer mit den Elementen interagiert, kommuniziert die Ansicht mit dem IShellFolder , um alle zusätzlichen Informationen abzurufen, die sie benötigt, z. B. bestimmte Eigenschaften der Elemente oder die Kontextmenüeinträge für das Element.

Wenn eine Anwendung die von CLSID_ExplorerBrowser bereitgestellte Standardimplementierung verwendet, sie in das Fenster einer Anwendung einfügt und dann zu einem Speicherort sucht, erstellt ExplorerBrowser die richtige IShellView , wie durch den Speicherort angegeben, zu dem sie sich gerade befindet. Die Anwendung kann dann ExplorerBrowser auffordern, ihr eine Schnittstelle für die aktuelle Ansicht zu geben, sodass die Anwendung die Ansicht bei Bedarf direkt bearbeiten kann. Die Standardimplementierung des Von SHCreateShellFolderViewEx erstellten Windows Explorer view-Objekts unterstützt die IShellView-Schnittstelle. Sie können überprüfen, ob Sie über das Standardobjekt der Shellordneransicht verfügen, indem Sie IExplorerBrowser::GetCurrentView aufrufen und dann QueryInterface für das zurückgegebene Objekt mithilfe der Schnittstellen-ID IID_CDefView aufrufen.

Windows 7 und höher. CExplorerBrowser kann die direkte Navigation mithilfe von IServiceProvider::QueryService mit der Dienst-ID SID_SlnPlaceBrowser unterstützen. Bei Verwendung von SID_SInPlaceBrowser kann der CExplorerBrowser-Zustand nicht auf EBO_NAVIGATEONCE festgelegt werden.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shobjidl_core.h (shobjidl.h einschließen)