我正在開發C#中的Outlook 2010自定義插件。這是我第一次使用C#(我通常是一個java傢伙)。從C#中的MailItem獲取命名的MAPI屬性#
在我想訪問的郵件上有一個名爲(自定義)的MAPI屬性,並且在這樣做時遇到了問題。我的理解是,在Outlook 2007中引入了PropertyAccessor對象,可以輕鬆訪問指定的MAPI屬性。我跟着從下列文件中的說明:
http://msdn.microsoft.com/en-us/library/ff868915.aspx
我可以看到一個名爲MAPI屬性我想在使用Outlook間諜的消息訪問。從Outlook間諜,我可以得到關於該酒店的以下信息:
GUID: {00020329-0000-0000-C000-000000000046}
Tag num: 0x80BE0102
ID: PR.AFU.MESSAGE.RETRIEVE.INFO
Type: PT_BINARY
所以,我想下面的代碼(對象郵件的MailItem的有效實例):
mail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/id/{00020329-0000-0000-C000-000000000046}/80BE0102");
這將產生以下異常:
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年版本的Outlook必要的。任何幫助深表感謝!
謝謝。我意識到在弄清楚正確的格式並再次查看Outlook Spy後。只是來這裏發佈相同的事情。 –
對於那些磕磕絆絆的問題,Andrew正在使用(variant,generated)標記號來構造DASL,他應該使用來自命名屬性本身的(不變)ID。命名屬性由其名稱空間(GUID)和ID(字符串或數字)定義。 –