Я использовал 3 различных способа сохранить номера телефона в зависимости от требований использования.
ОБНОВЛЕНИЕ: обновлен приведенный ниже код с использованием образца кода, адаптированного из этого сообщения в блоге , который будет лучше работать в более широком спектре установок Outlook (например, использующих как Exchange, так и PST или доступ к нескольким почтовым ящикам Exchange).
Вот код, который работал у меня в Outlook 2007, чтобы установить статус OOF из внешнего (для Outlook) EXE:
Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.ApplicationClass();
Microsoft.Office.Interop.Outlook.NameSpace ns = app.Session;
foreach (Microsoft.Office.Interop.Outlook.Store store in ns.Stores)
{
if (store.ExchangeStoreType == Microsoft.Office.Interop.Outlook.OlExchangeStoreType.olPrimaryExchangeMailbox)
{
store.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x661D000B", true); // false to turn off OOF
break;
}
}
Убедитесь, что вы не запускаете этот код как администратор и смотрите как не администратор - в противном случае вы можете получить ошибку, связанную с безопасностью в Vista.
Обратите внимание, что в Outlook появятся всплывающие диалоговые окна безопасности, чтобы убедиться, что пользователь согласен с вашим доступом к объектной модели Outlook. Это нормально, когда доступ к объектной модели Outlook осуществляется из внешнего EXE.
Однако, если вы обращаетесь к объектной модели из надстройки, приведенный выше код не совсем правильный: