Compartilhar via


Interface IVCCollection

Um objeto de IVCCollection contém a funcionalidade que pode ser exercitada em um objeto de coleções.

Namespace:  Microsoft.VisualStudio.VCProjectEngine
Assembly:  Microsoft.VisualStudio.VCProjectEngine (em Microsoft.VisualStudio.VCProjectEngine.dll)

Sintaxe

'Declaração
<GuidAttribute("BA03D89E-872B-4E4F-A186-61BA51119AC0")> _
Public Interface IVCCollection _
    Inherits IEnumerable
[GuidAttribute("BA03D89E-872B-4E4F-A186-61BA51119AC0")]
public interface IVCCollection : IEnumerable
[GuidAttribute(L"BA03D89E-872B-4E4F-A186-61BA51119AC0")]
public interface class IVCCollection : IEnumerable
[<GuidAttribute("BA03D89E-872B-4E4F-A186-61BA51119AC0")>]
type IVCCollection =  
    interface 
        interface IEnumerable 
    end
public interface IVCCollection extends IEnumerable

O tipo IVCCollection expõe os membros a seguir.

Propriedades

  Nome Descrição
Propriedade pública Count Obtém um valor que indica o número de objetos na coleção.
Propriedade pública VCProjectEngine Obtém um ponteiro de objeto para o mecanismo do projeto.

Superior

Métodos

  Nome Descrição
Método público GetEnumerator Retorna um enumerador dos itens da coleção.
Método público Item Seleciona um item na coleção.

Superior

Comentários

Por exemplo, a propriedade de Files de um objeto de VCFilter é uma coleção de arquivos em uma pasta.

Exemplos

O exemplo a seguir demonstra como usar as propriedades de EnablePREfast e de AdditionalOptions para definir a opção de /analyze:WX- . (As duas propriedades são necessárias para fazer isso.) Especifique /analyze:WX- significa que os avisos da análise de código não serão tratados como erros durante a criação com /WX. Para obter mais informações, consulte /analyze (Análise do código).

Para executar este exemplo, digite e execute este exemplo de acordo com Como compilar e executar os exemplos de código do modelo de objeto Automation. Em seguida, na nova instância de Visual Studio, carregue um projeto de Visual C++ e use o gerenciador do suplemento para ativar o suplemento.

' Add reference to Microsoft.VisualStudio.VCProjectEngine.
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports Microsoft.VisualStudio.VCProjectEngine
Imports System.Text

Sub EnablePREfastExample(ByVal dte As DTE2)
    Dim prj As VCProject
    Dim cfgs, tools As IVCCollection
    Dim cfg As VCConfiguration
    Dim tool As VCCLCompilerTool
    Dim sb As New StringBuilder

    prj = CType(dte.Solution.Projects.Item(1).Object, _
      Microsoft.VisualStudio.VCProjectEngine.VCProject)
    cfgs = CType(prj.Configurations, _
      Microsoft.VisualStudio.VCProjectEngine.IVCCollection)
    cfg = CType(cfgs.Item(1), _
      Microsoft.VisualStudio.VCProjectEngine.VCConfiguration)
    tool = CType(cfg.Tools("VCCLCompilerTool"), _
      Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool)

    sb.Length = 0
    sb.Append("Current project PREfast setting: " _
      & tool.EnablePREfast & Environment.NewLine)
    sb.Append("Flag: " & tool.AdditionalOptions)
    MsgBox(sb.ToString)

    ' Toggle PREfast setting.
    If Not (tool.EnablePREfast = True) Then
        ' PREfast is not enabled. Turn it and the WX- flag on.
        tool.EnablePREfast = True
        tool.AdditionalOptions = "/analyze:WX-"
    Else
        ' Toggle the opposite.
        tool.EnablePREfast = False
        tool.AdditionalOptions = "/analyze:WX"
    End If
    sb.Length = 0
    sb.Append("New project PREfast setting: " _
      & tool.EnablePREfast & Environment.NewLine)
    sb.Append("Flag: " & tool.AdditionalOptions)
    MsgBox(sb.ToString)
End Sub
// Add references to Microsoft.VisualStudio.VCProjectEngine and 
// System.Windows.Forms.
using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using Microsoft.VisualStudio.VCProjectEngine;
using System.Text;
using System.Windows.Forms;

public void EnablePREfastExample(DTE2 dte)
{
    try
    {
        VCProject prj;
        IVCCollection cfgs, tools;
        VCConfiguration cfg;
        VCCLCompilerTool tool;
        StringBuilder sb = new StringBuilder();

        prj = (Microsoft.VisualStudio.VCProjectEngine.VCProject)
          dte.Solution.Projects.Item(1).Object;
        cfgs = 
          (Microsoft.VisualStudio.VCProjectEngine.IVCCollection)
          prj.Configurations;
        cfg = 
          (Microsoft.VisualStudio.VCProjectEngine.VCConfiguration)
           cfgs.Item(1);
        tools = 
          (Microsoft.VisualStudio.VCProjectEngine.IVCCollection)
          cfg.Tools;
        tool = 
          (Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool)
          tools.Item("VCCLCompilerTool");
                                
        sb.Length = 0;
        sb.Append("Current project PREfast setting: " +
          tool.EnablePREfast + Environment.NewLine);
        sb.Append("Flag: " + tool.AdditionalOptions);
        MessageBox.Show(sb.ToString());

        // Toggle PREfast setting.
        if (!(tool.EnablePREfast == true))
        {
            // PREfast is not enabled. Turn it and the WX- flag on.
            tool.EnablePREfast = true;
            tool.AdditionalOptions = "/analyze:WX-";
        }
        else
        {
            // Toggle the opposite.
            tool.EnablePREfast = false;
            tool.AdditionalOptions = "/analyze:WX";
        }
        sb.Length = 0;
        sb.Append("New project PREfast setting: " +
          tool.EnablePREfast + Environment.NewLine);
        sb.Append("Flag: " + tool.AdditionalOptions);
        MessageBox.Show(sb.ToString());
    }
    catch (System.Exception errmsg)
    {
        MessageBox.Show("ERROR! " + errmsg.Message);
    }
}

Consulte também

Referência

Namespace Microsoft.VisualStudio.VCProjectEngine

Outros recursos

HRESULTs que são retornados pelo modelo de projeto

Modelo de objeto de extensibilidade do Visual C++