Condividi tramite


Funzione CoTestCancel (combaseapi.h)

Determina se la chiamata eseguita nel server è stata annullata dal client.

Sintassi

HRESULT CoTestCancel();

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
RPC_S_CALLPENDING
La chiamata è ancora in sospeso e non è ancora stata annullata dal client.
RPC_E_CALL_CANCELED
La chiamata è stata annullata dal client.

Commenti

Gli oggetti server devono chiamare CoTestCancel almeno una volta prima di restituire per rilevare le richieste di annullamento client. In questo modo, il server può salvare il lavoro non necessario se il client ha inviato una richiesta di annullamento e può ridurre il tempo di attesa del client se ha impostato il timeout di annullamento come RPC_C_CANCEL_INFINITE_TIMEOUT. Inoltre, se l'oggetto server rileva una richiesta di annullamento prima di restituire da una chiamata in sospeso, può pulire qualsiasi memoria, interfacce con marshalling o handle creati o ottenuti.

CoTestCancel chiama CoGetCallContext per ottenere l'interfaccia ICancelMethodCalls nell'oggetto cancel corrente e quindi chiama ICancelMethodCalls::TestCancel. Gli oggetti che implementano il marshalling personalizzato devono prima chiamare CoSwitchCallContext per installare l'oggetto contesto di chiamata appropriato.

Questa funzione non testa l'annullamento per le chiamate asincrone.

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