2016-09-07 5 views
0

Mon application envoie des e-mails via un appel MAPI:appel MAPI sans bloquer l'application

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

et ailleurs:

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

Cela fonctionne bien sauf pour un problème: La fenêtre Outlook bloquer complètement l'application.
Cela semble être le comportement prévu, mais je voudrais ne pas le faire se comporter de cette façon. Des idées?

J'ai essayé d'appeler MAPI à partir d'un fil de fond, mais il semble que ce ne soit pas possible.

Répondre

2

C'est exactement comme ça que fonctionne Simple MAPI - utilisez OOM à la place (Application.CreateItem/MailItem.Display(false)).

+1

qui ne fonctionnera que pour Outlook, cependant. Je refuse de croire qu'il n'y a pas de solution de contournement pour MAPI. –

+1

Outlook * est * MAPI. Au moins par la part de marché sur Windows. Utilisez MOO pour Outlook et Simple MAPI pour les autres clients. –

+0

Cela pourrait fonctionner. Je vais essayer. –