Interface IExplorerBrowser (shobjidl_core.h)

IExplorerBrowser é um objeto de navegador que pode ser navegado ou que pode hospedar uma exibição de um objeto de dados. Como um objeto de navegador completo, ele também dá suporte a um log de viagem automático.

O Shell fornece uma implementação padrão de IExplorerBrowser como CLSID_ExplorerBrowser. Normalmente, um desenvolvedor não precisa fornecer uma implementação personalizada dessa interface.

O SDK (Software Development Kit) do Windows fornece exemplos completos que demonstram o uso e a interação com IExplorerBrowser. Baixe o exemplo de pesquisa do navegador Explorer e o exemplo de conteúdo personalizado do navegador Explorer.

Herança

A interface IExplorerBrowser herda da interface IUnknown . IExplorerBrowser também tem estes tipos de membros:

Métodos

A interface IExplorerBrowser tem esses métodos.

 
IExplorerBrowser::Advise

Inicia uma conexão com IExplorerBrowser para retornos de chamada de evento.
IExplorerBrowser::BrowseToIDList

Navega até um ponteiro para uma lista de identificadores de item (PIDL)
IExplorerBrowser::BrowseToObject

Navega até um objeto .
IExplorerBrowser::D estroy

Destrói o navegador.
IExplorerBrowser::FillFromObject

Cria uma pasta de resultados e a preenche com itens.
IExplorerBrowser::GetCurrentView

Obtém uma interface para a exibição atual do navegador.
IExplorerBrowser::GetOptions

Obtém as opções atuais do navegador.
IExplorerBrowser::Initialize

Prepara o navegador a ser navegado.
IExplorerBrowser::RemoveAll

Remove todos os itens da pasta de resultados.
IExplorerBrowser::SetEmptyText

Define o texto vazio padrão.
IExplorerBrowser::SetFolderSettings

Define as configurações de pasta para o modo de exibição atual.
IExplorerBrowser::SetOptions

Define as opções atuais do navegador.
IExplorerBrowser::SetPropertyBag

Define o nome do recipiente de propriedades.
IExplorerBrowser::SetRect

Define o tamanho e a posição das janelas de exibição criadas pelo navegador.
IExplorerBrowser::Unadvise

Encerra uma conexão de consultoria. (IExplorerBrowser.Unadvise)

Comentários

Por exemplo, código que mostra o uso típico de IExplorerBrowser e seus métodos, consulte os exemplos conteúdo personalizado do navegador Explorer e conteúdo personalizado do navegador Explorer.

Depois de chamar o método Initialize desse objeto, seu método Destroy deve ser chamado para liberar todos os recursos em janela que foram gerados na chamada para Initialize.

O objeto que hospeda o objeto ExplorerBrowser deve derivar de IServiceProvider e implementar QueryService para responder a todas as consultas de serviço. Por exemplo, o número de painéis mostrados pelo navegador pode ser controlado implementando IExplorerPaneVisibility e respondendo a qualquer solicitação de serviço SID_ExplorerPaneVisibility.

Os quadros são desabilitados por padrão. Para habilitar quadros e obter o conjunto padrão de painéis, defina o sinalizador EBO_SHOWFRAMES usando o método IExplorerBrowser::SetOptions . Os painéis padrão, listados como constantes IExplorerPaneVisibility , são estes:

  • 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 obter mais informações.

Os clientes do objeto ExplorerBrowser podem implementar as interfaces ICommDlgBrowser, ICommDlgBrowser2 ou ICommDlgBrowser3 e responder a uma solicitação de serviço SID_SExplorerBrowserFrame em suas implementações queryService são chamadas quando qualquer interface ICommDlgBrowser é chamada no navegador (geralmente chamada da exibição como resultado de ações do usuário). Observe que o cliente não receberá uma chamada para ICommDlgBrowser::IncludeObject se um filtro de pasta tiver sido definido no navegador por uma chamada para IFolderFilterSite::SetFilter.

Para permanecer compatível com alguns aplicativos mais antigos, a exibição padrão do Shell (DefView) executa operações de filtragem (por exemplo, operações de pesquisa executadas por uma pasta de pesquisa) no thread da interface do usuário. Para novos aplicativos, isso normalmente não é desejado; a pesquisa deve ser executada em um thread em segundo plano. Para impedir que o thread da interface do usuário seja filtrado e, em vez disso, execute a filtragem em um thread em segundo plano, forneça ICommDlgBrowser2 por meio da solicitação de serviço SID_SExplorerBrowserFrame. Quando ICommDlgBrowser2::GetViewFlags é chamado, ele deve retornar CDB2GVF_NOINCLUDEITEM. Por exemplo, se você navegar até uma pasta de pesquisa no ExplorerBrowser e não retornar CDB2GVF_NOINCLUDEITEM, o modo de exibição poderá parar de responder até que toda a pesquisa seja concluída.

A arquitetura do Shell tem três componentes main: o navegador, as exibições e as fontes de dados (por exemplo, IShellFolder). O objeto ExplorerBrowser mantém o local atual e a navegação para outros locais em todo o namespace do Shell. Ele também mantém um log de viagens (histórico para frente e para trás). O navegador é notificado quando as coisas acontecem na exibição; por exemplo, quando o usuário clica duas vezes em uma pasta. Em resposta, o navegador navega até esse local. As fontes de dados são os objetos que fornecem os itens e pastas no namespace . Eles também têm informações sobre o local, como as propriedades dos itens e o que adicionar ao menu de contexto quando a exibição o solicita. Além disso, as fontes de dados sabem qual exibição deve ser criada para representar seus itens em um local. Em quase todas as instâncias, as pastas criam a exibição padrão do Shell (DefView). Portanto, à medida que o navegador navega, ele recebe um objeto IShellFolder para o novo local e pergunta a ele qual modo de exibição criar. Em seguida, o navegador cria essa exibição e a torna visível, ocultando e destruindo a exibição que estava mostrando o local anterior. O modo de exibição é responsável por se comunicar com iShellFolder para o local atual e solicitá-lo para enumerar os itens, o que permite que o modo de exibição mostre esses itens ao usuário. À medida que o usuário interage com os itens, o modo de exibição se comunica com o IShellFolder para obter informações adicionais necessárias, como propriedades específicas dos itens ou as entradas de menu de contexto para o item.

Se um aplicativo usar a implementação padrão fornecida por CLSID_ExplorerBrowser, inserindo-a na janela de um aplicativo e navegando até um local, ExplorerBrowser criará o IShellView adequado, conforme especificado pelo local para o qual está navegando. Em seguida, o aplicativo pode pedir ao ExplorerBrowser para fornecer a ele uma interface no modo de exibição atual, permitindo que o aplicativo manipule a exibição diretamente, se necessário. A implementação padrão do objeto de exibição do Windows Explorer, criado por SHCreateShellFolderViewEx, dá suporte à interface IShellView. Você pode verificar se tem o objeto de exibição de pasta do Shell padrão chamando IExplorerBrowser::GetCurrentView e chamando QueryInterface no objeto retornado usando a ID da interface IID_CDefView.

Windows 7 e posterior. O CExplorerBrowser pode dar suporte à navegação in-loco usando IServiceProvider::QueryService com a ID de Serviço SID_SlnPlaceBrowser. Ao usar SID_SInPlaceBrowser, o estado CExplorerBrowser não pode ser definido como EBO_NAVIGATEONCE.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)