2010-05-31 74 views
0

我想使用Redemption從outlook/exchange中的特定文件夾中檢索具有已知EntryID的聯繫人。MAPI_E_INVALID_ENTRYID當通過兌換從Outlook獲取聯繫人

以下代碼調用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。我究竟做錯了什麼?

回答

1

GetMessageFromID將2個條目ID作爲參數(需要1個,可選1個) - 消息條目ID和商店條目ID。 它看起來像你通過一個文件夾條目ID而不是商店條目ID。

+0

啊......有沒有辦法限制它在商店的文件夾?目前我只是在獲取它之後檢查RDOContactItem的所在位置。 – 2010-05-31 19:26:47

+0

您可以使用RDOContactItem.Parent檢索父文件夾(RDOFolder)。然後,您可以使用RDOSession.CompareEntryIDs將文件夾條目ID與另一個文件夾的條目ID進行比較。 – 2010-06-01 22:52:40

+0

感謝您的提示。我正在將它們與==進行比較。現在修復了。 – 2010-06-02 07:45:37