Поделиться через


Отображение общего календаря получателя

В этом примере показано, как отобразить общий календарь получателя 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);
                }
            }
        }
    }
}

См. также