IProfferService.ProfferService(Guid, IServiceProvider, UInt32) Method

Definition

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.

public:
 int ProfferService(Guid % rguidService, Microsoft::VisualStudio::OLE::Interop::IServiceProvider ^ psp, [Runtime::InteropServices::Out] System::UInt32 % pdwCookie);
public int ProfferService (ref Guid rguidService, Microsoft.VisualStudio.OLE.Interop.IServiceProvider psp, out uint pdwCookie);
abstract member ProfferService : Guid * Microsoft.VisualStudio.OLE.Interop.IServiceProvider * uint32 -> int
Public Function ProfferService (ByRef rguidService As Guid, psp As IServiceProvider, ByRef pdwCookie As UInteger) As Integer

Parameters

rguidService
Guid

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

psp
IServiceProvider

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

pdwCookie
UInt32

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

Returns

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

Remarks

COM Signature

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.

Applies to