Projects Object

Home Page (Objects)OverviewFAQReference

The Projects object represents all projects in the currently open workspace.

The Projects object has the following properties and methods:

Properties
Application _NewEnum
Count Parent

Methods
Item

The Projects object is a collection object that contains all Project objects. To find a particular object, iterate through the collection by using For Each ... Next in a VBScript macro.

Consider the following code snippet:

Dim myProject
For Each myProject in Application.Projects
   ' Access myProject here.
   ' For example:
    MsgBox myProject.Name
Next

In Visual C++, you can iterate through the Projects collection by using the Item method or _NewEnum property.

When you reference the Projects collection, the reference always reflects the current contents of the collection. For example, suppose you have two macros (A and B). In macro A, you set a global variable to the collection, and in macro B you use the variable. When you use it, the variable will reflect the current contents of the collection — not the contents present when you set the variable.

Using a Dual Interface to Access This Object

This section about dual interfaces is useful for writing add-ins or automating Developer Studio across processes. This section is not applicable to writing VBScript macros.

The Projects object implements the IProjects dual interface. Through this interface, add-ins can directly access the members (properties, methods, and events) of this object and can employ early binding to make calls into these members faster at run time.

Add-ins written in Visual C++ can access members of the Projects object by using the header files in Vc98\Include\objmodel. However, if you use the Developer Studio Add-in Wizard to create an add-in, the wizard automatically includes these header files in your source code.

The following table shows the header files you need for the Projects object:

Header file Description
bldauto.h Declares the dual interfaces.
bldguid.h Declares the GUIDs used to identify the interfaces.
blddefs.h Declares additional information needed to use the interfaces, such as error IDs and enumerated constants.

Add-ins written in Visual Basic can access members of the Projects object by using the Visual Studio '97 Project System type library, located in Msdev98\bin\ide\devdbg.pkg.

Note   In the Visual Basic References dialog box (Project menu, References command), the names of the type libraries begin with "Visual C++ 6.0" for Visual C++ version 6.0. For Visual C++ version 5.0, the names begin with "Visual Studio '97."