Partager via


CoDisableCallCancellation, fonction (combaseapi.h)

Annule l’action d’un appel à CoEnableCallCancellation. Désactive l’annulation des appels synchrones sur le thread appelant lorsque tous les appels à CoEnableCallCancellation sont équilibrés par les appels à CoDisableCallCancellation.

Syntaxe

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

Paramètres

[in, optional] pReserved

Ce paramètre est réservé et doit être NULL.

Valeur retournée

Cette fonction peut retourner les valeurs de retour standard E_FAIL, E_INVALIDARG, E_OUTOFMEMORY et E_UNEXPECTED, ainsi que les valeurs suivantes.

Code de retour Description
S_OK
L’annulation d’appel a été désactivée sur le thread.
CO_E_CANCEL_DISABLED
Il y a eu plus d’appels réussis à CoEnableCallCancellation sur le thread que d’appels à CoDisableCallCancellation. L’annulation est toujours activée sur le thread.

Remarques

Lorsque l’annulation d’appel est activée sur un thread, les appels synchrones marshalés de ce thread vers des objets sur le même ordinateur peuvent subir une dégradation grave des performances. Par défaut, les appels synchrones ne peuvent pas être annulés, même si un objet cancel est disponible. Pour activer l’annulation d’appel, vous devez d’abord appeler CoEnableCallCancellation .

Lorsque l’annulation d’appel est désactivée, les tentatives d’obtenir un pointeur vers un objet d’appel échouent. Si le thread appelant a déjà un pointeur vers un objet d’appel, les appels sur cet objet échouent.

À moins que vous ne souhaitiez activer l’annulation d’appel sur un thread à tout moment, vous devez associer les appels à CoEnableCallCancellation avec les appels à CoDisableCallCancellation. L’annulation d’appel est désactivée uniquement si chaque appel réussi à CoEnableCallCancellation est équilibré par un appel réussi à CoDisableCallCancellation.

Un appel peut être annulé ou non en fonction de l’état du thread au moment où l’appel a été effectué. Par la suite, l’activation ou la désactivation de l’annulation d’appel n’a aucun effet sur les appels en attente sur le thread.

Si un thread est non initialisé, puis réinitialisé par des appels à CoUninitialize et CoInitialize, l’annulation d’appel est désactivée sur le thread, même si elle a été activée lorsque le thread a été non initialisé.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête combaseapi.h (inclure Objbase.h)
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

CoEnableCallCancellation

ICancelMethodCalls