Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Почему MAPI_DIALOG не срабатывает с OutLook?   Найти похожие ветки 

 
Aleksandr.   (2005-11-10 18:36) [0]

Функция, юзающая mapi для отправки почты:

function SendMail(aHandle : HWND; const aFrom, aDest, aSubject, aText : string; ShowMailer: boolean):Integer;
var
 From, Dest, Subject, Text : PChar;
 Message                   : TMapiMessage;
 Recipient, Sender         : TMapiRecipDesc;
 function MakeMessage      : TMapiMessage;
 begin
   FillChar(Sender, SizeOf(Sender), 0);
   Sender.ulRecipClass := MAPI_ORIG;
   Sender.lpszAddress := From;
   FillChar(Recipient, SizeOf(Recipient), 0);
   Recipient.ulRecipClass := MAPI_TO;
   Recipient.lpszAddress := Dest;
   FillChar(Result, SizeOf(Result), 0);
   with Message do begin
     lpszSubject := Subject;
     lpszNoteText := Text;
     lpOriginator := @Sender;
     nRecipCount := 1;
     lpRecips := @Recipient;
     nFileCount := 0;
     lpFiles := nil;
   end;
 end;
var
 SM         : TFNMapiSendMail;
 MAPIModule : HModule;
 MAPI_FLAG  : Cardinal;
begin
 Result:=-1;
 if (NOT InternetActive) AND NOT AutoDial(aHandle) then
   Exit;
 if ShowMailer then
  MAPI_FLAG:=MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION
 else
  MAPI_FLAG:=0;
 MAPIModule:=LoadLibrary(PChar(MAPIDLL));
 if MAPIModule = 0 then
   Result:=-1
 else try
   @SM := GetProcAddress(MAPIModule, "MAPISendMail");
   From:=PChar(aFrom);
   Dest:=PChar(aDest);
   Subject:=PChar(aSubject);
   Text:=PChar(aText);
   if @SM <> nil then begin
     MakeMessage;
     Result:=SM(0,aHandle, Message, MAPI_FLAG, 0);
   end
   else
     Result:=1
 finally
   FreeLibrary(MAPIModule)
 end;
end;

Прошу обратить внимание на участок

if ShowMailer then
  MAPI_FLAG:=MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION
 else
  MAPI_FLAG:=0;

На компе с TheBat (если он настроен на перехват mapi) или Outlook Express, все нормально - при ShowMailer=true появляется окно редактирования сообщения. А вот на компе с MS OutLook ничего не появляется - сообщения молча уходят в OutLook. Как это можно залечить?


 
Aleksandr.   (2005-11-11 14:55) [1]

И, кстати, у этой функции с OutLook Express проблемы, если флаг MAPI_DIALOG установлен. Появляется окно редактирования сообщения, при этом доступен ввод символов в адрес получателя, но больше в этом окне ничего сделать нельзя, в т.ч. и закрыть его.


 
instance   (2005-12-22 14:52) [2]


> И, кстати, у этой функции с OutLook Express проблемы, если
> флаг MAPI_DIALOG установлен. Появляется окно редактирования
> сообщения, при этом доступен ввод символов в адрес получателя,
>  но больше в этом окне ничего сделать нельзя, в т.ч. и закрыть
> его.


SendMail(Application.Handle, ...
И тогда ничего не виснет.
Вот интересно было бы узнать, какими такими свойствами должно обладать передаваемое окно, чтоб это все не висло? Ну, если, скажем, программа без VCL...



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.031 c
15-1142006670
Express
2006-03-10 19:04
2006.04.02
сколько строчек программного кода написано во всем проекте????


15-1141919810
Tria
2006-03-09 18:56
2006.04.02
Подскажите пож. прогу для создания обучающих роликов.


2-1142514252
zorik
2006-03-16 16:04
2006.04.02
Какую СУБД выбрать?


8-1130308609
Romanina
2005-10-26 10:36
2006.04.02
Проигрывание wav с помощью DirectSound


2-1142399205
Тормаз
2006-03-15 08:06
2006.04.02
Многозадачнасть + SerchFiles