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 を使用します。
メモ : |
---|
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