Функция SHGetInstanceExplorer (shlobj_core.h)
Извлекает интерфейс, позволяющий размещенным расширениям оболочки и другим компонентам предотвратить преждевременное закрытие хост-процесса. Процессом узла обычно является Windows Обозреватель или Windows Internet Обозреватель, но эта функция также может использоваться другими приложениями.
Синтаксис
SHSTDAPI SHGetInstanceExplorer(
[out] IUnknown **ppunk
);
Параметры
[out] ppunk
Тип: IUnknown**
При успешном возвращении этой функции содержит адрес указателя интерфейса IUnknown хост-процесса. Это свободный интерфейс, используемый для предотвращения завершения хост-процесса. Если вызов функции завершается сбоем, это значение имеет значение NULL.
Возвращаемое значение
Тип: HRESULT
Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Существует ряд компонентов, таких как обработчики расширений оболочки, которые реализуются как библиотеки DLL и выполняются в хост-процессе, например Windows Обозреватель (Explorer.exe) или Интернет-Обозреватель (Iexplore.exe). Как правило, когда пользователь закрывает хост-процесс, компонент также немедленно завершает работу. Такое внезапное завершение может создать проблемы для некоторых компонентов. Например, если компонент использует фоновый поток для скачивания данных или выполнения функций пользовательского интерфейса, ему может потребоваться дополнительное время для безопасного завершения работы.
SHGetInstanceExplorer позволяет компонентам, выполняемым в хост-процессе, хранить ссылку на хост-процесс. SHGetInstanceExplorer увеличивает количество ссылок узла и возвращает указатель на интерфейс IUnknown узла. Удерживая ссылку, компонент может предотвратить преждевременное закрытие ведущего процесса. После завершения необходимой обработки компонент должен вызвать (*ppunk)->Release , чтобы освободить ссылку на узел и разрешить завершение процесса.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shlobj_core.h (включая Shlobj.h) |
Библиотека | Shell32.lib |
DLL | Shell32.dll (версия 4.0 или более поздняя) |