Partager via


CoTestCancel, fonction (combaseapi.h)

Détermine si l’appel en cours d’exécution sur le serveur a été annulé par le client.

Syntaxe

HRESULT CoTestCancel();

Valeur de retour

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
RPC_S_CALLPENDING
L’appel est toujours en attente et n’a pas encore été annulé par le client.
RPC_E_CALL_CANCELED
L’appel a été annulé par le client.

Remarques

Les objets serveur doivent appeler CoTestCancel au moins une fois avant de revenir pour détecter les demandes d’annulation du client. Cela permet d’économiser le travail inutile du serveur si le client a émis une demande d’annulation et de réduire le temps d’attente du client s’il a défini le délai d’expiration d’annulation comme RPC_C_CANCEL_INFINITE_TIMEOUT. En outre, si l’objet serveur détecte une demande d’annulation avant de revenir d’un appel en attente, il peut propre la mémoire, les interfaces marshalées ou les handles qu’il a créés ou obtenus.

CoTestCancel appelle CoGetCallContext pour obtenir l’interface ICancelMethodCalls sur l’objet cancel actuel, puis appelle ICancelMethodCalls ::TestCancel. Les objets qui implémentent le marshaling personnalisé doivent d’abord appeler CoSwitchCallContext pour installer l’objet de contexte d’appel approprié.

Cette fonction ne teste pas l’annulation des appels asynchrones.

Configuration requise

Condition requise Valeur
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

ICancelMethodCalls