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


IProviderAdmin::OpenProfileSection

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

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

HRESULT OpenProfileSection(
  LPMAPIUID lpUID,
  LPCIID lpInterface,
  ULONG ulFlags,
  LPPROFSECT FAR * lppProfSect
);

Параметры

lpUID

[в] Указатель на структуру MAPIUID , содержащую уникальный идентификатор открываемого раздела профиля. Клиенты не должны передавать значение NULL для параметра lpUID . Поставщики услуг могут передавать значение NULL для получения MAPIUID при вызове из своих функций точки входа службы сообщений.

lpInterface

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

ulFlags

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

MAPI_DEFERRED_ERRORS

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

MAPI_MODIFY

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

MAPI_FORCE_ACCESS

Предоставляет доступ ко всем разделам профиля, даже к разделам, принадлежащим отдельным поставщикам услуг.

lppProfSect

[out] Указатель на указатель на раздел профиля.

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

S_OK

Раздел профиля был успешно открыт.

MAPI_E_NO_ACCESS

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

MAPI_E_NOT_FOUND

Запрошенный раздел профиля не существует.

Замечания

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

Клиенты не могут открывать разделы профиля, принадлежащие поставщикам, с помощью метода OpenProfileSection .

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

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

Если вы запросите openProfileSection открыть несуществующий раздел профиля, передав MAPI_MODIFY в ulFlags и неизвестный MAPIUID в lpUID, раздел профиля будет создан.

При запросе OpenProfileSection открыть несуществующий раздел с разрешением только для чтения, он возвращает MAPI_E_NOT_FOUND.

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

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

Файл Функция Comment
MAPIProfileFunctions.cpp
OpenProfileSection
MFCMAPI использует метод IProviderAdmin::OpenProfileSection для открытия раздела профиля из текущего профиля.

См. также

IMAPIProp : IUnknown

IProfSect : IMAPIProp

MAPIUID

IProviderAdmin : IUnknown

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