The Visual Studio automation model provides objects and collections that enable you to control the solution, projects, and the project items within the project, regardless of the programming language in which the application was written.
In addition to this core, language-agnostic project automation model, each programming language has its own project automation model which provides access to features unique to that language.

Objects and Collections
The Solution2 object and the Projects collection (which is returned by Projects and Projects) contain a reference to the solution, as well as references to all projects in that solution, respectively.
The ProjectItems collection represents all items contained in a project (Project), with the exception of virtual projects. The ProjectItem object represents individual items within the project.
A virtual project is one that is not associated with a particular project but is rather associated with the solution. A solution can contain two additional virtual projects: the Solution Items and the Miscellaneous Files projects.

See Also
Tasks
Concepts
Other Resources