Lotus Domino API 应用

Lotus Domino API 应用

ID:41478133

大小:37.50 KB

页数:10页

时间:2019-08-25

Lotus Domino API 应用_第1页
Lotus Domino API 应用_第2页
Lotus Domino API 应用_第3页
Lotus Domino API 应用_第4页
Lotus Domino API 应用_第5页
资源描述:

《Lotus Domino API 应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、LotusDomino/Notes是美国莲花公司出的企业通讯和群件服务平台。但由于其本身提供的开发工具的限制,在Notes中实现系统级功能十分困难。比如在Notes中,不能通过公式或脚本来得到一个数据库的未读文档的数量和其内容。但这个未读文档数的小功能在做有些方面是十分有用的,例如我们可以根据这个未读文档数来做个提醒功能,提醒用户该进行某类工作如文件签发等。Notes系统本身有个Minder的程序,它是在有新邮件来到的时候,提醒用户,并可提供一些基本的信息:来信人,标题等。我们也可以这样做(当然利用未读文档数来做不是完美

2、,如果你有兴趣,你可以试试做个数据库钩子程序来实现,但总的来说,利用未读文档数来做较为简单。)。  本文就是讨论如何利用Notes提供的CAPI来实现读取一个Notes数据库的未读文档数和其信息。因为利用的是CAPI,所以我们的开发语言是C。开发工具我们选用的是VC++6.0。我们需要借助的是Notes本身提供的CAPI函数。Notes的大部分API都封装在nNotes.dll文件中。其中包括有ACL,Database,User,Document,Item等各个方面的API函数。它不光能实现几乎所有在Notes中实现的功

3、能,它还提供了其他在Notes中难以想象的功能(换句话说,你可以自己写自己特有的Notes桌面程序而不再使用Notes.exe。当然它的功能还远不止这点)。利用NotesAPI包,我们可以做以下的程序:  1、独立应用程序。  2、DOMINO服务器的扩展插入服务(add-intasks)。  3、NOTES客户机的菜单扩展插入(menuadd-ins)。  4、NOTES客户机可动态加载的函数库。  5、数据库的钩子驱动程序(HOOKDrivers)。  6、扩展管理程序的钩子函数库。  7、非NOTES数据库的驱动程

4、序。  下面简单介绍一下我们后面会涉及的主要的NotesAPI函数:  NotesInitExtended:初始化Notes环境,应在所有NotesAPI函数调用前初始化系统。  NSFDbOpen:打开指定的Notes数据库。  NSFDbClose:关闭指定的Notes数据库。  NSFDbGetUnreadNoteTable:取得指定数据库内的未读文档列表。  NSFDbUpdateUnread:更新数据库的未读文档列表。  NIFFindView:取得数据库内的指定视图或文件夹。  NIFOpenCollecti

5、on:取得指定视图或文件夹的所有文档。  NIFUpdateCollection:更新指定视图或文件夹的所有文档。  NIFCloseCollection:关闭文档集。  NIFReadEntries:读取文档集的指定文档。  NSFNoteOpen:打开指定文档。  NSFItemGetText:取得文档的指定字段值。  程序流程:  数据库中有张类型为IDTable的未读文档列表,其中包含了该数据库的带有未读标志的文档号。这张表存储在数据库中和客户机的Desktop.dsk文件中。当然,在数据库和文件中的这张表是一样

6、的。当他们不一致时,则在你打开数据库时,它们会自动同步,使他们保持一样。  我们就是要取得这张未读文档表,再统计一下这张表中有多少项,就知道了数据库中多少文档带有未读标志。我们还可以在此基础上取得该文档的一些具体信息。但这张表是整个数据库的未读文档列表,我们怎么得到某个视图或文件夹的未读文档数和信息呢?实际上,这才是我们真正关心的。我们可以再找到某个视图和文件夹的文档列表,再与上面的未读文档列表进行一一比较,相同的则是该视图或文件夹的未读文档列表。主要程序如下://////////////////////////////

7、//////////////////////////InitNotes:初始化Notes环境,打开数据库//szServerName:服务器名//szDBName:数据库名//szDirectory:Notes系统目录//返回值:1-成功//0-失败intCNotes::InitNotes(char*szServerName,char*szDBName,char*szDirectory){STATUSstatus;charszPathName[MAX_PATH];charszpInitPara[1][260];//数据库

8、路径名=服务器名+“!!”+数据库名if(strlen(szServerName)==0)strcpy(szPathName,szDBName);else{strcpy(szPathName,szServerName);strcat(szPathName,"!!");strcat(szPathName,szDBNam

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。