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才能完成的工作。
|