Partager via


IGlobalInterfaceTable ::GetInterfaceFromGlobal, méthode (objidl.h)

Récupère un pointeur vers une interface sur un objet utilisable par l’appartement appelant. Cette interface doit être actuellement inscrite dans la table d’interface globale.

Syntaxe

HRESULT GetInterfaceFromGlobal(
  [in]  DWORD  dwCookie,
  [in]  REFIID riid,
  [out] void   **ppv
);

Paramètres

[in] dwCookie

Identifie l’interface (et son objet) et est récupéré via un appel à IGlobalInterfaceTable ::RegisterInterfaceInGlobal.

[in] riid

IID de l’interface.

[out] ppv

Pointeur vers le pointeur de l’interface demandée.

Valeur retournée

Cette méthode peut retourner les valeurs suivantes.

Code de retour Description
S_OK
La commande s'est correctement terminée.
E_INVALIDARG
Un ou plusieurs paramètres ne sont pas valides.

Remarques

Une fois qu’une interface a été inscrite dans la table d’interface globale, un appartement peut obtenir un pointeur vers cette interface en appelant la méthode GetInterfaceFromGlobal avec le cookie fourni. Ce pointeur vers l’interface peut être utilisé dans l’appartement appelant, mais pas par d’autres appartements dans le processus.

L’application est responsable de la coordination de l’accès à la variable globale pendant les appels à IGlobalInterfaceTable ::RevokeInterfaceFromGlobal. Autrement dit, l’application doit s’assurer qu’un thread n’appelle pas RevokeInterfaceFromGlobal tandis qu’un autre thread appelle GetInterfaceFromGlobal avec le même cookie. Plusieurs appels à GetInterfaceFromGlobal pour le même cookie sont autorisés.

La méthode GetInterfaceFromGlobal appelle AddRef sur le pointeur obtenu dans le paramètre ppv . Il est de la responsabilité de l’appelant d’appeler Release sur ce pointeur.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête objidl.h (inclure ObjIdl.h)

Voir aussi

IGlobalInterfaceTable