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)
int ProfferService( ref Guid rguidService, IServiceProvider psp, out uint pdwCookie )
- Type: System.Guid
[in] A GUID that identifies the service being proffered.
- Type: Microsoft.VisualStudio.OLE.Interop.IServiceProvider
[in] Pointer to the IServiceProvider interface that provides the environment with the means to request the service.
- Type: System.UInt32
[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.
- 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.