如何从 MAPI 消息中检索内容类型

How to retrieve content type from a MAPI Imessage


我是 MAPI 编程的新手。我正在尝试检查 MAPI Imessage(c++ IUnknown 对象)是否加密,如果我手头有 mime,我将检查内容类型,但是在 MAPI IMessage 对象中检查什么?
我已经看到 PR_X400_CONTENT_TYPE 属性,我不确定这是否是所需的 属性,因为我无法使用 IMessage::GetProps 函数获得它。我尝试使用以下代码:

SizedSPropTagArray(9, mcols) = { 9, { PR_MESSAGE_CLASS, PR_SENDER_NAME, PR_SENDER_EMAIL_ADDRESS, PR_RTF_IN_SYNC, PR_RECEIVED_BY_EMAIL_ADDRESS, PR_RECEIVED_BY_NAME, PR_RECEIVED_BY_ENTRYID, PR_TRANSPORT_MESSAGE_HEADERS, PR_X400_CONTENT_TYPE } };
ULONG pcount; SPropValue *props = 0; HRESULT hr;
hr = message->GetProps((SPropTagArray*)&mcols, 0, &pcount, &props);
if (props[8].ulPropTag == PR_X400_CONTENT_TYPE) {
// not going here
}


但它没有返回这个特定的 属性。
提前致谢。

MAPI 不存储内容类型,因为 MIME 不是 MAPI 的本机存储。使用 PR_MESSAGE_CLASS 属性 - 签名消息将是 IPM.NOTE.SMIME.MultipartSigned.* 并且 IPM.NOTE.SMIME.* 用于加密消息。