Windows 7 Federated Search - как заставить его отправлять поисковые запросы в мою сборку.net

Я пытаюсь отобразить результаты поиска в проводнике Windows 7 через функцию федеративного поиска из локальной сборки.net. (не из веб-службы)

Я нашел различные учебные пособия, но все они для веб-служб. Раньше я думал, что это невозможно, но потом наткнулся на соединитель федеративного поиска StickyNotes. Содержимое файла.OSDX:

<?xml version="1.0" encoding="UTF-8"?>
<searchConnectorDescription xmlns="http://schemas.microsoft.com/windows/2009/searchConnector">
  <description>Create short handwritten or text notes.</description>
  <isSearchOnlyItem>true</isSearchOnlyItem>
  <includeInStartMenuScope>true</includeInStartMenuScope>
  <templateInfo>
    <folderType>{982725EE-6F47-479E-B447-812BFA7D2E8F}</folderType>
  </templateInfo>
  <simpleLocation>
    <url>StickyNotes://{S-1-5-21-3431700657-2522803235-1547684158-1000}/notes</url>
    <serialized>MBAAAEAFCAAAAAAAADAAAAAAAYUgAAQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAYKAUAwHAykg1PPWtiyRvmVorPeOnkJkAQEATBAdAkGAjBwaAkHAOBwbAQHAlBwcAoDAvAwLAsHATBQLAEDAtAQNA0CAyAQMA0CAzAANAMDAxAwNAADAwAgNAUDA3AQLAIDA1AgMAIDA4AAMAMDAyAwMAUDAtAQMAUDA0AwNAYDA4AANAEDA1AAOA0CAxAAMAADAwAQfA8CAuBwbAQHAlBwcAAAAAAAAAAAAAAA</serialized>
  </simpleLocation>
</searchConnectorDescription>

Это означает, что можно переслать поисковый запрос в локальное хранилище данных /dll/exe

Я хотел бы использовать мое приложение.net для предоставления результатов поиска таким же или аналогичным образом. С чего мне начать?

См. Руководство по внедрению поставщика федеративного поиска Windows 7

Моя цель - сделать базу данных библиотеки документов (sqlite) доступной для поиска через проводник Windows и перечислить файлы и их метаданные из БД в проводнике (файлы хранятся локально).

2 ответа

Этот проект, кажется, выполняет это в C#: http://mossph.codeplex.com/

Проект реализует протокол ISearch с использованием IContentEnumerator, IFilter и IUrlAccessor. Все распространяется от реализации класса ContentEnumerator.

Информация на MSDN была обновлена.
http://msdn.microsoft.com/en-us/library/dd378288%28v=vs.85%29.aspx

Теперь в нем перечислены:

HRESULT GetResults(
  [in]   HWND hwnd,
  [in]   LPCWSTR pszQuery,
  [in]   DWORD dwStartIndex,
  [in]   DWORD dwCount,
  [in]   REFIID riid,
  [out]  void **ppv
);

параметры

HWND [в]

Тип: HWND
Оконная ручка звонящего.

pszQuery [in]

Тип: LPCWSTR
Запрос, введенный пользователем. Этот параметр эквивалентен параметру OpenSearch {searchTerms} и может быть пустым.

dwStartIndex [in]

Тип: DWORD
Индекс первого запрашиваемого результата. Эквивалентен параметру OpenSearch {startIndex}. Смотрите примечания ниже.

dwCount [в]

Тип: DWORD
Количество запрашиваемых результатов. Эквивалентен параметру OpenSearch {count}.

Рид [в]

Тип: Рефид
IID запрашиваемого интерфейса. Обычно IID_IStream.

PPV [выход]

Тип: void** Указатель интерфейса типа, указанного в RIID, на объект, содержащий результаты в формате Atom или RSS.

По крайней мере, мы знаем, что действительный рид IID_IStream

Информация для этого здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380034%28v=vs.85%29.aspx

Другие вопросы по тегам