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.
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) |