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
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 を含む) |