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


IABLogon::OpenEntry

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

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

HRESULT OpenEntry(
  ULONG cbEntryID,
  LPENTRYID lpEntryID,
  LPCIID lpInterface,
  ULONG ulFlags,
  ULONG FAR * lpulObjType,
  LPUNKNOWN FAR * lppUnk
);

Параметры

cbEntryID

[в] Число байтов в идентификаторе записи, на который указывает параметр lpEntryID .

lpEntryID

[в] Указатель на идентификатор записи контейнера, пользователя сообщений или списка рассылки, который нужно открыть.

lpInterface

[в] Указатель на идентификатор интерфейса (IID), представляющий интерфейс, используемый для доступа к открытому объекту. Передача NULL возвращает идентификатор стандартного интерфейса объекта. Для контейнеров стандартным интерфейсом является IABContainer : IMAPIContainer. Стандартными интерфейсами для объектов адресной книги являются IDistList : IMAPIContainer для списка рассылки и IMailUser : IMAPIProp для пользователя обмена сообщениями.

ulFlags

[в] Битовая маска флагов, управляющая способом открытия объекта. Можно задать следующие флаги:

MAPI_BEST_ACCESS

Запрашивает открытие объекта с максимальными разрешениями сети, разрешенными для пользователя, и максимальным доступом к клиентскому приложению. Например, если клиент имеет разрешение на чтение и запись, объект должен быть открыт с разрешением на чтение и запись; Если клиент имеет разрешение только для чтения, объект должен быть открыт с разрешением только для чтения.

MAPI_DEFERRED_ERRORS

Позволяет методу OpenEntry успешно возвращать данные, возможно, до того, как вызывающий клиент полностью обращается к объекту. Если доступ к объекту не осуществляется, последующий вызов объекта может вызвать ошибку.

MAPI_MODIFY

Запрашивает разрешение на чтение и запись. По умолчанию объекты открываются с доступом только для чтения, и клиенты не должны предполагать, что предоставлено разрешение на чтение и запись.

lpulObjType

[out] Указатель на тип открытого объекта.

lppUnk

[out] Указатель на указатель на открытый объект.

Замечания

S_OK

Объект был успешно открыт.

MAPI_E_NO_ACCESS

Либо у пользователя недостаточно разрешений для открытия объекта, либо предпринята попытка открыть объект только для чтения с разрешением на чтение и запись.

MAPI_E_NOT_FOUND

Идентификатор записи, заданный lpEntryID , не представляет объект .

MAPI_E_UNKNOWN_ENTRYID

Идентификатор записи в параметре lpEntryID не имеет формата, распознаваемого поставщиком адресной книги.

MAPI вызывает метод OpenEntry для открытия контейнера, пользователя для обмена сообщениями или списка рассылки.

Примечания для исполнителей

Перед вызовом метода OpenEntry MAPI определяет, что идентификатор записи в параметре lpEntryID принадлежит вам, а не другому поставщику. MAPI делает это путем сопоставления структуры MAPIUID в идентификаторе записи с MAPIUID , зарегистрированным путем вызова метода IMAPISupport::SetProviderUID при запуске.

Откройте объект только для чтения, если в параметре ulFlags не установлен флаг MAPI_MODIFY или MAPI_BEST_ACCESS. Если вы не разрешаете изменение запрошенного объекта, не открывайте объект вообще и возвращайте MAPI_E_NO_ACCESS.

Если MAPI передает значение NULL для lpEntryID, откройте корневой контейнер в иерархии контейнеров.

Объект, который требуется открыть, может быть объектом, скопированным из другого поставщика. В этом случае оно будет поддерживать свойство PR_TEMPLATEID (PidTagTemplateid). Если объект поддерживает это свойство, вызовите метод IMAPISupport::OpenTemplateID для привязки к коду этой записи во внешнем поставщике, передав PR_TEMPLATEID в параметре lpTemplateID и 0 в параметре ulTemplateFlags . IMAPISupport::OpenTemplateID передает эти сведения внешнему поставщику в вызове метода IABLogon::OpenTemplateID внешнего поставщика. Если IMAPISupport::OpenTemplateID выдает ошибку, как правило, из-за того, что внешний поставщик недоступен или не включен в профиль, попробуйте продолжить, обрабатывая необвязанную запись как доступную только для чтения. Дополнительные сведения об открытии записей внешней адресной книги см. в статье Использование в качестве поставщика адресной книги узла.

См. также

IABLogon : IUnknown