Extend the object model of the base project
Applies to: Visual Studio Visual Studio for Mac
Note
This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
A project subtype may extend the automation object model of the base project in the following places:
Project.Extender("<ProjectSubtypeName>"): This allows a project subtype to offer an object with custom methods from the Project object. A project subtype can use Automation Extenders to expose the
Project
object. The IInternalExtenderProvider interface implemented on the main project subtype aggregator should offer its object for theVSHPROPID_ExtObjectCATID
from __VSSPROPID2 (corresponding to anitemid
value of VSITEMID.Root) CATID.ProjectItem.Extender("<ProjectSubtypeName>"): This allows a project subtype to offer an object with custom methods from a particular ProjectItem object within the project. A project subtype can use automation extenders to expose this object. The IInternalExtenderProvider interface implemented on the main project subtype aggregator needs to offer its object for the
VSHPROPID_ExtObjectCATID
from __VSHPROPID2 (corresponding to a desired VSConstants.VSITEMID) CATID.Project.Properties: This collection exposes the configuration-independent properties of the
Project
object. For more information onProject
properties, see Properties. A project subtype can use Automation Extenders to add its properties to this collection. The IInternalExtenderProvider interface implemented on the main project subtype aggregator needs to offer its object for theVSHPROPID_BrowseObjectCATID
from __VSHPROPID2 (corresponding to anitemid
value of VSITEMID.Root) CATID.Configuration.Properties: This collection exposes the configuration-dependent properties of the project for a particular configuration (for example, Debug). For more information, see Configuration. A project subtype can use Automation Extenders to add its properties to this collection. The IInternalExtenderProvider interface implemented on the main project subtype aggregator offers its object for the CATID
VSHPROPID_CfgBrowseObjectCATID
(corresponding to anitemid
value of VSITEMID.Root). The IVsCfgBrowseObject interface is used to distinguish one configuration browse object from another.