我参与使用 C API 与 Lotus Notes 和 Lotus Domino 交互。从 NSF 中读取现有注释时,我遇到了问题。具体来说,读取 TYPE_OBJECT 字段,更具体地说,读取 $FILE 字段(尽管我确信如果我有其他字段,所有 TYPE_OBJECT 字段都会失败)。
我正在使用 NSFItemInfo 获取 $FILE 字段上的摘要数据(所以我不需要保存的文件,我需要有关它的信息,例如它的大小、名称等......)。
如果我在内存中创建注释,提交它,然后读取 $FILE 字段,一切正常。如果我更改单元测试以读取现有注释(而不是在内存中创建它),Lotus PANICS 会出现 Invalid Handle Lookup 消息。
因此,当我从头开始创建笔记与打开已经创建的笔记时,我感觉加载这些字段有些不同。即使阅读已经创建的注释,我自己创建的代码也会给我同样的错误,所以我认为我正确地创建了注释。
我已经探索了 NSFNoteOpenExt 的标志选项,并尝试使用 OPEN_xxx 中描述的每个可能的标志打开 Note,但我总是会出现恐慌,除非我使用 OPEN_ABSTRACT 或 OPEN_NOOBJECTS 打开 Note。不过,那些没有出错的原因是因为他们打开 Note 时根本没有 $FILE 字段,所以当我看到该字段是否存在时,我得到一个 false 并且在 TYPE_OBJECT 字段中读取的代码永远不会执行。
有什么我想念的想法吗?
我会提供代码,但我实际上是使用 .NET 互操作来完成所有这些,并且代码分布在多个文件等中......如果您有任何问题,请提出,我会提供尽可能多的详细信息我可以。
- 克雷格