Функция 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) |