IMAPISession::OpenProfileSection
Область применения: Outlook 2013 | Outlook 2016
Открывает раздел текущего профиля и возвращает указатель IProfSect для дальнейшего доступа.
HRESULT OpenProfileSection(
LPMAPIUID lpUID,
LPCIID lpInterface,
ULONG ulFlags,
LPPROFSECT FAR * lppProfSect
);
Параметры
lpUID
[в] Указатель на структуру MAPIUID , которая идентифицирует раздел профиля.
lpInterface
[в] Указатель на идентификатор интерфейса (IID), представляющий интерфейс, используемый для доступа к разделу профиля. Передача NULL приводит к тому, что параметр lppProfSect возвращает указатель на стандартный интерфейс раздела профиля IProfSect.
ulFlags
[в] Битовая маска флагов, управляющая доступом к разделу профиля. Можно задать следующие флаги:
MAPI_DEFERRED_ERRORS
Разрешает успешное возвращение OpenProfileSection , возможно, до того, как раздел профиля будет полностью доступен вызывающему клиенту. Если раздел профиля недоступен, последующий вызов может вызвать ошибку.
MAPI_FORCE_ACCESS
Разрешает доступ к разделу профиля, который не принадлежит поставщику.
MAPI_MODIFY
Запрашивает разрешение на чтение и запись. По умолчанию разделы профиля открываются с разрешением только для чтения, и клиенты не должны работать при условии, что было предоставлено разрешение на чтение и запись.
lppProfSect
[out] Указатель на указатель на раздел профиля.
Возвращаемое значение
S_OK
Раздел профиля был успешно открыт.
MAPI_E_NO_ACCESS
Предпринята попытка доступа к разделу профиля, для которого у вызывающего объекта недостаточно разрешений.
MAPI_E_NOT_FOUND
Запрошенный раздел профиля не существует.
Замечания
Метод IMAPISession::OpenProfileSection открывает раздел профиля или объект, поддерживающий интерфейс IProfSect . Разделы профиля используются для чтения сведений из профиля сеанса и их записи в нее.
Вы не можете использовать OpenProfileSection для открытия разделов профилей, принадлежащих отдельным поставщикам служб, если в параметре ulFlags не указано MAPI_FORCE_ACCESS.
Примечания для вызывающих методов
Несколько клиентов могут открыть раздел профиля с разрешением только для чтения, но только один клиент может открыть раздел профиля с разрешением на чтение и запись. Если у другого клиента открыт раздел профиля, который вы пытаетесь открыть, вызвав OpenProfileSection с установленным флагом MAPI_MODIFY, вызов завершится ошибкой, возвращая MAPI_E_NO_ACCESS.
Операция открытия только для чтения завершается ошибкой, если раздел открыт для записи.
Раздел профиля можно создать, вызвав OpenProfileSection с флагом MAPI_MODIFY и несуществующей структурой MAPIUID в параметре lpUID . Обязательно укажите MAPI_MODIFY. Если lpUID указывает на несуществующий MAPIUID , а OpenProfileSection использует режим доступа только для чтения по умолчанию, вызов завершится ошибкой с MAPI_E_NOT_FOUND.