2 lotus c api
2.1 简介
在domino/notes的toolkit中,c api的功能最为强大:
- 可以操纵notes数据库中几乎所有的数据对象
- 数据库及acl
- 文档和域
- 表单
- 视图和文件夹
- 代理
- 可以为notes客户端的增加附加菜单
- 可以用来创建附加的domino服务任务
- 可以用来扩展domino/notes的事件管理
主要限制:
- 不能修改已有的domino/notes软件,不能去除其已有的功能、特性,或者改变其工作机理。
- 不能修改安全特性
- 不能修改用户活动记录
支持的操作系统:
windowsnt/2000, linux, solaris sparc/intel, hp-ux, macos, aix, as/400, s/390等。
最新版本m
r5的最新版本for r5.0.12,发布于2003.03.13 r6的最新版本 for 6.0.1,发布于2003.2.24
2.2 开发和使用
使用条件
lotus c api需要notes.ini,并会调用domino/notes已有的程序,因此,需要安装domino server或notes client。
用户身份
使用lotus c api的独立应用将根据notes.ini中的信息来得到当前用户的信息,根据相应的id文件来验证用户身份。在domino服务器上程序将使用服务器id。
domino/notes运行环境初始化
在调用c api之前,需要初始化domino运行环境,并且在程序关闭之前清理环境。lotus c api提供了多种方式来完成这项工作。
如果遵循c api的某些标准,domino/notes能自动进行初始化和清理的工作,也可以调用notesinitextended函数来完成初始化,调用notesterm函数来完成清理工作。
样例:
| structure of main | structure of notesmain |
| main(){ notesinitextended(); … …body of the program … notesterm(); exit; } |
status lnpublic notesmain(){ … … body of the program … } |
| 显式进行运行环境的初始化和清理 | 自动完成 |
notes客户端扩展
利用c api可以为notes客户端添加附加的菜单,为此需要在notes.ini中添加相应的条目,例如:
addinmenus =uiaddin1.dll
相应的dll需要遵循api的标准。notes客户端在启动时,会根据配置文件和dll的入口函数进行一些初始化。利用这一特性,可以自动完成用户登录和身份验证处理。
扩展事件管理
在domino/notes中,对各类数据对象的操作会触发各种事件,例如,文档被打开、文档被关闭、数据库被创建、数据库被删除等等。在notes designer中,提供了一些入口,可以相应这些进行处理,例如:webqueryopen,webquerysave等等。
利用lotus c api能大大扩展对这些事件的处理能力,可以在domino/notes系统处理这些事件之前和之后,进行额外的处理,例如活动日志、数据有效性检查、用户身份认证、加密界面等数据处理等。dsapi就是一个很好的例子。为了实现这些例子,需要在代码实现上遵循api的规范,并在notes.ini中进行配置,例如:
extmgr_addins=mymngr1.dll,mymngr2.dll
总之,lotus c api的提供了多种手段来操纵notes数据对象,并可以利用它来扩展notes客户端的功能,扩展notes事件的处理,功能非常强大。同时,由于c语言本身的特性,其效率很高,但编码实现的难度也最高。因此,适合于对数据处理效率要求很高,或者是只有c api才能完成的工作。
lotus domino/notes toolkits综述(一)
lotus domino/notes toolkits综述(二) c api
lotus domino/notes toolkits综述(三) c++ api
lotus domino/notes toolkits综述(四) java
lotus domino/notes toolkits综述(五) lddj
lotus domino/notes toolkits综述(六) 其他
lotus domino/notes toolkits综述(七) 分析比较
lotus domino/notes toolkits综述(八) 分析比较 续
lotus domino/notes toolkits综述(九) 小结