Je développe une application Windows avec le contrôle WebBrowser (IWebBrowser2
) intégré.IWebBrowser2 et appartement multithread?
Les choses semblent bien si j'initialiser appartement COM comme un seul thread:
CoInitialize(NULL);
Cependant, si je change pour être multithread:
CoInitializeEx(NULL, COINIT_MULTITHREADED);
alors il commence à échouer partout dans les lieux avec valeur de retour de:
Un appel sortant ne peut pas être effectué car l'application envoie un appel synchrone en entrée.
depuis les appels vers les méthodes IWebBrowser2. Est-ce que quelqu'un peut me dire comment résoudre le problème? Je dois utiliser un appartement multithread comme une exigence. S'il vous plaît aider!
Pourquoi exactement avez-vous besoin d'utiliser MTA? – sharptooth
En fait, nous ne sommes pas si sûrs ... l'application utilise à la fois iTunes COM et IWebBrowse2 COM et lorsque nous utilisons STA, l'exécution semble hors d'usage sauf si nous utilisons MTA. Cependant, MTA casse IWebBrowser2 comme il semble. – TopQ
Vous savez que vous pouvez faire du multi-threading avec STA très bien? – wqw