Непонятно как можно сбросить дату контакта (Anniversary или Birthday) программно. Интерактивно это можно сделать выбирая значение None в DateTimePicker'е формы.
private void miOK_Click(object sender, EventArgs e)
{
using (OutlookSession os = new OutlookSession())
{
Contact contact = new Contact();
contact.FirstName = "Nik";
contact.FileAs = contact.FirstName;
os.Contacts.Items.Add(contact);
DateTime dt = new DateTime(1601, 1, 1);
// Изначально даты равны.
// Пустая дата означает 1 января 1601 года
System.Diagnostics.Debug.Assert(contact.Birthday == dt);
// Установить новую дату
contact.Birthday = new DateTime(2010, 3, 17);
contact.Update();
// Теперь даты отличаются
System.Diagnostics.Debug.Assert(contact.Birthday != dt);
// Никак не удается сбросить дату:
try
{
// Вариант 1
contact.Birthday = dt;
contact.Update();
}
catch
{
// Не работает. Исключение при Update()
}
try
{
// Вариант 2
contact.Properties[ContactProperty.Birthday] = null;
contact.Update();
}
catch
{
// Не работает. Исключение при присвоении
}
try
{
// Вариант 3 ( это даже не вариант, просто попытка :-) )
contact.Properties[ContactProperty.Birthday] = dt.ToString();
contact.Update();
}
catch
{
// Не работает. Исключение при присвоении
}
os.Contacts.Items.Remove(contact);
}
}