以下文章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(表示文件附件),那么在同一段代码中,它就可以工作。
内嵌图片应该是嵌入对象,而不是附件。谁能说出这个问题的原因吗?
答案 0 :(得分:1)
Notes体系结构随着时间的流逝而发展,词汇量有点……嗯……很困难。
嵌入对象可以是附件或OLE对象。 (通常)嵌入式对象有两部分:一条标记该对象在NotesRichTextItem中出现的位置的数据,以及另一条存储该对象实际位的数据。在这两种情况下,标记都是通过NoteRichTextItem访问的,并且被称为嵌入式对象,但是实际的位存储在NotesRichTextItem之外的单独的NotesItem中。 NotesEmbeddedObject类可同时使用这两个部分,并尝试向您隐藏第二个项目的存在,但始终存在。
类型1090将是嵌入式OLE对象。如果嵌入式对象是嵌入式图像,则NotesItem对象将存储为文件附件,键入1084。