2016-09-07 3 views
0

Моего приложения отправка электронной почты через MAPI вызов:MAPI вызова без блокировки приложения

[DllImport("MAPI32.DLL")] 
static extern int MAPISendMail(IntPtr sess, IntPtr hwnd, MapiMessage message, int flg, int rsv); 

и где-то еще:

m_lastError = MAPISendMail(new IntPtr(0), new IntPtr(0), msg, how, 0); 

Это хорошо работает для одной задачи, за исключением: окно перспективы будет полностью блокировать приложение.
Это похоже на предполагаемое поведение, но я бы не хотел, чтобы он так себя вел. Есть идеи?

Я попытался позвонить MAPI из фоновой нити, но, похоже, это невозможно.

ответ

2

Это как раз простой MAPI работает - вместо этого используйте OOM (Application.CreateItem/MailItem.Display(false)).

+1

, который будет работать только для Outlook. Я отказываюсь верить, что для MAPI нет обходного пути. –

+1

Outlook * есть * MAPI. По крайней мере, доля рынка в Windows. Используйте OOM для Outlook и Simple MAPI для других клиентов. –

+0

Это может сработать. Я попробую. –

Смежные вопросы