IVsPackage.Close Método

Definição

Fecha o VSPackage, libera ponteiros de interface em cache e cancela o aviso de coletores de eventos.

public:
 int Close();
public:
 int Close();
int Close();
public int Close ();
abstract member Close : unit -> int
Public Function Close () As Integer

Retornos

Int32

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

Comentários

Esse método limpará todas as referências externas e interromperá todos os ciclos de contagem de referência. Depois que todos os Close métodos VSPackages forem chamados, o ambiente liberará todos os serviços do proffered.

A semântica a seguir deve estar em conformidade na implementação do Close método:

  • Depois que um VSPackage é carregado, ele não será descarregado até que o aplicativo de ambiente termine. Se um Close método VSPackage estiver sendo chamado, cada método VSPackage Close será chamado. Isso significa que um determinado VSPackage manipula seus próprios requisitos de desligamento e limpeza.

  • O VSPackage limpará todas as referências externas. O método Close destina-se a interromper todos os ciclos de contagem de referência e encorajar todas as contagens de referência para chegar a zero. Você deve liberar ponteiros de interface em cache, atestar coletores de eventos de aviso e fornecer outras tarefas de limpeza necessárias. VSPackages deve ter certeza de que você respeita todas as contagens de referência. Um VSPackage não pode excluir objetos quando o Close método é chamado.

  • Todos os serviços do ambiente e todos os VSPackages carregados permanecem acessíveis durante a Close implementação do método. O VSPackage, no entanto, deve esperar que os serviços não estejam disponíveis e que os únicos métodos que têm garantia de sucesso são os métodos de aviso. A maioria dos serviços deve falhar, para avisar novos coletores de eventos ou para criar novos recursos.

  • Um VSPackage não deve chamar o RevokeService método em sua implementação do Close método. Espera-se que todos os serviços permaneçam disponíveis durante a chamada de close em VSPackages. O ambiente revoga automaticamente e libera os serviços após o VSPackages ter chamado Close .

Não é sentido retornar um erro de Close . Todos os valores de retorno de erro são ignorados e o ambiente conclui o processo de desligamento depois de iniciado. O VSPackage tem a oportunidade de interromper o processo de desligamento em seu QueryClose método.

Se um pacote precisar bloquear o desligamento do IDE, ele deverá implementar IVsPackage2 .

Aplica-se a