2011-07-28 6 views
2

C#에서 Outlook 2010 사용자 지정 플러그인을 개발 중입니다. 이것은 C#을 사용하는 나의 처음입니다 (저는 보통 자바 녀석입니다).C#에서 MailItem의 명명 된 MAPI 속성 가져 오기

액세스하려는 메시지에 명명 된 (사용자 지정) MAPI 속성이 있으며 문제가 발생합니다. Outlook 2007에서는 명명 된 MAPI 속성에 쉽게 액세스 할 수 있도록 PropertyAccessor 개체가 도입되었습니다.

http://msdn.microsoft.com/en-us/library/ff868915.aspx

가 나는 아웃룩 스파이를 사용하여 메시지에 액세스 할 명명 된 MAPI 속성을 볼 수 있습니다 나는 다음과 같은 문서의 지침을 따랐다. 아웃룩 스파이에서 내가 호텔에 대하여 다음과 같은 정보를 얻을 수 있습니다 :

mail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/id/{00020329-0000-0000-C000-000000000046}/80BE0102"); 

이 다음과 같은 예외를 생성합니다

GUID: {00020329-0000-0000-C000-000000000046} 
Tag num: 0x80BE0102 
ID:  PR.AFU.MESSAGE.RETRIEVE.INFO 
Type: PT_BINARY 

그래서 나는 (개체 메일이는 MailItem의 유효한 인스턴스) 다음 코드를 시도 :

The property "http://schemas.microsoft.com/mapi/id/{00020329-0000-0000-C000-000000000046}/80BE0102" is unknown or cannot be found 

그래서이 속성을 실제로 얻는 방법은 궁금합니다. 네임 스페이스 참조가 잘못 형성 되었습니까? 또는이 예에 설명 된대로 내가 방법을 사용해야합니까 :

http://www.outlookcode.com/codedetail.aspx?id=1112

나의 이해는이 전망 사전 2007 버전에만 필요하다고했다. 어떤 도움을 많이 주시면 감사하겠습니다!

답변

3

OutlookSpy는 IMessage 창의 DASL 입력란에 DASL 속성 이름을 제공합니다.

+0

고마워요. 적절한 형식을 알아 내고 Outlook Spy를 다시보고 깨달았습니다. 똑같은 것을 게시하기 위해 여기에 왔을뿐입니다. –

+1

Andrew는이 질문에 걸림돌이 된 것을 나중에 참조하기 위해 DASL을 생성하기 위해 (variant, generated) 태그 번호를 사용했습니다. 여기서 DASL은 명명 된 속성 자체에서 (invariant) ID를 사용해야합니다. 명명 된 속성은 네임 스페이스 (GUID)와 ID (문자열 또는 숫자)로 정의됩니다. –

0

당신이

mail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x80BE0102"); 

을하려고하면 어떻게됩니까?

+0

나는 그 방법이 태그 번호가 <0x80000000 인 교환 등록 정보에서만 작동한다는 것을 알고 있기 때문에 아직 시도하지 않았습니다. 나는 그것을 시도 할 것이고, 그것이 성공하면 다시보고 할 것이다. –

+0

proptag 참조를 사용하는 그 접근법도 작동하지 않았습니다. –

+1

문자열 스키마를 사용하여 작업했습니다 : mail.PropertyAccessor.GetProperty ("http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/PR.AFU.MESSAGE.RETRIEVE. INFO "); –

관련 문제