2010-05-31 1 views
0

보너스를 사용하여 Outlook/Exchange의 특정 폴더에있는 알려진 EntryID로 연락처를 검색하고 싶습니다.보너스를 통해 Outlook에서 연락처를받을 때 MAPI_E_INVALID_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. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

GetMessageFromID는 매개 변수 (필수 1 개, 선택적 1 개)로 2 개의 항목 ID를 사용합니다 - 메시지 항목 ID 및 저장소 항목 ID. 폴더 저장소 항목 ID 대신 항목 ID가 전달 된 것으로 보입니다.

+0

아 ... 매장의 폴더로 제한하는 방법이 있습니까? 현재 나는 그것을 가지고 RDOContactItem가 사는 곳을 확인하고 있습니다. –

+0

RDOContactItem.Parent를 사용하여 상위 폴더 (RDOFolder)를 검색 할 수 있습니다. 그런 다음 RDOSession.CompareEntryIDs를 사용하여 폴더 항목 ID를 다른 폴더의 항목 ID와 비교할 수 있습니다. –

+0

팁 주셔서 감사. 나는 그들을 ==와 비교했다. 이제는 그것을 수정했습니다. –