Addin Hook EventsAuthor: Dave Date: 04.10.14 - 4:39am Ok this is kind of cool and I couldnt find any examples to it online, but I figured it would be valid. The VB6 Addin model allows you to enumerate all of the menus and toolbar buttons in the IDE. You can get their caption, and execute them based on a reference you obtain from enumeration. It also stood to reason, that if you can get a reference to them, you can also hook into their events and be notified when the user clicks them. I was looking for:
Dim mcbRealStartButton As Office.CommandBarControl Private WithEvents mnuRealRun As CommandBarEvents 'hook into existing controls events Set mcbRealStartButton = FindRunButton() If Not mcbRealStartButton Is Nothing Then Set mnuRealRun = VBInstance.Events.CommandBarEvents(mcbRealStartButton) End If Private Sub mnuRealRun_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean) If ClearImmediateOnStart = 1 Then On Error Resume Next Dim oWindow As VBIDE.Window Set oWindow = VBInstance.ActiveWindow VBInstance.Windows("Immediate").SetFocus SendKeys "^{Home}", True SendKeys "^+{End}", True SendKeys "{Del}", True oWindow.SetFocus End If End Sub Private Function FindRunButton() As Office.CommandBarControl Dim cbToolbar As Office.CommandBar Dim cbSubMenu As Office.CommandBarControl For Each cbToolbar In VBInstance.CommandBars 'Debug.Print "Toolbar: " & cbToolbar.Index 'If cbToolbar.Index = 17 Then Stop For Each cbSubMenu In cbToolbar.Controls 'Debug.Print vbTab & cbSubMenu.caption If cbSubMenu.caption = "&Start" Then Set FindRunButton = cbSubMenu Exit Function End If Next Next End Function |
About Me More Blogs Main Site
|
||||||||||||||||||||||||||||||||||||||||||