Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MAPI в TheBat!


Sour ©   (2004-01-27 10:46:00) 

Почему при использовании TheBat! 2.00 вызов функции MAPIFindNext возвращает не 0, т.е. как будто нет писем в Inbox, хотя письма на самом деле есть. При использовании OutLook-а все нормально. Привожу код:

 pLib := LoadLibrary('mapi32.dll');

 if pLib = 0 then
   exit;

 if MAPILogon(0, 0, 0, {MAPI_LOGON_UI or} MAPI_FORCE_DOWNLOAD, 0, @pSession) <> SUCCESS_SUCCESS then
   exit;

 //В цикл прогрмма не входит, если используется BAT, хотя письма там есть (в папке Inbox)
 while MAPIFindNext(pSession, 0, 0, SID, MAPI_LONG_MSGID, 0, MID) = 0 do  
 begin
   MAPIReadMail(pSession, 0, MID,MAPI_PEEK or MAPI_SUPPRESS_ATTACH, 0, Mes);
     if Mes.nFileCount > 0 then
     begin
       MAPIFreeBuffer(Mes);
       MAPIReadMail(pSession, 0, MID, MAPI_PEEK, 0, Mes);
       sTmp := IncludeTrailingBackslash(edDir.Text) + Mes.lpFiles.lpszFileName;
       CopyFile(Mes.lpFiles.lpszFileName, PChar(sTmp), false);
       AddLogString(format('????????? ???? "%s" ?????????? ? "%s"', [String(Mes.lpFiles.lpszFileName), edDir.Text]), 1);

     end;
   
   strcopy(SID,MID);

 end;

 MAPILogoff(pSession,0,0,0) = SUCCESS_SUCCESS;

При использовании Outlook все работает нормально?


  (2004-01-27 11:58:00) [1]

Удалено модератором


Sour   (2004-01-27 10:55:00) [2]

Еще одно: MAPI_E_INVALID_SESSION возникает и при использовании mapi32.dll и при tbmapi.dll


Sour   (2004-01-27 10:51:00) [3]

Забыл сказать, что в случае использования The Bat FindNext возвращает MAPI_E_INVALID_SESSION. ??


Наверх

Титульная страница Поиск, карта сайта Написать письмо