私は、CAPIを使用してLotusNotesおよびLotusDominoと対話することに携わっています。NSFから既存のメモを読み取るときに問題が発生します。具体的には、TYPE_OBJECTフィールド、さらに具体的には$ FILEフィールドを読み取ります(ただし、他のフィールドがある場合は、すべてのTYPE_OBJECTフィールドが失敗すると確信しています)。
NSFItemInfoを使用して$FILEフィールドの要約データを取得しています(したがって、保存されたファイルは必要ありません。サイズ、名前などの情報が必要です)。
メモをメモリに作成し、コミットしてから$ FILEフィールドを読み取ると、すべてが機能します。(メモリに作成するのではなく)既存のノートを読み取るように単体テストを変更すると、LotusPANICSに無効なハンドルルックアップメッセージが表示されます。
そのため、ノートを最初から作成する場合と、すでに作成されているノートを開く場合では、これらのフィールドのロードに何か違いがあるように感じます。作成済みのコードを読んでも同じエラーが発生するので、正しく作成していると思います。
NSFNoteOpenExtのフラグオプションを調べ、OPEN_xxxで説明されているすべての可能なフラグを使用してノートを開こうとしましたが、OPEN_ABSTRACTまたはOPEN_NOOBJECTSを使用してノートを開く場合を除いて、常にパニックが発生します。ただし、これらがエラーにならない理由は、$ FILEフィールドなしでNoteを開くためです。そのため、フィールドが存在するかどうかを確認すると、falseが発生し、TYPE_OBJECTフィールドで読み取るコードは実行されません。
私が欠けているアイデアはありますか?
コードを提供しますが、実際には.NET相互運用機能を使用してこれらすべてを実現しており、コードは複数のファイルなどに分散しています。ご不明な点がございましたら、お問い合わせください。詳細をお知らせします。私は出来ます。
- クレイグ