Compartir a través de


Función CoSwitchCallContext (combaseapi.h)

Cambia el objeto de contexto de llamada utilizado por CoGetCallContext.

Sintaxis

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

Parámetros

[in, optional] pNewObject

Puntero a una interfaz en el nuevo objeto de contexto de llamada. COM almacena este puntero sin agregar una referencia al puntero hasta que se llama a CoSwitchCallContext con otro objeto . Este parámetro puede ser NULL si llama a CoSwitchCallContext para volver al contexto de llamada original, pero no hubo ningún contexto de llamada original.

[out] ppOldObject

Dirección de la variable de puntero que recibe un puntero al objeto de contexto de llamada de la llamada actualmente en curso. Este valor se devuelve para que el serializador personalizado pueda restaurar el contexto de llamada original. El puntero devuelto será NULL si no hay ninguna llamada en curso.

Valor devuelto

Esta función puede devolver los valores siguientes.

Código devuelto Descripción
S_OK
La función se realizó correctamente.
E_OUT_OF_MEMORY
Memoria insuficiente

Comentarios

Los serializadores personalizados llaman a CoSwitchCallContext para cambiar el objeto de contexto de llamada usado por la función CoGetCallContext . Antes de enviar una llamada de llegada, los serializadores personalizados llaman a CoSwitchCallContext, especificando el nuevo objeto de contexto. Después de enviar una respuesta, deben restaurar el contexto de llamada original llamando a CoSwitchCallContext de nuevo, esta vez pasando un puntero al objeto de contexto original.

CoSwitchCallContext no agrega una referencia al nuevo objeto de contexto. Los serializadores personalizados deben asegurarse de que la duración de su objeto de contexto continúa a lo largo de su llamada y hasta que la llamada para restaurar el contexto original. Los serializadores personalizados no deben liberar el valor que colocaron en el parámetro ppOldObject cuando establecen su contexto.

Los objetos de contexto de llamada proporcionados por los serializadores personalizados deben admitir la interfaz IServerSecurity .

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado combaseapi.h (incluya Objbase.h)
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

CoGetCallContext

IServerSecurity

Seguridad en COM