Search Windows 7联合搜索-如何使其向我的.net程序集发送搜索请求
我试图通过本地.net程序集的联合搜索功能在windows 7资源管理器中显示搜索结果。(不是来自web服务) 我找到了各种教程,但都是针对web服务的。早些时候,我认为这是不可能的,但后来,我遇到了StickyNotes联邦搜索连接器。.OSDX文件的内容包括:Search Windows 7联合搜索-如何使其向我的.net程序集发送搜索请求,search,shell,windows-7,local-database,federated,Search,Shell,Windows 7,Local Database,Federated,我试图通过本地.net程序集的联合搜索功能在windows 7资源管理器中显示搜索结果。(不是来自web服务) 我找到了各种教程,但都是针对web服务的。早些时候,我认为这是不可能的,但后来,我遇到了StickyNotes联邦搜索连接器。.OSDX文件的内容包括: <?xml version="1.0" encoding="UTF-8"?> <searchConnectorDescription xmlns="http://schemas.microsoft.com/windo
<?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>
创建简短的手写或文本注释。
真的
真的
{982725EE-6F47-479E-B447-812BFA7D2E8F}
粘贴说明:/{S-1-5-21-3431700657-2522803235-1547684158-1000}/notes
mbaaafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
这意味着可以将搜索查询转发到本地数据存储/dll/exe
我想使用我的.net应用程序以相同/类似的方式提供搜索结果。我从哪里开始
见:
我的目标是使文档库数据库(sqlite)可通过windows资源管理器进行搜索,并在资源管理器中列出数据库中的文件及其元数据(文件存储在本地)。此项目似乎在C#中实现了这一点:
该项目使用IContentEnumerator、IFilter和IUrlAccessor实现ISearch协议。所有内容都从ContentEnumerator类的实现中传播。MSDN上的信息已更新。
它现在列出:
HRESULT GetResults(
[in] HWND hwnd,
[in] LPCWSTR pszQuery,
[in] DWORD dwStartIndex,
[in] DWORD dwCount,
[in] REFIID riid,
[out] void **ppv
);
参数
hwnd[in]
类型:HWND调用方的窗口句柄 pszQuery[in] 类型:LPCWSTR
用户输入的查询。此参数等效于OpenSearch{searchTerms}参数,可能为空 dwStartIndex[英寸] 类型:DWORD
请求的第一个结果的索引。相当于OpenSearch{startIndex}参数。见下文备注 dwCount[英寸] 类型:DWORD
请求的结果数。相当于OpenSearch{count}参数 里德[英寸] 类型:refid
被请求接口的IID。典型的IID_是流 ppv[输出] 类型:void** 由RIID指定类型的接口指针,指向包含Atom或RSS格式结果的对象 至少我们知道有效的riid是
IID\u IStream
这方面的信息如下:我想我需要的是实现IOpenSearchSource接口。我不确定如何继续,因为信息太少。进一步的分析表明,下面的标签是最重要的。我如何定义它,使其指向我的应用程序(它将公开IOpenSearchSource接口theu COM interop)