IThumbnailCache インターフェイス (thumbcache.h)
アプリケーション間で共有されるシステム サムネイル キャッシュのメソッドを公開します。
継承
IThumbnailCache インターフェイスは、IUnknown インターフェイスから継承されます。 IThumbnailCache には、次の種類のメンバーもあります。
メソッド
IThumbnailCache インターフェイスには、これらのメソッドがあります。
IThumbnailCache::GetThumbnail 特定のシェル 項目のキャッシュされたサムネイルを取得します。 |
IThumbnailCache::GetThumbnailByID サムネイル キャッシュから、その ID を指定してサムネイルを取得します。 |
解説
Thumbnail Cache API は、サムネイルを取得およびキャッシュするための統合メソッドをアプリケーションに提供するように設計されています。 Windows XP では、サムネイル キャッシュはフォルダーごとに行われ、キャッシュは各フォルダー内の Thumbs.db ファイルに保持されます。 この方法では空間の局所性が提供されますが、フォルダー間のプレビューとクエリはサポートされません。 Windows Vista のサムネイル キャッシュは、グローバル キャッシュを提供することでこの欠点に対処します。
サムネイルをキャッシュするには、サムネイルを取得するアイテムを表す IShellItem を取得してから、IThumbnailCache::GetThumbnail の呼び出しに IShellItem を渡す必要があります。 IThumbnailCache::GetThumbnail の flags パラメーターにフラグ WTS_EXTRACTが含まれており、サムネイルがまだキャッシュされていない場合は、サムネイルが抽出され、キャッシュに配置されます。 フラグ WTS_FORCEEXTRACTIONが設定されている場合、キャッシュは無視され、常に新しいサムネイルが抽出されます。 IThumbnailCache::GetThumbnail に渡されるフラグの詳細については、IThumbnailCache::GetThumbnail トピックを参照してください。
サムネイルがまだキャッシュに存在しない場合、オペレーティング システムに登録されている IExtractImage または IThumbnailProvider の既存の実装を使用して、ソース ファイルからサムネイルが自動的に抽出されます。 アプリケーションでサムネイル抽出器の実装を提供する必要はありません。
IThumbnailCache::GetThumbnail が返されると、その pThumbnailID パラメーターは、サムネイルの一意の ID を含むWTS_THUMBNAILID構造体を受け取ります。 この ID が保存されている場合は、 IThumbnailCache::GetThumbnailByID に渡して、キャッシュされたサムネイルを取得できます。 または、WTS_CACHEONLY フラグを設定して IThumbnailCache::GetThumbnail を呼び出す場合があります。 この場合、サムネイルは既にキャッシュされている場合にのみ返されます。 IThumbnailCache::GetThumbnailByID ではなく IThumbnailCache::GetThumbnailByID を使用する欠点は、IShellItem を引き続き指定する必要があることです。
複数のスレッドを使用してサムネイル キャッシュにアクセスし、パフォーマンスを向上させることができます。 IThumbnailCache::GetThumbnail は、キャッシュされたサムネイルがすぐに取得されるように、WTS_INCACHEONLYまたはWTS_FASTEXTRACT フラグが設定された優先度の高いスレッドで呼び出される場合があります。 次に、イメージがキャッシュに存在しない場合、またはキャッシュされたイメージが理想的な品質ではなかったことを示WTS_LOWQUALITY場合は、優先順位の低いスレッドを使用して、WTS_EXTRACT フラグセットで IThumbnailCache::GetThumbnail を呼び出してサムネイルを抽出できます。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | thumbcache.h |