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


Функция SetProcessReference (shlwapi.h)

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

Синтаксис

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

Параметры

[in, optional] punk

Указатель на объект, для которого требуется сохранить ссылку. Это значение может иметь значение NULL.

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

None

Remarks

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

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

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

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

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

Требования

   
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header shlwapi.h
Библиотека Shlwapi.lib
DLL Api-ms-win-shcore-thread-L1-1-0.dll

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

GetProcessReference

SHSetInstanceExplorer

Наборы API Windows