![]() |
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
![]()
I have been using vb6 to build a COM Add-in for Outlook. There are parts of
the code that run in a long loop and require a DoEvents. In the case of Outlook 2007, all is fine until a new mailitem is opened and user starts typing an email. Once the user starts typing and a DoEvents it triggered by the Add-in in the background then Outlook locks up indefinitely using 100% CPU. I have went through and eliminated any unnecessary DoEvents but if I remove all of them then Outlook stalls until the large loops are completed. This does not occur in Outlook 2000, 2002 or 2003. Any suggestions? Thanks, Chris Smith |
#3
|
|||
|
|||
![]()
Thanks for the message. Looking for shortest path to a resolution here before
considering additional threading code. I would agree that using DoEvents in Outlook 2007 may steal messages but in previous Outlook versions it did not exhibit this behavior. I read in group a posting "Subject: Accessing Outlook while addin is running - 7/9/2007" that Ken Slovak suggested using System.Windows.Forms.DoEvents. I don't currently see a way to access that in vb6 because it is .Net. Is there an alternative function for DoEvents that can be accessed by vb6 to use in a COM Add-in for Outlook 2007? Thanks again, Chris Smith "Dmitry Streblechenko" wrote: You should not be using DoEvents in a COM add-in - it is essentially calling GetMessage/TranslateMessage/DispatchMessage. These functions must be called by Outlook, not by your code; you are probably ending up stealing some messages that Outlook is expecting. If you have a long loop, use a separate thread. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Chris Smith" Chris wrote in message ... I have been using vb6 to build a COM Add-in for Outlook. There are parts of the code that run in a long loop and require a DoEvents. In the case of Outlook 2007, all is fine until a new mailitem is opened and user starts typing an email. Once the user starts typing and a DoEvents it triggered by the Add-in in the background then Outlook locks up indefinitely using 100% CPU. I have went through and eliminated any unnecessary DoEvents but if I remove all of them then Outlook stalls until the large loops are completed. This does not occur in Outlook 2000, 2002 or 2003. Any suggestions? Thanks, Chris Smith |
#4
|
|||
|
|||
![]()
No, whether you call DoEvents in VB6 or System.Windows.Forms.DoEvents in
..Net won't make a difference; they all do the same thing. A separate thread is the way to go. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Chris Smith" wrote in message ... Thanks for the message. Looking for shortest path to a resolution here before considering additional threading code. I would agree that using DoEvents in Outlook 2007 may steal messages but in previous Outlook versions it did not exhibit this behavior. I read in group a posting "Subject: Accessing Outlook while addin is running - 7/9/2007" that Ken Slovak suggested using System.Windows.Forms.DoEvents. I don't currently see a way to access that in vb6 because it is .Net. Is there an alternative function for DoEvents that can be accessed by vb6 to use in a COM Add-in for Outlook 2007? Thanks again, Chris Smith "Dmitry Streblechenko" wrote: You should not be using DoEvents in a COM add-in - it is essentially calling GetMessage/TranslateMessage/DispatchMessage. These functions must be called by Outlook, not by your code; you are probably ending up stealing some messages that Outlook is expecting. If you have a long loop, use a separate thread. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Chris Smith" Chris wrote in message ... I have been using vb6 to build a COM Add-in for Outlook. There are parts of the code that run in a long loop and require a DoEvents. In the case of Outlook 2007, all is fine until a new mailitem is opened and user starts typing an email. Once the user starts typing and a DoEvents it triggered by the Add-in in the background then Outlook locks up indefinitely using 100% CPU. I have went through and eliminated any unnecessary DoEvents but if I remove all of them then Outlook stalls until the large loops are completed. This does not occur in Outlook 2000, 2002 or 2003. Any suggestions? Thanks, Chris Smith |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Outlook 2007 locks up after upgrade from 2003 | Bob Kelley | Outlook - Installation | 2 | November 5th 07 02:22 PM |
Outlook 2007 Locks up | steveb | Outlook - General Queries | 6 | March 12th 07 04:53 PM |
Outlook locks up immediately when opened | David Mursch | Outlook - General Queries | 11 | February 7th 07 03:14 PM |
Outlook 2007 locks up when started | Soaring_Eagle | Outlook - General Queries | 2 | January 12th 07 02:45 PM |
Creating an Outlook MailItem when Outlook hasn't been opened | WhytheQ | Outlook and VBA | 1 | May 11th 06 12:41 AM |