IMAPIStatus::FlushQueues
Область применения: Outlook 2013 | Outlook 2016
Позволяет немедленно отправить или скачать все сообщения, ожидающие отправки или получения. Объект состояния диспетчера очереди MAPI и объекты состояния, которые реализуют поставщики транспорта, поддерживают этот метод.
HRESULT FlushQueues(
ULONG_PTR ulUIParam,
ULONG cbTargetTransport,
LPENTRYID lpTargetTransport,
ULONG ulFlags
);
Параметры
ulUIParam
[в] Дескриптор родительского окна всех диалоговых окон или окон, отображаемых этим методом.
cbTargetTransport
[в] Число байтов в идентификаторе записи, на который указывает параметр lpTargetTransport . Параметр cbTargetTransport задается только при вызовах объекта состояния диспетчера spooler MAPI. Для вызовов поставщика транспорта параметр cbTargetTransport имеет значение 0.
lpTargetTransport
[в] Указатель на идентификатор записи поставщика транспорта, который предназначен для очистки очередей сообщений. Параметр lpTargetTransport задается только при вызовах объекта состояния диспетчера spooler MAPI. Для вызовов поставщика транспорта параметр lpTargetTransport имеет значение NULL.
ulFlags
[в] Битовая маска флагов, управляющая операцией очистки. Можно задать следующие флаги:
FLUSH_ASYNC_OK
Операция очистки может выполняться асинхронно. Этот флаг применяется только к объекту состояния очереди MAPI.
FLUSH_DOWNLOAD
Очереди входящих сообщений должны быть промыты.
FLUSH_FORCE
Операция сброса должна выполняться независимо от вероятности снижения производительности. Этот флаг необходимо задать, если выбран асинхронный поставщик транспорта.
FLUSH_NO_UI
Объект состояния не должен отображать индикатор хода выполнения.
FLUSH_UPLOAD
Очереди исходящих сообщений должны быть промыты.
Возвращаемое значение
S_OK
Операция сброса прошла успешно.
MAPI_E_BUSY
Выполняется еще одна операция; Перед началом этой операции ему должно быть разрешено завершить или остановить его.
MAPI_E_NO_SUPPORT
Объект состояния не поддерживает эту операцию, о чем свидетельствует отсутствие флага STATUS_FLUSH_QUEUES в свойстве PR_RESOURCE_METHODS объекта состояния (PidTagResourceMethods).
Замечания
Метод IMAPIStatus::FlushQueues запрашивает , чтобы диспетчер очереди MAPI или поставщик транспорта немедленно отправлял все сообщения в исходящей очереди или получал все сообщения из входящей очереди. FlushQueues реализуется только объектом состояния диспетчера очереди MAPI и объектами состояния, предоставляемыми поставщиками транспорта.
MAPI_E_BUSY должны возвращаться для асинхронных запросов, чтобы клиенты могли продолжать работу.
По умолчанию FlushQueues является синхронной операцией; Элемент управления не возвращается к вызывающей объекту до тех пор, пока не завершится очистка. Только операция очистки, выполняемая диспетчером очереди MAPI, может быть асинхронной; клиенты запрашивают это поведение, задавая флаг FLUSH_ASYNC_OK.
Примечания для исполнителей
Реализация FlushQueues удаленного поставщика транспорта задает биты в свойстве PR_STATUS_CODE (PidTagStatusCode) в строке состояния объекта входа для управления способом очистки очередей. Если удаленное средство просмотра передает флаг FLUSH_UPLOAD, метод FlushQueues должен задать STATUS_INBOUND_ENABLED и STATUS_INBOUND_ACTIVE биты. Если удаленное средство просмотра передает флаг FLUSH_DOWNLOAD, метод FlushQueues должен задать STATUS_OUTBOUND_ENABLED и STATUS_OUTBOUND_ACTIVE биты. Затем FlushQueues должен вернуть S_OK. Затем диспетчер очереди MAPI инициирует соответствующие действия для отправки и скачивания сообщений.
Примечания для вызывающих методов
Вызов объекта состояния диспетчера очереди MAPI — это директива для передачи всех сообщений в или от соответствующего поставщика транспорта. При вызове объекта состояния отдельного поставщика транспорта затрагиваются только сообщения для этого поставщика.
См. также
Каноническое свойство PidTagResourceMethods