Condividi tramite


Funzione CoSetCancelObject (combaseapi.h)

Imposta (registri) o reimposta (annulla la registrazione) un oggetto annulla per l'uso durante le operazioni di annullamento successive nel thread corrente.

Sintassi

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

Parametri

[in, optional] pUnk

Puntatore all'interfaccia IUnknown nell'oggetto cancel da impostare o reimpostare nel thread corrente. Se questo parametro è NULL, viene reimpostato l'oggetto annulla più in alto.

Valore restituito

Questa funzione può restituire i valori restituiti standard E_FAIL, E_INVALIDARG, E_OUTOFMEMORY e E_UNEXPECTED, nonché i valori seguenti.

Codice restituito Descrizione
S_OK
L'oggetto cancel è stato impostato o reimpostato correttamente.
E_ACCESSDENIED
L'oggetto cancel non può essere impostato o reimpostato in questo momento a causa di un blocco per le operazioni di annullamento.

Commenti

Per gli oggetti che supportano il marshalling standard, l'oggetto proxy inizia il marshalling di una chiamata a un metodo chiamando CoSetCancelObject per registrare un oggetto annulla per il thread corrente.

CoSetCancelObject chiama QueryInterface per ICancelMethodCalls nell'oggetto cancel. Se l'oggetto cancel non implementa ICancelMethodCalls, CoSetCancelObject non riesce con E_NOINTERFACE. Per disabilitare le operazioni di annullamento in un'interfaccia con marshalling personalizzato, l'implementazione di ICancelMethodCalls::Cancel non deve eseguire alcuna operazione, ma restituire E_NOTIMPL, E_FAIL o un altro valore appropriato.

CoSetCancelObject chiama AddRef sugli oggetti registrati e rilasciati sugli oggetti che annullano la registrazione.

CoSetCancelObject non imposta o reimposta gli oggetti annulla per i metodi asincroni.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione combaseapi.h (include Objbase.h)
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

ICancelMethodCalls