2

C#でOutlook2010カスタムプラグインを開発しています。C#を使用するのはこれが初めてです(私は通常Javaの人です)。

アクセスしたいメッセージに名前付き(カスタム)MAPIプロパティがあり、アクセスに問題があります。私の理解では、Outlook 2007では、名前付きMAPIプロパティに簡単にアクセスできるPropertyAccessorオブジェクトが導入されました。次のドキュメントの指示に従いました。

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

OutlookSpyを使用してメッセージでアクセスしたい名前付きMAPIプロパティを確認できます。Outlook Spyから、プロパティに関する次の情報を取得できます。

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にのみ必要でした。どんな助けでも大歓迎です!

4

3 に答える 3

3

OutlookSpy は、IMessage ウィンドウの DASL 編集ボックスに DASL プロパティ名を表示します。

于 2011-07-29T16:46:01.410 に答える
0

しようとするとどうなるか

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

?

于 2011-07-28T16:37:19.780 に答える
0

Microsoft の MFCMapiも、DASL を見つけてすべての MAPI プロパティを表示する優れたツールです。

于 2012-02-27T17:23:46.153 に答える