当我调用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 关注
- 138 浏览
添加回答
举报
0/150
提交
取消