Compartir a través de


Función CoDisableCallCancellation (combaseapi.h)

Deshace la acción de una llamada a CoEnableCallCancellation. Deshabilita la cancelación de llamadas sincrónicas en el subproceso de llamada cuando todas las llamadas a CoEnableCallCancellation se equilibran mediante llamadas a CoDisableCallCancellation.

Sintaxis

HRESULT CoDisableCallCancellation(
  [in, optional] LPVOID pReserved
);

Parámetros

[in, optional] pReserved

Este parámetro está reservado y debe ser NULL.

Valor devuelto

Esta función puede devolver los valores devueltos estándar E_FAIL, E_INVALIDARG, E_OUTOFMEMORY y E_UNEXPECTED, así como los siguientes valores.

Código devuelto Descripción
S_OK
La cancelación de llamadas se deshabilitó correctamente en el subproceso.
CO_E_CANCEL_DISABLED
Ha habido llamadas más correctas a CoEnableCallCancellation en el subproceso que ha habido llamadas a CoDisableCallCancellation. La cancelación todavía está habilitada en el subproceso.

Comentarios

Cuando la cancelación de llamadas está habilitada en un subproceso, las llamadas sincrónicas serialadas de ese subproceso a objetos del mismo equipo pueden sufrir una degradación grave del rendimiento. De forma predeterminada, no se pueden cancelar las llamadas sincrónicas, incluso si hay disponible un objeto cancel. Para habilitar la cancelación de llamadas, primero debe llamar a CoEnableCallCancellation .

Cuando la cancelación de llamadas está deshabilitada, se producirá un error en los intentos de obtener un puntero a un objeto de llamada. Si el subproceso que realiza la llamada ya tiene un puntero a un objeto de llamada, se producirá un error en las llamadas en ese objeto.

A menos que quiera habilitar la cancelación de llamadas en un subproceso en todo momento, debe emparejar las llamadas a CoEnableCallCancellation con llamadas a CoDisableCallCancellation. La cancelación de llamadas solo se deshabilita si cada llamada correcta a CoEnableCallCancellation se equilibra mediante una llamada correcta a CoDisableCallCancellation.

Una llamada será cancelable o no dependiendo del estado del subproceso en el momento en que se realizó la llamada. Posteriormente, habilitar o deshabilitar la cancelación de llamadas no tiene ningún efecto en las llamadas pendientes en el subproceso.

Si un subproceso no está inicializado y, a continuación, reinicializado mediante llamadas a CoUninitialize y CoInitialize, la cancelación de llamadas se deshabilita en el subproceso, incluso si se habilitó cuando el subproceso no se inicializó.

Requisitos

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

Consulte también

CoEnableCallCancellation

ICancelMethodCalls