Compartilhar via


IVCCollection Interface

Definition

An IVCCollection object contains the functionality that can be exercised on a collections object.

public interface class IVCCollection : System::Collections::IEnumerable
[System.Runtime.InteropServices.Guid("EF0EF512-4AB7-4EEC-91D1-9E5E222EED81")]
[System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)]
public interface IVCCollection : System.Collections.IEnumerable
[<System.Runtime.InteropServices.Guid("EF0EF512-4AB7-4EEC-91D1-9E5E222EED81")>]
[<System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)>]
type IVCCollection = interface
    interface IEnumerable
Public Interface IVCCollection
Implements IEnumerable
Attributes
Implements

Examples

The following example demonstrates how to use the EnablePREfast and AdditionalOptions properties to set the /analyze:WX- switch. (Both properties are required to do this.) Specifying /analyze:WX- means that code analysis warnings will not be treated as errors when compiling with /WX. For more information, see /analyze (Code Analysis).

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

Remarks

For example, the Files property of a VCFilter object is a collection of the files in a folder.

Properties

Count

Gets a value indicating the number of objects in the collection.

VCProjectEngine

Gets an object pointer to the project engine.

Methods

GetEnumerator()

Returns an enumerator for items in the collection.

Item(Object)

Selects an item in the collection.

Applies to