Compartir a través de


IVCCollection (Interfaz)

Objeto IVCCollection que contiene la funcionalidad que puede ejecutarse en un objeto de colecciones.

Espacio de nombres:  Microsoft.VisualStudio.VCProjectEngine
Ensamblado:  Microsoft.VisualStudio.VCProjectEngine (en Microsoft.VisualStudio.VCProjectEngine.dll)

Sintaxis

'Declaración
<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

El tipo IVCCollection expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública Count Obtiene un valor que indica el número de objetos de la colección.
Propiedad pública VCProjectEngine Obtiene un puntero de objeto al motor de proyecto.

Arriba

Métodos

  Nombre Descripción
Método público GetEnumerator Devuelve un enumerador para los elementos de la colección.
Método público Item Selecciona un elemento de la colección.

Arriba

Comentarios

Por ejemplo, la propiedad de Files de un objeto de VCFilter es una colección de los archivos de una carpeta.

Ejemplos

El ejemplo siguiente muestra cómo utilizar las propiedades de EnablePREfast y de AdditionalOptions para establecer el modificador de /analyze:WX- . (Ambas propiedades se requieren para ello). Especificar /analyze:WX- significa que las advertencias de análisis de código no se tratan como errores al compilar con /WX. Para obtener más información, vea /analyze (análisis de código).

Para ejecutar este ejemplo, escriba y ejecute este ejemplo de acuerdo con Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización. A continuación, en la nueva instancia de Visual Studio, cargue un proyecto de Visual C++ y utilice el administrador de complementos para activar el complemento.

' 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);
    }
}

Vea también

Referencia

Microsoft.VisualStudio.VCProjectEngine (Espacio de nombres)

Otros recursos

Valores HRESULT que devuelve el modelo de proyecto

Modelo de objetos de extensibilidad de Visual C++