次の方法で共有


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

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

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

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

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

メソッド 説明
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 でのフィルター ハンドラーの実装

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

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