1.概述
百度硬盘搜索是百度推出的一款基于Windows平台的硬盘软件,它有两大基本功能:
搜索硬盘:百度硬盘搜索能够帮助用户从个人电脑中快速地查找到需要的信息,包括文档、影音、图片、电子邮件、网页、MSN聊天记录等,它的搜索方式与百度网页搜索一样简单。
管理硬盘:百度硬盘搜索还能帮助用户管理硬盘,也就是根据文件的类型、元数据信息及文件创建、修改时间自动帮助用户将文件分类。方便用户按照浏览的方式寻找自己需要的信息。
百度硬盘搜索2.0实现了开放式软件构架,支持第三方插件,并为开发人员提供了强有力的插件开发包(SDK),以使百度硬盘搜索支持更广泛的文档类型和各类特有的应用程序数据,帮助第三方厂商及软件开发人员为百度硬盘搜索开发独有的文档类型及应用程序数据的解析插件。
本地文档
本地硬盘上所有类型的文件。
应用程序数据
用户通过特定应用程序产生或获取的数据(比如浏览器的历史记录、邮件、聊天信息等等)。
百度硬盘搜索插件
用来提取文档或应用程序信息的程序。
事件类型
与百度硬盘搜索的分类相对应,每种分类对应一种事件类型。
3.百度硬盘搜索SDK描述
百度硬盘搜索SDK基于COM标准,任何与COM兼容的开发语言均可完成插件的开发。通过SDK的COM对象,开发人员可以发送自己的数据到百度硬盘搜索平台,以实现对这些数据的存储与检索。
百度硬盘搜索SDK包括三个COM对象:
- BaiduDSRegister
- BaiduDSEventFactory
- BaiduDSEvent
- BaiduDSNoticeNew!
BaiduDSRegister
用来完成插件的安装与卸载。每个插件都必须调用该对象向百度硬盘搜索注册,以便可以接收到来自百度硬盘搜索的事件通知,或得到向百度硬盘搜索发送数据的许可。BaiduDSEventFactory
负责产生BaiduDSEvent对象,每个插件都应该实例化一个该COM对象,以便可以方便的产生BaiduDSEvent对象。BaiduDSEvent
由BaiduDSEventFactory生成,可以使用该对象向百度硬盘搜索发送插件希望可以被检索到的数据。BaiduDSNotice
负责接收用户插件的通知。4.插件类型及程序流程New!
第一类插件:以动态链接库方式实现(DLL)插件实现:
此类插件必须实现DBaiduDSFileNotify接口,当插件平台有数据文件需要该插件处理时,会调用DBaiduDSFileNotify的 HandleFile方法。要想真正起到插件的作用,插件必须向百度硬盘搜索插件平台注册,包括调用插件平台的BaiduDSRegister接口的RegisterComponent方法来注册用户插件(每个用户插件都有一个唯一的CLSID标识)以及RegisterExtension方法来注册用户插件所能处理的本地文件类型,同一个插件可以处理多种类型的文件。程序流程:
1)百度硬盘搜索调用该插件的DBaiduDSFileNotify:: HandleFile方法。
2)调用BaiduDSEventFactory::CreateEvent生成Event对象,分析文件内容并在Event对象中存储相关信息(通过调用BaiduDSEvent::AddProperty方法实现)。
3)调用BaiduDSEvent::Send发送Event对象给百度硬盘搜索处理。
4)循环步骤1-3。范例:见《百度硬盘搜索插件代码范例》
第二类插件:独立运行的程序(EXE)或运行在第三方进程中的动态链接库(DLL)
这类插件通过监控特定应用程序的行为,来提取该应用程序可被检索的数据信息。插件实现:
此类插件主动处理它所监控的应用程序可被检索的数据,因此它不需要实现第一类插件所必须实现的DBaiduDSFileNotify接口。此类插件可选实现IBaiduDSNoticeEvents,用于接收百度硬盘搜索插件平台的事件通知。要想真正起到插件的作用,插件必须向百度硬盘搜索插件平台注册,这是通过调用插件平台的BaiduDSRegister接口的RegisterComponent方法实现的(每个用户插件都有一个唯一的CLSID标识)。注意此类插件的注册不需要调用RegisterExtension方法。工作流程:
1)初始化BaiduDSEventFactory对象,请求IBaiduDSEventFactory接口指针。
2)初始化BaiduDSNotice对象,请求IBaiduDSNotice,调用Start方法来通知百度硬盘搜索可以接收事件(可选)。
3)监控应用程序,获得需要解析的数据,调用IBaiduDSEventFactory接口的CreateEvent方法创建Event对象,并填充数据(通过调用IBaiduDSEvent接口的AddProperty方法实现)。
4)调用BaiduDSEvent::Send发送Event对象给百度硬盘搜索处理。
5)循环步骤3-4。如果插件调用了BaiduDSNotice接口的Start方法话,也即具备了处理事件的能力,至于如何处理事件本文档不做规定。
6)调用BaiduDSNotice的Stop方法来停止接收来自于百度硬盘搜索的事件(可选)。范例:见《百度硬盘搜索插件代码范例》
5.附录
1)《百度硬盘搜索SDK接口说明》
2)《百度硬盘搜索SDK文档属性类型》
3)《百度硬盘搜索插件代码范例》6.法律声明:
百度硬盘搜索产品版权归百度公司所有,保留所有权利。本文档版权归百度公司所有,保留所有权利。任何公司或个人未经百度公司许可不得擅自修改、出版、以任何形式再发行或传播本文档。Microsoft Windows、Microsoft IFilter版权归Microsoft公司所有,保留所有权利。7.本文档说明
版本:2.1.0.0New!
最后修改日期:2006年2月27日
针对百度硬盘搜索产品版本:2.1及后续版本