IVsPackage.SetSite(IServiceProvider) Método

Definição

Inicializa um VSPackage com um ponteiro de volta para o ambiente.

public:
 int SetSite(Microsoft::VisualStudio::OLE::Interop::IServiceProvider ^ psp);
public:
 int SetSite(Microsoft::VisualStudio::OLE::Interop::IServiceProvider ^ psp);
int SetSite(Microsoft::VisualStudio::OLE::Interop::IServiceProvider const & psp);
public int SetSite (Microsoft.VisualStudio.OLE.Interop.IServiceProvider psp);
abstract member SetSite : Microsoft.VisualStudio.OLE.Interop.IServiceProvider -> int
Public Function SetSite (psp As IServiceProvider) As Integer

Parâmetros

psp
IServiceProvider

no Ponteiro para a IServiceProvider interface por meio da qual o VSPackage pode consultar serviços.

Retornos

Int32

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

Comentários

Assinatura COM

De VSShell. idl:

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

Esse é o método mais importante na IVsPackage interface.

Na implementação desse método, você pode:

  • Armazenar psp .

  • Carregue dados persistentes usando a IVsPersistSolutionOpts interface e IVsPersistSolutionProps interfaces de interfaces.

  • Serviços oferecers, se houver.

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

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

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

Você deve ter proffered seus serviços no momento em que essas etapas forem concluídas. Caso contrário, a solicitação de um serviço pode carregar um VSPackage que solicita um serviço fornecido por você. No entanto, como você ainda não o profferedu, a carga do outro VSPackage falha e você não pode obter acesso ao serviço solicitado, possivelmente causando falha de carregamento.

O retorno de um código de resultado de erro resulta no ambiente que fecha o VSPackage e libera seus recursos.

Em sua implementação desse 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 dependa da interface do usuário para estar disponível. Por exemplo, quando devenv é invocado com/setup é SetSite chamado e a interface do usuário não está disponível.

Aplica-se a