home *** CD-ROM | disk | FTP | other *** search
Wrap
Visual Basic class definition | 1999-01-27 | 4.8 KB | 159 lines
VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "Connect" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = True Attribute VB_Description = "Procedure Builder" Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes" Attribute VB_Ext_KEY = "Top_Level" ,"Yes" Option Explicit Implements IDTExtensibility Public FormDisplayed As Boolean Public VBInstance As vbide.VBE Dim mcbMenuCommandBar As Office.CommandBarControl Dim mfrmProcedureBuilder As New frmProcedureBuilder Public WithEvents MenuHandler As CommandBarEvents 'command bar event handler Attribute MenuHandler.VB_VarHelpID = -1 Sub Hide() On Error Resume Next FormDisplayed = False mfrmProcedureBuilder.Hide End Sub Sub Show() On Error Resume Next ' Get the component Set VBC = VBInstance.SelectedVBComponent If mfrmProcedureBuilder Is Nothing Then Set mfrmProcedureBuilder = New frmProcedureBuilder End If Set mfrmProcedureBuilder.VBInstance = VBInstance Set mfrmProcedureBuilder.Connect = Me FormDisplayed = True mfrmProcedureBuilder.Show End Sub '------------------------------------------------------ 'this method adds the Add-In to VB '------------------------------------------------------ Private Sub IDTExtensibility_OnConnection(ByVal VBInst As Object, ByVal ConnectMode As vbext_ConnectMode, ByVal AddInInst As vbide.AddIn, custom() As Variant) On Error GoTo error_handler 'save the vb instance Set VBInstance = VBInst 'this is a good place to set a breakpoint and 'test various addin objects, properties and methods Debug.Print VBInst.FullName If ConnectMode = vbext_cm_External Then 'Used by the wizard toolbar to start this wizard Me.Show Else Set mcbMenuCommandBar = AddToAddInCommandBar("&Procedure Builder") 'sink the event Set Me.MenuHandler = VBInst.Events.CommandBarEvents(mcbMenuCommandBar) End If If ConnectMode = vbext_cm_AfterStartup Then If GetSetting(App.Title, "Settings", "DisplayOnConnect", "0") = "1" Then 'set this to display the form on connect Me.Show End If End If Exit Sub error_handler: MsgBox Err.Description End Sub '------------------------------------------------------ 'this method removes the Add-In from VB '------------------------------------------------------ Private Sub IDTExtensibility_OnDisconnection(ByVal RemoveMode As vbext_DisconnectMode, custom() As Variant) On Error Resume Next 'delete the command bar entry mcbMenuCommandBar.Delete 'shut down the Add-In If FormDisplayed Then SaveSetting App.Title, "Settings", "DisplayOnConnect", "1" FormDisplayed = False Else SaveSetting App.Title, "Settings", "DisplayOnConnect", "0" End If Unload mfrmProcedureBuilder Set mfrmProcedureBuilder = Nothing End Sub Private Sub IDTExtensibility_OnStartupComplete(custom() As Variant) If GetSetting(App.Title, "Settings", "DisplayOnConnect", "0") = "1" Then 'set this to display the form on connect Me.Show End If End Sub Private Sub IDTExtensibility_OnAddInsUpdate(custom() As Variant) ' Must have a comment here to prevent the compiler from removing the procedure End Sub 'this event fires when the menu is clicked in the IDE Private Sub MenuHandler_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean) ' First ascertain whether a module or class module is selected. ' If so then continue otherwise exit If VBInstance.CodePanes.Count = 0 Then ' Notify the user that there is no code pane to amend MsgBox "You must have a code pane opened" Else Me.Show End If End Sub Function AddToAddInCommandBar(sCaption As String) As Office.CommandBarControl Dim cbMenuCommandBar As Office.CommandBarControl 'command bar object Dim cbMenu As Object On Error GoTo AddToAddInCommandBarErr 'see if we can find the Add-Ins menu Set cbMenu = VBInstance.CommandBars("Add-Ins") If cbMenu Is Nothing Then 'not available so we fail Exit Function End If 'add it to the command bar Set cbMenuCommandBar = cbMenu.Controls.Add(1) 'set the caption cbMenuCommandBar.Caption = sCaption Set AddToAddInCommandBar = cbMenuCommandBar Exit Function AddToAddInCommandBarErr: End Function