Partager via


GetProcessReference, fonction (shlwapi.h)

Récupère l’objet spécifique au processus fourni par SetProcessReference, en incrémentant le nombre de références pour maintenir le processus actif.

Syntaxe

LWSTDAPI GetProcessReference(
  [out] IUnknown **punk
);

Paramètres

[out] punk

Adresse d’un pointeur qui, lorsque cette fonction retourne correctement, pointe vers l’objet fourni au processus par SetProcessReference. Votre application est chargée de libérer cette ressource quand elle n’est plus nécessaire.

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

Il existe un certain nombre de composants, tels que les gestionnaires d’extension Shell, qui sont implémentés en tant que DLL et exécutés dans un processus hôte tel que Windows Explorer (Explorer.exe) ou Windows 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. Un arrêt aussi brusque 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é.

GetProcessReference permet aux composants qui s’exécutent dans un processus hôte de contenir une référence sur le processus hôte. GetProcessReference 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 (*punk)->Release pour libérer la référence de l’hôte et autoriser le processus à se terminer.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shlwapi.h
Bibliothèque Shlwapi.lib
DLL Api-ms-win-shcore-thread-L1-1-0.dll

Voir aussi

SHGetInstanceExplorer

SetProcessReference

Ensembles d’API Windows