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


Получение класса сообщений по умолчанию для папки

В этом примере показано, как использовать свойство DefaultMessageClass для получения класса сообщений по умолчанию для папки.

Пример

Примечание.

Приведенный ниже пример кода представляет собой фрагмент из книги Программирование приложений для Microsoft Office Outlook 2007.

Для получения класса сообщений по умолчанию для папки используйте свойство DefaultMessageClass объекта MAPIFolder. Например, наличие у объекта Folder свойства DefaultMessageClass, равного IPM.Contact, означает, что этот объект представляет папку контакта. Но если для папки в качестве формы по умолчанию задана настраиваемая форма или заменяющая форма, необходимо использовать объект PropertyAccessor , чтобы определить класс сообщения формы по умолчанию. Свойство DefaultMessageClass не возвращает класс сообщения формы по умолчанию для папки.

В следующем примере кода процедура GetDefaultMessageClass использует PropertyAccessor, чтобы определить для папки форму по умолчанию. Если свойство папки PR_DEF_POST_MSGCLASS(PidTagDefaultPostMessageClass) не найдено, и Outlook создает ошибку, блок try…catch возвращает свойство DefaultMessageClass для объекта Folder.

Если вы используете Visual Studio для тестирования этого примера кода, сначала добавьте ссылку на компонент Microsoft Outlook 15.0 Object Library и задайте переменную Outlook при импорте пространства имен Microsoft.Office.Interop.Outlook. Инструкция using не должна находиться непосредственно перед функциями в примере кода, но ее нужно добавить перед объявлением общедоступного класса. В следующей строке кода показано, как выполнить импорт и назначение в C#.

using Outlook = Microsoft.Office.Interop.Outlook;
private string GetDefaultMessageClass(Outlook.Folder folder)
{
    if (folder == null)
        throw new ArgumentNullException();
    try
    {
        const string PR_DEF_POST_MSGCLASS =
            @"http://schemas.microsoft.com/mapi/proptag/0x36E5001E";
        string messageClass =
            folder.PropertyAccessor.GetProperty(
            PR_DEF_POST_MSGCLASS).ToString();
        return messageClass;
    }
    catch
    {
        return folder.DefaultMessageClass;
    }
}

См. также