Compartilhar via


Método IVsPackage.SetSite (IServiceProvider)

 

Inicializa um VSPackage com um ponteiro voltar para o ambiente.

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

Sintaxe

int SetSite(
    IServiceProvider psp
)
int SetSite(
    IServiceProvider^ psp
)
abstract SetSite : 
        psp:IServiceProvider -> int
Function SetSite (
    psp As IServiceProvider
) As Integer

Parâmetros

  • psp
    [in] Ponteiro para o IServiceProvider Interface através da qual o VSPackage pode consultar para serviços.

Valor de retorno

Type: System.Int32

Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.

Comentários

COM assinatura

De vsshell.idl:

HRESULT IVsPackage::SetSite(
   [in] IServiceProvider *pSP
);

Este é o método mais importante na IVsPackage Interface.

Em sua implementação deste método, você pode:

  • Store psp.

  • Carregar dados persistentes, usando as interfaces IVsPersistSolutionOpts Interface e IVsPersistSolutionProps Interfaces.

  • Proffer serviços, se houver.

  • Registre os editores da fábrica de documento disponíveis, se houver.

  • Registre fábricas de tipo de projeto disponíveis, se houver.

  • Solicitar serviços que são implementados por outros VSPackages.

Você deve proffered seus serviços no momento em que essas etapas são concluídas.Caso contrário, sua solicitação para um serviço pode carregar um VSPackage que solicita um serviço que você fornece.No entanto, porque você não tem proffered-lo ao mesmo tempo, a carga de outro VSPackage a falha e você não poderá acessar o serviço solicitado, possivelmente causando falha de carregamento.

Retornando um erro resultados do código de resultado no ambiente fechando o VSPackage e liberar seus recursos.

Na implementação deste método você não deve supor que a interface do usuário estaria disponível.Não tente adicionar um painel para Janela de saída ou usar qualquer outro serviço que depende da interface do usuário esteja disponível.Por exemplo, quando devenv é invocado com /setup SetSite é chamado e a interface do usuário não está disponível.

Consulte também

Interface IVsPackage
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo