![]() |
Intercepting click event of built-in button
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 |
Intercepting click event of built-in button
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 |
Intercepting click event of built-in button
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 |
Intercepting click event of built-in button
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 |
All times are GMT +1. The time now is 03:48 PM. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com