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


MAPILogonEx

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

Регистрирует клиентское приложение в сеансе с помощью системы обмена сообщениями.

Свойство Значение
Файл заголовка:
Mapix.h
Реализовано в:
MAPI
Вызывающая сторона:
Клиентские приложения
HRESULT MAPILogonEx(
  ULONG_PTR ulUIParam,
  LPSTR lpszProfileName,
  LPSTR lpszPassword,
  FLAGS flFlags,
  LPMAPISESSION FAR * lppSession
);

Параметры

ulUIParam

[в] Дескриптор к окну, в котором диалоговое окно входа является модальным. Если диалоговое окно не отображается во время вызова, параметр ulUIParam игнорируется. Этот параметр может быть равен нулю.

lpszProfileName

[в] Указатель на строку, содержащую имя профиля, используемого при входе пользователя. Эта строка ограничена 64 символами.

lpszPassword

[в] Указатель на строку, содержащую пароль профиля. Параметр lpszPassword должен иметь значение NULL.

flFlags

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

MAPI_ALLOW_OTHERS

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

MAPI_APP_PROFILE

Включите профили приложений в список диалоговых окон входа. Если этот флаг не задан, профили приложений не включаются. Этот флаг не распознается или поддерживается во всех реализациях MAPI.

MAPI_BG_SESSION

Войдите в сеанс и выполните все операции в фоновом режиме. Как правило, если клиент намерен выполнять обработку в фоновом потоке или отдельным процессом, ненавязчивым для потока переднего плана, он должен вызывать с флагом MAPI_BG_SESSION. Примерами использования MAPI_BG_SESSION является клиентское приложение, например подсистема индексирования или открытие файла личных папок (PST) для доступа к фоновому типу. MAPILogonEx.

MAPI_EXPLICIT_PROFILE

Не следует использовать профиль по умолчанию, и пользователь должен предоставить профиль.

MAPI_EXTENDED

Войдите в систему с расширенными возможностями. Этот флаг всегда должен быть установлен.

MAPI_FORCE_DOWNLOAD

Перед возвратом необходимо скачать все сообщения пользователя. Если флаг MAPI_FORCE_DOWNLOAD не задан, сообщения можно скачать в фоновом режиме после возврата вызова MAPILogonEx.

MAPI_LOGON_UI

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

MAPI_NEW_SESSION

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

MAPI_NO_MAIL

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

MAPI_NT_SERVICE

Вызывающий объект работает как служба Windows. Вызывающие пользователи, которые не работают как служба Windows, не должны устанавливать этот флаг; Вызывающие пользователи, работающие как служба, должны установить этот флаг.

MAPI_SERVICE_UI_ALWAYS

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

MAPI_TIMEOUT_SHORT

Вход должен завершиться ошибкой, если он заблокирован более чем на несколько секунд.

MAPI_UNICODE

Переданные строки имеют формат Юникода. Если флаг MAPI_UNICODE не задан, строки имеют формат ANSI.

MAPI_USE_DEFAULT

Подсистема обмена сообщениями должна заменить имя профиля по умолчанию для параметра lpszProfileName . Флаг MAPI_EXPLICIT_PROFILE игнорируется, если lpszProfileName не имеет значение NULL или пусто.

lppSession

[out] Указатель на указатель на интерфейс сеанса MAPI.

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

S_OK

Вход выполнен успешно.

MAPI_E_LOGON_FAILED

Вход не удалось выполнить либо из-за того, что один или несколько параметров MAPILogonEx были недопустимыми, либо из-за того, что было открыто слишком много сеансов.

MAPI_E_TIMEOUT

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

MAPI_E_USER_CANCEL

Пользователь отменил операцию, обычно нажав кнопку Отмена в диалоговом окне.

Замечания

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

Параметр lpszProfileName игнорируется, если существует предыдущий сеанс с именем MapiLogonEx с установленным флагом MAPI_ALLOW_OTHERS и если MAPI_NEW_SESSION флага не задан. Если параметр lpszProfileName имеет значение NULL или указывает на пустую строку, а параметр flFlags включает флаг MAPI_LOGON_UI, функция MAPILogonEx создает диалоговое окно входа с пустым полем для имени профиля.

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

Флаг MAPI_EXPLICIT_PROFILE не приводит к использованию имени профиля по умолчанию, если lpszProfileName имеет значение NULL или пусто, если флаг MAPI_USE_DEFAULT также не присутствует.

Флаг MAPI_NO_MAIL имеет несколько эффектов, которые приводят к следующим последствиям, если не используется диспетчер очереди MAPI:

  • Во время этого сеанса диспетчер очереди MAPI не может отправлять или доставлять сообщения. Отправлять и доставлять сообщения могут только тесно связанные поставщики магазинов и транспортных услуг.

  • Серверные хранилища по-прежнему могут отправлять или доставлять сообщения.

  • Сообщения, отправленные или доставляемые серверными хранилищами, не обрабатываются никакими поставщиками перехватчиков.

  • Параметры транспорта для каждого сообщения и получателя недоступны.

  • Таблица состояния не содержит записей для поставщиков транспорта, а любые функции транспорта, зависящие от объектов состояния (например, конфигурации), недоступны.

  • Строка очереди сообщений в таблице состояния содержит значение STATUS_FAILURE.

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

Служба всегда должна входить в систему с помощью флага MAPI_NO_MAIL.

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

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

Файл Функция Comment
MAPIObjects.cpp
CMapiObjects::MAPILogonEx
MFCMAPI использует метод MAPILogonEx для входа в MAPI.

См. также

IMAPISession::GetMsgStoresTable

IMAPISession::OpenMsgStore

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