Использование управляемого кода с данными оболочки и поиском Windows
Пакет SDK для поиска Windows предоставляет сборку для взаимодействия с объектами объектной модели компонентов (COM), которые доступны через поиск Windows и другие программы, позволяя использовать управляемый код для работы с интерфейсами и классами. Сборка интероперабельности подписана корпорацией Майкрософт и может быть найдена среди примеров поиска Windows .
Этот раздел организован следующим образом:
Использование Пакета CodePack для API Windows
Если вы работаете в среде Microsoft .NET, используйте пакет кода API Windows для Microsoft .NET Framework для получения результатов поиска или просто переходите по пространству имен. Пакет кода API Windows для Microsoft .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 или модель данных Оболочки. Существуют преимущества и недостатки любого подхода. Одним из преимуществ является то, что OLE DB и язык структурированных запросов (SQL) знакомы программистам баз данных. Другие преимущества включают в себя возможность более эффективно управлять производительностью при запросе только к индексатору, а также доступ к дополнительному функционалу, такому как возможность быстро находить предыдущие результаты в новом наборе строк.
Преимущества модели данных Shell заключаются в том, что она обобщает различные источники информации, такие как OpenSearch, и предоставляет доступ к дополнительным функциям, таким как миниатюры и обработчики свойств. Для объектной модели Shell не требуется специальная поддержка результатов, отличных от имени файла, таких как почтовые элементы и результаты OneNote, ни для любого элемента, который находится в индексе пользователя. Обратите внимание, что в оболочке KNOWNFOLDERID известна область папки для локального индексированного содержимого. Дополнительные сведения о создании источника данных оболочки см. в реализации базовых интерфейсов объектов папок.
Источники данных OpenSearch не предоставляются с помощью OLE DB для федеративного поиска в Windows 7 и более поздних версиях. Мы рекомендуем создать провайдер LINQ для пространства имен Shell вместо использования OLE DB для доступа к результатам индексатора. Для получения дополнительной информации см. в пошаговом руководстве: созданиепоставщика IQueryable LINQ.
Пример приложения с помощью пакета кода API Windows
На следующем снимке экрана представлен макет примера приложения, созданного с помощью пакета кода API Windows для Microsoft .NET Framework.
снимок экрана
Связанные разделы
-
концептуальные
-
другие ресурсы