IMAPIFolder::DeleteMessages
Область применения: Outlook 2013 | Outlook 2016
Удаляет одно или несколько сообщений.
HRESULT DeleteMessages(
LPENTRYLIST lpMsgList,
ULONG_PTR ulUIParam,
LPMAPIPROGRESS lpProgress,
ULONG ulFlags
);
Параметры
lpMsgList
[в] Указатель на структуру ENTRYLIST , содержащую количество удаляемых сообщений и массив структур ENTRYID , которые идентифицируют сообщения.
ulUIParam
[в] Дескриптор родительского окна индикатора хода выполнения. Параметр ulUIParam игнорируется, если в параметре ulFlags не установлен флаг MESSAGE_DIALOG.
lpProgress
[в] Указатель на объект выполнения, отображающий индикатор хода выполнения. Если в lpProgress передается значение NULL, поставщик хранилища сообщений отображает индикатор хода выполнения с помощью реализации объекта хода выполнения MAPI. Параметр lpProgress игнорируется, если в параметре ulFlags не установлен флаг MESSAGE_DIALOG.
ulFlags
[в] Битовая маска флагов, управляющая способом удаления сообщений. Можно задать следующие флаги:
DELETE_HARD_DELETE
Безвозвратно удаляет все сообщения, в том числе обратимо удаленные.
MESSAGE_DIALOG
Отображает индикатор хода выполнения по мере выполнения операции.
Возвращаемое значение
S_OK
Указанное сообщение или сообщения успешно удалены.
MAPI_W_PARTIAL_COMPLETION
Вызов выполнен успешно, но не все сообщения были успешно удалены. При возврате этого предупреждения вызов должен быть обработан как успешный. Чтобы проверить наличие этого предупреждения, используйте макрос HR_FAILED . Дополнительные сведения см. в разделе Использование макросов для обработки ошибок.
Замечания
Метод IMAPIFolder::D eleteMessages удаляет сообщения из папки. Сообщения, которые не существуют, которые были перемещены в другое место, открыты с разрешением на чтение и запись или которые в настоящее время отправлены, не могут быть удалены.
Примечания для исполнителей
Если операция удаления включает несколько сообщений, выполните операцию максимально полно для каждой папки, даже если не удается удалить одно или несколько сообщений. Не прерывайте операцию преждевременно, если не произойдет сбой, не зависящий от вас, например нехватки памяти, нехватки дискового пространства или повреждения в хранилище сообщений.
Примечания для вызывающих методов
Ожидайте эти возвращаемые значения при следующих условиях.
Condition | Возвращаемое значение |
---|---|
DeleteMessages успешно удалил каждое сообщение. | S_OK |
DeleteMessages не удалось успешно удалить все сообщения и вложенные папки. | MAPI_W_PARTIAL_COMPLETION или MAPI_E_NOT_FOUND |
Не удалось завершить deleteMessages. | Любое значение ошибки, кроме MAPI_E_NOT_FOUND |
Если deleteMessages не удается завершить, не следует предполагать, что работа не выполнена. DeleteMessages , возможно, удалось удалить одно или несколько сообщений до возникновения ошибки.
DeleteMessages возвращает MAPI_W_PARTIAL_COMPLETION или MAPI_E_NOT_FOUND в зависимости от реализации хранилища сообщений.
Справочные материалы по MFCMAPI
Пример кода MFCMAPI указан в приведенной ниже таблице.
Файл | Функция | Comment |
---|---|---|
FolderDlg.cpp |
CFolderDlg::OnDeleteSelectedItem |
MFCMAPI использует метод IMAPIFolder::D eleteMessages для удаления указанных сообщений. |