Проверка ответа руководителя на приглашение на собрание
В этом примере показано использование методов GetExchangeUser() и GetExchangeUserManager() для проверки состояния ответа руководителя текущего пользователя на приглашение на собрание.
Пример
Примечание.
Приведенный ниже пример кода представляет собой фрагмент из книги Программирование приложений для Microsoft Office Outlook 2007.
Чтобы определить, принято или отклонено приглашение на собрание соответствующим получателем, используйте свойство MeetingResponseStatus объекта Recipient из коллекции Recipients, связанной с объектом AppointmentItem .
В следующем примере кода метод CheckManagerResponseStatus принимает в качестве параметра объект AppointmentItem. Метод CheckManagerResponseStatus получает объект ExchangeUser путем вызова метода GetExchangeUser для текущего пользователя. После этого метод CheckManagerResponseStatus получает объект ExchangeUser, связанный с руководителем текущего пользователя, посредством вызова метода GetExchangeUserManager. С помощью метода CompareEntryIDs(String, String) объекта NameSpace в этом примере проверяется, соответствует ли объект Recipient, связанный с объектом AppointmentItem, объекту ExchangeUser, который представляет руководителя пользователя. Если метод CompareEntryIDs возвращает значение true, это значит, что руководитель пользователя присутствует в коллекции Recipients, и метод CheckManagerResponseStatus возвращает значение свойства MeetingResponseStatus для руководителя. Если метод CompareEntryIDs возвращает значение false, метод CheckManagerResponseStatus возвращает пустую ссылку.
Если вы используете Visual Studio для тестирования этого примера кода, сначала добавьте ссылку на компонент Microsoft Outlook 15.0 Object Library и задайте переменную Outlook при импорте пространства имен Microsoft.Office.Interop.Outlook. Инструкция using не должна находиться непосредственно перед функциями в примере кода, но ее нужно добавить перед объявлением общедоступного класса. В следующей строке кода показано, как выполнить импорт и назначение в C#.
using Outlook = Microsoft.Office.Interop.Outlook;
private Object CheckManagerResponseStatus(Outlook.AppointmentItem appt)
{
try
{
if (appt == null)
{
throw new ArgumentNullException();
}
Outlook.AddressEntry user =
Application.Session.CurrentUser.AddressEntry;
Outlook.ExchangeUser userEx = user.GetExchangeUser();
if (userEx == null)
{
return null;
}
Outlook.ExchangeUser manager =
userEx.GetExchangeUserManager();
if (manager == null)
{
return null;
}
foreach (Outlook.Recipient recip in appt.Recipients)
{
if (Application.Session.CompareEntryIDs(
recip.AddressEntry.ID, manager.ID))
{
return recip.MeetingResponseStatus;
}
}
return null;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return null;
}
}