SHSetInstanceExplorer-Funktion (shlobj_core.h)

Stellt eine Schnittstelle bereit, mit der gehostete Shellerweiterungen und andere Komponenten verhindern können, dass ihr Hostprozess vorzeitig geschlossen wird. Der Hostprozess ist in der Regel Windows Explorer oder Windows Internet Explorer, aber diese Funktion kann auch von anderen Anwendungen verwendet werden.

Syntax

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

Parameter

[in, optional] punk

Typ: IUnknown*

Ein Zeiger auf einen Freithread-IUnknown. Komponenten können diese Schnittstelle (über SHGetInstanceExplorer) verwenden, um zu verhindern, dass der Hostprozess beendet wird. Dieser Wert kann NULL sein. In diesem Fall wird der Prozessverweis nicht mehr für Komponenten zur Verfügung gestellt.

Rückgabewert

Keine

Bemerkungen

Windows Explorer und Internet Explorer können SHSetInstanceExplorer verwenden, um Komponenten wie Shellerweiterungen die Lebensdauer des Prozesses zu verlängern. Andere Anwendungen können auch SHSetInstanceExplorer verwenden, um dieselbe Funktion zuzulassen. Für instance verwenden die Browsernachrichtenschleife und der Proxydesktop SHSetInstanceExplorer, damit andere Threads ihre Lebensdauer verlängern können.

Bei anderen Anwendungen als Windows Explorer und Internet Explorer, die diese Funktion aufrufen, treten möglicherweise Kompatibilitätsprobleme auf, da einige Komponenten SHGetInstanceExplorer verwenden, um zu ermitteln, ob sie innerhalb von Windows Explorer oder Internet Explorer gehostet werden.

Der an SHSetInstanceExplorer übergebene Schnittstellenzeiger muss auf ein Freithreadobjekt verweisen.

Jedes Mal, wenn eine Komponente SHGetInstanceExplorer aufruft, ruft das System die AddRef-Methode auf, bevor der Schnittstellenzeiger auf die aufrufende Komponente zurückgegeben wird. Die Komponente ruft dann die IUnknown::Release-Methode auf, wenn die Verarbeitung abgeschlossen ist. Der Prozess, der SHSetInstanceExplorer aufruft, darf nicht beendet werden, während die Verweisanzahl des bereitgestellten Schnittstellenzeigers nicht zero ist.

Weitere Informationen dazu, wie Komponenten die Prozessverweise verwenden, finden Sie unter SHGetInstanceExplorer.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shlobj_core.h (einschließlich Shlobj.h)
Bibliothek Shell32.lib
DLL Shell32.dll (Version 5.0 oder höher)
APIs ext-ms-win-shell-shell32-l1-2-1 (eingeführt in Windows 10, Version 10.0.10240)

Weitere Informationen

SHGetInstanceExplorer