當我調用NotesDXLExporterClass.Export一個NotesDocumentClass具有非常大附件的對象時,我得到一個System.Runtime.InteropServices.COMException: 'Out of memory'異常。我希望通過設置來解決這個問題NotesDXLExporter.OmitRichtextAttachments,true但看起來這個屬性不能通過 COM (1) 獲得。我有什么選擇來解決這個問題?注 4: NotesXMLProcessor在 COM 中沒有實現。NotesDXLExporter并NotesDXLImporter實現ExitOnFirstFatalError, Log, and LogComment, 而不是繼承它們。)編輯:當我打開C:\Program Files (x86)\IBM\Lotus\Notes\domobj.tlb并Oleview.exe查看NotesDXLExporterClass界面時,我只看到以下內容:[ uuid(29131437-2EED-1069-BF5D-00DD011186B7)]dispinterface NOTESDXLEXPORTER { properties: [id(0x00000bf6) ] VARIANT FORCENOTEFORMAT; [id(0x00000bfa) ] VARIANT OUTPUTDOCTYPE; [id(0x00000bfb) ] BSTR DOCTYPESYSTEM; [id(0x00000f1e), readonly ] BSTR LOG; [id(0x00000f1f) ] BSTR LOGCOMMENT; [id(0x00000f20) ] VARIANT EXITONFIRSTFATALERROR; methods: [id(0x00000f28)] void SETINPUT(VARIANT INPUT); [id(0x00000f29)] void SETOUTPUT(VARIANT OUTPUT); [id(0x00000f2a)] void PROCESS();};
2 回答

MMMHUHU
TA貢獻1834條經驗 獲得超8個贊
您鏈接到的文檔(以及我的本地 Notes 幫助)并沒有說它NotesDXLExporter.OmitRichtextAttachments
在 COM 中不可用。您是否嘗試使用該屬性并收到錯誤?
如果NotesDXLExporter.OmitRichtextAttachments
不可用,您是否能夠在相關的 Domino 數據庫(或為此目的創建的另一個數據庫)中開發一個充當中間人的代理?
我認為代理可以通過 獲取目標文檔的注釋 ID NotesAgent.Run
,并將該文檔的 DXL 導出到另一個臨時文檔中的字段(如果 DXL 超過 32kB,則可能必須是富文本)。您的代碼應通過 COM 調用該代理,獲取生成的臨時文檔,從其字段中讀取 DXL,然后刪除臨時文檔。
這似乎過于復雜,但這是我想到的唯一解決方案。

子衿沉夜
TA貢獻1828條經驗 獲得超3個贊
嘗試將您的代碼作為 LotusScript 代理運行。
如果失敗,則問題出在類中,而不是在 COM 實現中,除了嘗試更新版本的 Notes/Domino 之外,您無能為力。
如果可行,一個潛在的解決方法是讓您的 COM 代碼調用服務器上的 LotusScript 代理來完成這部分工作。
- 2 回答
- 0 關注
- 171 瀏覽
添加回答
舉報
0/150
提交
取消