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


Определение новых свойств MAPI

Область применения: Outlook 2013 | Outlook 2016

Несмотря на множество свойств, предоставляемых MAPI для использования клиентами и поставщиками услуг, MAPI позволяет при необходимости создавать новые свойства. Некоторые из допустимых сценариев определения новых общедоступных свойств включают в себя клиент, создающий свойства для поддержки нового класса сообщений, и поставщик услуг, создающий новые свойства для предоставления уникальных функций системы обмена сообщениями.

Как правило, поставщик услуг не может определять новые свойства для существующего объекта MAPI или класса сообщения. Одним из основных преимуществ использования MAPI является настройка стандартных идентификаторов и форматов для большого количества системных элементов обмена сообщениями, что позволяет пользователям легко смешивать и сопоставлять поставщиков услуг. Поставщики услуг, использующие нестандартные свойства, также не работают с другими поставщиками услуг.

Клиенты могут создавать свойства содержимого для новых классов сообщений следующими способами:

  • Использование идентификаторов свойств в заданном диапазоне для свойств содержимого, относящихся к определенному классу сообщения.

    • Или-
  • Использование именованных свойств.

Первый вариант предпочтителен, так как не все поставщики услуг поддерживают именованные свойства. MAPI определяет два отдельных диапазона, которые клиенты могут использовать для новых свойств содержимого класса сообщений:

  • 0x6800 0x7BFF для передаваемых свойств

  • 0x7C00 0x7FFF для непередающихся свойств

Идентификаторы свойств должны находиться в предопределенных диапазонах, чтобы предотвратить конфликт между свойствами, определенными разными поставщиками или пользователями. Однако пользователи свойств в этих диапазонах не могут делать предположения о поведении свойств. Каждый клиент, создающий новый класс сообщений, имеет доступ к этим диапазонам; Свойство с идентификатором xxxx может означать одно поведение для одного класса сообщений, а другое поведение для другого класса сообщений.

Именованные свойства используются, чтобы гарантировать уникальность определенного свойства для класса сообщений. Идентификаторы именованных свойств начинаются в диапазоне 0x8000. Клиенты определяют одно или несколько имен, а затем вызывают метод IMAPIProp::GetIDsFromNames хранилища сообщений, чтобы связать идентификатор с каждым именем. Именованные свойства могут использоваться клиентами или поставщиками служб для определения новых свойств для любого объекта, только если владелец объекта поддерживает именованные свойства. Пользователи этих свойств вызывают GetIDsFromNames и связанный метод IMAPIPropGetNamesFromIDs для сопоставления между именем и его идентификатором.

Все свойства, новые или существующие, должны использовать набор предопределенных типов свойств. Новые типы свойств нельзя добавлять, а существующие типы нельзя изменять или удалять. Простые небольшие свойства, такие как однозначные или 16-разрядные целочисленные свойства, могут храниться в любом подходящем типе. Например, целые числа можно хранить как ULONG , а строки — как PT_STRING8.

Используйте тип PT_BINARY , чтобы указать подсчетный массив байтов. Этот тип свойства полезен для расширения типов данных, которые могут храниться в объекте . Байты передаются последовательно, и не делается никаких предположений о значении данных. Когда клиентское приложение считывает данные из такого свойства, данные не изменяются по сравнению с тем, как они были сохранены. Клиент должен выполнить любое необходимое переключение байтов при перемещении данных между ЦП.

См. также

Обзор свойств MAPI