IVsPackage.SetSite(IServiceProvider) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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.