プロパティ ハンドラーについて

プロパティは、プロパティ識別子 (PID) と呼ばれる ID で表されます。 各プロパティには、グローバル一意識別子 (GUID) が必要です。 この識別子は GUID で構成され、プロパティ セットと呼ばれるプロパティのコレクションと、セット内のプロパティを識別するための文字列または 32 ビット整数のいずれかを表します。 整数形式の ID を使用すると、0x00000000、0xFFFFFFFF、0xFFFFFFFEの値は無効と見なされます。 ベンダーは、独自の GUID で定義されたプロパティ セットにプロパティを配置することで、プロパティが一意に定義されることを保証できます。

重要

スキーマの最初のリリースでは、プロパティを慎重かつ戦略的に定義することが重要です。 カスタム プロパティ (列の幅やプロパティの種類など) に対する変更は、スキーマの登録後にデータベースに反映されません。 スキーマがシステムに 1 回登録された後にこれらの変更を認識する唯一の方法は、インデックスを再構築して新しいスキーマを登録するか、スキーマを登録してから、サブクエリ リリースごとに新しいプロパティ (正規名と PKEY で構成される) を作成することです。、PKEY_GroupName_PropertyNameV2PKEY_GroupName_PropertyNameV3、など)。 複数の余分な列がシステム パフォーマンスに影響を与える可能性があるため、この方法で新しいプロパティを作成することはお勧めしません。

 

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

Metadata

Windows Vista 以降では、メタデータに基づく新しいプロパティ システムが、ファイル、電子メール、連絡先などのアイテムを整理する上で中心的な役割を担います。 この新しいプロパティ システムでは、アイテムはメタデータに基づいて検索でき、ユーザーはそのメタデータの読み取りまたは書き込みを行うことができます。 このシステムのメタデータは、名前と値のペアとして実装される拡張可能な プロパティ セットによって表されます。

Windows Vista 以降では、写真、音楽、ドキュメント、メッセージ、連絡先、ファイルなどのアイテムの詳細が広範なプロパティ セットでカバーされています。 独立系ソフトウェア ベンダー (ISV) は、ニーズを満たす既存のプロパティがない場合に、独自のプロパティをプラットフォームに導入できます。

メタデータを開く

Windows Vista 以降のプロパティ システムは、開いているメタデータ システムです。 ファイル形式は、割り当てられたプロパティを格納し、関連性や意味に関係なく、クエリ時にその値を公開します。 これにより、サード パーティの開発者は、関連付けられているプロパティ ハンドラーを変更しなくても、ファイルに追加のプロパティを添付できます。 オープン メタデータは強力な概念です。 XML ベースのファイル形式のオープン メタデータをサポートする方法の詳細については、「 プロパティ ハンドラーの初期化」の「Open Metadata のサポート」を参照してください。

Note

プロパティ ハンドラーは常に特定のファイルの種類に関連付けられます。したがって、ファイル形式にカスタム プロパティ ハンドラーを必要とするプロパティが含まれている場合は、常にファイル形式ごとに一意のファイル名拡張子を登録する必要があります。

 

プロパティ ハンドラーについて

Windows Vista 以降では、Windows には、アクセスするファイルとデータ項目にメタデータを格納および取得するための拡張可能なプロパティ システムがあります。 Windows エクスプローラーと Windows Search システムは、他のアプリケーションと共にプロパティ ハンドラーを使用して、このメタデータの読み取りと変更を行います。 特定のファイルの種類を所有する開発者の場合は、プロパティ ハンドラーを登録して、ファイル内のメタデータへのアクセス権をプロパティ システムに付与する必要があります。 場合によっては、ファイル形式とそのプロパティを読み取って理解できる既存のプロパティ ハンドラーを使用できる場合があります。それ以外の場合は、ファイルの種類の新しいプロパティ ハンドラーを開発する必要がある場合があります。

プロパティ ハンドラーを記述する最初の手順は、ファイルの種類がサポートするプロパティを検討することです。 プロパティ値は、主に転送を可能にするために、ファイル ストリームに格納されます。 プロパティの値がこのシステムにあるように、ファイル自体に格納されている場合、ユーザーはファイルを別のコンピューター、USB フラッシュ ドライブ、または別のファイル システムにコピーしたり、電子メールの添付ファイルとしてファイルを送信したりすると、プロパティはファイルと共に移動し、同期または失われることはありません。 したがって、ファイル形式で追加情報の格納がサポートされている場合は、プロパティをファイル自体に格納することをお勧めします。

次の手順では、ファイルで提供する必要があるプロパティを決定します。 最初は、限られたプロパティ セットで十分であると考えるかもしれません。 オーディオ ファイルは、オーディオ関連のプロパティのみをサポートし、そこで終了できます。 ただし、そのオーディオ ファイルは、法律事務所によってアーカイブされた法廷のセッションの記録である可能性があります。 その場合、法律事務所は、ケース番号など、他の非オーディオ プロパティをこのファイルに関連付ける必要があります。 オーディオ ファイル形式のプロバイダーは、その形式が使用されるすべてのシナリオを決定できない可能性があります。 そのため、プロパティ システムでサポートされている任意のプロパティの一括保存を有効にすることを検討する必要があります。

レガシ テクノロジ

Microsoft Windows NT ファイル システム (NTFS) セカンダリ ストリーム テクノロジは、ファイル システムレイヤーに設定された代替ストリームを介してファイルに対する追加情報の永続化をサポートするために開発されました。 特にオープン メタデータ サポートでは、これらのセカンダリ ストリームがプロパティを格納するためのメイン メソッドとして使用されない理由を疑問に思うかもしれません。 主な理由は、この追加情報の転送可能性です。 残念ながら、これらの代替ストリームは、クライアント側キャッシュ サポート (CSC)、添付ファイルとしてのファイルの送信、NTFS 以外のストアへのファイルのコピーなど、多くのシナリオで削除されます。

セカンダリ ストリームは、プロパティがファイルと一緒に移動することが保証される堅牢なソリューションを提供しないため、Windows Vista プロパティ システムには、プロパティ ストレージ用のセカンダリ NTFS ストリームを悪用する組み込みメカニズムは用意されていません。 ISV は、プロパティのストレージにセカンダリ ストリームを使用するプロパティ ハンドラーを構築しないことを強くお勧めします。 もちろん、NTFS セカンダリ ストリームが適切なシナリオがあります。特に、アプリケーションが処理しているファイルが常に NTFS ボリュームに格納され、エンド ユーザーの操作の結果として移動しないことを保証できる場合があります。

種類名の使用

プロパティ リストの使用

プロパティ ハンドラーの初期化

プロパティ ハンドラーの登録と配布

プロパティ ハンドラーのベスト プラクティスと FAQ