Отображение общего календаря получателя
В этом примере показано, как отобразить общий календарь получателя c помощью методов CreateRecipient(String) и GetSharedDefaultFolder(Recipient, OlDefaultFolders).
Пример
Примечание.
Приведенный ниже пример кода взят из книги Programming Applications for Microsoft Office Outlook 2007 ("Программирование приложений для Microsoft Office Outlook 2007").
Отправляемые элементы, такие как объекты MailItem , всегда предоставляют свойство Recipients , которое, в свою очередь, позволяет получать доступ к коллекции Recipients для отправляемого элемента. Чтобы создать объект Recipient , который не связан с коллекцией Recipients элемента, используется метод CreateRecipient(String) объекта NameSpace . Затем этот несвязанный объект Recipient передается в метод GetSharedDefaultFolder(Recipient, OlDefaultFolders) , который возвращает общую папку Exchange. Далее можно открыть общую папку Exchange и отобразить эту папку в окне проводника. GetSharedDefaultFolder используется при делегировании в Exchange, когда делегат обладает разрешением на доступ к папке представителя. Перед передачей объекта Recipient в метод GetSharedDefaultFolder необходимо разрешить его. Чтобы разрешить объект Recipient, вызовите его метод Resolve() .
В следующем примере кода DisplayManagerCalendar открывает и отображает папку "Календарь" руководителя текущего пользователя, вызывая CreateRecipient и GetSharedDefaultFolder. Если у пользователя отсутствует разрешение на открытие папки "Календарь" руководителя или в случае ошибки, появляется диалоговое окно оповещения.
Примечание.
[!Примечание] При создании объекта Recipient с помощью метода CreateRecipient объекта Namespace или метода Add(String) коллекции Recipients необходимо предоставить имя получателя. Затем объект Recipient разрешается по этому имени. Имя получателя может быть представлено в любом из следующих форматов:
- Отображаемое имя
- псевдоним;
- SMTP-адрес.
Если вы используете Visual Studio для тестирования этого примера кода, сначала добавьте ссылку на компонент Microsoft Outlook 15.0 Object Library и задайте переменную Outlook при импорте пространства имен Microsoft.Office.Interop.Outlook. Инструкция using не должна находиться непосредственно перед функциями в примере кода, но ее нужно добавить перед объявлением общедоступного класса. В следующей строке кода показано, как выполнить импорт и назначение в C#.
using Outlook = Microsoft.Office.Interop.Outlook;
private void DisplayManagerCalendar()
{
Outlook.AddressEntry addrEntry =
Application.Session.CurrentUser.AddressEntry;
if (addrEntry.Type == "EX")
{
Outlook.ExchangeUser manager =
Application.Session.CurrentUser.
AddressEntry.GetExchangeUser().GetExchangeUserManager();
if (manager != null)
{
Outlook.Recipient recip =
Application.Session.CreateRecipient(manager.Name);
if (recip.Resolve())
{
try
{
Outlook.Folder folder =
Application.Session.GetSharedDefaultFolder(
recip, Outlook.OlDefaultFolders.olFolderCalendar)
as Outlook.Folder;
folder.Display();
}
catch
{
MessageBox.Show("Could not open manager's calendar.",
"GetSharedDefaultFolder Example",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}
}