4

EWSAPIを使用して新しい連絡先を作成しようとしています。連絡先のタイトルプロパティを除いて、必要なすべての値を設定できます。私はコードを試しました:

oContact = new Contact(oService);
oContact.GivenName = "John";
oContact.Surname = "Doe";
oContact.Displayname = oContact.Surname;

// set the title property as extended property
// reference: http://msdn.microsoft.com/en-us/library/gg274394.aspx
ExtendedPropertyDefinition oTitleProp = new ExtendedPropertyDefinition(
  new Guid("{00062004-0000-0000-C000-000000000046}"),
  0x3A45,
  MapiPropertyType.String);
oContact.SetExtendedProperty(oTitleProp, "Mr.");

oContact.Save();

エラーは発生しませんが、Outlook 2010のタイトルフィールドを確認すると、空になっています。Exchange2010を使用しています。

私が間違ったことはありますか?

敬具

フォルクマー

4

1 に答える 1

8

簡潔な答え

拡張プロパティ定義を作成するときは、上記のコードの代わりに、 を指定するコンストラクターを使用しないでくださいpropertySetId。代わりに、次のように構成します。

ExtendedPropertyDefinition oTitleProp = new ExtendedPropertyDefinition(
    0x3A45,
    MapiPropertyType.String);

より長い答え

マイクロソフトからの参照は興味深いものです。Inside Microsoft Exchange Server 2007 Web Services の拡張プロパティに関する章を読んで、私は常々、カスタム範囲にない拡張プロパティ (0x8000 未満のもの) については、それらを参照するときに propertySetId を除外すると考えていました。そのページ、マイクロソフトはあなたがそれを使用することをほのめかしているようです.

価値のあるものとして、Inside Microsoft Exchange Server 2007 Web Services の無料で入手できる付録 (付録 C) があり、http://www.microsoft.com/mspress/companion/9780735623927/で拡張プロパティについても説明されています。 propertySetId を使用する場合と使用しない場合についての Microsoft ページ。

また、http://msdn.microsoft.com/en-us/library/cc433490 (EXCHG.80).aspx には、プロパティとそれに対応するプロパティ セットのより正確なリストがあります。

于 2011-02-11T12:32:06.643 に答える