ProjectItems Interface

Contains ProjectItem objects, each representing items in the project.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)


<GuidAttribute("8E2F1269-185E-43C7-8899-950AD2769CCF")> _
Public Interface ProjectItems _
    Inherits IEnumerable
public interface ProjectItems : IEnumerable
public interface class ProjectItems : IEnumerable
type ProjectItems =  
        interface IEnumerable
public interface ProjectItems extends IEnumerable

The ProjectItems type exposes the following members.


  Name Description
Public property ContainingProject Gets the project hosting the project item or items.
Public property Count Gets a value indicating the number of objects in the collection.
Public property DTE Gets the top-level extensibility object.
Public property Kind Gets an enumeration indicating the type of object.
Public property Parent Gets the immediate parent object of a ProjectItems collection.



  Name Description
Public method AddFolder Creates a new folder in Solution Explorer.
Public method AddFromDirectory Adds one or more ProjectItem objects from a directory to the ProjectItems collection.
Public method AddFromFile Adds a project item from a file that is installed in a project directory structure.
Public method AddFromFileCopy Copies a source file and adds it to the project.
Public method AddFromTemplate Creates a new project item from an existing item template file and adds it to the project.
Public method GetEnumerator Returns an enumeration for items in a collection.
Public method Item Returns a ProjectItem object in a ProjectItems collection.



This collection consists of a hierarchical (nested) structure of cascading ProjectItems collections that represent items in each project.

Reference this collection using Solution.Item().ProjectItems.


' Before running, create a new project or open an existing project.
Sub ListProj()
   Dim proj As Project = DTE.ActiveSolutionProjects(0)
   Dim win As Window = _
   ListProjAux(proj.ProjectItems(), 0)
End Sub

Sub ListProjAux(ByVal projitems As ProjectItems, ByVal Level As Integer)
   Dim projitem As ProjectItem
   For Each projitem In projitems
      MsgBox("Project item: " & projitem.Name, Level)
      ' Recurse if the project item has sub-items...
      Dim projitems2 As ProjectItems
      projitems2 = projitem.ProjectItems
      Dim notsubcoll As Boolean = projitems2 Is Nothing
      If Not notsubcoll Then
         ListProjAux(projitems2, Level + 1)
      End If
End Sub

See Also


EnvDTE Namespace

Other Resources

Controlling Projects and Solutions

How to: Compile and Run the Automation Object Model Code Examples