Metodo IMessageFilter::RetryRejectedCall (objidl.h)
Fornisce alle applicazioni l'opportunità di visualizzare una finestra di dialogo che offre opzioni di ripetizione, annullamento o cambio attività.
Sintassi
DWORD RetryRejectedCall(
[in] HTASK htaskCallee,
[in] DWORD dwTickCount,
[in] DWORD dwRejectType
);
Parametri
[in] htaskCallee
ID thread dell'applicazione denominata.
[in] dwTickCount
Numero di tick trascorsi dal momento che è stata effettuata la chiamata.
[in] dwRejectType
Specifica SERVERCALL_REJECTED o SERVERCALL_RETRYLATER, come restituito dall'applicazione dell'oggetto.
Valore restituito
Questo metodo può restituire i valori seguenti.
Valore restituito | Descrizione |
---|---|
|
La chiamata deve essere annullata. COM restituisce quindi RPC_E_CALL_REJECTED dalla chiamata del metodo originale. |
|
La chiamata deve essere riprovata immediatamente. |
|
COM attenderà questo numero di millisecondi e quindi riprovare la chiamata. |
Commenti
COM chiama RetryRejectedCall nell'interfaccia IMessageFilter del chiamante immediatamente dopo aver ricevuto SERVERCALL_RETRYLATER o SERVERCALL_REJECTED dal metodo IMessageFilter::HandleInComingCall nell'interfaccia IMessageFilter del chiamante.
Se un'attività chiamata rifiuta una chiamata, l'applicazione è probabilmente in uno stato in cui non può gestire tali chiamate, possibilmente solo temporaneamente. In questo caso, COM restituisce al chiamante e genera RetryRejectedCall per determinare se deve riprovare la chiamata rifiutata.
Le applicazioni devono ripetere in modo automatico le chiamate restituite con SERVERCALL_RETRYLATER. Se, dopo un periodo di tempo ragionevole, si supponga di circa 30 secondi, l'applicazione dovrebbe visualizzare la finestra di dialogo occupato; un'implementazione standard di questa finestra di dialogo è disponibile nella libreria OLEDLG. Il chiamante può essere momentaneamente in uno stato in cui è possibile gestire le chiamate. L'opzione per attendere e ripetere i tentativi viene fornita per tipi speciali di applicazioni chiamanti, ad esempio le attività in background che eseguono macro o script, in modo che possano riprovare le chiamate in modo nontrusivo.
Se, dopo la visualizzazione di una finestra di dialogo, l'utente sceglie di annullare, RetryRejectedCall restituisce -1 e la chiamata avrà esito negativo con RPC_E_CALL_REJECTED.
Se un client implementa IMessageFilter e chiama un metodo server in un computer remoto, RetryRejectedCall non verrà chiamato.
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 | objidl.h |