IVCCollection.Item(Object) Method

Definition

Selects an item in the collection.

public:
 System::Object ^ Item(System::Object ^ Index);
public:
 Platform::Object ^ Item(Platform::Object ^ Index);
winrt::Windows::Foundation::IInspectable Item(winrt::Windows::Foundation::IInspectable const & Index);
[System.Runtime.InteropServices.DispId(0)]
public object Item (object Index);
[<System.Runtime.InteropServices.DispId(0)>]
abstract member Item : obj -> obj
Public Function Item (Index As Object) As Object

Parameters

Index
Object

An object representing the index of the item in the collection.

Returns

An item in the collection.

Attributes

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

You can provide either a 1-based number that is an index to an item in the collection, or you can provide a quoted string representing the name of an item in the collection.

Applies to