![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
mapireadmail [D5, D6, NT4, Win2k]
ввв © (2002-04-01 20:18:00)Уважаемые специалисты, очень Вас прощу выложить рабочий исходничек с функциями MAPIFindNext и MAPIReadMail А то ошибка постоянно вылетает access violation at adress ...
непонятно почему, хотя функция MAPIFindNext отрабатывает..
вообщем , если функция MAPIFindNext возвратила 0(те выполнилась)
даллее вылетает ошибка и все....задолбался экспериментировать
Скинте, пожалуйста, исходник раабочий где используется MAPIFindNext
Заранее благодарен всем!!!!!!
ввв (2002-04-02 15:39:00) [1]Спасибо большое!!!ВЕСЬМА БЛАГОДАРЕН!!!
AlexGray (2002-04-02 11:52:00) [2]В свое время спрашивал о том же, но мне не ответили.
Получилось вот так для The Bat, если же по умолчанию программа для почты Outlook то функции MapiLogon и MapiLogoff не нужны и hSess=0
Процедура читает все не помеченные на прочтение письма
procedure mailR();
var PMess :PMapiMessage;
PP,CurrMsgId : array [0..512] of Char;
MError,hSess: Cardinal;
subj : string;
begin
PP:="";
CurrMsgId := "";
MapiLogon(0, "", "", MAPI_LOGON_UI or MAPI_FORCE_DOWNLOAD, 0,@hSess);
try
while (MAPIFindNext(hSess,0,nil,CurrMsgId,MAPI_UNREAD_ONLY,0 ,@PP)=SUCCESS_SUCCESS) do
begin
MError:=MAPIReadMail(hSess,0,PP,0,0,PMess);
if MError <> 0 then MessageDlg("Error", mtError, [mbOK], 0);
subj:=StrPas(PMess.lpszSubject);
MAPIFreeBuffer(PMess);
CurrMsgId:=PP;
end;
finally
MapiLogoff(hSess,0,0,0);
end;
end;