ENTRYID
Область применения: Outlook 2013 | Outlook 2016
Содержит идентификатор записи для объекта MAPI.
Свойство | Значение |
---|---|
Файл заголовка: |
Mapidefs.h |
Связанные макросы: |
CbNewENTRYID, SizedENTRYID |
typedef struct
{
BYTE abFlags[4];
BYTE ab[MAPI_DIM];
} ENTRYID, FAR *LPENTRYID;
Members
abFlags
Битовая маска флагов, которые предоставляют сведения, описывающие объект . Поставщик может задать только первый байт флагов , abFlags[0]; остальные три зарезервированы. Эти флаги не должны быть заданы для идентификаторов постоянных записей; Они задаются только для краткосрочных идентификаторов входа. Для клиентов эта структура доступна только для чтения. В abFlags[0] можно задать следующие флаги:
MAPI_NOTRECIP
Идентификатор записи нельзя использовать в качестве получателя сообщения.
MAPI_NOTRESERVED
Другие пользователи не могут получить доступ к идентификатору записи.
MAPI_NOW
Идентификатор записи нельзя использовать в другое время.
MAPI_SHORTTERM
Идентификатор записи является краткосрочным. Все остальные значения в этом байте должны быть заданы, если не включено другое использование идентификатора записи.
MAPI_THISSESSION
Идентификатор записи нельзя использовать в других сеансах.
Ab
Указывает массив двоичных данных, используемый поставщиками услуг. Клиентское приложение не может использовать этот массив.
Замечания
Структура ENTRYID используется поставщиками хранилища сообщений и адресных книг для создания уникальных идентификаторов для своих объектов. Идентификаторы входа используются для идентификации следующих типов объектов:
Хранилища сообщений
Folders
Сообщения
Контейнеры адресных книг
Списки рассылки
Пользователи обмена сообщениями
Объекты состояний
Разделы профиля
Каждый поставщик использует формат для структуры ENTRYID , который имеет смысл для этого поставщика.
Идентификаторы входа нельзя сравнивать напрямую, так как один объект может быть представлен двумя разными двоичными значениями. Чтобы определить, представляют ли два идентификатора записи один и тот же объект, вызовите метод IMAPISession::CompareEntryIDs .
Когда клиент вызывает метод IMAPIProp::GetProps объекта для получения идентификатора записи, объект возвращает наиболее постоянную форму идентификатора записи. Клиент может убедиться, что идентификатор записи является долгосрочным, проверив, что ни один из флагов не задан в первом байте элемента abFlags .
Когда клиент обращается к идентификатору записи через столбец в таблице, скорее всего, этот идентификатор записи является краткосрочным, а не долгосрочным. Краткосрочные идентификаторы входа можно использовать для открытия соответствующих объектов только в текущем сеансе MAPI. Клиент может проверить, является ли идентификатор записи краткосрочным, проверив, что все флаги заданы в первом байте элемента abFlags .
Некоторые идентификаторы входа являются краткосрочными, но имеют долгосрочное использование. Такой идентификатор записи будет иметь один или несколько соответствующих флагов, заданных в первом байте элемента abFlags .
Структура ENTRYID похожа на структуру FLATENTRY . Однако существуют некоторые отличия:
В структуре ENTRYID не хранится размер идентификатора записи; структура FLATENTRY делает.
Структура ENTRYID хранит данные флага и остальную часть идентификатора записи отдельно; Структура FLATENTRY хранит данные флага с остальной частью идентификатора записи.
Структура ENTRYID передается в качестве параметра методам интерфейса IMAPIProp и следующим методам OpenEntry : IABLogon::OpenEntry, IAddrBook::OpenEntry, IMAPIContainer::OpenEntry, IMAPISession::OpenEntry, IMAPISupport::OpenEntry, IMsgStore::OpenEntry, IMSLogon::OpenEntry
Структура ENTRYID используется для хранения идентификатора записи на диске. Структура FLATENTRY используется для хранения идентификатора записи в файле или его передачи в потоке байтов.
Клиенты всегда должны передавать естественно выровненные идентификаторы записей. Хотя поставщики должны обрабатывать произвольно выровненные идентификаторы входа, клиенты не должны ожидать такого поведения. Сбой передачи правильно выровненного идентификатора записи в метод может привести к сбою выравнивания на процессорах RISC.
Коэффициент естественного выравнивания, обычно 8 байтов, является наибольшим типом данных, поддерживаемым ЦП, и, как правило, тот же коэффициент выравнивания, который используется системным распределителем памяти. Естественно выровненный адрес памяти позволяет ЦП получить доступ к любому типу данных, который он поддерживает на этом адресе без возникновения сбоя выравнивания. Для ЦП RISC тип данных размера N байт обычно должен быть выровнен по четным N байтам, при этом адрес будет кратным N.
Дополнительные сведения см. в разделе Идентификаторы входа.