Outlook.MailItem.EntryID和Mapi32.dll MessageID之间的差异

Outlook.MailItem.EntryID和Mapi32.dll MessageID之间的差异,outlook,vbo,mapi,Outlook,Vbo,Mapi,我需要从outlook VBO执行一些功能。假设我正在从outlook.mailitem下载附件。因此,我通过在OutLook.MailItem.EntryID前面加上每个电子邮件的唯一EntryID来保存这些文件 现在,我有了另一个使用Mapi32.dll的功能或应用程序,需要访问这些文件。因此,我使用MessageID属性来获取文件,但问题是当我从Mapi32.dll检索MessageID属性时,它会返回类似aaaaa khslft5unxklnj80rmsex8aeyxsgm4yvnplc

我需要从outlook VBO执行一些功能。假设我正在从outlook.mailitem下载附件。因此,我通过在OutLook.MailItem.EntryID前面加上每个电子邮件的唯一EntryID来保存这些文件

现在,我有了另一个使用Mapi32.dll的功能或应用程序,需要访问这些文件。因此,我使用MessageID属性来获取文件,但问题是当我从Mapi32.dll检索MessageID属性时,它会返回类似aaaaa khslft5unxklnj80rmsex8aeyxsgm4yvnplcn7kj9x/a8aaaaaqwaaeyxsgm4yvnplcn7kj9x/a8aaaaoy+SWQAAA的内容

但Outlook的条目ID是1DCBEE7832C89149AFAEBC41B53EAB85


我认为EntryID和MessageID都是相同的,但这是从MapiEx加密的吗?我如何解密它以获得原始EntryID?或者Outlook.MailItem对象和Mapi32.dll MailMessage对象之间是否有其他公共属性可用于在两个工具之间共享信息?

前者看起来像base64编码的条目id。后者看起来很奇怪-条目id通常以4个二进制0开头(十六进制表示法中的8个“0”)

我不明白你从哪里得到的64进制字符串。你能分享一些你的“mapi32.dll”代码吗?