Partager via


CoSetCancelObject, fonction (combaseapi.h)

Définit (inscrit) ou réinitialise (désinscrit) un objet cancel pour l’utiliser lors des opérations d’annulation suivantes sur le thread actif.

Syntaxe

HRESULT CoSetCancelObject(
  [in, optional] IUnknown *pUnk
);

Paramètres

[in, optional] pUnk

Pointeur vers l’interface IUnknown sur l’objet cancel à définir ou réinitialiser sur le thread actif. Si ce paramètre a la valeur NULL, l’objet cancel le plus haut est réinitialisé.

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’objet cancel a été correctement défini ou réinitialisé.
E_ACCESSDENIED
L’objet cancel ne peut pas être défini ou réinitialisé pour le moment en raison d’un blocage sur les opérations d’annulation.

Remarques

Pour les objets qui prennent en charge le marshaling standard, l’objet proxy commence à marshaler un appel de méthode en appelant CoSetCancelObject pour inscrire un objet cancel pour le thread actif.

CoSetCancelObject appelle QueryInterface pour ICancelMethodCalls sur l’objet cancel. Si l’objet cancel n’implémente pas ICancelMethodCalls, CoSetCancelObject échoue avec E_NOINTERFACE. Pour désactiver les opérations d’annulation sur une interface marshalée personnalisée, l’implémentation de ICancelMethodCalls ::Cancel ne doit faire que retourner E_NOTIMPL, E_FAIL ou une autre valeur appropriée.

CoSetCancelObject appelle AddRef sur les objets qu’il inscrit et Release sur les objets qu’il désinscrit.

CoSetCancelObject ne définit ni ne réinitialise les objets d’annulation pour les méthodes 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