IColumnProvider インターフェイス (shlobj.h)
Windows エクスプローラー 詳細ビューでカスタム列の追加を有効にするメソッドを公開します。
継承
IColumnProvider インターフェイスは、IUnknown インターフェイスから継承されます。 IColumnProvider には、次の種類のメンバーもあります。
メソッド
IColumnProvider インターフェイスには、これらのメソッドがあります。
IColumnProvider::GetColumnInfo 列に関する情報を要求します。 |
IColumnProvider::GetItemData 指定したファイルの列データを要求します。 |
IColumnProvider::Initialize IColumnProvider インターフェイスを初期化します。 |
解説
Windows エクスプローラーの詳細ビューには、通常、いくつかの標準列が表示されます。 各列には、現在のフォルダー内の各ファイルのファイル サイズや種類などの情報が一覧表示されます。 また、ユーザーが表示を選択できる列の数を指定することもできます。 ユーザーが列ヘッダーの 1 つを右クリックすると、使用可能な列の一覧がダイアログ ボックスに表示されます。 IColumnProvider インターフェイスをエクスポートする列プロバイダー オブジェクトを作成すると、Windows エクスプローラーで表示するために、そのダイアログ ボックスにカスタム列を追加できます。 たとえば、音楽を含むファイルのコレクションでは、列プロバイダーを使用して、各ファイルに含まれるアーティストと作品を一覧表示する列を表示できます。
列プロバイダーは、Windows エクスプローラーが [詳細] ビューを表示するたびに呼び出されるグローバル オブジェクトです。 Windows エクスプローラーは、登録されているすべての列プロバイダーに列の特性を照会します。 ユーザーが列プロバイダーの列のいずれかを選択した場合、Windows エクスプローラーは、フォルダー内の各ファイルの関連データについて列プロバイダーに対してクエリを実行します。 その後、選択したすべての列が表示されます。
通常、列プロバイダーは、特定の ファイルの種類の 1 つ以上のカスタム列を表示するために使用されます。 列プロバイダーは、データの要求を受け取ると、そのファイルがサポートされている型のメンバーである場合に提供されます。 それ以外の場合は、S_FALSEを返して要求を無視します。
列は、fmtidpid ペアを含む SHCOLUMNID 構造体によって識別されます/。 可能であれば、既存の fmtids と pid s を使用します。 フォルダーに複数のファイルの種類のファイルが含まれている場合は、異なる種類のデータを同じ列にマージできます。 たとえば、概要情報プロパティ セットの Author pid は、さまざまな目的で使用できます。 カスタム SHCOLUMNID 構造体を使用する場合、列には、サポートされている型のメンバーであるファイルのデータのみが表示されます。 フォルダーに他のファイルが含まれている場合、そのエントリは空白になります。
Windows エクスプローラー 詳細ビューに 1 つ以上のカスタム列を表示する場合に、このインターフェイスをエクスポートするオブジェクトを実装します。 Windows エクスプローラー は、インターフェイス メソッドを呼び出して、列を表示するために必要な情報を要求します。 Windows エクスプローラーで使用される手順は次のとおりです。
- IColumnProvider::Initialize を呼び出して、表示するフォルダーを指定します。
- 列の特性を取得するには、 IColumnProvider::GetColumnInfo を呼び出します。
- ユーザーが列を選択している場合は、フォルダー内の各ファイルに対して IColumnProvider::GetItemData を呼び出して、ファイルの列エントリに属するデータを取得します。
HKEY_CLASSES_ROOT Folder shellex ColumnHandlers
このインターフェイスは、Windows エクスプローラーによって呼び出されます。 通常、アプリケーションでは使用されません。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shlobj.h |