如何扩展Windows桌面搜索Outlook

时间:2011-04-15 18:55:01

标签: c++ windows search com desktop

我想扩展Windows桌面搜索,以包含自定义数据存储的结果(就像Outlook的工作方式)。这意味着,当有人在Vista或Windows 7的“开始”菜单中进行搜索时,我希望我的结果显示在“我的自定义类别”中,其中每个结果都是我的自定义数据存储中的单个条目。

我已经通过MSDN文档进行了大量阅读,感觉它们不完整。我还在Windows 7 SDK和Windows Search 3x SDK中使用了大量示例。我希望Windows Search SDK中的RegSearch示例(这是一个示例协议处理程序实现)会很有用,但是,它似乎不起作用。我可以构建它并将其注册,但搜索服务会返回以下错误(来自事件查看器):

Log Name:      Application
Source:        Microsoft-Windows-Search
Event ID:      3036
Task Category: Gatherer
Level:         Warning
Description:
The content source <reg://<USER SID REMOVED>/> cannot be accessed.

Context:  Application, SystemIndex Catalog

Details:
    The specified address was excluded from the index. The site path rules may have to be modified to include this address.  (HRESULT : 0x80040d07) (0x80040d07)

(注意:我在发布时删除了SID,但日志中包含了它)

其次是:

Log Name:      Application
Source:        Microsoft-Windows-Search
Event ID:      3023
Task Category: Gatherer
Level:         Warning
Description:
The update cannot be started because all of the content sources were excluded by site path rules, or removed from the index configuration.

Context:  Application, SystemIndex Catalog

Details:
    (HRESULT : 0x1) (0x00000001)

然后:

Log Name:      Application
Source:        Microsoft-Windows-Search
Event ID:      3083
Task Category: Gatherer
Level:         Error
Description:
The protocol handler File cannot be loaded. Error description: (HRESULT : 0x800700c1). 

最后,重复第一个错误。

有没有人让这个样本有效?协议处理程序是否是我正在努力实现的正确方法?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

下载Windows SDK http://msdn.microsoft.com/en-us/windows/bb980924.aspx,你会发现一些非常好的代码示例 - 我特别发现有用的搜索注册表。

请注意,搜索集成适用于Vista及更高版本的Windows。从理论上讲,XP也得到了支持,但这显然是事后的想法。