次の方法で共有


IColumnProvider インターフェイス (shlobj.h)

Windows エクスプローラー 詳細ビューでカスタム列の追加を有効にするメソッドを公開します。

メモ Windows Vista の 時点で IColumnProvider のサポートが削除されました。 Windows プロパティ システムは、その代わりに使用されます。 新しいシステムの使用について説明する概念資料については、「 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 エクスプローラーで使用される手順は次のとおりです。

  1. IColumnProvider::Initialize を呼び出して、表示するフォルダーを指定します。
  2. 列の特性を取得するには、 IColumnProvider::GetColumnInfo を呼び出します。
  3. ユーザーが列を選択している場合は、フォルダー内の各ファイルに対して IColumnProvider::GetItemData を呼び出して、ファイルの列エントリに属するデータを取得します。
通常のコンポーネント オブジェクト モデル (COM) の登録に加えて、列プロバイダー オブジェクトも Windows エクスプローラーに登録する必要があります。 これを行うには、オブジェクトの GUID の文字列形式で という名前のサブキーをこのキーに追加します。
HKEY_CLASSES_ROOT
   Folder
      shellex
         ColumnHandlers

このインターフェイスは、Windows エクスプローラーによって呼び出されます。 通常、アプリケーションでは使用されません。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shlobj.h