![]() |
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
|
|||
|
|||
![]()
Hi,
I'm using VB6 to write an Outlook Add-in for Outlook 2003. I need to intercept the click event of some built-in buttons from the Explore object because the Outlook object model does not have all the events I need. The problem is if I have multiple explorers running, the click event will be triggered multiple times, when the button is pressed once. I know I need to set the .tag property to some unique value to avoid the event being trigged more than once, if it is a new button, but the trick does not work for built-in button controls. I have a class to wrap the explorer collection and the class has it's own variable to hold the button object My code looks like this: Set oBtnHelp = oExplorer.CommandBars("Standard").Controls("Help") oBtnHelp.tag = "some unique value for each explorer" ...... ...... Private Sub oBtnHelp_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) 'Do something for this event End Sub Could anyone show me what I need to do to fix the issue? Thanks, Thomson |
Ads |
#2
|
|||
|
|||
![]()
You can't set the properties on built-in buttons that would enable avoiding
this, so you have to use something like flags to avoid the problem. Set a global flag when the click is first handled and let the other handlers test for that flag. Use something like a timer to clear the flag after a short period of time so the next legitimate click is then handled. -- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Professional Programming Outlook 2007 Reminder Manager, Extended Reminders, Attachment Options http://www.slovaktech.com/products.htm "Thomson Mui" wrote in message ... Hi, I'm using VB6 to write an Outlook Add-in for Outlook 2003. I need to intercept the click event of some built-in buttons from the Explore object because the Outlook object model does not have all the events I need. The problem is if I have multiple explorers running, the click event will be triggered multiple times, when the button is pressed once. I know I need to set the .tag property to some unique value to avoid the event being trigged more than once, if it is a new button, but the trick does not work for built-in button controls. I have a class to wrap the explorer collection and the class has it's own variable to hold the button object My code looks like this: Set oBtnHelp = oExplorer.CommandBars("Standard").Controls("Help") oBtnHelp.tag = "some unique value for each explorer" ..... ..... Private Sub oBtnHelp_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) 'Do something for this event End Sub Could anyone show me what I need to do to fix the issue? Thanks, Thomson |
#3
|
|||
|
|||
![]()
Thanks alot. I will try your suggestion.
"Ken Slovak - [MVP - Outlook]" wrote in message ... You can't set the properties on built-in buttons that would enable avoiding this, so you have to use something like flags to avoid the problem. Set a global flag when the click is first handled and let the other handlers test for that flag. Use something like a timer to clear the flag after a short period of time so the next legitimate click is then handled. -- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Professional Programming Outlook 2007 Reminder Manager, Extended Reminders, Attachment Options http://www.slovaktech.com/products.htm "Thomson Mui" wrote in message ... Hi, I'm using VB6 to write an Outlook Add-in for Outlook 2003. I need to intercept the click event of some built-in buttons from the Explore object because the Outlook object model does not have all the events I need. The problem is if I have multiple explorers running, the click event will be triggered multiple times, when the button is pressed once. I know I need to set the .tag property to some unique value to avoid the event being trigged more than once, if it is a new button, but the trick does not work for built-in button controls. I have a class to wrap the explorer collection and the class has it's own variable to hold the button object My code looks like this: Set oBtnHelp = oExplorer.CommandBars("Standard").Controls("Help") oBtnHelp.tag = "some unique value for each explorer" ..... ..... Private Sub oBtnHelp_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) 'Do something for this event End Sub Could anyone show me what I need to do to fix the issue? Thanks, Thomson |
#4
|
|||
|
|||
![]()
An additional thing you could give a try is to get the explorers.count
and then count the events triggered by the relevant button. Once the explorers.count has been reached you can get ready for the next click event. Finally you can mix this with the previous suggestions from Ken just in case one event will not be fired for an unknown reason... happy coding! -Michael Thomson Mui schrieb: Thanks alot. I will try your suggestion. "Ken Slovak - [MVP - Outlook]" wrote in message ... You can't set the properties on built-in buttons that would enable avoiding this, so you have to use something like flags to avoid the problem. Set a global flag when the click is first handled and let the other handlers test for that flag. Use something like a timer to clear the flag after a short period of time so the next legitimate click is then handled. -- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Professional Programming Outlook 2007 Reminder Manager, Extended Reminders, Attachment Options http://www.slovaktech.com/products.htm "Thomson Mui" wrote in message ... Hi, I'm using VB6 to write an Outlook Add-in for Outlook 2003. I need to intercept the click event of some built-in buttons from the Explore object because the Outlook object model does not have all the events I need. The problem is if I have multiple explorers running, the click event will be triggered multiple times, when the button is pressed once. I know I need to set the .tag property to some unique value to avoid the event being trigged more than once, if it is a new button, but the trick does not work for built-in button controls. I have a class to wrap the explorer collection and the class has it's own variable to hold the button object My code looks like this: Set oBtnHelp = oExplorer.CommandBars("Standard").Controls("Help") oBtnHelp.tag = "some unique value for each explorer" ..... ..... Private Sub oBtnHelp_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) 'Do something for this event End Sub Could anyone show me what I need to do to fix the issue? Thanks, Thomson |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Outlook 2007 Appointment built-in control id for Send button | GR | Add-ins for Outlook | 0 | May 22nd 07 09:26 PM |
An event raise twice when click the button. | David | Add-ins for Outlook | 0 | July 16th 06 12:25 PM |
click a button on the toolbar (via VBA?) | Dan | Outlook and VBA | 7 | May 2nd 06 09:35 AM |
click a button on the toolbar (via VBA?) | Dan | Outlook - General Queries | 2 | May 1st 06 01:39 PM |
form and event click | ivanoe | Outlook - Using Forms | 1 | January 17th 06 08:40 PM |