Método IMessageFilter::HandleInComingCall (objidl.h)
Fornece um único ponto de entrada para chamadas de entrada.
Esse método é chamado antes de cada invocação de método originada fora do processo atual e fornece a capacidade de filtrar ou rejeitar chamadas de entrada (ou retornos de chamada) para um objeto ou um processo.
Sintaxe
DWORD HandleInComingCall(
[in] DWORD dwCallType,
[in] HTASK htaskCaller,
[in] DWORD dwTickCount,
[in] LPINTERFACEINFO lpInterfaceInfo
);
Parâmetros
[in] dwCallType
O tipo de chamada de entrada que foi recebida. Os valores possíveis são da enumeração CALLTYPE.
[in] htaskCaller
A ID do thread do chamador.
[in] dwTickCount
A contagem de tiques decorridos desde que a chamada de saída foi feita, se dwCallType não for CALLTYPE_TOPLEVEL. Se dwCallType for CALLTYPE_TOPLEVEL, dwTickCount deverá ser ignorado.
[in] lpInterfaceInfo
Um ponteiro para uma estrutura INTERFACEINFO que identifica o objeto, a interface e o método que está sendo chamado. No caso de chamadas DDE, lpInterfaceInfo pode ser NULL porque a camada DDE não retorna informações de interface.
Retornar valor
Esse método pode retornar os valores a seguir.
Código de retorno | Descrição |
---|---|
|
O aplicativo pode ser capaz de processar a chamada. |
|
O aplicativo não pode lidar com a chamada devido a um problema imprevisto, como indisponibilidade de rede ou se está em processo de encerramento. |
|
O aplicativo não pode lidar com a chamada no momento. Um aplicativo pode retornar esse valor quando estiver em um estado modal controlado pelo usuário. |
Comentários
Se implementado, HandleInComingCall é chamado por COM quando uma mensagem COM de entrada é recebida.
Dependendo do estado atual de um aplicativo, uma chamada é aceita e processada ou rejeitada (permanente ou temporariamente). Se SERVERCALL_ISHANDLED for retornado, o aplicativo poderá processar a chamada, embora o sucesso dependa da interface para a qual a chamada está destinada. Se a chamada não puder ser processada, COM retornará RPC_E_CALL_REJECTED.
As chamadas assíncronas e sincronizadas por entrada são expedidas mesmo que o aplicativo retorne SERVERCALL_REJECTED ou SERVERCALL_RETRYLATER.
HandleInComingCall não deve ser usado para manter as atualizações em objetos durante operações como impressão de banda. Para essa finalidade, use IViewObject::Freeze.
Você também pode usar HandleInComingCall para configurar o estado do aplicativo para que a chamada possa ser processada no futuro.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | objidl.h |