Поделиться через


Функция SHSetInstanceExplorer (shlobj_core.h)

Предоставляет интерфейс, позволяющий размещенным расширениям оболочки и другим компонентам предотвратить преждевременное закрытие хост-процесса. Процессом узла обычно является Windows Обозреватель или Windows Internet Обозреватель, но эта функция также может использоваться другими приложениями.

Синтаксис

void SHSetInstanceExplorer(
  [in, optional] IUnknown *punk
);

Параметры

[in, optional] punk

Тип: IUnknown*

Указатель на свободный поток IUnknown. Компоненты могут использовать этот интерфейс (через SHGetInstanceExplorer), чтобы предотвратить завершение хост-процесса. Это значение может иметь значение NULL, и в этом случае ссылка на процесс больше не становится доступной для компонентов.

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

None

Remarks

Windows Обозреватель и Интернет-Обозреватель могут использовать SHSetInstanceExplorer, чтобы разрешить компонентам, таким как расширения оболочки, продлить время существования процесса. Другие приложения также могут использовать SHSetInstanceExplorer , чтобы разрешить такую же возможность. Например, цикл сообщений браузера и рабочий стол прокси-сервера используют SHSetInstanceExplorer , чтобы позволить другим потокам продлить свое время существования.

Приложения, отличные от Windows Обозреватель и Интернет-Обозреватель, которые вызывают эту функцию, могут столкнуться с проблемами совместимости, так как некоторые компоненты используют SHGetInstanceExplorer для определения того, размещаются ли они в Windows Обозреватель или интернет-Обозреватель.

Указатель интерфейса, передаваемый в SHSetInstanceExplorer , должен ссылаться на объект со свободным потоком.

Каждый раз, когда компонент вызывает SHGetInstanceExplorer, система вызывает метод AddRef , прежде чем возвращать указатель интерфейса на вызывающий компонент. Затем компонент вызывает метод IUnknown::Release после завершения обработки. Процесс, вызывающий SHSetInstanceExplorer , не должен завершаться, пока количество ссылок предоставленного указателя интерфейса не равно нулю.

Дополнительные сведения о том, как компоненты используют ссылки на процессы, см. в разделе SHGetInstanceExplorer.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header shlobj_core.h (включая Shlobj.h)
Библиотека Shell32.lib
DLL Shell32.dll (версия 5.0 или более поздняя)
Набор API ext-ms-win-shell-shell32-l1-2-1 (представлено в Windows 10 версии 10.0.10240)

См. также раздел

SHGetInstanceExplorer