IProfferService.ProfferService Method (Guid, IServiceProvider, UInt32)

 

Allows the caller to proffer a new service to the set of services presently proffered by the environment, either natively or by other installed VSPackages.

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

Function ProfferService (
	<InAttribute> ByRef rguidService As Guid,
	psp As IServiceProvider,
	<OutAttribute> ByRef pdwCookie As UInteger
) As Integer

Parameters

rguidService
Type: System.Guid

[in] A GUID that identifies the service being proffered.

psp
Type: Microsoft.VisualStudio.OLE.Interop.IServiceProvider

[in] Pointer to the IServiceProvider interface that provides the environment with the means to request the service.

pdwCookie
Type: System.UInt32

[out, retval] Cookie that identifies the service so that the caller can later revoke the service.

Return Value

Type: System.Int32

If the method succeeds, it returns S_OK. If it fails, it returns an error code.

From proffserv.idl:

HRESULT IProfferService::ProfferService(
   [in] REFGUID rguidService,
   [in] IServiceProvider* psp,
   [out] DWORD* pdwCookie
);

Normally used in conjunction with a call to SetSite.

A VSPackage cannot replace the implementation of a service that is already provided by the environment or another loaded VSPackage. Therefore, if a service is already provided at the time an attempt to proffer the same service is made, the IProfferService::ProfferService method will fail and return S_FALSE.

VSPackages proffer their services, and, during normal conditions, they do not revoke their services. These services are revoked as part of the shutdown sequence of the environment.

Return to top
Show: