Share via


Comment : manipuler le code à l'aide du modèle de code Visual C++ (Visual Basic)

Dans Visual Studio 2013, les compléments sont déconseillés. Nous vous recommandons de mettre vos compléments à niveau aux extensions VSPackage. Pour plus d'informations sur la mise à niveau, consultez FAQ : conversion de compléments en extensions VSPackage.

Le modèle de code Visual Studio offre la capacité aux clients Automation de rechercher des définitions de code dans un projet et de modifier ces éléments de code. Visual C++ fournit une extension au modèle de code principal pour cibler le code qui est spécifique à Visual C++.

Par exemple, si la propriété Language indique qu'un élément de code donné est un objet du modèle de code Visual C++, et Kind = vsCMElementClass, vous pouvez choisir d'utiliser CodeClass2 à partir du modèle de code Visual Studio ou d'utiliser VCCodeClass à partir du modèle de code Visual C++.

Les procédures suivantes montrent comment examiner et générer le code au moyen du modèle de code spécifique à Visual C++.

Pour ajouter un commentaire au premier fichier dans le projet

  1. Créez un projet de complément Visual Studio dans Visual Basic.

  2. Dans le menu Projet, cliquez sur Ajouter une référence, sur l'onglet .NET, sélectionnez Microsoft.VisualStudio.VCCodeModel, puis cliquez sur OK.

  3. Ajoutez Imports Microsoft.VisualStudio.VCCodeModel au début du fichier Connect.vb.

  4. Remplacez le code de la méthode OnConnection par le code suivant :

    Imports Microsoft.VisualStudio.VCCodeModel
    Public Sub OnConnection(ByVal application As Object, ByVal  _
      connectMode As ext_ConnectMode, ByVal addInInst As Object, _
      ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        _applicationObject = CType(application, DTE2)
        _addInInstance = CType(addInInst, AddIn)
        test(_applicationObject)
    End Sub
    
    Sub test(ByVal dte As DTE2)
        Dim vcCM As VCCodeModel
        Dim vcCodeElement As VCCodeElement
        vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel)
        vcCodeElement = CType(vcCM.CodeElements.Item(1), _
          VCCodeElement)
        AddCommentAtStart(vcCodeElement)
        AddCommentAtEnd(vcCodeElement)
    End Sub
    
    ' Project Property
    ' StartPointOf Property
    ' Adds a comment before the VCCodeElement declaration.
    Sub AddCommentAtStart(ByVal vcCodeElement As VCCodeElement)
        Dim textPoint As TextPoint
        textPoint = vcCodeElement.StartPointOf(vsCMPart.vsCMPartWhole)
        textPoint.CreateEditPoint().Insert("/*This is a Start_ Comment*/")
    End Sub
    
    Sub AddCommentAtEnd(ByVal vcCodeElement As VCCodeElement)
        Dim textPoint As TextPoint
        textPoint = vcCodeElement.EndPointOf(vsCMPart.vsCMPartWhole)
        textPoint.CreateEditPoint().Insert("/*End Comment*/")
    End Sub
    
  5. Pour générer le complément, cliquez sur Générer la solution dans le menu Générer.

  6. Ouvrez un projet Visual C++ dans l'environnement de développement intégré (IDE) de Visual Studio.

  7. Dans le menu Outils, cliquez sur Gestionnaire de compléments, puis sélectionnez votre complément dans la boîte de dialogue Gestionnaire de compléments. Cliquez sur OK pour exécuter votre complément.

  8. Examinez les commentaires ajoutés par programme dans le premier fichier du projet.

Pour ajouter un nouveau fichier à un projet Visual C++

  1. Créez un projet de complément Visual Studio dans Visual Basic.

  2. Dans le menu Projet, cliquez sur Ajouter une référence, sur l'onglet .NET, sélectionnez Microsoft.VisualStudio.VCCodeModel, puis cliquez sur OK.

  3. Ajoutez Imports Microsoft.VisualStudio.VCCodeModel au début du fichier Connect.vb.

  4. Remplacez le code de la méthode OnConnection par le code suivant :

    Imports Microsoft.VisualStudio.VCCodeModel
    Public Sub OnConnection(ByVal application As Object, ByVal _
      connectMode As ext_ConnectMode, ByVal addInInst As Object,  _
      ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        _applicationObject = CType(application, DTE2)
        _addInInstance = CType(addInInst, AddIn)
        GetVCCodeElement(_applicationObject)
    End Sub
    
    ' Shows how to get a VCCodeElement.
    Sub GetVCCodeElement(ByVal dte As DTE2)
        Dim vcCM As VCCodeModel
        Dim vcCodeElement As VCCodeElement
        vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel)
        vcCodeElement = CType(vcCM.AddClass("MyClass2", "MyClass2.h"), _
          VCCodeElement)
    End Sub
    
  5. Pour générer le complément, cliquez sur Générer la solution dans le menu Générer.

  6. Ouvrez un projet Visual C++ dans l'IDE de Visual Studio.

  7. Dans le menu Outils, cliquez sur Gestionnaire de compléments, puis sélectionnez votre complément dans la boîte de dialogue Gestionnaire de compléments. Cliquez sur OK pour exécuter votre complément.

    Notes

    Si MyClass2.h existe déjà, le code échoue.

Pour ajouter une fonction à file.h

  1. Créez un projet de complément Visual Studio dans Visual Basic.

  2. Dans le menu Projet, cliquez sur Ajouter une référence, sur l'onglet .NET, sélectionnez Microsoft.VisualStudio.VCCodeModel, puis cliquez sur OK.

  3. Ajoutez Imports Microsoft.VisualStudio.VCCodeModel au début du fichier Connect.vb.

  4. Remplacez le code de la méthode OnConnection par le code suivant :

    Imports Microsoft.VisualStudio.VCCodeModel
    Public Sub OnConnection(ByVal application As Object, ByVal _
      connectMode As ext_ConnectMode, ByVal addInInst As Object, _
      ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        _applicationObject = CType(application, DTE2)
        _addInInstance = CType(addInInst, AddIn)
        DisplayName(_applicationObject)
    End Sub
    
    ' DisplayName
    ' Shows the DisplayName of a function which includes the parameter 
    ' names.
    Sub DisplayName(ByVal dte As DTE2)
        Dim vcCM As VCCodeModel
        Dim vcCodeElement As VCCodeElement
        vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel)
        vcCodeElement = CType(vcCM.AddFunction("MyFunction", "File.h", _
          vsCMFunction.vsCMFunctionFunction, "void"), VCCodeElement)
        MsgBox(vcCodeElement.DisplayName)
    End Sub
    
  5. Pour générer le complément, cliquez sur Générer la solution dans le menu Générer.

  6. Ouvrez un projet Visual C++ dans l'IDE de Visual Studio et ajoutez file.h.

  7. Dans le menu Outils, cliquez sur Gestionnaire de compléments, puis sélectionnez votre complément dans la boîte de dialogue Gestionnaire de compléments. Cliquez sur OK pour exécuter votre complément.

  8. Examinez le code inséré dans file.h.

Pour afficher les fichiers qui incluent des éléments de code de niveau supérieur

  1. Créez un projet de complément Visual Studio dans Visual Basic.

  2. Dans le menu Projet, cliquez sur Ajouter une référence, sur l'onglet .NET, sélectionnez Microsoft.VisualStudio.VCCodeModel, puis cliquez sur OK.

  3. Ajoutez Imports Microsoft.VisualStudio.VCCodeModel au début du fichier Connect.vb.

  4. Remplacez le code dans la méthode OnConnection par le code suivant :

    Imports Microsoft.VisualStudio.VCCodeModel
    Public Sub OnConnection(ByVal application As Object, ByVal _
      connectMode As ext_ConnectMode, ByVal addInInst As Object, _
      ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        _applicationObject = CType(application, DTE2)
        _addInInstance = CType(addInInst, AddIn)
        DisplayLocation(_applicationObject)
    End Sub
    
    Sub DisplayLocation(ByVal dte As DTE2)
        Dim vcCM As VCCodeModel
        Dim vcCodeElement As VCCodeElement
        vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel)
        For Each vcCodeElement In vcCM.CodeElements
            MsgBox(vcCodeElement.Name + " is declared in " _
              & vcCodeElement.Location)
        Next
    End Sub
    
  5. Pour générer le complément, cliquez sur Générer la solution dans le menu Générer.

  6. Ouvrez un projet Visual C++ dans l'IDE de Visual Studio.

  7. Dans le menu Outils, cliquez sur Gestionnaire de compléments, puis sélectionnez votre complément dans la boîte de dialogue Gestionnaire de compléments. Cliquez sur OK pour exécuter votre complément.

    Les boîtes de message affichent les noms de fichiers qui contiennent des éléments de code de niveau supérieur.

Pour afficher tous les éléments de code de niveau supérieur

  1. Créez un projet de complément Visual Studio dans Visual Basic.

  2. Dans le menu Projet, cliquez sur Ajouter une référence, sur l'onglet .NET, sélectionnez Microsoft.VisualStudio.VCCodeModel, puis cliquez sur OK.

  3. Ajoutez Imports Microsoft.VisualStudio.VCCodeModel au début du fichier Connect.vb.

  4. Remplacez le code dans la méthode OnConnection par le code suivant :

    Imports Microsoft.VisualStudio.VCCodeModel
    Public Sub OnConnection(ByVal application As Object, ByVal _
     connectMode As Extensibility.ext_ConnectMode, ByVal addInInst _
     As Object, ByRef custom As System.Array) Implements _
     Extensibility.IDTExtensibility2.OnConnection
    
        _applicationObject = CType(application, DTE2)
        _addInInstance = CType(addInInst, AddIn)
        FindItem(_applicationObject)
    End Sub
    
    Sub FindItem(ByVal dte As DTE2)
        Dim vcCM As VCCodeModel
        Dim vcCodeElements As VCCodeElements
        vcCM = CType(dte.Solution.Item(1).CodeModel, VCCodeModel)
        vcCodeElements = CType(vcCM.CodeElements, VCCodeElements)
        Dim i As Integer
        For i = 1 To vcCodeElements.Count
            MsgBox(vcCodeElements.Item(i).Name)
        Next
    End Sub
    
  5. Pour générer le complément, cliquez sur Générer la solution dans le menu Générer.

  6. Ouvrez un projet Visual C++ dans l'IDE de Visual Studio.

  7. Dans le menu Outils, cliquez sur Gestionnaire de compléments, puis sélectionnez votre complément dans la boîte de dialogue Gestionnaire de compléments. Cliquez sur OK pour exécuter votre complément.

    Les boîtes de message affichent les noms des éléments de code de niveau supérieur.

Voir aussi

Concepts

Modèle de code Visual C++

Découverte de code à l'aide du modèle de code (Visual Basic)

Découverte de code à l'aide du modèle de code (Visual C#)