フィルター ハンドラーからプロパティを返す

プロパティは、登録済みのプロパティ ハンドラーを使用するか、特定のファイルの種類に登録されたフィルターを使用して、項目から抽出されます。 フィルター ハンドラー ( IFilter インターフェイスの実装) は、任意の数の方法でファイルの種類の内容を解釈できます。

このトピックは次のように構成されています。

プロパティのフィルター処理

プロパティ フィルター処理のベスト プラクティスを次の表に示します。

メソッド Description
IFilter::Init IFILTER_FLAGS列挙体を返します。 この列挙体 のIFILTER_FLAGS_OLE_PROPERTIES メンバーが 1 に設定されている場合、Windows Search は IPropertySetStorage インターフェイスと IPropertyStorage インターフェイスインターフェイスを使用して、外部の値型プロパティを列挙してアクセスします。
IFilter::GetChunk チャンクの種類 (テキストまたは値)、名前、ロケールを持つ "チャンク" のドキュメントから情報を返します。 チャンクには、1つのドキュメントプロパティが含まれています。
IFilter::GetText チャンクからテキスト型プロパティを取得します。
IFilter::GetValue チャンクから値型プロパティを取得します。

次の図は、ドキュメントの例を示しています。 外部値型プロパティ DocTitle ( IPropertySetStorage インターフェイスと IPropertyStorage インターフェイスのメソッドを使用して取得) と内部値型プロパティ Book (カスタム IFilter 実装の結果として取得) は、ドキュメント全体を記述します。 テキスト型プロパティContentsとChapterは、ドキュメントの内容を説明します。 このドキュメントを処理する場合、フィルター ハンドラー ( IFilter インターフェイスの実装) は、これらのプロパティを識別して抽出します。

一般的なドキュメントの要素を示す図

プロパティ サイズの制限事項

プロパティ サイズには、次の 2 つの制限があります。

  • Windows Search がファイルごとに受け入れるデータの最大サイズ。
  • プロパティ記述ファイルで定義されているプロパティごとの最大サイズ。

現在、Windows Search では、アイテムから受け入れるデータの量を計算するときに、定義されたプロパティ サイズは使用されません。 代わりに、Windows Search で使用される制限は、ファイルのサイズと、レジストリから読み取られた MaxGrowFactor (ファイル サイズ N * MaxGrowFactor) の積です。 既定の MaxGrowFactor は 4 です。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Gathering Manager
            MaxGrowFactor

したがって、ファイルの種類が合計サイズが小さい傾向があるが、プロパティが大きい場合、Windows Search では、出力するすべてのプロパティ データを受け入れられない可能性があります。 ただし、ニーズに合わせて MaxGrowFactor を増やすことができます。

その他のリソース

フィルター ハンドラーの開発

Windows Search のフィルター ハンドラーについて

Windows Search でフィルター ハンドラーを作成するためのベスト プラクティス

Windows に付属するフィルター ハンドラー

Windows Search でのフィルター ハンドラーの実装

フィルター ハンドラーの登録

フィルター ハンドラーのテスト