Compartir a través de


Interfaz IExplorerBrowser (shobjidl_core.h)

IExplorerBrowser es un objeto de explorador que se puede navegar o que puede hospedar una vista de un objeto de datos. Como objeto de explorador completo, también admite un registro de desplazamiento automático.

Shell proporciona una implementación predeterminada de IExplorerBrowser como CLSID_ExplorerBrowser. Normalmente, un desarrollador no necesita proporcionar una implementación personalizada de esta interfaz.

El Kit de desarrollo de software (SDK) de Windows proporciona ejemplos completos que muestran el uso y la interacción con IExplorerBrowser. Descargue el ejemplo de búsqueda del explorador del explorador y el ejemplo de contenido personalizado del explorador del explorador.

Herencia

La interfaz IExplorerBrowser hereda de la interfaz IUnknown . IExplorerBrowser también tiene estos tipos de miembros:

Métodos

La interfaz IExplorerBrowser tiene estos métodos.

 
IExplorerBrowser::Advise

Inicia una conexión con IExplorerBrowser para devoluciones de llamada de eventos.
IExplorerBrowser::BrowseToIDList

Busca un puntero a una lista de identificadores de elemento (PIDL)
IExplorerBrowser::BrowseToObject

Navega a un objeto .
IExplorerBrowser::D estroy

Destruye el explorador.
IExplorerBrowser::FillFromObject

Crea una carpeta de resultados y la rellena con elementos.
IExplorerBrowser::GetCurrentView

Obtiene una interfaz para la vista actual del explorador.
IExplorerBrowser::GetOptions

Obtiene las opciones actuales del explorador.
IExplorerBrowser::Initialize

Prepara el explorador que se va a navegar.
IExplorerBrowser::RemoveAll

Quita todos los elementos de la carpeta de resultados.
IExplorerBrowser::SetEmptyText

Establece el texto vacío predeterminado.
IExplorerBrowser::SetFolderSettings

Establece la configuración de carpeta de la vista actual.
IExplorerBrowser::SetOptions

Establece las opciones actuales del explorador.
IExplorerBrowser::SetPropertyBag

Establece el nombre del contenedor de propiedades.
IExplorerBrowser::SetRect

Establece el tamaño y la posición de las ventanas de vista creadas por el explorador.
IExplorerBrowser::Unadvise

Finaliza una conexión de asesoramiento. (IExplorerBrowser.Unadvise)

Comentarios

Para obtener código de ejemplo que muestra el uso típico de IExplorerBrowser y sus métodos , vea los ejemplos De contenido personalizado del explorador del Explorador y Contenido personalizado del explorador del Explorador.

Después de llamar al método Initialize de este objeto, se debe llamar a su método Destroy para liberar los recursos en ventana que se generaron en la llamada a Initialize.

El objeto que hospeda el objeto ExplorerBrowser debe derivar de IServiceProvider e implementar QueryService para responder a las consultas del servicio. Por ejemplo, el número de paneles que muestra el explorador se puede controlar mediante la implementación de IExplorerPaneVisibility y la respuesta a las solicitudes de servicio de SID_ExplorerPaneVisibility.

Los marcos están deshabilitados de forma predeterminada. Para habilitar fotogramas y obtener el conjunto predeterminado de paneles, establezca la marca EBO_SHOWFRAMES mediante el método IExplorerBrowser::SetOptions . Los paneles predeterminados, enumerados como constantes IExplorerPaneVisibility , son estos:

  • EP_NavPane
  • EP_Commands
  • EP_Commands_Organize
  • EP_Commands_View
  • EP_DetailsPane
  • EP_PreviewPane
  • EP_QueryPane
  • EP_AdvQueryPane
  • EP_StatusBar
  • EP_Ribbon
Consulte IExplorerPaneVisibility::GetPaneState para obtener más información.

Los clientes del objeto ExplorerBrowser pueden implementar las interfaces ICommDlgBrowser, ICommDlgBrowser2 o ICommDlgBrowser3 y responder a una solicitud de servicio SID_SExplorerBrowserFrame en sus implementaciones de QueryService a las que se llama cuando se llama a cualquier interfaz ICommDlgBrowser en el explorador (normalmente se llama desde la vista como resultado de las acciones del usuario). Tenga en cuenta que el cliente no recibe una llamada a ICommDlgBrowser::IncludeObject si se ha establecido un filtro de carpeta en el explorador mediante una llamada a IFolderFilterSite::SetFilter.

Para seguir siendo compatible con algunas aplicaciones anteriores, la vista shell predeterminada (DefView) realiza operaciones de filtrado (por ejemplo, operaciones de búsqueda ejecutadas por una carpeta de búsqueda) en el subproceso de la interfaz de usuario. En el caso de las nuevas aplicaciones, esto no suele ser deseado; la búsqueda debe ejecutarse en un subproceso en segundo plano. Para impedir que el subproceso de la interfaz de usuario filtre y, en su lugar, ejecute el filtrado en un subproceso en segundo plano, proporcione ICommDlgBrowser2 a través de la solicitud de servicio de SID_SExplorerBrowserFrame. Cuando se llama a ICommDlgBrowser2::GetViewFlags , debe devolver CDB2GVF_NOINCLUDEITEM. Por ejemplo, si navega a una carpeta de búsqueda en ExplorerBrowser y no devuelve CDB2GVF_NOINCLUDEITEM, la vista puede dejar de responder hasta que se complete toda la búsqueda.

La arquitectura de Shell tiene tres componentes principales: el explorador, las vistas y los orígenes de datos (por ejemplo, IShellFolder). El objeto ExplorerBrowser mantiene la ubicación actual y la navegación a otras ubicaciones en todo el espacio de nombres de Shell. También mantiene un registro de viajes (hacia delante y atrás). Se notifica al explorador cuando suceden cosas en la vista; por ejemplo, cuando el usuario hace doble clic en una carpeta. En respuesta, el explorador navega a esa ubicación. Los orígenes de datos son los objetos que proporcionan los elementos y carpetas en el espacio de nombres. También tienen información sobre la ubicación, como las propiedades de los elementos y qué agregar al menú contextual cuando la vista lo solicita. Además, los orígenes de datos saben qué vista se debe crear para representar sus elementos en una ubicación. En casi todas las instancias, las carpetas crean la vista predeterminada del Shell (DefView). Por lo tanto, a medida que navega el explorador, recibe un objeto IShellFolder para la nueva ubicación y le pregunta qué vista se va a crear. A continuación, el explorador crea esa vista y la hace visible, mientras oculta y destruye la vista que mostraba la ubicación anterior. La vista es responsable de comunicarse con IShellFolder para la ubicación actual y solicitarla para enumerar los elementos, lo que permite que la vista muestre estos elementos al usuario. A medida que el usuario interactúa con los elementos, la vista se comunica con IShellFolder para obtener información adicional que necesite, como propiedades específicas de los elementos o las entradas del menú contextual del elemento.

Si una aplicación usa la implementación predeterminada proporcionada por CLSID_ExplorerBrowser, insértela en la ventana de una aplicación y, a continuación, vaya a una ubicación, ExplorerBrowser crea el IShellView adecuado según lo especificado por la ubicación a la que navega. A continuación, la aplicación puede pedir a ExplorerBrowser que le proporcione una interfaz en la vista actual, lo que permite a la aplicación manipular la vista directamente si es necesario. La implementación predeterminada del objeto de vista del Explorador de Windows, creado por SHCreateShellFolderViewEx, admite la interfaz IShellView. Puede comprobar que tiene el objeto de vista de carpeta shell predeterminado llamando a IExplorerBrowser::GetCurrentView y, a continuación, llamando a QueryInterface en el objeto devuelto mediante el identificador de interfaz IID_CDefView.

Windows 7 y versiones posteriores. CExplorerBrowser puede admitir la navegación local mediante IServiceProvider::QueryService con el identificador de servicio SID_SlnPlaceBrowser. Al usar SID_SInPlaceBrowser, el estado CExplorerBrowser no se puede establecer en EBO_NAVIGATEONCE.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shobjidl_core.h (incluya Shobjidl.h)