【问题标题】:MAPI_E_INVALID_ENTRYID when getting contact from Outlook via Redemption通过兑换从 Outlook 获取联系人时的 MAPI_E_INVALID_ENTRYID
【发布时间】:2010-06-01 00:43:36
【问题描述】:

我想使用 Redemption 从 Outlook/exchange 检索特定文件夹中具有已知 EntryID 的联系人。

以下代码在 RDOSession 对象上调用 GetMessageFromID。我只想要标准联系人文件夹中的联系人,所以我使用第二个参数来限制搜索空间。

RDOFolder folder = Session.GetDefaultFolder(rdoDefaultFolders.olFolderContacts);
RDOContactItem i = Session.GetMessageFromID(syncRow.SyncId, folder.EntryID, null) as RDOContactItem;

每当我执行此兑换时,都会引发 COM 异常:Error in IMAPISession.OpenMsgStore: MAPI_E_INVALID_ENTRYID。我做错了什么?

【问题讨论】:

    标签: c# interop outlook-redemption


    【解决方案1】:

    GetMessageFromID 将 2 个条目 ID 作为参数(1 个必需,1 个可选) - 消息条目 ID 和商店条目 ID。 看起来您传递的是 文件夹 条目 ID,而不是商店条目 ID。

    【讨论】:

    • 啊...有没有办法将其限制在商店中的文件夹中?目前,我只是在获得 RDOContactItem 后检查它的位置。
    • 您可以使用 RDOContactItem.Parent 来检索父文件夹(RDOFolder)。然后,您可以使用 RDOSession.CompareEntryIDs 将文件夹条目 ID 与另一个文件夹的条目 ID 进行比较。
    • 感谢您的提示。我正在将它们与==进行比较。现在修复了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多