2010-06-30 90 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標記)是否引用附件。