Como: Manipular o código usando o modelo de código C++ Visual (Visual Basic)
The Visual Studio modelo de código oferece automação clientes a capacidade de encontrar as definições de código em um projeto e modificar esses elementos de código. Visual C++ Fornece uma extensão ao modelo de código principal ao código de destino específica Visual C++.
Por exemplo, se o Language propriedade indica que um elemento de código fornecido é um Visual C++ código de modelo de objeto, e Kind = vsCMElementClass, em seguida, você pode escolher usar um o CodeClass2 do Visual Studio modelo de código ou a VCCodeClass do 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 ao primeiro arquivo de projeto
Criar um Visual Studio projeto suplemento em Visual Basic.
Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e, em seguida, clicar OK.
Add Imports Microsoft.VisualStudio.VCCodeModel para a parte superior do arquivo conectar.vb.
substituir o código no método OnConnection com o código a seguir:
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
Para criar o suplemento, clicar Criar solução on the Compilação menu.
Abra um Visual C++ projeto na Visual Studio ambiente de desenvolvimento integrado (IDE).
Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar seu suplemento a partir de Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.
Examine o arquivo primeiro no projeto para os comentários adicionados por meio de programação.
Para adicionar um novo arquivo para um projeto Visual C++
Criar um Visual Studio projeto suplemento em Visual Basic.
Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e, em seguida, clicar OK.
Add Imports Microsoft.VisualStudio.VCCodeModel para a parte superior do arquivo conectar.vb.
substituir o código no método OnConnection com o código a seguir:
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
Para criar o suplemento, clicar Criar solução on the Compilação menu.
em aberto a Visual C++ projeto na Visual Studio IDE.
Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar seu suplemento a partir de Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.
Observação: Se MyClass2.h já existir, o código falhará.
Para adicionar uma função arquivo.h
Criar um Visual Studio projeto suplemento em Visual Basic.
Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e, em seguida, clicar OK.
Add Imports Microsoft.VisualStudio.VCCodeModel para a parte superior do arquivo conectar.vb.
substituir o código no método OnConnection com o código a seguir:
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
Para criar o suplemento, clicar Criar solução on the Compilação menu.
Abra um Visual C++ projeto na Visual Studio IDE e adicione um arquivo.h a ele.
Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar o add-in o Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.
Examine o código inserido no arquivo.h.
Para exibir arquivos que incluem elementos de código de nível superior
Criar um Visual Studio projeto suplemento em Visual Basic.
Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e, em seguida, clicar OK.
Add Imports Microsoft.VisualStudio.VCCodeModel para a parte superior do arquivo conectar.vb.
Substitua o código no OnConnection método com o código a seguir:
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
Para criar o suplemento, clicar Criar solução on the Compilação menu.
em aberto a Visual C++ projeto na Visual Studio IDE.
Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar o add-in o Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.
Caixas de mensagens exibem os nomes de arquivo que contém os elementos de código de nível superior.
Para exibir todos os itens de elemento de código de nível superior
Criar um Visual Studio projeto suplemento em Visual Basic.
Sobre o Projeto menu, clicar Adicionar referência, clicar no NET guia, selecionar Microsoft.VisualStudio.VCCodeModel e, em seguida, clicar OK.
Add Imports Microsoft.VisualStudio.VCCodeModel para a parte superior do arquivo conectar.vb.
Substitua o código no OnConnection método com o código a seguir:
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
Para criar o suplemento, clicar Criar solução on the Compilação menu.
em aberto a Visual C++ projeto na Visual Studio IDE.
Sobre o Ferramentas menu, clicar Gerenciador de suplementoe selecionar o add-in o Gerenciador de suplemento caixa de diálogo.clicar OK para executar seu suplemento.
Caixas de mensagens exibem os nomes dos elementos de código de nível superior.
Consulte também
Conceitos
Descobrindo o código usando o modelo de código (Visual Basic)
Descobrindo o código usando o modelo de código (Visual translation from VPE for Csharp)