Изучаем вопрос использования The Bat как копроративного средства управления почтой в крупной компании. По некоторым причинам предполагается использовать MS Exchange Server, поэтому работа предпоалагется через MAPI. Настроить Bat 3.0.1 мне пока не удалось: при попытке получения и отправки сообщений получаю «Ошибка инициализации библиотеки MAPI» И еще написано «подробности — в журнале». А где он, журнал? |
|
Илья Разинков Пользователь Сообщений: 16 |
другая проблема, с темже МАПИ. на компе с батом стоит аутлук и все нем все работает. Бат же считывает иногда по два сообщения за раз иногда ни одного, хотя их в ящике 10ки. лог от общения с Эксченжем: 15.03.2005, 18:36:51: FETCH — receiving mail messages Раз считывает по два сообщения, то значит может и все! а как? |
Так всетаки просьба разработчиков откликнуться — неужели так сложно нормальную поддержку МАПИ докрутить? |
|
Илья Разинков Пользователь Сообщений: 16 |
Наконец-то появилась альтернатива для работы с Exchange серером через Bat — Mapi2Pop3 proxy . Правда это бета версия, пока только на английском. Но с ней МОЖНО из Бата отправлять и принимать почту через Exchange сервер/локальный Outlook. Достаточно в настройках бата прописать Pop3 сервер — 127.0.0.1:45012 и Smtp сервер — 127.0.0.1:45013 плюс в настройках этого прокси прописать через какие профили аутлука получать/отправлять почту — и все! %) Почта начинает ходить как часы %) |
kober Гость |
#5
04.05.2005 23:52:40
При все уважении, ноа какая же это альтернатива, если для работы по MAPI, по прежнему нужен Аутглюк, на кой мне два клиента на машине ? Не пользы от такого решения нуль. |
||
Илья Разинков Пользователь Сообщений: 16 |
%) так и бат без установленного аутлука с Mapi не заработает (ну или Exchange clientà что одно и тоже)… |
Guest Гуру Сообщений: 600 |
Такая же проблема с получением почты от Exchange. Письма есть на сервере, а Bat пишет, что принято 0. Outlook принимает все без проблем. Отсылка сообщений из Bat без проблем. У меня Win2000. Еще на фирме ставили у ребят под XP (2 раза) — там все нормально, прием у Bat работает! Везде Office 2003. Правда у меня стоит только Internet Explorer, а у ребят на XP еще и Opera, и Mozilla FireFox. Так вот, что я думаю — может это как-то влиять на работу Bat или дело в другом? |
Maxim Masiutin Гуру Сообщений: 644 |
В самое ближайшее время мы будем разбираться с проблемой «принято 0», многие пользователи жалуются на эту прблему. Кстати, какая в Вас версия сервера Exchange? |
Guest Гуру Сообщений: 600 |
Ура!!! Админы мне сказали, что у нас версия Exchange 6.5.7226.0 стоит. Версия Office — Outlook 2003. |
А как заставить БАТ запомнить пустой пароль? Использую эту mapi2pop3 прогу и постоянно просит пароль. |
|
Вообще столкнулся с такой вещью: на предприятии корпоративной политикой, а соответственно и настройками домена, запрещено сохранение пароля доступа к серверу MS Exchange. Галочка «сохранить пароль» при подключении не срабатывает. Приходится каждый раз, когда бат запрашывает почту у сервера, вводить пароль. Не в пример Outlook — тот похоже постоянно держит соединение с сервком, поскольку пока он загружен бат пароль не просит. Отсюда: нужно либо в настройках все-же сделать поле пароль и пусть бат им пользуется или пуст не разрывает связь с серваком. |
|
johndo johndo Новичок Сообщений: 2 |
#12
24.11.2005 09:44:50
Аналогичная проблема. Используеться Exchange c кешированием и подключением к нему через HTTP. Если запущен Outlook то BAT(версия 3.62) через MAPI приемлимо получает и отсылает почту. Если выгрузить Outlook, при получении почты BAT требует пароль, после ввода пароля успешно забирает почту. А вот при отсылке тоже самое только почту выслать не удаеться. Приходиться все время держать запущенным Outlook. Кто сталкивался, подскажите, есть решение данной проблемы ? |
||
-
-
January 19 2011, 09:36
- Литература
- Cancel
сегодня настраивая The Bat! решил узнать что есть такое Simple MAPI и нажал кнопку «Установить The Bat! как обработчик Simple MAPI». Через некоторое время обнаружил, что не запускаются адобовские приложения, вылетают с ошибкой «порядковый номер <такойто> не найден в библиотеке DLL MAPI32.dll». Вселенский разум показал, что подобная ошибка приводит к краху многих приложений.
Решение, к счастью, элементарное WIN+R > fixmapi (восстанвливает родную mapi32.dll)
- Remove From My Forums
-
Вопрос
-
Продолжаю мучиться с Exchange 2013.Возникло несколько вопросов, которые никак не могу решить.
1. Не подключается Outlook 2010 и bat по протоколу MAPI. Что нужно сделать, чтобы подключение пошло.
Ошибка Outlook:
Ошибка The Bat:
23.07.2013, 11:13:51: FETCH — Получение новой почты
!23.07.2013, 11:13:51: FETCH — Session.OpenMsgStore C:PROGRA~1MICROS~2Office14OLMAPI32.DLL HResult=8004011D
23.07.2013, 11:13:51: FETCH — Невозможно соединиться с сервером. При открытии банка сообщений не было принято имя сервера «server.test.local» или имя ящика «user»
23.07.2013, 11:13:51: FETCH — Соединение завершено — получено писем: 02. Как настроить Exchange, чтобы почтовые клиенты могли отправлять почту используя 25 порт smtp? По умолчанию на 25 порте стоит Default Fronted Transport. При отправке, используя этот порт клиенты выдают ошибку: «Не найдено подходящих алгоритмов
аутентификации». Создание соединителя Hub-Transport на этот порт, при работающем Default Fronted Transport, эффекта не дает. К Default Hub-Transport подключение идет без проблем.3. Можно ли на одном Exchange Server настроить POP3 в режиме обычной аутентификации на 110 порт и безопасное TLS подключение на 995 порт? И соответственно тоже с IMAP.
-
Изменено
23 июля 2013 г. 7:35
-
Изменено
Ответы
-
-
Изменено
Zaza Abramov
24 июля 2013 г. 14:48
Edit -
Помечено в качестве ответа
Иван Владимирович
30 июля 2013 г. 11:31
-
Изменено
-
-
Помечено в качестве ответа
Иван Владимирович
30 июля 2013 г. 11:32
-
Помечено в качестве ответа
-
-
Помечено в качестве ответа
Иван Владимирович
30 июля 2013 г. 11:31
-
Помечено в качестве ответа
-
Вопрос закрыт.
Правда, я толком не понял, что повлияло на работу. Когда выясню — отпишусь. Могу только сказать, что последними действиями были переназначение сертификата в диспетчере служб IIS. После этого сбил изменил настройки сервера. «Серверы->настройки->Изменить».
После для ящика перезапустил все функции.Наконец-то выяснил все связанные проблемы:
1. Сертификат в службах IIS хранится в нескольких местах. Он отвечает за консоль управления и за то какой сертификат используется на каждом порту. Если не трогать стандартные сертификаты вообще, то жизнь будет гораздо легче. В противном
случае, нужно переназначать вручную для каждого порта и для консоли управления.2. Если создать второй сертификат на домен, то IIS может продублировать порты 443:*, звездочка — означает все домены. Он должен быть только один.
3. После смены настроек сервера и сертификата оказалось необходимо пересохранить данные настроек почтового ящика. Иначе ящик, почему-то не считает себя частью сервера с новыми настройками. Действует только для администраторов
Exchange. Другие ящики(пользователи) работали нормально.4. Была ошибка в драйверах сети, как на клиенте, так и на сервере.
5. Мешался hasp. Назначил hasp на другой порт.
-
Помечено в качестве ответа
Petko KrushevMicrosoft contingent staff, Moderator
31 июля 2013 г. 4:11 -
Изменено
Иван Владимирович
26 сентября 2013 г. 11:34
-
Помечено в качестве ответа
Всем привет.
Недавняя история. Был повод размяться…
Коллега на работе переехал своей электронной почтой под сервер MS Ecxhange. Разумеется по умолчанию ему дали клиента MS Outlook 2010. А он так любил пользоваться The Bat!). Поскольку на его работе никто The Bat! не юзал он попросил меня настроить его мыша на новый сервер.
А что мы теперь за протокол используем? Конечно же MAPI.
Пару слов о MAPI (Messaging API). Это интерфейс и это набор структур и функций, которые необходимы для доступа к почтовому транспорту и хранилищу данных без конкретизации, какой именно почтовый клиент используется. Почтовые клиенты реализуют стандарт MAPI в виде dll (обычно это mapi.dll или mapi32.dll). Тогда в любом приложении разработчик может предусмотреть функцию отправки текущего файла по почте с использованием Вашего почтового клиента по умолчанию, не вдаваясь в детали ваших интернет-настроек. На текущий момент существуют два стандарта: Simple MAPI (12 функций) и Extended MAPI, или MAPI 1.0 (более 100 функций).
Поддерживает ли The Bat! MAPI?
На официальном сайте The Bat! сказано что Да.
Начал разбираться.
The Bat!, начиная с версии 1.47, поддерживает запросы по Simple MAPI, хотя MS Outlook поддерживает оба интерфейса. Насчет необходимости: если бы интерфейс Extented MAPI был реализован в The Bat!, тогда автоматически отпал бы вопрос о TheBat API, о котором иногда просят разработчиков. Любые плагины стали бы возможны. Теперь во что это выливается практически. Существование (поддержка) интерфейса MAPI обеспечивает возможность не почтовым программам реализовывать то самое меню «File -> Send». Если есть в системе почтовый клиент, который установлен как MAPI-клиент, значит файл отправиться, нет — значит нет. Большинство программ, например: FreeHand, Mathematica, WinEdt, WinZip, etc. поддерживают Simple MAPI, поэтому они нормально вызывают The Bat!. Так как приложения Microsoft Office изначально ориентированы на внутреннюю интеграцию, то и в качестве почтового клиента они ожидают MS Outlook. В меню «File» приложений Офиса может присутствовать команда «Send»(отослать текущий документ), это зависит от настроек при установке Microsoft Office. Если в этом меню есть опция «Mail recipient (as attachment)», то в случае ее выбора будет вызван почтовый клиент по умолчанию. Так что TheBat! сформирует письмо с вложением. Все остальные опции этого меню будут предназначены именно для MS Outlook и другой почтовый клиент не будет вызван.
Для того чтобы использовать в The Bat! MAPI DLL советуют сделать следующее.
Для того, чтобы установить The Bat! в качестве обработчика MAPI-запросов, нужно выполнить последовательность действий.
По шагам это выглядит так:
1.Надо скачать TBMapi.dll с сайта The Bat! и переписать библиотеку в ту папку, где живет The Bat!. Начиная с версии 1.47 эта библиотека входит в дистрибутив и записывается в папку при инсталляции, так что ничего скачивать не надо.
2.Однократно запустить The Bat! с ключом /InstallMAPI либо в диалоговом окне настроек программы на закладке «Программы» (пункт меню «Свойства/Настройка») выполнить действие «Установить The Bat! как обработчик SimpleMAPI». После этого файл tbmapi.dll из папки The Bat! можно удалить: он уже скопировался в c:windowssystemmapi32.dll, заменив стандартную библиотеку Microsoft. Кстати: я так понимаю, что для 16-битных программ MAPI как не работало, так и сейчас работать не будет. Потому как The Bat!, похоже, вовсе не обновляет mapi.dll, а только mapi32.dll.
3.Проверить использование этой новой функции: открываете какое угодно приложение, поддерживающее MAPI (кроме Офиса), например, одну из вышеназванных программ, и нажимаете «File—>Send». Если все работает, — автоматически стартует The Bat!, и откроет Вам редактор нового письма с уже приаттаченным файлом.
У коллеги получился такой вот стенд — Windows7, MS Outlook 2010 и The Bat! 4.2.9.1 portable.
Сделал вышеназванное по пунктам. Не работает!((
Получил вот такую вот ошибку
FETCH — Неудачное подсоединение к серверу. Ошибка создания профиля «%s», ProfAdmin.CreateProfile C:PROGRA~1MICROS~2Office14OLMAPI32.DLL HResult=80070057
Копаем дальше.
Вот здесь парень предложил решение через создание нового почтового профиля.
2.Однократно запустить The Bat! с ключом /InstallMAPI либо в диалоговом окне настроек программы на закладке «Программы» (пункт меню «Свойства/Настройка») выполнить действие «Установить The Bat! как обработчик SimpleMAPI». После этого файл tbmapi.dll из папки The Bat! можно удалить: он уже скопировался в c:windowssystemmapi32.dll, заменив стандартную библиотеку Microsoft. Кстати: я так понимаю, что для 16-битных программ MAPI как не работало, так и сейчас работать не будет. Потому как The Bat!, похоже, вовсе не обновляет mapi.dll, а только mapi32.dll.
3.Проверить использование этой новой функции: открываете какое угодно приложение, поддерживающее MAPI (кроме Офиса), например, одну из вышеназванных программ, и нажимаете «File—>Send». Если все работает, — автоматически стартует The Bat!, и откроет Вам редактор нового письма с уже приаттаченным файлом.
У коллеги получился такой вот стенд — Windows7, MS Outlook 2010 и The Bat! 4.2.9.1 portable.
Сделал вышеназванное по пунктам. Не работает!((
Получил вот такую вот ошибку
FETCH — Неудачное подсоединение к серверу. Ошибка создания профиля «%s», ProfAdmin.CreateProfile C:PROGRA~1MICROS~2Office14OLMAPI32.DLL HResult=80070057
Копаем дальше.
Вот здесь парень предложил решение через создание нового почтового профиля.
Создать в апплете панели управления «Учетные записи пользователей/Почта» новую конфигурацию почты специально для TheBat!, создать там еще один почтовый профиль под Exchange (с теми же настройками что и для Outlook), и подсунуть этот профиль The Bat!.
Создаем. Проверяем. Не работает!
Все заработало только при запущенном клиенте MS Outlook.)
А без Outlook The Bat! радостно рапортует о проделанной работе в своем журнале, но тем не менее на поверку никаких отправлений не делает.(
Печалька.
Скорее всего его The Bat! будет работать только по протоколам POP3 и SMTP если их использование разрешит администратор почтовика Ecxhange. Возможно у нас не получилось из-за портабельной версии имеющегося The Bat!.
Создаем. Проверяем. Не работает!
Все заработало только при запущенном клиенте MS Outlook.)
А без Outlook The Bat! радостно рапортует о проделанной работе в своем журнале, но тем не менее на поверку никаких отправлений не делает.(
Печалька.
Скорее всего его The Bat! будет работать только по протоколам POP3 и SMTP если их использование разрешит администратор почтовика Ecxhange. Возможно у нас не получилось из-за портабельной версии имеющегося The Bat!.
Ну что же, отрицательный результат — тоже результат.
Надеюсь что у вас получиться!
Содержание
- Что значит ошибка mapi
- Вопрос
- Расширенные ошибки MAPI
- Outlook 2010, 2013, 2016 или Outlook для Office 365 не подключается Exchange MAPI над HTTP, как ожидалось
- Симптомы
- Причина
- Решение
- Дополнительная информация
- Как исправить MAPI 1.0 с помощью инструмента восстановления MAPI — Вокруг-Дом — 2021
- Table of Contents:
- Шаг 1
- Шаг 2
- Шаг 3
- Шаг 4
- Шаг 5
- Шаг 6
- Как обрезать изображения с помощью инструмента Magnetic Lasso
- Как исправить Windows 7 с помощью восстановления при запуске
- Windows 10 не загружается? исправить это с помощью команд восстановления и загрузки
- Technology Stacks — Computer Science for Business Leaders 2016 (Декабрь 2021).
- Обработка ошибок свойств MAPI
Что значит ошибка mapi
Вопрос
В любом приложении, включая «обозреватель», приложения Office 2016, не удается отправить документ вложением по почте. Появляется сообщение, например, в Microsoft Word:
«С запрошенным действием не связана программа электронной почты. Установите программу электронной почты или, если она уже установлена, создайте связь в панели управления «Программы по умолчанию».»
И далее: «Не удалось отправить сообщение из-за ошибки MAPI: «Непонятная ошибка»» с примечанием: «Эта ошибка может возникнуть при попытке отправить документ Word как вложение в сообщение электронной почты из приложения Word, если сеанс MAPI закрыт и Word больше не может подключиться к нему, либо при возникновении неполадок конфигурации факса. Чтобы устранить ошибку, связанную с MAPI, перезапустите программу электронной почты MAPI (например, Outlook) либо сохраните и закройте документ, закройте Word, перезапустите программу электронной почты MAPI и снова запустите Word. В Word будет создан новый сеанс MAPI, в котором можно будет отправить документ. Чтобы устранить неполадки конфигурации факса, просмотрите параметры настройки соответствующей программы и внесите необходимые изменения.»
- Windows 10 Домашняя для одного языка, версия 1607, Построение ОС 14393.1066;
- Microsoft Office 2016 для дома и учебы ru-ru;
- Почтовый клиент Mail Version 17.812642377.0
Почтовый клиент настроен, установлен по умолчанию и сам по себе работает нормально.
Были проделаны попытки:
1) установки другого почтового клиента (touchmail) вместо mail (с выходом и перезагрузкой приложенй и установкой по умолчанию нового клиентся)
2) внесены изменения в реестре по размеру файла в ветке:
введен параметр MaximumAttachmentSize и установлен равным 0 (без ограничений размера).
3) были попытки найти и перерегистрировать dll, запускалась fixmapi,
Источник
Расширенные ошибки MAPI
Область применения: Outlook 2013 | Outlook 2016
Реализующие методы интерфейса могут просто возвращать успех (S_OK) и сбой (MAPI_E_CALL_FAILED) или различать условия ошибок, возвращая столько значений ошибок, сколько имеет смысл для ситуации. В большинстве ситуаций можно использовать одно из значений ошибок, определенных MAPI в MAPICODE. Файл заглавной папки H. Однако для ситуаций, не охваченных заранее заранее, можно использовать MAPI_E_EXTENDED_ERROR значение. MAPI_E_EXTENDED_ERROR указывает вызываемой, что дополнительные сведения об ошибке доступны. Вызыватель извлекает дополнительные сведения, позвонив методу GetLastError на том же объекте, который MAPI_E_EXTENDED_ERROR.
GetLastError можно использовать для получения сведений о любом коде ошибок, а не только MAPI_E_EXTENDED_ERROR. Многие объекты MAPI реализуют интерфейсы, которые включают метод GetLastError. GetLastError возвращает одну структуру MAPIERROR, которая теоретически включает конкатепацию всех ошибок, созданных предыдущим вызовом метода. Дополнительные сведения см. в mapIERROR. В качестве вызываемой меры целесообразно не зависеть от предоставления этой дополнительной информации об ошибках, так как для ее предоставления не требуются объектные реализации. Однако настоятельно рекомендуется, чтобы всякий раз MAPI_E_EXTENDED_ERROR когда MAPI_E_EXTENDED_ERROR, вызыватели могли получить структуру MAPIERROR с полезной информацией об ошибке.
Поскольку GetLastError также является функцией API, которая является частью Windows SDK, можно легко забыть, что в MAPI GetLastError — это метод интерфейса, который может быть вызван только на объектах MAPI. Еще одна простая ошибка — вызов GetLastError на неправильном объекте. GetLastError должен быть вызван на объект, который вызвал ошибку. Например, если клиент совершает сеанс, и MAPI передает вызов поставщику услуг для работы, клиент не должен вызывать GetLastError на объекте поставщика услуг. IMAPISession::GetLastError — правильный вызов; На объекте сеанса следует вызвать GetLastError. Дополнительные сведения см. в iMAPISession::GetLastError.
Источник
Outlook 2010, 2013, 2016 или Outlook для Office 365 не подключается Exchange MAPI над HTTP, как ожидалось
Исходный номер КБ: 2937684
Симптомы
Рассмотрим следующий сценарий.
- Вы используете Microsoft Outlook 2010, русская версия, Outlook 2013 Пакет обновления 1 (SP1) или более поздней версии.
- Вы подключены к почтовому ящику Microsoft Exchange Server 2013 или Exchange Server 2016 года.
- На Exchange почтовых ящиках и серверах клиентского доступа (CAS), подключенных ко всем, установлена Exchange Server 2013 sp1 или более поздней версии или Exchange Server 2016 г.
- Правильно настроены необходимые параметры сервера для установки подключений MapiHttp.
В вышеуказанном сценарии столбец Протокол в диалоговом Outlook состояния подключения показывает, что Outlook 2013 подключен к серверу Exchange с помощью механизма подключения, кроме MAPI/HTTP. Например, на следующем рисунке показано подключение с помощью RPC/HTTP.
Соединения MAPI/HTTP назначаются в столбце Протокол с помощью строки HTTP.
Кроме того, если MAPI/HTTP отключен, Office 365 пользователи получают базовую подсказку проверки подлинности вместо запроса на современную проверку подлинности.
Причина
Эта проблема может возникнуть, если функция MapiHttp отключена в клиенте Outlook с помощью следующего значения реестра:
Решение
Чтобы устранить эту проблему, измените значение MapiHttpDisabled на 0 (ноль) или удалите значение DWORD MapiHttpDisabled. Эти данные реестра предназначены только для тестирования.
Закройте приложение Outlook.
Редактор open Registry с помощью одной из следующих процедур, соответствующих вашей версии Windows:
- Windows 10, Windows 8.1 и Windows 8: нажмите клавишу Windows клавишу + R, чтобы открыть диалоговое окно Run. Введите regedit.exe и нажмите кнопку ОК.
- Windows 7: Нажмите кнопку Начните, введитеregedit.exe в поле поиска и нажмите кнопку Ввод.
Найдите и выберите следующий ключ в реестре:
Щелкните правой кнопкой мыши MapiHttpDisabled и нажмите кнопку Изменить.
Измените значение данных на 0 и нажмите кнопку ОК.
Закройте редактор реестра.
Дополнительная информация
Дополнительные сведения о требованиях к MAPI по подключениям HTTP см. в странице MAPI over HTTP.
Источник
Как исправить MAPI 1.0 с помощью инструмента восстановления MAPI — Вокруг-Дом — 2021
Table of Contents:
MAPI (Messaging Application Program Interface) 1.0 позволяет отправлять электронную почту изнутри приложений на вашем компьютере. Если интерфейс программы MAPI поврежден, на вашем компьютере будут отображаться различные сообщения об ошибках MAPI, и вы не сможете отправлять почту из Microsoft Outlook или других программ. Используйте встроенную утилиту «Fixmapi.exe» на вашем компьютере, чтобы решить проблему, заменив основной файл MAPI.
Устраняйте ошибки приложения электронной почты с помощью инструмента восстановления MAPI на вашем компьютере.
Шаг 1
Запустите приложение поиска Windows, а затем введите «Mapi32.dll» в поле поиска. Откройте папку расположения файла.
Шаг 2
Щелкните правой кнопкой мыши имя файла «Mapi32.dll» и выберите «Переименовать».
Шаг 3
Введите «Mapi32.old» в качестве имени файла и нажмите «Enter».
Шаг 4
Найдите файл «fixmapi.exe», а затем выберите и запустите этот файл на экране результатов поиска. Может не быть видимых процессов, но программа «fixmapi.exe» создаст новый файл «Mapi32.dll». Если появится окно с предложением, следуйте инструкциям, чтобы исправить или заново создать файл ядра MAPI.
Шаг 5
Перезагрузите компьютер и дождитесь загрузки операционной системы.
Шаг 6
Запустите свой почтовый клиент и нажмите кнопку «Отправить почту» или «Отправить / получить почту». Успешная отправка любой почты в папку «Исходящие» программы указывает на то, что основной файл MAPI был исправлен и ошибка MAPI устранена.
Как обрезать изображения с помощью инструмента Magnetic Lasso
В программном обеспечении для редактирования изображений Adobe Photoshop готово множество инструментов, которые помогут упростить процесс проектирования. Один из коллекции инструментов выбора, магнитные .
Как исправить Windows 7 с помощью восстановления при запуске
В этой статье будет показано, как использовать средство восстановления при загрузке для сканирования и устранения проблем с загрузкой Windows 7.
Windows 10 не загружается? исправить это с помощью команд восстановления и загрузки
Черный экран и ПК с Windows 10, который не загружается часто, означает, что ваша основная загрузочная запись находится на фритюре. Вот два способа это исправить.
Technology Stacks — Computer Science for Business Leaders 2016 (Декабрь 2021).
Источник
Обработка ошибок свойств MAPI
Область применения: Outlook 2013 | Outlook 2016
Вместо полного сбоя или успешного выполнения следующие методы IMAPIProp сообщают о частичном успехе:
GetProps сообщает о частичном успехе, когда он может получить хотя бы одно из запрашиваемого свойства для объекта. GetProps указывает на частичный успех, возвращая предупреждение MAPI_W_ERRORS_RETURNED и размещая сведения о недоступных свойствах в массиве значений свойств, указанных параметром lppPropArray. Запись недоступного свойства в этом массиве содержит PT_ERROR для типа свойства в члене ulPropTag и MAPI_E_NOT_FOUND или другое соответствующее значение ошибки для участника Value. Например, если клиент вызывает метод GetProps папки для получения трех свойств, а третий недоступен, поставщик магазина сообщений помещает PT_ERROR в третий тип свойства в массиве значений свойств и MAPI_E_NOT_FOUND в третьем значении свойства.
Другие методы IMAPIProp по-разному сообщают о частичном успехе. Эти методы сообщают о частичном успехе, возвращая S_OK и размещая сведения об ошибках в структуре SPropProblemArray. В отличие от массива значений свойств в GetProps, который содержит данные независимо от того, был ли метод успешным или неудачным, массив проблем свойств в этих методах существует только в том случае, если имеются ошибки и только в том случае, если вызываемая зарегистрировано заинтересованность в изучении ошибок. Для регистрации сведений об ошибках звонителям необходимо указать допустимый указатель SPropProblemArray.
Когда значение ошибки возвращается из SetProps, DeleteProps, CopyTo или CopyProps, это указывает на сбой, а не частичный успех. Массив проблем свойств, если он доступен, не является допустимым. Клиенты не должны пытаться получать доступ к данным, удерживаемой в структуре, и не должны пытаться освободить ее. Соответствующий ответ — вызвать IMAPIProp::GetLastError.
GetLastError аналогична функции с тем же именем, что и в Windows SDK. Оба предоставляют более подробные сведения об ошибке, чем доступно с возвратным значением. Они оба возвращают сведения о предыдущей ошибке, которая произошла. Разница заключается в том, что функция Win32 GetLastError сообщает об ошибке, вызываемой потоком вызовов, а метод IMAPIProp::GetLastError сообщает об ошибке, порожденной текущим объектом. То есть, если клиент вызывает DeleteProps в сообщении и возвращает MAPI_E_NO_ACCESS, чтобы указать, что сообщение только для чтения, GetLastError возвращает данные, предоставленные сообщением.
Источник