Partager via


Fonction SHSetInstanceExplorer (shlobj_core.h)

Fournit 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

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

Paramètres

[in, optional] punk

Type : IUnknown*

Pointeur vers un IUnknown à thread libre. Les composants peuvent utiliser cette interface (via SHGetInstanceExplorer) pour empêcher la fin du processus hôte. Cette valeur peut être NULL, auquel cas la référence de processus n’est plus mise à la disposition des composants.

Valeur de retour

None

Remarques

Windows Explorer et les Explorer Internet peuvent utiliser SHSetInstanceExplorer pour permettre à des composants tels que les extensions shell de prolonger la durée de vie du processus. D’autres applications peuvent également utiliser SHSetInstanceExplorer pour permettre la même fonctionnalité. Par instance, la boucle de message du navigateur et le bureau proxy utilisent SHSetInstanceExplorer pour permettre à d’autres threads d’étendre leur durée de vie.

Les applications autres que Windows Explorer et les Explorer Internet qui appellent cette fonction peuvent rencontrer des problèmes de compatibilité, car certains composants utilisent SHGetInstanceExplorer pour détecter s’ils sont hébergés à partir de Windows Explorer ou d’Internet Explorer.

Le pointeur d’interface passé à SHSetInstanceExplorer doit référencer un objet à thread libre.

Chaque fois qu’un composant appelle SHGetInstanceExplorer, le système appelle la méthode AddRef avant de retourner le pointeur d’interface vers le composant appelant. Le composant appelle ensuite la méthode IUnknown ::Release une fois le traitement terminé. Le processus qui appelle SHSetInstanceExplorer ne doit pas se terminer alors que le nombre de références du pointeur d’interface fourni est différent de zéro.

Pour plus d’informations sur la façon dont les composants utilisent les références de processus, consultez SHGetInstanceExplorer.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shlobj_core.h (inclure Shlobj.h)
Bibliothèque Shell32.lib
DLL Shell32.dll (version 5.0 ou ultérieure)
Ensemble d’API ext-ms-win-shell-shell32-l1-2-1 (introduit dans Windows 10, version 10.0.10240)

Voir aussi

SHGetInstanceExplorer