IMAPISupport::StoreLogoffTransports
Область применения: Outlook 2013 | Outlook 2016
Запрашивает упорядоченный выпуск хранилища сообщений.
HRESULT StoreLogoffTransports(
ULONG FAR * lpulFlags
);
Параметры
lpulFlags
[вход, выход] Битовая маска флагов, управляющая тем, как происходит выход из хранилища сообщений. На входных данных все флаги для этого параметра являются взаимоисключающими; Для каждого вызова можно задать только один из следующих флагов:
LOGOFF_ABORT
Все действия поставщика транспорта для этого хранилища должны быть остановлены перед выходом из системы. Элемент управления возвращается клиенту после того, как действие будет остановлено, а диспетчер очереди MAPI выехал из хранилища. Если выполняется какое-либо действие транспорта, выход из системы не происходит, и в поведении диспетчера очереди MAPI или поставщика транспорта не происходит никаких изменений. Если в настоящее время действия отсутствуют, диспетчер очереди MAPI освобождает хранилище.
LOGOFF_NO_WAIT
Диспетчер очереди MAPI должен освободить хранилище и возвратить управление клиенту сразу после отправки всей исходящей почты, готовой к отправке. Если хранилище сообщений имеет папку "Входящие" по умолчанию, все внутрипроцессное сообщение получается, а затем отключается дальнейший прием.
LOGOFF_ORDERLY
Диспетчер очереди MAPI должен освободить хранилище и вернуть управление клиенту сразу после завершения обработки всех ожидающих сообщений. Не следует обрабатывать новые сообщения.
LOGOFF_PURGE
Работает так же, как и флаг LOGOFF_NO_WAIT. Флаг LOGOFF_PURGE возвращает элемент управления вызывающей объекту после завершения.
LOGOFF_QUIET
Выход не должен происходить, если выполняется какое-либо действие поставщика транспорта. Тип происходящего действия возвращается в виде флага в выходных данных.
В выходных данных диспетчер очереди MAPI может возвращать один или несколько из следующих флагов:
LOGOFF_COMPLETE
Выход может завершиться. Все ресурсы, связанные с хранилищем, были освобождены, а объект признан недействительным. Диспетчер очереди MAPI выполнил или будет выполнять все запросы. На этом этапе следует вызывать только метод IUnknown::Release хранилища сообщений.
LOGOFF_INBOUND
В настоящее время в хранилище поступает сообщение от одного или нескольких поставщиков транспорта.
LOGOFF_OUTBOUND
В настоящее время сообщение отправляется из хранилища одним или несколькими поставщиками транспорта.
LOGOFF_OUTBOUND_QUEUE
В настоящее время в очереди для исходящего трафика для хранилища есть сообщения.
Возвращаемое значение
S_OK
Процедура выхода выполнена успешно.
Замечания
Метод IMAPISupport::StoreLogoffTransports реализован для объектов поддержки поставщика хранилища сообщений. Поставщики хранилища сообщений вызывают StoreLogoffTransports , чтобы предоставить клиентским приложениям некоторый контроль над тем, как MAPI обрабатывает действия поставщика транспорта при закрытии хранилища сообщений.
Если в другом процессе хранилище будет открыто для того же профиля, MAPI игнорирует вызов StoreLogoffTransports и возвращает флаг LOGOFF_COMPLETE в параметре lpulFlags .
Поведение поставщика хранилища после возврата из StoreLogoffTransports должно основываться на значении lpulFlags, которое указывает состояние системы и передает клиентские инструкции по поведению выхода.
Примечания для вызывающих методов
StoreLogoffTransports обычно вызывается из метода IMsgStore::StoreLogoff поставщика хранилища. Однако его также можно вызвать из метода IUnknown::Release хранилища сообщений. Реализуйте метод Release хранилища сообщений, чтобы можно было проверка, был ли выполнен вызов StoreLogoffTransports. Если вызов не выполнен, вызовите StoreLogoffTransports с установленным флагом LOGOFF_ABORT.
Для параметра lpulFlags задается флаг, указывающий, как клиент должен завершить работу хранилища сообщений. Определите соответствующий параметр для ulFlags на основе параметра соответствующего параметра в вызове StoreLogoff. То есть, если клиент назвал метод StoreLogoff с параметром ulFlags LOGOFF_ORDERLY, следует вызвать StoreLogoffTransports с параметром ulFlags LOGOFF_ORDERLY.
Дополнительные сведения о процессе выхода из хранилища сообщений см. в разделе Завершение работы поставщика хранилища сообщений.