共用方式為


搭配 Shell 資料和 Windows Search 使用 Managed 程式碼

Windows 搜尋 SDK 提供互通性元件,可讓您使用元件物件模型 (COM) Windows 搜尋所公開的物件,以及使用 Managed 程式碼針對介面和類別公開的其他程式。 互通性元件是由 Microsoft 數位簽署,而且可以使用 Windows 搜尋範例找到。

本主題的組織方式如下:

使用 Windows API CodePack

如果您在 Microsoft .NET 環境中工作,請使用適用于 Microsoft 的 Windows API 程式碼套件.NET Framework來取得搜尋結果,或只流覽命名空間。 適用于 Microsoft 的 Windows API 程式碼套件.NET Framework提供一組殼層專案,基本上是原生IShellItem 介面的包裝函式。 您可以逐一查看這個集合,並取得各種屬性值的方式,類似于從物件連結和內嵌資料庫 (OLE DB) 查詢列舉資料表中的結果。

下列程式碼片段說明如何逐一查看搜尋專案,並取得每個專案的屬性值。

foreach (ShellObject so in KnownFolders.SavedSearches)
{
    searchFolder = new ShellSearchFolder(finalSearchCondition, (ShellContainer)so);
    List<ShellObject> items = new List<ShellObject>();
    foreach (ShellObject so2 in searchFolder) items.Add(so2);   
}

存取索引結果

您可以透過 OLE DB 或 Shell 資料模型來存取索引結果。 任一種方法都有優點和缺點。 其中一個優點是資料庫程式設計人員熟悉 OLE DB 和 結構化查詢語言 (SQL) (SQL) 。 其他優點是查詢索引子時的效能較佳,以及存取其他功能,例如快速找出新資料列集中先前結果的能力。

Shell 資料模型的優點是它會跨 OpenSearch 等不同資訊來源進行抽象化,並提供縮圖和屬性處理常式等其他功能的存取權。 Shell 物件模型也不需要特殊大小寫支援非檔案名結果,例如訊息項目和 OneNote 結果,以及位於使用者索引中的任何專案。 請注意,Shell KNOWNFOLDERID 是本機索引內容的已知資料夾範圍。 如需建立 Shell 資料來源的詳細資訊,請參閱 實作基本資料夾物件介面

OpenSearch 資料來源不會透過 OLE DB 公開,以在 Windows 7 和更新版本中進行同盟搜尋。 基於這個理由,建議您考慮撰寫 Shell 命名空間的 LINQ 提供者,而不是使用 OLE DB 來存取索引子結果。 如需詳細資訊,請參閱 逐步解說:建立 IQueryable LINQ 提供者

使用 Windows API Codepack 的範例應用程式

下列螢幕擷取畫面代表使用適用于 Microsoft .NET Framework 的 Windows API 程式碼套件所建立的範例應用程式模擬。

顯示電子郵件訊息的媒體播放機應用程式的螢幕擷取畫面

概念

Windows 中的同盟搜尋

其他資源

跨語言互通性