Partager via


ProjectItems, interface

Mise à jour : novembre 2007

Contient des objets ProjectItem représentant chacun des éléments du projet.

Espace de noms :  EnvDTE
Assembly :  EnvDTE (dans EnvDTE.dll)

Syntaxe

<GuidAttribute("8E2F1269-185E-43C7-8899-950AD2769CCF")> _
Public Interface ProjectItems _
    Implements IEnumerable

Dim instance As ProjectItems
[GuidAttribute("8E2F1269-185E-43C7-8899-950AD2769CCF")]
public interface ProjectItems : IEnumerable
[GuidAttribute(L"8E2F1269-185E-43C7-8899-950AD2769CCF")]
public interface class ProjectItems : IEnumerable
public interface ProjectItems extends IEnumerable

Notes

Cette collection est constituée d'une structure hiérarchique (imbriquée) de collections ProjectItems en cascade qui représentent les éléments de chaque projet.

Pour référencer cette collection, utilisez : Solution.Item().ProjectItems.

Remarque :

Dans Visual Studio .NET 2003 et Visual Studio 2005, la gestion spéciale de la collection Project.ProjectItems pour Visual C++ n'est plus nécessaire. En d'autres termes, alors que la collection ProjectItems de Visual C++ stockait auparavant tous les fichiers projet de Visual C++ dans une liste simple, ces fichiers sont désormais stockés hiérarchiquement, comme dans les autres langages de programmation.

Dans la mesure où cette modification risque d'affecter votre code existant, il existe un moyen d'émuler l'ancien comportement dans le nouveau modèle objet spécifique au projet lorsque vous essayez d'indexer la collection Project.ProjectItems pour déterminer si un fichier se trouve ou non dans le projet. La principale différence est que vous pouvez désormais revenir au modèle objet DTE en appelant .Object sur un objet Visual C++.

Dim proj as VCProject = DTE.ActiveSolutionProjects(0).Object
Dim fileColl as IVCCollection = proj.Files
Dim file as VCFile = fileColl.Item("MyFile.cpp")
Dim projItem as ProjectItem = file.Object

Exemples

' Before running, create a new project or open an existing project.
Sub ListProj()
   Dim proj As Project = DTE.ActiveSolutionProjects(0)
   Dim win As Window = _
     DTE.Windows.Item(Constants.vsWindowKindCommandWindow)
   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 ProjectItemsprojitems2 = projitem.ProjectItems
      Dim notsubcoll As Boolean = projitems2 Is Nothing
      If Not notsubcoll Then
         ListProjAux(projitems2, Level + 1)
      End If
   Next
End Sub

Voir aussi

Référence

Membres ProjectItems

EnvDTE, espace de noms

Autres ressources

Contrôle de projets et de solutions

Comment : compiler et exécuter les exemples de code du modèle objet Automation