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.
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.Int32If 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.