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)
'Declaration Function ProfferService ( _ ByRef rguidService As Guid, _ psp As IServiceProvider, _ <OutAttribute> ByRef pdwCookie As UInteger _ ) As Integer
int ProfferService( ref Guid rguidService, IServiceProvider psp, out uint pdwCookie )
int ProfferService( [InAttribute] Guid% rguidService, [InAttribute] IServiceProvider^ psp, [OutAttribute] unsigned int% pdwCookie )
abstract ProfferService : rguidService:Guid byref * psp:IServiceProvider * pdwCookie:uint32 byref -> int
function ProfferService( rguidService : Guid, psp : IServiceProvider, pdwCookie : uint ) : int
[in] A GUID that identifies the service being proffered.
[in] Pointer to the IServiceProvider interface that provides the environment with the means to request the service.
[out, retval] Cookie that identifies the service so that the caller can later revoke the service.
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.
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.