Verwenden von verwaltetem Code mit Shelldaten und Windows Search
Das Windows Search SDK bietet eine Inopierbarkeitsassembly für die Arbeit mit com-Objekten (Component Object Model), die von Windows Search und anderen Programmen für die Schnittstellen und Klassen mit verwaltetem Code verfügbar gemacht werden. Die Interopability-Assembly wird digital von Microsoft signiert und befindet sich in den Windows Search-Beispielen.
Dieses Thema ist wie folgt organisiert:
Verwenden des codePack der Windows-API
Wenn Sie in der Microsoft .NET-Umgebung arbeiten, verwenden Sie das Windows API Code Pack für Microsoft .NET Framework, um Suchergebnisse abzurufen, oder durchsuchen Sie einfach den Namespace. Das Windows API Code Pack für Microsoft .NET Framework bietet Ihnen eine Sammlung von Shellelementen, die im Wesentlichen Wrapper um die native IShellItem-Schnittstellesind. Sie können diese Auflistung iterieren und die verschiedenen Eigenschaftswerte auf ähnliche Weise abrufen, wie Sie die Ergebnisse in einer Tabelle aus einer Object Linking and Embedding-Datenbank -Abfrage (OLE DB) aufzählen würden.
Der folgende Codeausschnitt veranschaulicht das Iterieren von Suchelementen und das Abrufen der jeweiligen Eigenschaftswerte.
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);
}
Zugreifen auf Indexergebnisse
Sie können entweder über OLE DB oder das Shell-Datenmodell auf Indexergebnisse zugreifen. Bei beiden Ansätzen gibt es Vor- und Nachteile. Ein Vorteil besteht darin, dass datenbankprogrammierern OLE DB und strukturierte Abfragesprache (SQL) vertraut sind. Weitere Vorteile sind eine bessere Kontrolle über die Leistung, wenn nur der Indexer abgefragt wird, und der Zugriff auf zusätzliche Funktionen, z. B. die Möglichkeit, vorherige Ergebnisse schnell in einem neuen Rowset zu finden.
Der Vorteil des Shell-Datenmodells besteht darin, dass es verschiedene Informationsquellen wie OpenSearch abstrahiert und Zugriff auf zusätzliche Funktionen wie Miniaturansichten und Eigenschaftenhandler bietet. Das Shell-Objektmodell erfordert auch keine Sonderfallunterstützung für Nicht-Dateinamenergebnisse wie E-Mail-Elemente und OneNote Ergebnisse, noch für Elemente, die sich im Index des Benutzers befinden. Beachten Sie, dass in Shell KNOWNFOLDERID der bekannte Ordnerbereich für lokalen indizierten Inhalt ist. Weitere Informationen zum Erstellen einer Shell-Datenquelle finden Sie unter Implementieren der grundlegenden Ordnerobjektschnittstellen.
OpenSearch Datenquellen werden in Windows 7 und höher nicht über OLE DB für die Verbundsuche verfügbar gemacht. Aus diesem Grund wird empfohlen, einen LINQ-Anbieter für den Shellnamespace zu schreiben, anstatt OLE DB zu verwenden, um auf die Indexerergebnisse zuzugreifen. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines IQueryable LINQ-Anbieters.
Beispielanwendung mit dem Windows-API-Codepack
Der folgende Screenshot zeigt ein Modell einer Beispielanwendung, die mit dem Windows API Code Pack für Microsoft .NET Frameworkerstellt wurde.

Zugehörige Themen
-
Konzeptionellen
-
Andere Ressourcen