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
-1
La chiamata deve essere annullata. COM restituisce quindi RPC_E_CALL_REJECTED dalla chiamata del metodo originale.
0 ≤ valore< 100
La chiamata deve essere riprovata immediatamente.
100 ≤ valore
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.

Nota Anche se il parametro htaskCallee viene digitato come HTASK, contiene l'ID thread del thread denominato. Quando si implementa l'interfaccia IMessageFilter , è possibile chiamare la funzione OpenThread per ottenere l'handle del thread dal parametro htaskCallee e chiamare la funzione GetProcessIdOfThread per ottenere l'ID processo.
 

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

Vedi anche

IMessageFilter