Главная страница
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.035 c
3-1139309659
WellSlava
2006-02-07 13:54
2006.04.02
сохранение отчета Fast Report в БД


15-1142244055
Nic
2006-03-13 13:00
2006.04.02
Что думаете о дизане компашки?


11-1124045938
UFO
2005-08-14 22:58
2006.04.02
TBitmap в kol + asm


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


2-1142180300
asd
2006-03-12 19:18
2006.04.02
Почему в ActionMainMenuBar нельзя сменить Color?