Partager via


Fonction SHGetInstanceExplorer (shlobj_core.h)

Récupère une interface qui permet aux extensions shell hébergées et à d’autres composants d’empêcher leur processus hôte de se fermer prématurément. Le processus hôte est généralement Windows Explorer ou Windows Internet Explorer, mais cette fonction peut également être utilisée par d’autres applications.

Syntaxe

SHSTDAPI SHGetInstanceExplorer(
  [out] IUnknown **ppunk
);

Paramètres

[out] ppunk

Type : IUnknown**

Lorsque cette fonction retourne correctement, contient l’adresse du pointeur d’interface IUnknown du processus hôte. Il s’agit d’une interface à thread libre utilisée pour empêcher le processus hôte de se terminer. Si l’appel de fonction échoue, cette valeur est définie sur NULL.

Valeur retournée

Type : HRESULT

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Il existe un certain nombre de composants, tels que les gestionnaires d’extensions Shell, qui sont implémentés en tant que DLL et qui s’exécutent dans un processus hôte tel que Windows Explorer (Explorer.exe) ou internet Explorer (Iexplore.exe). En règle générale, lorsque l’utilisateur ferme le processus hôte, le composant est également arrêté immédiatement. Une telle interruption abrupte peut créer des problèmes pour certains composants. Par exemple, si un composant utilise un thread d’arrière-plan pour télécharger des données ou exécuter des fonctions d’interface utilisateur, il peut avoir besoin de temps supplémentaire pour s’arrêter en toute sécurité.

SHGetInstanceExplorer permet aux composants qui s’exécutent dans un processus hôte de contenir une référence sur le processus hôte. SHGetInstanceExplorer incrémente le nombre de références de l’hôte et retourne un pointeur vers l’interface IUnknown de l’hôte. En conservant cette référence, un composant peut empêcher le processus hôte de se fermer prématurément. Une fois que le composant a terminé son traitement nécessaire, il doit appeler (*ppunk)->Release pour libérer la référence de l’hôte et autoriser le processus à se terminer.

Note Si SHGetInstanceExplorer réussit, le composant doit libérer la référence de l’hôte lorsqu’elle n’est plus nécessaire. Dans le cas contraire, toutes les ressources associées au processus resteront en mémoire. L’interface IUnknown pointée vers *ppunk ne peut être utilisée que pour publier cette référence. Les composants ne peuvent pas utiliser (*ppunk)->QueryInterface pour demander d’autres pointeurs d’interface.
 
SHGetInstanceExplorer réussit uniquement s’il est appelé à partir d’une application qui avait précédemment appelé SHSetInstanceExplorer pour définir une référence de processus.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête shlobj_core.h (inclure Shlobj.h)
Bibliothèque Shell32.lib
DLL Shell32.dll (version 4.0 ou ultérieure)