Share via


IExplorerBrowser 인터페이스(shobjidl_core.h)

IExplorerBrowser 는 탐색할 수 있거나 데이터 개체의 보기를 호스트할 수 있는 브라우저 개체입니다. 전체 기능을 갖춘 브라우저 개체로서 자동 이동 로그도 지원합니다.

Shell은 IExplorerBrowser 의 기본 구현을 CLSID_ExplorerBrowser 제공합니다. 일반적으로 개발자는 이 인터페이스의 사용자 지정 구현을 제공할 필요가 없습니다.

Windows SDK(소프트웨어 개발 키트)는 IExplorerBrowser의 사용 및 상호 작용을 보여 주는 전체 샘플을 제공합니다. Explorer Browser 검색 샘플Explorer Browser 사용자 지정 콘텐츠 샘플을 다운로드합니다.

상속

IExplorerBrowser 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IExplorerBrowser 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IExplorerBrowser 인터페이스에는 이러한 메서드가 있습니다.

 
IExplorerBrowser::Advise

이벤트 콜백에 대해 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 메서드를 호출한 후 Initialize 호출에서 생성된 창이 있는 리소스를 해제하려면 Destroy 메서드를 호출해야 합니다.

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
자세한 내용은 IExplorerPaneVisibility::GetPaneState 를 참조하세요.

ExplorerBrowser 개체의 클라이언트는 ICommDlgBrowser, ICommDlgBrowser2 또는 ICommDlgBrowser3 인터페이스를 구현하고 QueryService 구현에서 ICommDlgBrowser 인터페이스를 브라우저에서 호출할 때 호출되는 SID_SExplorerBrowserFrame 서비스 요청에 응답할 수 있습니다(일반적으로 사용자 작업의 결과로 보기에서 호출됨). IFolderFilterSite::SetFilter를 호출하여 브라우저에서 폴더 필터가 설정된 경우 클라이언트는 ICommDlgBrowser::IncludeObject에 대한 호출을 받지 않습니다.

일부 이전 애플리케이션과 호환되는 상태를 유지하기 위해 기본 셸 뷰(DefView)는 UI 스레드에서 필터링 작업(예: 검색 폴더에서 실행된 검색 작업)을 수행합니다. 새 애플리케이션의 경우 일반적으로 원하지 않습니다. 검색은 백그라운드 스레드에서 실행되어야 합니다. UI 스레드의 필터링을 중지하고 대신 백그라운드 스레드에서 필터링을 실행하려면 SID_SExplorerBrowserFrame 서비스 요청을 통해 ICommDlgBrowser2 를 제공합니다. ICommDlgBrowser2::GetViewFlags가 호출되면 CDB2GVF_NOINCLUDEITEM 반환해야 합니다. 예를 들어 ExplorerBrowser에서 검색 폴더로 이동하고 CDB2GVF_NOINCLUDEITEM 반환하지 않으면 전체 검색이 완료될 때까지 보기가 응답을 중지할 수 있습니다.

Shell 아키텍처에는 브라우저, 뷰 및 데이터 원본(예: IShellFolder)의 세 가지 기본 구성 요소가 있습니다. ExplorerBrowser 개체는 현재 위치를 유지하고 셸 네임스페이스 전체의 다른 위치로 탐색합니다. 또한 이동 로그(앞으로 및 뒤로 기록)를 유지합니다. 보기에서 상황이 발생하면 브라우저에 알림이 표시됩니다. 예를 들어 사용자가 폴더를 두 번 클릭하는 경우입니다. 이에 대한 응답으로 브라우저는 해당 위치로 이동합니다. 데이터 원본은 네임스페이스의 항목 및 폴더를 제공하는 개체입니다. 또한 항목의 속성 및 보기에서 요청할 때 상황에 맞는 메뉴에 추가할 항목과 같은 위치에 대한 정보도 있습니다. 또한 데이터 원본은 위치에서 항목을 나타내기 위해 만들어야 하는 뷰를 알고 있습니다. 거의 모든 인스턴스에서 폴더는 셸의 기본 보기(DefView)를 만듭니다. 따라서 브라우저가 탐색할 때 새 위치에 대한 IShellFolder 개체를 수신하고 만들 보기를 묻습니다. 그런 다음 브라우저는 해당 보기를 만들고 표시하면서 이전 위치를 보여 주는 보기를 숨긴 다음 삭제합니다. 보기는 현재 위치에 대해 IShellFolder 와 통신하고 항목을 열거하도록 요청하므로 보기에서 이러한 항목을 사용자에게 표시할 수 있습니다. 사용자가 항목과 상호 작용할 때 보기는 IShellFolder 와 통신하여 항목의 특정 속성 또는 항목에 대한 상황에 맞는 메뉴 항목과 같은 필요한 추가 정보를 가져옵니다.

애플리케이션이 CLSID_ExplorerBrowser 제공된 기본 구현을 사용하여 애플리케이션 창에 삽입한 다음 위치를 탐색하는 경우 ExplorerBrowser는 탐색할 위치에 지정된 대로 적절한 IShellView 를 만듭니다. 그런 다음, 애플리케이션은 ExplorerBrowser에 현재 보기에 대한 인터페이스를 제공하도록 요청하여 필요한 경우 애플리케이션이 뷰를 직접 조작할 수 있도록 할 수 있습니다. SHCreateShellFolderViewEx에서 만든 Windows Explorer 뷰 개체의 기본 구현은 IShellView 인터페이스를 지원합니다. IExplorerBrowser::GetCurrentView를 호출한 다음 인터페이스 ID IID_CDefView 사용하여 반환된 개체에서 QueryInterface를 호출하여 기본 Shell 폴더 뷰 개체가 있는지 확인할 수 있습니다.

Windows 7 이상. CExplorerBrowser는 서비스 ID SID_SlnPlaceBrowser IServiceProvider::QueryService 를 사용하여 현재 위치 탐색을 지원할 수 있습니다. SID_SInPlaceBrowser 사용하는 경우 CExplorerBrowser 상태를 EBO_NAVIGATEONCE 설정할 수 없습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shobjidl_core.h(Shobjidl.h 포함)