调用MAPI而不阻塞应用程序

本文关键字:应用程序 MAPI 调用 | 更新日期: 2023-09-27 18:06:12

我的应用程序通过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);

这个工作很好,除了一个问题:outlook窗口将完全阻塞应用程序。
这似乎是预期的行为,但我不想让它表现出这种方式。什么好主意吗?

我试着从后台线程调用MAPI,但似乎这是不可能的。

调用MAPI而不阻塞应用程序

这就是Simple MAPI的工作方式-使用OOM代替(Application.CreateItem/MailItem.Display(false))