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 |
---|---|
|
La fonction a réussi. |
|
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 |