次の方法で共有


ProjectItems インターフェイス

更新 : 2007 年 11 月

ProjectItem オブジェクトを含みます。各オブジェクトがプロジェクトの項目を表します。

名前空間 :  EnvDTE
アセンブリ :  EnvDTE (EnvDTE.dll 内)

構文

'宣言
<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

解説

このコレクションは、各プロジェクトの項目を表す ProjectItems コレクションを重ねた階層 (入れ子) 構造になっています。

このコレクションを参照するには、Solution.Item().ProjectItems を使用します。

ak940968.alert_note(ja-jp,VS.90).gifメモ :

Visual Studio .NET 2003 および Visual Studio 2005 では、Visual C++ の Project.ProjectItems コレクションに対して特別な処理を行う必要はなくなっています。つまり、これまで Visual C++ の ProjectItems コレクションでは、すべての Visual C++ プロジェクト ファイルがフラットなリストに格納されていましたが、他のプログラミング言語と同様に階層的に格納されるようになりました。

この変更は既存のコードに影響を及ぼす可能性があるため、プロジェクト内にファイルが存在するかどうかを確認するために Project.ProjectItems コレクションのインデックスを作成するときに、新しいプロジェクト固有のオブジェクト モデルで以前の動作をエミュレートする方法が用意されています。最も大きな違いは、Visual C++ オブジェクト上で .Object を呼び出すことにより、DTE オブジェクト モデルに戻ることができるようになった点です。

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

' 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

参照

参照

ProjectItems メンバ

EnvDTE 名前空間

その他の技術情報

プロジェクトとソリューションの制御

方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する