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
[InterfaceTypeAttribute()]
[GuidAttribute("82780F79-A3ED-4B7F-90C0-5FEE14CBB53E")]
public interface IVsProjectStartupServices
[InterfaceTypeAttribute()]
[GuidAttribute(L"82780F79-A3ED-4B7F-90C0-5FEE14CBB53E")]
public interface class IVsProjectStartupServices
[<InterfaceTypeAttribute()>]
[<GuidAttribute("82780F79-A3ED-4B7F-90C0-5FEE14CBB53E")>]
type IVsProjectStartupServices =  interface end
public interface IVsProjectStartupServices

The IVsProjectStartupServices type exposes the following members.

Methods

  Name Description
Public method AddStartupService Adds third party service to the list of services to be started when the project is instantiated and ensures that all third party services are started.
Public method GetStartupServiceEnum Used to look up a third party service array element by GUID.
Public method RemoveStartupService Removes a service ID GUID from the list of third party services to be started and releases the service if it has been loaded.

Top

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.

Notes to Implementers

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

See Also

Reference

Microsoft.VisualStudio.Shell.Interop Namespace