C++ 如何使用VBA在Outlook中读取PR_邮件\发送\时间?

C++ 如何使用VBA在Outlook中读取PR_邮件\发送\时间?,c++,vba,outlook,C++,Vba,Outlook,我使用MessageSave在Outlook 2010中保存邮件。MessageSave可以附加消息日期和时间。我使用了此函数,但它与我在Outlook VBA中使用的MAPI邮件项中的任何日期/时间属性不一致 根据MessageSave支持,他们使用date PR_MESSAGE_DELIVERY_TIME属性作为时间戳,如果不存在,则使用PR_LAST_MODIFICATION_TIME。他们告诉我:无法直接从VBA访问这些属性。(MessageSave是用C++编写的,使用不同的API)。

我使用MessageSave在Outlook 2010中保存邮件。MessageSave可以附加消息日期和时间。我使用了此函数,但它与我在Outlook VBA中使用的MAPI邮件项中的任何日期/时间属性不一致

根据MessageSave支持,他们使用date PR_MESSAGE_DELIVERY_TIME属性作为时间戳,如果不存在,则使用PR_LAST_MODIFICATION_TIME。他们告诉我:无法直接从VBA访问这些属性。(MessageSave是用C++编写的,使用不同的API)。 有人知道我如何在VBA中访问这些时间吗?我不熟悉C++,但我对C语言有基本的了解。我需要添加到电子邮件文件(PR_MESSAGE_DELIVERY_time或PR_LAST_MODIFICATION_time)中的确切日期/时间,以便能够将这些电子邮件与Outlook中的电子邮件(通过VBA访问属性)相匹配


注:我多年来一直使用MessageSave,它工作得很好,他们也有很好的支持

可通过
MailItem.ReceivedTime
属性访问PR\u邮件发送时间

PR_LAST_MODIFICATION_TIME可通过
MailItem.LastModificationTime
属性访问

可以在VBA中使用
MailItem.PropertyAccessor.GetProperty
访问任何MAPI属性。查看带有的消息,找出要由
MailItem.PropertyAccessor.GetProperty
使用的DASL名称-单击IMessage按钮,选择属性,查看DASL编辑框


请记住,MAPI属性位于UTC时区,而Outlook对象模型返回本地时区的DateTime属性。

谢谢,我尝试了MailItem.ReceivedTime属性,但不幸的是,它只在某些时候匹配。它通常会关闭几秒钟。在接下来的几天里,我将尝试MailItem.PropertyAccessor.GetProperty。请记住,OOM会精确到最近的一秒。如果你想要确切的值,尝试使用赎回-它返回原始数据。