Použití spravovaného kódu s daty shellu a službou Windows Search
Sada Windows Search SDK poskytuje sestavení pro interoperabilitu, které umožňuje pracovat s objekty modelu COM (Component Object Model), jež jsou vystaveny službou Windows Search a dalšími programy, pomocí rozhraní a tříd se spravovaným kódem. Sestavení interopability je digitálně podepsáno společností Microsoft a lze jej najít pomocí ukázek služby Windows Search.
Toto téma je uspořádané takto:
Použití balíčku rozhraní Windows API CodePack
Pokud pracujete v prostředí Microsoft .NET, použijte Windows API Code Pack pro rozhraní Microsoft .NET Framework ke získání výsledků hledání nebo pouze k procházení oboru názvů. Sada Windows API Code Pack pro rozhraní Microsoft .NET Framework poskytuje kolekci položek prostředí, které jsou v podstatě obálky kolem nativního rozhraní IShellItem Interface. Tuto kolekci můžete iterovat a získat různé hodnoty vlastností podobným způsobem, jako byste vyčíslili výsledky v tabulce z dotazu Ole DB (Object Linking and Embedding Database).
Následující fragment kódu ukazuje, jak iterovat položky hledání a získat hodnoty vlastností pro každý z nich.
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);
}
Přístup k výsledkům indexu
K výsledkům indexu můžete přistupovat prostřednictvím OLE DB nebo datového modelu shellu. U obou přístupů existují výhody a nevýhody. Jednou z výhod je, že programátoři databáze OLE DB a jazyka SQL (Structured Query Language) znají. Další výhody jsou lepší kontrolu nad výkonem při dotazování pouze indexeru a přístup k dalším funkcím, jako je schopnost rychle vyhledat předchozí výsledky v nové sadě řádků.
Výhodou datového modelu Shellu je, že abstrahuje z různých zdrojů informací, jako je OpenSearch, a poskytuje přístup k dalším funkcím, jako jsou miniatury a obslužné rutiny vlastností. Ani model objektu Shell nevyžaduje zvláštní podporu pro výsledky jiného názvu souboru, jako jsou položky pošty a výsledky OneNotu, ani pro žádnou položku, která se nachází v indexu uživatele. Všimněte si, že v prostředí Shell KNOWNFOLDERID je známý obor složky pro místní indexovaný obsah. Další informace o vytvoření shellového zdroje dat naleznete v tématu Implementace rozhraní objektů základní složky.
Zdroje dat OpenSearch nejsou přístupné prostřednictvím OLE DB pro federované vyhledávání ve Windows 7 a novějších verzích. Z tohoto důvodu doporučujeme zvážit napsání poskytovatele LINQ pro obor názvů Shell, místo použití OLE DB pro přístup k výsledkům indexeru. Další informace naleznete v tématu Návod: Vytvoření Poskytovatele LINQ pro IQueryable.
Ukázková aplikace využívající balíček Windows API Codepack
Následující snímek obrazovky představuje napodobení ukázkové aplikace vytvořené pomocí sady Windows API Code Pack pro rozhraní Microsoft .NET Framework.
Související témata
-
koncepční
-
další prostředky