Windows搜索 - IFilter搜索词突出显示

Jam*_*mie 9 windows search winapi ifilter windows-search

我的开发团队遇到问题,在Windows 7中为我们自己的自定义文件显示搜索结果的文本片段(请注意,我们不是在讨论使用IPreviewHandler接口的预览窗格).我对.txt文件的一个例子如下所示:

搜索示例

此处显示的带有突出显示结果的文本片段不会显示在我们自己的文件中,只显示文件的名称.

我们已经为我们的文件实现了IFilter,这正确地索引文件内容(搜索返回正确的结果).它只是不会显示片段并突出显示搜索词.

我们怀疑它可能与cwcStartSource和IFilter中STAT_CHUNK的cwcLenSource值有关,但是将它们设置为不同的值到目前为止还没有产生任何结果.

有没有其他人有类似的经历或有任何想法?

提前致谢.

Gal*_*llo 5

您需要为您的文件类型生成预览处理程序.

如果应用程序已注册预览处理程序,它还可以在预览窗格中呈现项目的增强预览,而无需启动默认应用程序.这可以提供诸如文件类型特定导航之类的功能(例如使用下一个/上一个控件浏览演示文稿,或者在媒体文件内搜索).[29] 预览处理程序还可以允许从预览窗格本身执行某些类型的选择(例如突出显示文本片段).

资源

有一堆代码示例浮现在PDF等等.

看一下:CodePlex:Windows预览处理程序包

编辑:

为了澄清,Windows 7中的搜索结果窗格是预览处理程序主机.它有两个主要部分:内容视图和预览窗格.

Windows资源管理器还包括一个名为"内容"视图的视图模式,这是查看搜索结果时的默认视图."内容"视图显示名称,位置,与文件关联的一些元数据标签,文件的缩略图图像以及文件的片段.此视图模式还使用命中突出显示来显示查询术语在文件中的显示位置,这使您可以轻松理解搜索结果列表中返回该文件的原因.

资源

如果需要增强功能(如查看自定义文件类型的文件内容),则需要预览处理程序用于任何自定义文件类型.

在Windows Vista及更高版本中,Windows Search集成到所有Windows资源管理器窗口中,以便即时访问搜索.

...

预览处理程序和缩略图处理程序使用户能够在Windows资源管理器中预览文档,而无需打开创建它们的应用程序.

资源

要验证您是否已正确实现自定义文件类型,可以尝试使用Windows 7 SDK中的文件类型验证程序,该程序将测试以下与您的自定义文件相关的内容:

  • 预览处理程序
  • 缩略图处理程序
  • 物业经营者
  • 动词处理程序
  • 过滤器(IFilter)
  • 亲切的协会
  • 感知类型
  • 重要的属性

使用内容视图

您可以使用两种不同的方法之一来利用"内容"视图.您可以使用现有的一组属性和布局模式,也可以创建自己的组合.这两种方法详细描述:

有关内容视图的一般概述,请参阅此文章:

内容按文件类型或种类查看