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 |
---|---|
|
L'annullamento delle chiamate è stato disabilitato correttamente nel thread. |
|
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 |