Używanie kodu zarządzanego wraz z danymi Shell i usługą Windows Search
Pakiet SDK Windows Search udostępnia zestaw interoperacyjny umożliwiający pracę z obiektami modelu obiektowego COM, które są udostępniane przez usługę Windows Search i inne programy, z wykorzystaniem interfejsów i klas za pomocą kodu zarządzanego. Zestaw zgodności jest podpisany cyfrowo przez firmę Microsoft i można go znaleźć w przykładach Windows Search.
Ten temat jest zorganizowany w następujący sposób:
Korzystanie z pakietu CodePack interfejsu API systemu Windows
Jeśli pracujesz w środowisku microsoft .NET, użyj pakietu kodu interfejsu API systemu Windows dla programu Microsoft .NET Framework, aby uzyskać wyniki wyszukiwania, lub po prostu przeglądaj przestrzeń nazw. Pakiet kodu interfejsu API systemu Windows dla platformy Microsoft .NET Framework zawiera kolekcję elementów powłoki, które są zasadniczo otokami natywnego interfejsu IShellItem . Można iterować tę kolekcję i pobierać różne wartości właściwości w sposób podobny do sposobu wyliczania wyników w tabeli z zapytania Object Linking and Embedding Database (OLE DB).
Poniższy fragment kodu ilustruje sposób iteracji nad elementami wyszukiwania i uzyskiwania wartości właściwości dla każdego 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);
}
Uzyskiwanie dostępu do wyników indeksu
Dostęp do wyników indeksu można uzyskać przez OLE DB lub model danych Shell. Istnieją zalety i wady z obu metod. Jedną z zalet jest to, że programy OLE DB i Structured Query Language (SQL) są znane programistom baz danych. Inne zalety są lepszą kontrolą nad wydajnością podczas wykonywania zapytań tylko indeksatora i uzyskiwania dostępu do dodatkowych funkcji, takich jak możliwość szybkiego lokalizowania poprzednich wyników w nowym zestawie wierszy.
Zalety modelu danych powłoki to zapewnianie abstrakcji na różnych źródłach informacji, takich jak OpenSearch, oraz dostęp do dodatkowych funkcji, takich jak miniatury i obsługi właściwości. Model obiektów powłoki nie wymaga też specjalnej obsługi przypadków dla wyników innych niż nazwy plików, takie jak elementy poczty i wyniki OneNote, ani dla żadnego elementu znajdującego się w indeksie użytkownika. Należy pamiętać, że w Shell KNOWNFOLDERID jest znanym zakresem folderów dla lokalnie indeksowanej zawartości. Aby uzyskać więcej informacji na temat tworzenia źródła danych Shell, zobacz Podstawowe interfejsy obiektów folderów.
Źródła danych OpenSearch nie są uwidaczniane za pośrednictwem bazy danych OLE DB na potrzeby wyszukiwania federacyjnego w systemie Windows 7 i nowszych wersjach. Z tego powodu zalecamy rozważenie napisania dostawcy LINQ dla przestrzeni nazw powłoki zamiast używania OLE DB w celu uzyskania dostępu do wyników indeksatora. Aby uzyskać więcej informacji, zobacz Przewodnik: Tworzenie dostawcy LINQ IQueryable.
Przykładowa aplikacja korzystająca z pakietu interfejsu API systemu Windows
Poniższy zrzut ekranu przedstawia pozorowanie przykładowej aplikacji utworzonej przy użyciu pakietu kodu interfejsu API systemu Windows dla programu Microsoft .NET Framework.
Tematy pokrewne
-
Koncepcyjne
-
wyszukiwanie federacyjne w systemie Windows
-
Inne Zasoby