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