Condividi tramite


Funzione CoDisableCallCancellation (combaseapi.h)

Annulla l'azione di una chiamata a CoEnableCallCancellation. Disabilita l'annullamento delle chiamate sincrone nel thread chiamante quando tutte le chiamate a CoEnableCallCancellation vengono bilanciate dalle chiamate a CoDisableCallCancellation.

Sintassi

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

Parametri

[in, optional] pReserved

Questo parametro è riservato e deve essere NULL.

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'annullamento delle chiamate è stato disabilitato correttamente nel thread.
CO_E_CANCEL_DISABLED
Ci sono state chiamate più riuscite a CoEnableCallCancellation nel thread che sono state chiamate a CoDisableCallCancellation. L'annullamento è ancora abilitato nel thread.

Commenti

Quando l'annullamento delle chiamate è abilitato in un thread, le chiamate sincrone sincrone da quel thread a oggetti nello stesso computer possono subire gravi riduzione delle prestazioni. Per impostazione predefinita, non è possibile annullare le chiamate sincrone, anche se è disponibile un oggetto cancel. Per abilitare l'annullamento delle chiamate, è necessario chiamare prima CoEnableCallCancellation .

Quando l'annullamento della chiamata è disabilitato, i tentativi di ottenere un puntatore a un oggetto call avranno esito negativo. Se il thread chiamante ha già un puntatore a un oggetto call, le chiamate su tale oggetto avranno esito negativo.

A meno che non si voglia abilitare l'annullamento delle chiamate in un thread in ogni momento, è necessario associare le chiamate a CoEnableCallCancellation con le chiamate a CoDisableCallCancellation. L'annullamento delle chiamate è disabilitato solo se ogni chiamata riuscita a CoEnableCallCancellation è bilanciata da una chiamata riuscita a CoDisableCallCancellation.

Una chiamata sarà annullabile o meno a seconda dello stato del thread al momento dell'esecuzione della chiamata. Successivamente l'abilitazione o la disabilitazione dell'annullamento delle chiamate non ha alcun effetto sulle chiamate in sospeso nel thread.

Se un thread non è inizializzato e reinizializzato dalle chiamate a CoUninitialize e CoInitialize, l'annullamento delle chiamate viene disabilitato nel thread, anche se è stato abilitato quando il thread non è stato inizializzato.

Requisiti

   
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

CoEnableCallCancellation

ICancelMethodCalls