IExplorerBrowser インターフェイス (shobjidl_core.h)

IExplorerBrowser は、移動するか、データ オブジェクトのビューをホストできるブラウザー オブジェクトです。 フル機能のブラウザー オブジェクトとして、自動移動ログもサポートしています。

シェルは、 IExplorerBrowser の既定の実装をCLSID_ExplorerBrowserとして提供します。 通常、開発者は、このインターフェイスのカスタム実装を提供する必要はありません。

Windows Software Development Kit (SDK) には、 IExplorerBrowser の使用と操作を示す完全なサンプルが用意されています。 エクスプローラー ブラウザー検索サンプルエクスプローラー ブラウザー のカスタム コンテンツ サンプルをダウンロードします。

継承

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 とそのメソッドの一般的な使用方法を示すコード例については、「エクスプローラー ブラウザー のカスタム コンテンツ」と「ブラウザー のカスタム コンテンツのエクスプローラーサンプル」を参照してください。

このオブジェクトの 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 インターフェイスを実装し、ブラウザーで ICommDlgBrowser インターフェイスが呼び出されたときに呼び出される QueryService 実装のSID_SExplorerBrowserFrameサービス要求に応答できます (通常、ユーザー 操作の結果としてビューから呼び出されます)。 IFolderFilterSite::SetFilter の呼び出しによってブラウザーでフォルダー フィルターが設定されている場合、クライアントは ICommDlgBrowser::IncludeObject の呼び出しを受信しないことに注意してください。

一部の古いアプリケーションとの互換性を維持するために、既定のシェル ビュー (DefView) では、UI スレッドでフィルター処理操作 (検索フォルダーによって実行される検索操作など) が実行されます。 新しいアプリケーションの場合、これは通常は望ましくありません。検索はバックグラウンド スレッドで実行されます。 UI スレッドのフィルター処理を停止し、代わりにバックグラウンド スレッドでフィルター処理を実行するには、SID_SExplorerBrowserFrame サービス要求を通じて ICommDlgBrowser2 を指定します。 ICommDlgBrowser2::GetViewFlags が呼び出されると、CDB2GVF_NOINCLUDEITEMが返されます。 たとえば、ExplorerBrowser で検索フォルダーに移動し、CDB2GVF_NOINCLUDEITEMを返さない場合、ビューは検索全体が完了するまで応答を停止できます。

シェル アーキテクチャには、ブラウザー、ビュー、データ ソース (IShellFolder など) の 3 つのメイン コンポーネントがあります。 ExplorerBrowser オブジェクトは、現在の場所とシェル名前空間全体の他の場所へのナビゲーションを維持します。 また、移動ログ (前後の履歴) も保持されます。 ビューで状況が発生すると、ブラウザーに通知されます。たとえば、ユーザーがフォルダーをダブルクリックするとします。 応答として、ブラウザーはその場所に移動します。 データ ソースは、名前空間内のアイテムとフォルダーを提供するオブジェクトです。 また、項目のプロパティや、ビューが要求したときにコンテキスト メニューに追加する内容など、場所に関する情報も含まれます。 さらに、データ ソースは、ある場所のアイテムを表すために作成する必要があるビューを認識します。 ほぼすべてのインスタンスで、フォルダーによってシェルの既定のビュー (DefView) が作成されます。 そのため、ブラウザーが移動すると、新しい場所の IShellFolder オブジェクトを受け取り、作成するビューを確認します。 その後、ブラウザーはそのビューを作成して表示し、前の場所を表示していたビューを非表示にして破棄します。 ビューは、現在の場所の IShellFolder と通信し、アイテムを列挙するように要求する役割を担います。これにより、ビューでこれらのアイテムをユーザーに表示できます。 ユーザーがアイテムを操作すると、ビューは IShellFolder と通信して、アイテムの特定のプロパティやアイテムのコンテキスト メニュー エントリなど、必要な追加情報を取得します。

アプリケーションで、CLSID_ExplorerBrowserによって提供される既定の実装を使用してアプリケーションのウィンドウに挿入し、その場所を参照する場合、ExplorerBrowser は、参照先の場所で指定された適切な IShellView を作成します。 その後、アプリケーションは ExplorerBrowser に現在のビューのインターフェイスを提供するように依頼し、必要に応じてアプリケーションがビューを直接操作できるようにします。 SHCreateShellFolderViewEx によって作成された Windows エクスプローラー ビュー オブジェクトの既定の実装では、インターフェイス IShellView がサポートされます。 既定のシェル フォルダー ビュー オブジェクトがあることを確認するには、 IExplorerBrowser::GetCurrentView を呼び出し、インターフェイス ID IID_CDefViewを使用して返されたオブジェクトで QueryInterface を呼び出します。

Windows 7 以降。 CExplorerBrowser では、 IServiceProvider::QueryService とサービス ID SID_SlnPlaceBrowserを使用して、インプレース ナビゲーションをサポートできます。 SID_SInPlaceBrowserを使用する場合、CExplorerBrowser 状態をEBO_NAVIGATEONCEに設定することはできません。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shobjidl_core.h (Shobjidl.h を含む)