В плагине Lotus Notes для C ++ я хочу сохранить текущую электронную почту (представленную hNote HANDLE) в файл .eml. Я просмотрел документацию и нашел функцию NSFNoteExtractFile, которая сохраняет данный элемент (представленный как BLOCKID) в файл. но как мне преобразовать hNote HANDLE в элемент BLOCKID, чтобы сохранить его в файл?
Вы не можете конвертировать дескриптор заметки в BLOCKID. BLOCKID связан с элементом внутри заметки, а не с самой заметкой. NSFNoteExtractFile извлекает вложение из заметки, но не преобразует заметку в файл. То есть, если у вас есть почтовое сообщение с вложенным файлом .doc, вы должны использовать NSFItemInfo, чтобы получить BLOCKID элемента $ FILE в заметке, представляющей файл .doc, а затем использовать NSFNoteExtractFile для сохранения файла .doc. (и только файл .doc) в виде отдельного файла на диске.
Насколько мне известно, до сих пор нет API от IBM Lotus, чтобы делать то, что вы хотите. Существует Java API для преобразования содержимого сообщения в формат MIME, но вы должны предоставить весь код для генерации и форматирования заголовков сообщений. Это достаточно просто сделать в Java, но в C ++ вам, возможно, придется предоставить большую часть логики самостоятельно. Вот ссылка на сообщение в блоге Боба Балабана, в котором приведен пример кода C #, в котором делается то же самое, и, поскольку в классах Lotus COM, которые он использует в C #, нет эквивалента вызова Java convertToMIME, он включает в себя код, вызывающий из C #, в C, так что это покажет вам, какие API вам нужно будет использовать для преобразования контента в C ++.