注意EMBEDDEDOBJECT(1090)不返回嵌入式图像

时间:2018-12-18 11:04:54

标签: lotus-notes lotusscript domino-designer-eclipse

以下文章Notes items提供了所有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,则不会提取间接图像。

但是如果我指定为 x.Type = 1084(表示文件附件),那么在同一段代码中,它就可以工作。

内嵌图片应该是嵌入对象,而不是附件。谁能说出这个问题的原因吗?

1 个答案:

答案 0 :(得分:1)

Notes体系结构随着时间的流逝而发展,词汇量有点……嗯……很困难。

嵌入对象可以是附件或OLE对象。 (通常)嵌入式对象有两部分:一条标记该对象在NotesRichTextItem中出现的位置的数据,以及另一条存储该对象实际位的数据。在这两种情况下,标记都是通过NoteRichTextItem访问的,并且被称为嵌入式对象,但是实际的位存储在NotesRichTextItem之外的单独的NotesItem中。 NotesEmbeddedObject类可同时使用这两个部分,并尝试向您隐藏第二个项目的存在,但始终存在。

类型1090将是嵌入式OLE对象。如果嵌入式对象是嵌入式图像,则NotesItem对象将存储为文件附件,键入1084。