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


Поиск имени профиля

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

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

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

Поиск имени любого профиля

  1. Вызовите MAPIAdminProfiles , чтобы получить указатель интерфейса IProfAdmin .

  2. Вызовите IProfAdmin::GetProfileTable , чтобы получить доступ к таблице профилей.

  3. Вызовите метод IMAPITable::QueryRows таблицы профилей, чтобы получить все строки в таблице и проверить каждую из них, чтобы определить, представляет ли она целевой профиль.

Поиск имени профиля по умолчанию

  1. Вызов mapIAdminProfiles.

  2. Вызовите IProfAdmin::GetProfileTable , чтобы получить доступ к таблице профилей.

  3. Создайте ограничение свойств со структурой SPropertyRestriction , чтобы сопоставить PR_DEFAULT_PROFILE (PidTagDefaultProfile) со значением TRUE.

  4. Вызовите IMAPITable::FindRow , чтобы найти строку в таблице профилей, представляющей профиль по умолчанию. Столбец PR_DISPLAY_NAME (PidTagDisplayName) содержит имя профиля по умолчанию.

Поиск имени текущего профиля

Чтобы найти имя текущего профиля, выполните одно из следующих действий:

  • Если у вас есть структура MAPIUID , представляющая один из разделов текущего профиля, передайте ее в параметре lpUID в IMAPISession::OpenProfileSection. Получите свойство PR_PROFILE_NAME раздела профиля (PidTagProfileName) с помощью метода IMAPIProp::GetProps .

  • Вызовите IMAPISession::GetStatusTable , чтобы получить доступ к таблице состояния и найти строку со столбцом PR_RESOURCE_TYPE (PidTagResourceType), для которого задано значение MAPI_SUBSYSTEM. PR_DISPLAY_NAME столбцом для этой строки является имя профиля. Не используйте таблицу состояний во время запуска, так как она блокирует приложение до тех пор, пока диспетчер очереди MAPI не завершит инициализацию всех поставщиков транспорта. Это может снизить производительность.