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


IMsgStore::OpenEntry

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

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

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

Параметры

cbEntryID

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

lpEntryID

[в] Указатель на идентификатор записи открываемого объекта или значение NULL. Если lpEntryID имеет значение NULL, OpenEntry открывает корневую папку для хранилища сообщений.

lpInterface

[в] Указатель на идентификатор интерфейса (IID), представляющий интерфейс, используемый для доступа к открытому объекту. Передача null приводит к возврату стандартного интерфейса объекта (IMAPIFolder для папок и IMessage для сообщений).

ulFlags

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

MAPI_BEST_ACCESS

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

MAPI_DEFERRED_ERRORS

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

MAPI_MODIFY

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

lpulObjType

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

lppUnk

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

Возвращаемое значение

S_OK

����� ������� � ������ ��������� ��������� ��� ��������.

MAPI_E_NO_ACCESS

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

MAPI_NO_CACHE

При открытии хранилища в кэшированном режиме клиент или поставщик услуг может вызвать IMsgStore::OpenEntry, установив флаг MAPI_NO_CACHE, чтобы открыть элемент или папку в удаленном хранилище. Если вы открываете хранилище сообщений с флагом MDB_ONLINE на удаленном сервере, вам не нужно использовать флаг MAPI_NO_CACHE.

Замечания

Метод IMsgStore::OpenEntry открывает папку или сообщение и возвращает указатель на интерфейс, который можно использовать для дальнейшего доступа.

Важно!

При открытии записей папок в общедоступном хранилище, таких как папки и сообщения, используйте IMsgStore::OpenEntry вместо IMAPISession::OpenEntry. Это гарантирует правильную работу общедоступных папок при определении нескольких учетных записей Exchange в профиле.

Примечания для вызывающих методов

Папки и сообщения автоматически открываются с разрешением только для чтения, если в параметре ulFlags не задан флаг MAPI_MODIFY или MAPI_BEST_ACCESS. Установка одного из этих флагов не гарантирует определенный тип разрешения; Предоставленные разрешения зависят от поставщика хранилища сообщений, уровня доступа и объекта . Чтобы определить уровень доступа открытого объекта, получите его свойство PR_ACCESS_LEVEL (PidTagAccessLevel).

Хотя IMsgStore::OpenEntry можно использовать для открытия любой папки или сообщения, обычно быстрее использовать метод IMAPIContainer::OpenEntry , если у вас есть доступ к родительской папке папки или сообщения для открытия.

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

Справочные материалы по MFCMAPI

Пример кода MFCMAPI указан в приведенной ниже таблице.

Файл Функция Comment
MAPIFunctions.cpp
CallOpenEntry
MFCMAPI использует метод IMsgStore::OpenEntry для открытия объекта, связанного с идентификатором записи.

См. также

IMAPIContainer::OpenEntry

IMsgStore: IMAPIProp

Mfcmapi (en) � �������� ������� ����