IColumnProvider 介面 (shlobj.h)

公開方法,以啟用在 Windows 檔案總管詳細資料檢視中新增自訂資料行的方法。

注意 自 Windows Vista 起,已移除 IColumnProvider 的支援。 Windows 屬性系統用於其位置。 如需說明使用新系統的概念資料,請參閱 Windows 屬性系統
 

繼承

IColumnProvider介面繼承自IUnknown介面。 IColumnProvider 也有下列類型的成員:

方法

IColumnProvider介面具有這些方法。

 
IColumnProvider::GetColumnInfo

要求資料行的相關資訊。
IColumnProvider::GetItemData

要求指定檔案的資料行資料。
IColumnProvider::Initialize

初始化 IColumnProvider 介面。

備註

Windows 檔案總管詳細資料檢視通常會顯示數個標準資料行。 每個資料行都會列出目前資料夾中每個檔案的資訊,例如檔案大小或類型。 使用者也可以選擇顯示數個數據行。 當使用者以滑鼠右鍵按一下其中一個資料行標頭時,可用的資料行清單會顯示在對話方塊中。 藉由建立匯出 IColumnProvider 介面的資料行提供者物件,您可以將自訂資料行新增至該對話方塊,以供 Windows 檔案總管顯示。 例如,包含音樂的檔案集合可能會使用資料行提供者來顯示列出每個檔案所包含之藝術師和片段的資料行。

資料行提供者是每次 Windows 檔案總管顯示 [詳細資料] 檢視時呼叫的全域物件。 Windows 檔案總管會查詢所有已註冊的資料行提供者,以取得其資料行特性。 如果使用者已選取其中一個資料行提供者的資料行,Windows 檔案總管會查詢資料行提供者,以取得資料夾中每個檔案的相關聯資料。 然後會顯示所有選取的資料行。

一般而言,資料行提供者可用來顯示特定檔案類型的一或多個自訂 資料行。 當資料行提供者收到資料的要求時,如果檔案是其支援類型的成員,則會提供它。 否則,它會傳回S_FALSE來忽略要求。

資料行是由包含fmtidpid 配對/ 的SHCOLUMNID結構所識別。 可能的話,請使用現有的 fmtids 和 pids。 如果資料夾包含多個檔案類型的檔案,則來自不同類型的資料可以合併到相同的資料行。 例如,來自摘要資訊屬性集的 Author pid 可用於各種用途。 如果您使用自訂 SHCOLUMNID 結構,資料行只會針對屬於支援類型的檔案顯示資料。 如果資料夾包含其他檔案,則其專案將會是空白的。

實作物件,當您想要在 Windows 檔案總管詳細資料檢視中顯示一或多個自訂資料行時,匯出此介面。 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