Méthode IMessageFilter ::RetryRejectedCall (objidl.h)
Permet aux applications d’afficher une boîte de dialogue offrant des options de nouvelle tentative, d’annulation ou de basculement de tâches.
Syntaxe
DWORD RetryRejectedCall(
[in] HTASK htaskCallee,
[in] DWORD dwTickCount,
[in] DWORD dwRejectType
);
Paramètres
[in] htaskCallee
ID de thread de l’application appelée.
[in] dwTickCount
Nombre de cycles écoulés depuis l’appel.
[in] dwRejectType
Spécifie SERVERCALL_REJECTED ou SERVERCALL_RETRYLATER, tel que retourné par l’application objet.
Valeur retournée
Cette méthode peut retourner les valeurs suivantes.
Valeur retournée | Description |
---|---|
|
L’appel doit être annulé. COM retourne ensuite RPC_E_CALL_REJECTED de l’appel de méthode d’origine. |
|
L’appel doit être retenté immédiatement. |
|
COM attendra ce nombre de millisecondes, puis réessayera l’appel. |
Remarques
COM appelle RetryRejectedCall sur l’interface IMessageFilter de l’appelant immédiatement après avoir reçu SERVERCALL_RETRYLATER ou SERVERCALL_REJECTED de la méthode IMessageFilter ::HandleInComingCall sur l’interface IMessageFilter de l’appelé.
Si une tâche appelée rejette un appel, l’application se trouve probablement dans un état où elle ne peut pas gérer ces appels, éventuellement seulement temporairement. Lorsque cela se produit, COM retourne à l’appelant et émet RetryRejectedCall pour déterminer s’il doit réessayer l’appel rejeté.
Les applications doivent réessayer silencieusement les appels retournés avec SERVERCALL_RETRYLATER. Si, après un laps de temps raisonnable, par exemple environ 30 secondes, l’application doit afficher la boîte de dialogue occupée ; une implémentation standard de cette boîte de dialogue est disponible dans la bibliothèque OLEDLG. L’appelé peut se trouver momentanément dans un état où les appels peuvent être gérés. L’option d’attente et de nouvelle tentative est fournie pour les types spéciaux d’applications appelantes, telles que les tâches en arrière-plan exécutant des macros ou des scripts, afin qu’elles puissent réessayer les appels de manière non intrusive.
Si, après l’affichage d’une boîte de dialogue, l’utilisateur choisit d’annuler, RetryRejectedCall retourne -1 et l’appel semble échouer avec RPC_E_CALL_REJECTED.
Si un client implémente IMessageFilter et appelle une méthode serveur sur un ordinateur distant, RetryRejectedCall n’est pas appelé.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | objidl.h |