Примечания EMBEDDEDOBJECT (1090) не возвращает встроенное изображение - PullRequest
0 голосов
/ 18 декабря 2018

Следующая статья Элементы Notes содержит описание всех элементов Notes.Упоминается, что EMBEDDEDOBJECT (1090) означает внедренный объект .Тем не менее, мой код не работает для этой части.

Ниже приведен фрагмент кода для извлечения изображения:

If edoc.HasEmbedded Then
ForAll x In edoc.items
    If x.Type = 1090 Then
    Set neoAttachment = edoc.GetAttachment(x.values(0))
    strImageFilepath = Temppath & neoAttachment.name
    Call neoAttachment.ExtractFile(strImageFilepath)
    Set Attachobject = rititem.EmbedObject( EMBED_ATTACHMENT, "", strImageFilepath)
    End If
End Forall

Если я укажу x.Type = 1090, тоИзображение inliine не извлекается.

Но если я укажу x.Type = 1084 (что означает вложение файла) , в том же фрагменте кода это будет работать.

Предполагается, что встроенное изображение - это внедренный объект и , а не вложение .Может кто-нибудь сказать, пожалуйста, причину этой проблемы?

1 Ответ

0 голосов
/ 18 декабря 2018

Архитектура Notes со временем развивалась, и словарный запас немного ... Умммм ... сложный.

Встроенный объект может быть либо вложением, либо объектом OLE.(Обычно) две части встроенного объекта: фрагмент данных, который отмечает место, где объект появляется в NotesRichTextItem, и отдельный фрагмент данных, в котором хранятся фактические биты для объекта.В обоих случаях доступ к маркеру осуществляется через NoteRichTextItem и называется встроенным объектом, но фактические биты хранятся в своем отдельном NotesItem вне NotesRichTextItem.Класс NotesEmbeddedObject работает с обеими частями и пытается скрыть наличие второго элемента от вас, но он всегда есть.

Тип 1090 будет встроенным объектом OLE.В случае внедренного объекта, который является встроенным изображением, объект NotesItem сохраняется как вложение файла, введите 1084.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...