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 |
---|---|
|
L’annulation d’appel a été désactivée sur le thread. |
|
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 |