Creazione di un base aggiuntivo con VB5 o VB6

Traduzione articoli Traduzione articoli
Identificativo articolo: 189468 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto come creare il framework di base di un componente aggiuntivo per Visual Basic 5.0 o 6.0. Un componente aggiuntivo utilizza il modello a oggetti extensibility di Visual Basic per personalizzare ed estendere l'ambiente Visual Basic.

Informazioni

In Visual Basic 5.0 o 6.0, è possibile creare il codice per un progetto di componente aggiuntivo minimo con un unico passaggio. Si fa doppio semplicemente clic sull'icona del componente aggiuntivo quando si avvia un nuovo progetto di Visual Basic.

Un Visual Basic 5.0 o 6.0 aggiuntivo può essere sia un DLL ActiveX o EXE di ActiveX, a seconda l'impostazione nella finestra di dialogo proprietà del tipo di progetto.

Per impostazione predefinita, un file EXE ActiveX viene creato dalla creazione guidata componente aggiuntivo per Visual Basic 5.0, e per impostazione predefinita per Visual Basic 6.0 viene creata una DLL ActiveX. Viene assegnato il nome MyAddin.vbp. In Visual Basic 5.0, tre file vengono aggiunti per questo progetto, connect.cls, frmAddin.frm e Addin.bas. Di seguito il contenuto dei file è elencato con ulteriori commenti.

Visual Basic 5.0

Connect.CLS

   Option Explicit

   'The IDTExtensibility is used to gain access to the
   'necessary events in the extensibility model. These four
   'interface methods must be contained in this class
   'module and must contain at least one line of code. Even
   'if the line of code is a comment.
   '
   '   + OnConnection
   '   + OnDisconnection
   '   + OnStartUpComplete
   '   + OnAddInsUpdate
   '
   '
   Implements IDTExtensibility

   'FormDisplayed keeps track of whether your form is displayed
   Public FormDisplayed As Boolean

   'VBInstance is used to identify which Visual Basic IDE the
   'Addin belongs to. Because you can have multiple
   'IDEs open, this identifies the correct IDE.
   Public VBInstance As VBIDE.VBE

   'mcbMenuCommandBar is a reference to the new menu item in the Addins
   'Menu.
   Dim mcbMenuCommandBar As Office.CommandBarControl

   'mfrmAddIn is used to reference the addins form.
   Dim mfrmAddIn As New frmAddIn

   'MenuHandler is the command bar event handler that gives
   'access to the command bar events that is used to notify the
   'addin that a menuitem was selected.
   Public WithEvents MenuHandler As CommandBarEvents

   '  Hides the Addin Form
   '
   Sub Hide()

      On Error Resume Next

      FormDisplayed = False
      mfrmAddIn.Hide

   End Sub

   '  Shows the Addin Form
   '
   Sub Show()

      On Error Resume Next

      If mfrmAddIn Is Nothing Then
         Set mfrmAddIn = New frmAddIn
      End If

      'Sets the forms Public VBInstance variable to the instance of Visual
      'Basic that the addin is being run under.

      Set mfrmAddIn.VBInstance = VBInstance

      'Sets the Forms Connect Variable to the instance of this class.

      Set mfrmAddIn.Connect = Me
      FormDisplayed = True
      mfrmAddIn.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
         'Create the Menu Item in the AddinMenu and
         'return a reference to it in mcbMenuCommandBar.
         '(See AddToAddInCommandBar function below.)
         '
         Set mcbMenuCommandBar = AddToAddInCommandBar("My AddIn")
         'Sets this Classes MenuHandler Event to receive events from the
         'Menu Item that was just added to the AddInCommandBar
         '(mcbMenuCommandBar).
        Set Me.MenuHandler = _
            VBInst.Events.CommandBarEvents(mcbMenuCommandBar)
      End If

      ' vbext_cm_AfterStartup indicates Addin is connected after IDE
      ' startup.
      '
      If ConnectMode = vbext_cm_AfterStartup Then
         'Checks in the Registry to see if it needs
         'to show the Addin when it connects.
         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

      'Remove the Menu Item for the Add-in
      mcbMenuCommandBar.Delete

      ' Shut down the Add-In and Save the Visible state of the
      ' addin form for the next time the addin is loaded.
      '
      If FormDisplayed Then
         SaveSetting App.Title, "Settings", "DisplayOnConnect", "1"
         FormDisplayed = False
      Else
         SaveSetting App.Title, "Settings", "DisplayOnConnect", "0"
      End If

      Unload mfrmAddIn
      Set mfrmAddIn = 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

   'As it has been mentioned above, all four interfaces must be
   'implemented and must contain at least one line of code for your add-in
   'to function properly. If you don't have any particular code that you
   'want to put in these procedures, just insert a comment. If the
   'procedure is empty, it will be removed by the compiler.

   Private Sub IDTExtensibility_OnAddInsUpdate(custom() As Variant)
   '
   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)
      Me.Show
   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 the Add-Ins menu can be found.
      Set cbMenu = VBInstance.CommandBars("Add-Ins")
      If cbMenu Is Nothing Then
         'Add-Ins menu is not available so you fail.
         Exit Function
      End If

     'Create a new menu item in the Add-Ins menu.
     '
     Set cbMenuCommandBar = cbMenu.Controls.Add(1)

     'Set the menu caption.
     '
     cbMenuCommandBar.Caption = sCaption

     ' Return a Reference to the New Menu Item.
     '
     Set AddToAddInCommandBar = cbMenuCommandBar

   Exit Function

   AddToAddInCommandBarErr:

   End Function
				

frmAddin.frm

   Public VBInstance As VBIDE.VBE
   Public Connect As Connect

   Option Explicit

   Private Sub CancelButton_Click()
      ' Hide the Form
      '
      Connect.Hide
   End Sub

   Private Sub OKButton_Click()
      ' Place your specific Add-in code here
      '
      MsgBox "AddIn operation on: " & VBInstance.FullName
   End Sub
				

Addin.BAS

   Option Explicit
   Declare Function WritePrivateProfileString& Lib "Kernel32" Alias
      "WritePrivateProfileStringA" (ByVal AppName$, ByVal KeyName$, _
      ByVal keydefault$, ByVal FileName$)

   '====================================================================
   'This sub should be executed from the Immediate window.
   'In order to get this app added to the VBADDIN.INI file,
   'you must change the name in the second argument to reflect
   'the correct name of your project.
   '====================================================================
   Sub AddToINI()
      Dim ErrCode As Long
      ErrCode = WritePrivateProfileString("Add-Ins32",
            "MyAddIn.Connect","0", "vbaddin.ini")
   End Sub
				

Visual Basic 6.0

Sebbene il codice del progetto componente aggiuntivo in Visual Basic 6.0 sia molto simile al codice Visual Basic 5.0, solo due file vengono aggiunti al progetto di MyAddin; il frmAddin.frm e una progettazione ActiveX (connect.dsr). Progettazione ActiveX è un componente di ActiveX che dispone di un'interfaccia programmabile e un'interfaccia visiva. La finestra di progettazione consente di personalizzare il componente aggiuntivo per l'utilizzo di fase di esecuzione. La finestra di progettazione contiene inoltre l'interfaccia AddinInstance necessarie, anziché dover implementare l'interfaccia IDTExtensibility.

Nella scheda Generale, finestra di progettazione consente di personalizzare alcune informazioni di base per il componente aggiuntivo ad esempio il nome visualizzato, descrizione, l'applicazione host e versione, caricamento iniziale, e se il componente aggiuntivo contiene un'interfaccia utente.

Nella scheda Avanzate, è possibile di selezione di una DLL satellite per la localizzazione e una chiave del Registro di sistema per salvare ulteriori aggiuntivo dati specifici.

È possibile aggiungere codice al componente aggiuntivo tramite codice modificando il codice di progettazione e aggiungendo codice frmAddin.

Come eseguire il base componente aggiuntivo di Visual Basic 5.0 o Visual Basic 6.0

  1. Avviare un nuovo progetto e selezionare l'icona AddIn .
  2. Se si utilizza Visual Basic 5.0, è possibile premere CTRL+G per aprire la finestra immediata. Digitare addtoini e premere Ritorno. ( Nota: questo passaggio non è necessario in Visual Basic 6.0.)
  3. Premere F5 per eseguire il componente aggiuntivo. Questo carica e si registra il componente aggiuntivo.
  4. Creare un nuovo standard EXE in una seconda istanza di Visual Basic.
  5. Dal menu Componenti aggiuntivi , selezionare Gestione componenti aggiuntivi .
  6. In Visual Basic 5.0, selezionare la casella di controllo di Componente aggiuntivo di risorse .

    In Visual Basic 6.0, selezionare Componente aggiuntivo risorse dall'elenco e selezionare la casella di controllo Carica/non caricare . Fare clic su OK .
  7. Dal menu Aggiuntivi , selezionare la Cartella AddIn .
  8. Fare clic su OK per eseguire il codice specifico del componente aggiuntivo in frmAddin. (Una finestra di messaggio viene visualizzata per impostazione predefinita). Fare clic su Annulla per chiudere il modulo.

Riferimenti

MSDN Library Visual Studio 6.0

Proprietà

Identificativo articolo: 189468 - Ultima modifica: martedì 29 giugno 2004 - Revisione: 1.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Chiavi: 
kbmt kbaddin kbhowto KB189468 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 189468
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com