Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как загрузить адресную книгу

Delphi , Интернет и Сети , E-mail

Как загрузить адресную книгу

Автор: Севостьянов Игорь

Возвращается домой в хлам пьяный программист. По пути заглядывает в почтовый ящик и обнаруживает там письмо. Прочитав его, на обороте пишет ответ, и запечатав письмо кладет обратно в свой ящик. Утром, идя на работу в том же состоянии, опять заглядывает в почтовый ящик и обнаруживает вчерашнее письмо.
- Блин, я же ставил не сохранять отправленные письма.


uses Mapi;
...

procedure TfrmMain.btnOpenAddressBookClick(Sender: TObject);
var
  lhSession, rc: Cardinal;
  lpnNewRecips: PULONG;
  lppNewRecips: PMapiRecipDesc;
  lpRecips: MapiRecipDesc;
begin
  lpnNewRecips := nil;
  rc := MAPILogon(0, 'Севостьянов Игорь', '', MAPI_LOGON_UI, 0, @lhSession);
  if (rc < > SUCCESS_SUCCESS) then
    SysErrorMessage(rc);
  rc := MAPIAddress(lhSession, 0, 'Адресная книга', 0, '', 0, lpRecips, 0, 0,
    lpnNewRecips, lppNewRecips);
  if (rc < > SUCCESS_SUCCESS) then
    SysErrorMessage(rc)
  else
    rc := MAPIFreeBuffer(lppNewRecips); // free the memory used by MAPIAddress
  if (rc < > SUCCESS_SUCCESS) then
    SysErrorMessage(rc);
  rc := MAPILogoff(lhSession, 0, 0, 0);
  if (rc < > SUCCESS_SUCCESS) then
    SysErrorMessage(rc);
end;

Есть еще и в Deplhi Help C:\Program Files\Common Files\Borland Shared\MSHelp\mapi.hlp

Привет! Я переведу текст на русский язык:

Это фрагмент кода на Delphi, который предназначен для загрузки адресной книги с помощью библиотеки Microsoft Exchange MAPI (Messaging Application Programming Interface).

Вот разбивка того, что код делает:

  1. Функция MAPILogon вызывается с следующими параметрами:
    • 0: Пустая строка как имя профиля.
    • 'Севостьянов Игорь': Имя пользователя, которое может быть жестко закодировано или получено из ввода пользователя.
    • '': Пустая строка для пароля.
    • MAPI_LOGON_UI: Флаг, указывающий, что логон должен использовать UI (пользовательский интерфейс) для запроса учетных данных.
    • 0: Нет дополнительных параметров.
    • @lhSession: Указатель на переменную, которая будет хранить.handle сеанса.
  2. Код проверяет успешность логона, сравнивая возвращаемое значение функции MAPILogon с SUCCESS_SUCCESS. Если это не так, он отображает сообщение об ошибке с помощью SysErrorMessage.
  3. Функция MAPIAddress вызывается с следующими параметрами:
    • lhSession: Handle сеанса, полученный из MAPILogon.
    • 0: Нет дополнительных параметров.
    • 'Адресная книга': Жестко закодированная строка, представляющая имя адресной книги.
    • 0: Нет дополнительных параметров.
    • '': Пустая строка для электронной почты получателя.
    • 0: Нет дополнительных параметров.
    • lpRecips: Указатель на переменную, которая будет хранить информацию о адресной книге.
    • 0: Нет дополнительных параметров.
  4. Код проверяет успешность функции MAPIAddress, сравнивая ее возвращаемое значение с SUCCESS_SUCCESS. Если это не так, он отображает сообщение об ошибке с помощью SysErrorMessage.
  5. Если функция MAPIAddress была успешной, код освобождает память, используемую информацией о адресной книге, с помощью MAPIFreeBuffer.
  6. Код выходит из сеанса MAPI с помощью MAPILogoff.

Цель этого фрагмента кода seems to be загрузка адресной книги пользователя и отображение ее содержимого. Однако неясно, какие конкретные действия планируются выполнять с загруженной информацией.

Некоторые предложения по улучшению:

  • Рассмотрите добавление обработки ошибок для случаев, когда логон или загрузка адресной книги fails.
  • Вместо жесткого закодирования имени пользователя и имени адресной книги рассмотрите использование параметров ввода или извлечения их из конфигурационного файла или базы данных.
  • Рассмотрите реализацию более robust способа управления памятью, например, с помощью smart pointers или встроенных функций памяти Delphi.

Также стоит отметить, что MAPI является старой технологией, и новые версии Microsoft Exchange могут не поддерживать ее. Кроме того, фрагмент кода appears to be written for Delphi 5 or earlier, which has compatibility issues with modern Windows versions.

В статье описывается процесс загрузки адресной книги с помощью технологии MAPI (Messaging Application Programming Interface) на языке программирования Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: E-mail ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 20:00:13/0.0037250518798828/0