Yochay Kiriaty Senior Technical Evangelist Microsoft® Corporation 2/25/2019 2:31 PM Empowering Users to Find, Visualize, and Organize Their Data with Libraries and the Explorer (ライブラリとエクスプローラーを使用して ユーザーがデータを検索、視覚化、および 整理できるようにする) Yochay Kiriaty Senior Technical Evangelist Microsoft® Corporation © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
議題 ライブラリの概要 コモンファイルダイアログ ライブラリ API 統合検索 皆様へのお願い リソース
ライブラリが必要な理由 ユーザーは自分のファイル (コンテンツ) を 次の場所で管理する 調査によって判明したこと ユーザーは自分のファイル (コンテンツ) を 次の場所で管理する [マイ ドキュメント]、[マイ ピクチャ]、[マイ ミュージック]、 [マイ ビデオ] などの既知のフォルダー その他の任意のローカルまたはネットワーク フォルダー 調査によって判明したこと 既知のフォルダーに 保存されているファイルは、 ユーザー コンテンツの 50% にすぎない 残りの 50% のコンテンツ には、インデックスが作成 されていない
Windows 7 のライブラリ
“ライブラリは、複数の場所に分散しているデータ項目のコレクションを ユーザーが検索したり、 整理したりできる場所” ライブラリの定義 “ライブラリは、複数の場所に分散しているデータ項目のコレクションを ユーザーが検索したり、 整理したりできる場所”
ライブラリの管理 Windows エクスプローラーには、ライブラリ管理のユーザー インターフェイスがある
デモ Windows シェル ライブラリの管理
× コモンファイル ダイアログ 新たなコモンファイル ダイアログには、 ライブラリのサポートが既に組み込まれて入る 新たなコモンファイル ダイアログには、 ライブラリのサポートが既に組み込まれて入る コモンファイル ダイアログの使用すると、 追加設定なしで、ライブラリやタスクバーの 機能が使用できる 非推奨 推奨 ×
アプリケーションに ライブラリを 認識させる デモ アプリケーションに ライブラリを 認識させる
ライブラリの実装 ライブラリ情報は設定ファイルに保存される 次の操作を行うときには、.library-ms ファイルを 使用する ライブラリの管理には、シェル ライブラリ API を使用する 次の操作を行うときには、.library-ms ファイルを 使用する 削除、名前の変更、変更通知待ち <libraryDescription> <name>@shell32.dll,-34575</name> <isLibraryPinned>-1</isLibraryPinned> <iconReference>imageres.dll,-1002</iconReference> <folderType>{7d49d726-3c21-4f05-99aa-fdc2c9474656}</folderType> …
ライブラリ API シェル UI (Windows エクスプローラー) で公開さ れる操作はすべてプログラムによって実行可能 シェルは複数の COM オブジェクトとヘルパー 関数を公開して、ライブラリに対する以下の操作 を可能にする ライブラリの新規作成 既存のライブラリを開く ライブラリでのフォルダーの追加/削除 ライブラリのフォルダー一覧の取得 ライブラリ オプションの取得/設定 ライブラリ アイコンの取得/設定
API の使用 ライブラリの作成 シェル API は COM ベース ライブラリ オブジェクト、インターフェイス、および関数 を使用するには: #include <shobjidl.h> #include <objbase.h> // IID_PPV_ARGS macro 新しいライブラリを作成するには: HRESULT SHCreateLibrary(REFIID riid,void **ppv ); マクロを使用した場合: IShellLibrary *pIShellLib; SHCreateLibrary(IID_PPV_ARGS(&pIShellLib));
シェル ヘルパー関数 関数 説明 SHAddFolderPathToLibrary ライブラリにフォルダーを追加する SHCreateLibrary IShellLibrary オブジェクトを作成する SHLoadLibraryFromItem 指定したライブラリ定義ファイルから IShellLibrary オブジェクトを作成して読み込む SHLoadLibraryFromKnownFolder 指定した KNOWNFOLDERID の IShellLibrary オブジェクトを作成して読み込む SHLoadLibraryFromParsingName 指定したパスの IShellLibrary オブジェクトを 作成して読み込む SHRemoveFolderPathFromLibrary ライブラリからフォルダーを削除する SHResolveFolderPathInLibrary 移動または名前が変更されたライブラリ フォルダーの対象の場所を解決する SHSaveLibraryInFolderPath IShellLibrary オブジェクトをディスクに保存する
IShellLibrary インターフェイス Commit ライブラリの更新を既存の ファイルにコミットする SetOptions および GetOptions LIBRARYOPTIONFLAGS: LOF_DEFAULT、 LOF_PINNEDTONAVPANE、 LOF_MASK_ALL 現在、オプションは LOF_PINNEDTONAVPANE のみ SetFolderType フォルダー テンプレート (ピクチャやミュージックなど) を 設定する
ライブラリの作成とフォルダーの追加 IShellLibrary *pIShelLibrary; HRESULT hr = SHCreateLibrary(IID_PPV_ARGS(&pIShelLibrary)); if (SUCCEEDED(hr)) { IShellItem *pIShellItem; SHAddFolderPathToLibrary(pIShelLibrary, L"C:\\Users\\Public\\Documents"); hr = pIShelLibrary->SaveInKnownFolder(FOLDERID_Libraries, L"My New Library", LSF_MAKEUNIQUENAME, &pIShellItem); pIShellItem->Release(); pIShelLibrary->Release(); }
シェル ライブラリ クラス Windows API Pack public sealed class ShellLibrary : ShellContainer, IList<FileSystemFolder> { public ShellLibrary(…); public static ShellLibrary Copy(…); public static ShellLibrary Load(…); public static IKnownFolder LibrariesKnownFolder { get; } public override string Name {get;} public IconReference IconResourceId {get; set;} public LibraryFolderType LibraryType {get; set;} public Guid LibraryTypeId {get; set;} public string DefaultSaveFolder {set; get;} public bool IsPinnedToNavigationPane {get; set;} public bool ShowManageLibraryUI(…); public void Add(…) public void Close(); … }
ライブラリの作成とフォルダーの追加 using (ShellLibrary library = new ShellLibrary(name, true)) { library.Add(folderPath); }
その他の多数の操作 using (ShellLibrary lib = ShellLibrary.Load( "Documents", false)) { lib.Add(@"C:\"); lib.IsPinnedToNavigationPane = true; lib.DefaultSaveFolder = @"C:\"; }
デモ カスタム ライブラリ マネージャー ライブラリの管理
ライブラリとの同期 目的は次の情報を取得すること .Library-ms ファイルの変更を待ち受ける ライブラリの構造の変更 ライブラリ フォルダーの内容の変更 .Library-ms ファイルの変更を待ち受ける ライブラリ内のあらゆるフォルダーの内容 やファイルの変更を待ち受ける
デモ Windows 7 ライブラリとの同期
ライブラリのまとめ ライブラリは、複数の場所に分散している データ項目のコレクションをユーザーが 検索したり、整理したりできる場所 ライブラリは、複数の場所に分散している データ項目のコレクションをユーザーが 検索したり、整理したりできる場所 IShellLibrary は、ライブラリ管理のメソッ ドを公開する COM インターフェイス ShellLibrary は、同じ機能を公開する .NET Framework ラッパー
Federated Search (統合検索) デスクトップのインターネットおよびイントラネットに最適な検索機能
統合検索 プロバイダーの種類に関わらず、ファイル等の項目を、一貫した手法で検索可能にする機能 ドキュメント リポジトリ エンター プライズ データ ストア エンター プライズ アプリ ケーション
統合検索のしくみ 充実したクライアント エクスペリエンス 単純で軽量な統合 標準ベース 認証 プレビュー、メタデータ、 およびドラッグアンドドロップ 使い慣れたエクスプローラーのパラダイム 単純で軽量な統合 クライアント側のコードはなし あらゆるサーバー プラット フォームで機能 標準ベース OpenSearch 1.1 RSS および ATOM 認証 統合またはカスタム 1.検索コネクタ (.osdx) がインストールされる 2. Windows から検索用語が HTTP 要求として送信される 3. サーバーから RSS で結果が返される
統合検索 検索プロバイダーの設定 Windows 7 では次の方法によって統合検索を 実現 URL クエリを受け入れる 例: http://www.contoso.com/q={searchTerms} リッチ アイテムを定義する RSS で結果を返す Windows 7 では次の方法によって統合検索を 実現 XML 検索コネクタ記述ファイル プロパティのマッピング 例: BookAuthor System.Author サムネイル URL と プレビュー URL カスタム ビュー記述ファイルの適用 1.検索コネクタ (.osdx) がインストールされる 2. Windows から検索用語が HTTP 要求として送信される 3. サーバーから RSS で結果が返される
デモ 統合検索 OpenSearch ファイル の構築
まとめ Windows 7 には簡潔で洗練されたシェル エクスプローラーが組み込まれている ユーザーは、ドキュメント、ピクチャ、 ミュージック、その他のコンテンツを、 簡単で統一された方法で検索したり、 整理したりできる シェルはさまざまな方法で拡張可能 これらの拡張機能をあなたのソフトウェアで 活用してください 一貫性のあるリッチなエクスペリエンスを ユーザーに提供してください
皆様へのお願い コモンファイル ダイアログを使用してくだ さい。 あなたのアプリケーションでライブラリの 機能を活用してください。 シェル API を使用してください。 統合検索を活用してください。 このセッションの発表について、 評価フォームへの記入をお願いいたします。
Windows Summit 2010 2/25/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.