Partager via


CoSwitchCallContext, fonction (combaseapi.h)

Bascule l’objet de contexte d’appel utilisé par CoGetCallContext.

Syntaxe

HRESULT CoSwitchCallContext(
  [in, optional] IUnknown *pNewObject,
  [out]          IUnknown **ppOldObject
);

Paramètres

[in, optional] pNewObject

Pointeur vers une interface sur le nouvel objet de contexte d’appel. COM stocke ce pointeur sans ajouter de référence au pointeur jusqu’à ce que CoSwitchCallContext soit appelé avec un autre objet. Ce paramètre peut être NULL si vous appelez CoSwitchCallContext pour revenir au contexte d’appel d’origine, mais qu’il n’y avait pas de contexte d’appel d’origine.

[out] ppOldObject

Adresse de la variable pointeur qui reçoit un pointeur vers l’objet de contexte d’appel de l’appel en cours. Cette valeur est retournée afin que le contexte d’appel d’origine puisse être restauré par le marshaleur personnalisé. Le pointeur retourné est NULL s’il n’y a pas d’appel en cours.

Valeur retournée

Cette fonction peut retourner les valeurs suivantes.

Code de retour Description
S_OK
La fonction a réussi.
E_OUT_OF_MEMORY
Mémoire insuffisante.

Remarques

Les marshalers personnalisés appellent CoSwitchCallContext pour modifier l’objet de contexte d’appel utilisé par la fonction CoGetCallContext . Avant de distribuer un appel arrivant, les marshalers personnalisés appellent CoSwitchCallContext, en spécifiant le nouvel objet de contexte. Après avoir envoyé une réponse, ils doivent restaurer le contexte d’appel d’origine en appelant à nouveau CoSwitchCallContext , en passant cette fois un pointeur vers l’objet de contexte d’origine.

CoSwitchCallContext n’ajoute pas de référence au nouvel objet de contexte. Les marshaleurs personnalisés doivent s’assurer que la durée de vie de leur objet de contexte se poursuit tout au long de leur appel et jusqu’à l’appel pour restaurer le contexte d’origine. Les marshaleurs personnalisés ne doivent pas libérer la valeur qu’ils ont placée dans le paramètre ppOldObject lorsqu’ils définissent leur contexte.

Les objets de contexte d’appel fournis par les marshalers personnalisés doivent prendre en charge l’interface IServerSecurity .

Configuration requise

   
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 combaseapi.h (inclure Objbase.h)
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

CoGetCallContext

IServerSecurity

Sécurité dans COM