Método IMessageFilter::RetryRejectedCall (objidl.h)
Proporciona a las aplicaciones la oportunidad de mostrar un cuadro de diálogo que ofrece opciones de reintento, cancelación o conmutación de tareas.
Sintaxis
DWORD RetryRejectedCall(
[in] HTASK htaskCallee,
[in] DWORD dwTickCount,
[in] DWORD dwRejectType
);
Parámetros
[in] htaskCallee
Identificador de subproceso de la aplicación llamada.
[in] dwTickCount
Número de tics transcurridos desde que se realizó la llamada.
[in] dwRejectType
Especifica SERVERCALL_REJECTED o SERVERCALL_RETRYLATER, tal y como devuelve la aplicación de objeto.
Valor devuelto
Este método puede devolver los siguientes valores.
Valor devuelto | Descripción |
---|---|
|
La llamada debe cancelarse. A continuación, COM devuelve RPC_E_CALL_REJECTED desde la llamada al método original. |
|
La llamada se volverá a intentar inmediatamente. |
|
COM esperará muchos milisegundos y, a continuación, volverá a intentar la llamada. |
Comentarios
COM llama a RetryRejectedCall en la interfaz IMessageFilter del autor de la llamada inmediatamente después de recibir SERVERCALL_RETRYLATER o SERVERCALL_REJECTED desde el método IMessageFilter::HandleInComingCall en la interfaz IMessageFilter del destinatario.
Si una tarea llamada rechaza una llamada, es probable que la aplicación esté en un estado en el que no pueda controlar dichas llamadas, posiblemente solo temporalmente. Cuando esto ocurre, COM vuelve al autor de la llamada y emite RetryRejectedCall para determinar si debe reintentar la llamada rechazada.
Las aplicaciones deben reintentar de forma silenciosa las llamadas que se han devuelto con SERVERCALL_RETRYLATER. Si, una vez transcurrido un período de tiempo razonable, digamos unos 30 segundos, la aplicación debe mostrar el cuadro de diálogo ocupado; Hay disponible una implementación estándar de este cuadro de diálogo en la biblioteca OLEDLG. El destinatario puede estar momentáneamente en un estado en el que se pueden controlar las llamadas. La opción de esperar y reintentar se proporciona para tipos especiales de aplicaciones de llamada, como tareas en segundo plano que ejecutan macros o scripts, para que puedan reintentar las llamadas de forma nointrusiva.
Si, después de que se muestre un cuadro de diálogo, el usuario decide cancelar, RetryRejectedCall devuelve -1 y la llamada aparecerá como error con RPC_E_CALL_REJECTED.
Si un cliente implementa IMessageFilter y llama a un método de servidor en un equipo remoto, no se llamará a RetryRejectedCall .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | objidl.h |