2010-06-30 86 views
2

我的程序使用MAPI处理Exchange邮箱。问题在于,如果用户启动Outlook,将文件添加为附件并打开Paint,选择一个区域,将其复制到剪贴板并粘贴到消息正文中,结果消息显示两个附件。如何分离内嵌图像并使用MAPI进行附加?

更具体地说,程序调用IMAPIMessage::GetAttachmentsTable()来检索附件表,该表包含两个对象。有没有一种方法可以让程序决定“附件”是否真的是附件或内联内容的一部分?

回答

-1

您正在查找的房产是PR_RENDERING_POSITION(0x370B0003)。 -1意味着该附件是一个“正常”附件,而不是联机。如果该值不是-1,那么表示一个内联附件,并且该值是附件应该在其中呈现的正文中的位置。

以下是描述它的MSDN page


编辑:

德米特里,我不同意你的评论表示赞同。我使用内嵌附件的HTML电子邮件,PR_RENDERING_POSITION按照我发布的MSDN页面中的描述工作。

+0

不,PR_RENDERING_POSITION只适用于RTF消息。 对于HTML和文本消息,它始终为-1。 – 2010-07-26 14:11:55

+0

你可以发布对此的参考吗? MSDN说相反,我有HTML电子邮件的例子不同意你使用Outlook Spy检查。 – 2010-07-26 14:46:27

+0

MSDN页面根本没有提到HTML。 您可以使用OutlookSpy或MFCMAPI更改该属性,它对HTML或TXT消息没有任何影响。 – 2010-07-26 16:48:08

1

您将需要通过img:cid和PT_ATTACH_CONENTS_ID属性或通过文件名(PR_ATTACH_LONG_FILENAME)或contnet位置(PR_ATTACH_COMTENT_LOCATION)来检查HTML主体(通过img标记)是否引用附件。