Método IMessageFilter::HandleInComingCall (objidl.h)

Proporciona un único punto de entrada para las llamadas entrantes.

Se llama a este método antes de cada invocación de método que se origina fuera del proceso actual y proporciona la capacidad de filtrar o rechazar llamadas entrantes (o devoluciones de llamada) a un objeto o un proceso.

Sintaxis

DWORD HandleInComingCall(
  [in] DWORD           dwCallType,
  [in] HTASK           htaskCaller,
  [in] DWORD           dwTickCount,
  [in] LPINTERFACEINFO lpInterfaceInfo
);

Parámetros

[in] dwCallType

Tipo de llamada entrante que se ha recibido. Los valores posibles proceden de la enumeración CALLTYPE.

[in] htaskCaller

Identificador de subproceso del autor de la llamada.

[in] dwTickCount

Recuento de tics transcurrido desde que se realizó la llamada saliente, si dwCallType no está CALLTYPE_TOPLEVEL. Si dwCallType es CALLTYPE_TOPLEVEL, dwTickCount debe omitirse.

[in] lpInterfaceInfo

Puntero a una estructura INTERFACEINFO que identifica el objeto, la interfaz y el método a los que se llama. En el caso de llamadas DDE, lpInterfaceInfo puede ser NULL porque la capa DDE no devuelve información de interfaz.

Valor devuelto

Este método puede devolver los siguientes valores.

Código devuelto Descripción
SERVERCALL_ISHANDLED
Es posible que la aplicación pueda procesar la llamada.
SERVERCALL_REJECTED
La aplicación no puede controlar la llamada debido a un problema imprevisto, como la falta de disponibilidad de la red o si está en proceso de terminación.
SERVERCALL_RETRYLATER
La aplicación no puede controlar la llamada en este momento. Una aplicación puede devolver este valor cuando se encuentra en un estado modal controlado por el usuario.

Comentarios

Si se implementa, COM llama a HandleInComingCall cuando se recibe un mensaje COM entrante.

Dependiendo del estado actual de una aplicación, una llamada se acepta y procesa o rechaza (permanente o temporalmente). Si se devuelve SERVERCALL_ISHANDLED, es posible que la aplicación pueda procesar la llamada, aunque el éxito depende de la interfaz para la que se destina la llamada. Si no se puede procesar la llamada, COM devuelve RPC_E_CALL_REJECTED.

Las llamadas asincrónicas y sincronizadas de entrada se envían incluso si la aplicación devuelve SERVERCALL_REJECTED o SERVERCALL_RETRYLATER.

HandleInComingCall no debe usarse para mantener las actualizaciones de los objetos durante las operaciones como la impresión en banda. Para ello, use IViewObject::Freeze.

También puede usar HandleInComingCall para configurar el estado de la aplicación para que la llamada se pueda procesar en el futuro.

Nota Aunque el parámetro htaskCaller se escribe como HTASK, contiene el identificador de subproceso del subproceso que realiza la llamada. Al implementar la interfaz IMessageFilter , puede llamar a la función OpenThread para obtener el identificador de subproceso del parámetro htaskCaller y puede llamar a la función GetProcessIdOfThread para obtener el identificador de proceso.
 

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

Consulte también

IMessageFilter