IVsPackage.Close Метод

Определение

Закрывает VSPackage, освобождает кэшированные указатели интерфейса и дает негативную рекомендацию приемника событий.

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

Возвращаемое значение

Int32

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Комментарии

Этот метод очистит все внешние ссылки и прервет циклы подсчета ссылок. После Close вызова методов пакетов VSPackage среда освобождает все предложенной службы.

Следующая семантика должна придерживаться в реализации Close метода:

  • После загрузки пакета VSPackage он не будет выгружен до завершения работы приложения среды. При Close вызове одного из методов VSPackage Close вызывается каждый метод VSPackage. Это означает, что данный пакет VSPackage обрабатывает свои собственные требования к выключению и очистке.

  • Пакет VSPackage очистит все внешние ссылки. Метод Close предназначен для прерывания всех циклов подсчета ссылок и для того, чтобы все счетчики ссылок в конечном итоге достигли нуля. Следует освободить указатели кэшированных интерфейсов, приемники событий, а также другие необходимые обязанности по очистке. Пакеты VSPackage должны удовлетворять всем счетчикам ссылок. Пакет VSPackage не может удалять объекты при Close вызове метода.

  • Все службы среды и все загруженные пакеты VSPackage остаются доступными во время Close реализации метода. Однако пакет VSPackage должен рассчитывать на то, что службы недоступны, а только методы, которые гарантированно должны быть выполнены, являются методами unadvise. Ожидается, что большинство служб не будут работать, порекомендовать новые приемники событий или создавать новые ресурсы.

  • Пакет VSPackage не должен вызывать RevokeService метод в его реализации Close метода. Все службы должны оставаться доступными на время вызова функции Close для пакетов VSPackage. Среда автоматически отменяет и освобождает службы после вызова пакетов VSPackage Close .

Нет смысла возвращать ошибку из Close . Все возвращаемые значения ошибок игнорируются, и среда завершает процесс завершения работы после его запуска. Пакет VSPackage имеет возможность остановки процесса завершения работы в его QueryClose методе.

Если пакет должен блокировать завершение работы интегрированной среды разработки, он должен реализовать IVsPackage2 .

Применяется к