Como: manipular o código usando o modelo de código do Visual C++ (Visual C#)

O Visual Studio modelo de código oferece a clientes de automação a capacidade de localizar as definições de código em um projeto e modificar esses elementos de código.Visual C++Fornece uma extensão para o modelo de código do núcleo ao código de destino específico Visual C++.

Por exemplo, se o Language propriedade indica que um elemento de código fornecido é um Visual C++ objeto do modelo de código, e Kind = vsCMElementClass, e em seguida, você pode optar por usar um a CodeClass2 da Visual Studio modelo de código ou o VCCodeClass da Visual C++ modelo de código.

Os procedimentos a seguir demonstram como examinar e gerar código usando o modelo de código específico para Visual C++.

Para adicionar um comentário para o primeiro arquivo no projeto

  1. Criar um Visual Studio projeto de suplemento no Visual C#.

  2. Sobre o projeto menu, clique em Add Reference, clique no .NET de tabulação, selecione Microsoft.VisualStudio.VCCodeModel e, em seguida, clique em OK.

  3. Adicionar using Microsoft.VisualStudio.VCCodeModel; na parte superior do arquivo Connect. cs.

  4. Substitua o código no método OnConnection com o seguinte código:

    // Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        )addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        test((DTE2)_applicationObject); 
    }
    
    public void test( DTE2 dte ) 
    { 
        VCCodeModel vcCM = null; 
        VCCodeElement vcCodeElement = null; 
        vcCM = ( ( VCCodeModel )( dte.Solution.Item( 1 ).CodeModel ) ); 
        vcCodeElement = ( ( VCCodeElement )
    ( vcCM.CodeElements.Item(1))); 
        AddCommentAtStart( vcCodeElement ); 
        AddCommentAtEnd( vcCodeElement ); 
    } 
    
    public void AddCommentAtStart(
      Microsoft.VisualStudio.VCCodeModel.VCCodeElement vcCodeElement )
    {
        TextPoint textPoint = null;
        textPoint = vcCodeElement.get_StartPointOf(
          vsCMPart.vsCMPartWhole, 0 );
        textPoint.CreateEditPoint().Insert("/*This is a Start Comment*/");
    }
    
    public void AddCommentAtEnd( 
      Microsoft.VisualStudio.VCCodeModel.VCCodeElement vcCodeElement )
    {
        TextPoint textPoint = null;
        textPoint = vcCodeElement.get_EndPointOf( vsCMPart.vsCMPartWhole, 0  
          );
        textPoint.CreateEditPoint().Insert( "/*End Comment*/" );
    }
    
  5. Para construir o add-in, clique em Build Solution sobre o Build menu.

  6. Abrir um Visual C++ de projeto na Visual Studio o ambiente de desenvolvimento integrado (IDE).

  7. No Ferramentas menu, clique em Gerenciador de suplementose, em seguida, selecione o add-in da Gerenciador de suplementos caixa de diálogo.Clique em OK para executar seu suplemento.

  8. Examine o primeiro arquivo no projeto para os comentários adicionados por meio de programação.

Para adicionar um novo arquivo a um projeto do Visual C++

  1. Criar um Visual Studio projeto de suplemento no Visual C#.

  2. Sobre o projeto menu, clique em Add Reference, clique no .NET de tabulação, selecione Microsoft.VisualStudio.VCCodeModel e, em seguida, clique em OK.

  3. Adicionar using Microsoft.VisualStudio.VCCodeModel; na parte superior do arquivo Connect. cs.

  4. Substitua o código no método OnConnection com o seguinte código:

    //Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        GetVCCodeElement((DTE2)_applicationObject); 
    }
    
    //  Shows how to get a VCCodeElement.
    public void GetVCCodeElement( DTE2 dte ) 
    {
        VCCodeModel vcCM = null; 
        VCCodeElement vcCodeElement = null; 
        vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )(
          dte.Solution.Item( 1 ).CodeModel ) ); 
        vcCodeElement = ( (
          Microsoft.VisualStudio.VCCodeModel.VCCodeElement )( 
          vcCM.AddClass( "MyClass2", "MyClass2.h",0,null, null,
          EnvDTE.vsCMAccess.vsCMAccessDefault ) ) ); 
    }
    
  5. Para construir o add-in, clique em Build Solution sobre o Build menu.

  6. Abrir um Visual C++ de projeto na Visual Studio IDE.

  7. No Ferramentas menu, clique em Gerenciador de suplementose selecione o add-in da Gerenciador de suplementos caixa de diálogo.Clique em OK para executar seu suplemento.

    ObservaçãoObservação

    Se MyClass2.h já existir, o código falha.

Para adicionar uma função para file.h

  1. Criar um Visual Studio projeto de suplemento no Visual C#.

  2. Sobre o projeto menu, clique em Add Reference, clique no .NET de tabulação, selecione Microsoft.VisualStudio.VCCodeModel e System.Windows.Forms e, em seguida, clique em OK.

  3. Adicione o seguinte usando as instruções para a parte superior do arquivo Connect. CS:

    using System.Windows.Forms;
    using Microsoft.VisualStudio.VCCodeModel;
    
  4. Substitua o código no método OnConnection com o seguinte código:

    // Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    using System.Windows.Forms;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        DisplayName((DTE2)_applicationObject); 
    }
    
    // DisplayName
    // Shows the DisplayName of a function which includes the parameter 
    // names.
    public void DisplayName( DTE2 dte ) 
    { 
        VCCodeModel vcCM = null; 
        VCCodeElement vcCodeElement = null; 
        vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )(
          dte.Solution.Item( 1 ).CodeModel ) ); 
          vcCodeElement = ( (     
            Microsoft.VisualStudio.VCCodeModel.VCCodeElement )
            ( vcCM.AddFunction( "MyFunction", "File.h",  
            vsCMFunction.vsCMFunctionFunction, "void",
            null, EnvDTE.vsCMAccess.vsCMAccessDefault ) ) ); 
        MessageBox.Show( vcCodeElement.DisplayName); 
    }
    
  5. Para construir o add-in, clique em Build Solution sobre o Build menu.

  6. Abrir um Visual C++ projeto na Visual Studio IDE e adicione um file.h a ele.

  7. No Ferramentas menu, clique em Gerenciador de suplementose, em seguida, selecione o add-in da Gerenciador de suplementos caixa de diálogo.Clique em OK para executar seu suplemento.

  8. Examine o código inserido no file.h.

Para exibir arquivos que incluem elementos de código de nível superior

  1. Criar um Visual Studio projeto de suplemento no Visual C#.

  2. Sobre o projeto menu, clique em Add Reference, clique no .NET de tabulação, selecione Microsoft.VisualStudio.VCCodeModel e System.Windows.Forms e, em seguida, clique em OK.

  3. Adicione o seguinte usando as instruções para a parte superior do arquivo Connect. CS:

    using System.Windows.Forms;
    using Microsoft.VisualStudio.VCCodeModel;
    
  4. Substitua o código na OnConnection método com o código a seguir:

    // Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    using System.Windows.Forms;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        DisplayLocation((DTE2)_applicationObject); 
    }
    
    public void DisplayLocation( DTE2 dte ) 
    {
        VCCodeModel vcCM = null; 
        VCCodeElement vcCodeElement = null; 
        vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )(
          dte.Solution.Item( 1 ).CodeModel ) ); 
        foreach ( Microsoft.VisualStudio.VCCodeModel.VCCodeElement temp
          in vcCM.CodeElements ) 
        {
            vcCodeElement = temp;
            MessageBox.Show( vcCodeElement.Name + " is declared in " 
              + vcCodeElement.get_Location(vsCMWhere.vsCMWhereDefault)); 
        }
    }
    
  5. Para construir o add-in, clique em Build Solution sobre o Build menu.

  6. Abrir um Visual C++ de projeto na Visual Studio IDE.

  7. No Ferramentas menu, clique em Gerenciador de suplementose, em seguida, selecione o add-in da Gerenciador de suplementos caixa de diálogo.Clique em OK para executar seu suplemento.

  8. Caixas de mensagens exibem os nomes de arquivo que contêm elementos de código de nível superior.

Para exibir todos os itens de elemento de código de nível superior

  1. Criar um Visual Studio projeto de suplemento no Visual C#.

  2. Sobre o projeto menu, clique em Add Reference, clique no .NET de tabulação, selecione Microsoft.VisualStudio.VCCodeModel e System.Windows.Forms e, em seguida, clique em OK.

  3. Adicione o seguinte usando as instruções para a parte superior do arquivo Connect. CS:

    using System.Windows.Forms;
    using Microsoft.VisualStudio.VCCodeModel;
    
  4. Substitua o código na OnConnection método com o código a seguir:

    // Add-in code.
    using Microsoft.VisualStudio.VCCodeModel;
    using System.Windows.Forms;
    public void OnConnection(object application,
     Extensibility.ext_ConnectMode connectMode, object addInInst,
     ref System.Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        // Pass the applicationObject member variable to the code example.
        FindItem((DTE2)_applicationObject); 
    }
    
    public void FindItem( DTE2 dte ) 
    {
        VCCodeModel vcCM = null; 
        VCCodeElements vcCodeElements = null; 
        vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )(
          dte.Solution.Item( 1 ).CodeModel ) ); 
        vcCodeElements =
          ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeElements )
          ( vcCM.CodeElements ) ); 
        int i = 0; 
        for ( i=1; i<=vcCodeElements.Count; i++ ) 
        {
            MessageBox.Show( vcCodeElements.Item( i ).Name); 
        }
    }
    
  5. Para construir o add-in, clique em Build Solution sobre o Build menu.

  6. Abrir um Visual C++ de projeto na Visual Studio IDE.

  7. No Ferramentas menu, clique em Gerenciador de suplementose, em seguida, selecione o add-in da Gerenciador de suplementos caixa de diálogo.Clique em OK para executar seu suplemento.

    Caixas de mensagens exibem os nomes dos elementos de código de nível superior.

Consulte também

Tarefas

Como: manipular o código usando o modelo de código C++ Visual (Visual Basic)

Conceitos

Modelo de código C++ Visual

Descobrindo o código usando o modelo de código (Visual Basic)

Descobrindo o código usando o modelo de código (Visual C#)