IVsProjectStartupServices Interface

Enables project extensibility by other developers.

Namespace:  Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (in Microsoft.VisualStudio.Shell.Interop.dll)

Syntax

'Declaration
<InterfaceTypeAttribute()> _
<GuidAttribute("82780F79-A3ED-4B7F-90C0-5FEE14CBB53E")> _
Public Interface IVsProjectStartupServices
'Usage
Dim instance As IVsProjectStartupServices
[InterfaceTypeAttribute()]
[GuidAttribute("82780F79-A3ED-4B7F-90C0-5FEE14CBB53E")]
public interface IVsProjectStartupServices
[InterfaceTypeAttribute()]
[GuidAttribute(L"82780F79-A3ED-4B7F-90C0-5FEE14CBB53E")]
public interface class IVsProjectStartupServices
public interface IVsProjectStartupServices

Remarks

IVsProjectStartupServices is an optional interface that allows a third party VSPackage to register a service GUID that your project persists into your project file so that every time your project loads, you load that information into your project file and QueryService for that GUID. This allows a third party VSPackage to be delay loaded at the point that your project is loaded again. In this way, the third party VSPackage avoids using the now obsolete Preload=1 option formerly in the registry. However the VSPackage continues to assure that it is loaded at the time your project is loaded.

Your project need only call QueryService passing it the parameters (guidService, IID_IUnknown, &punk); it makes no attempt to call a method on the service. The VSPackage upon being loaded can then enumerate the loaded projects and perform appropriate operations (for example, hook up to project events).

The IVsProjectStartupServices interface can be retrieved from a project hierarchy in the following manner:

GetProperty(VSITEMID_ROOT, VSHPROPID_StartupServices...)

IVsProjectStartupServices is used primarily for extensibility if you are creating a project type that is extensible by other developers. For more information, see the Basic Project, My C Package, and Figures Projectsamples.

Notes to Implementers:

Implemented on the IVsHierarchy to make your project extensible by other developers.

See Also

Reference

IVsProjectStartupServices Members

Microsoft.VisualStudio.Shell.Interop Namespace