Função CoTestCancel (combaseapi.h)

Determina se a chamada que está sendo executada no servidor foi cancelada pelo cliente.

Sintaxe

HRESULT CoTestCancel();

Retornar valor

Essa função pode retornar os valores de retorno padrão E_FAIL, E_INVALIDARG, E_OUTOFMEMORY e E_UNEXPECTED, bem como os valores a seguir.

Código de retorno Descrição
RPC_S_CALLPENDING
A chamada ainda está pendente e ainda não foi cancelada pelo cliente.
RPC_E_CALL_CANCELED
A chamada foi cancelada pelo cliente.

Comentários

Objetos de servidor devem chamar CoTestCancel pelo menos uma vez antes de retornar para detectar solicitações de cancelamento do cliente. Isso pode salvar o trabalho desnecessário do servidor se o cliente tiver emitido uma solicitação de cancelamento e reduzir o tempo de espera do cliente se ele tiver definido o tempo limite de cancelamento como RPC_C_CANCEL_INFINITE_TIMEOUT. Além disso, se o objeto de servidor detectar uma solicitação de cancelamento antes de retornar de uma chamada pendente, ele poderá limpo qualquer memória, interfaces marshaled ou identificadores que tenha criado ou obtido.

CoTestCancel chama CoGetCallContext para obter a interface ICancelMethodCalls no objeto cancel atual e, em seguida, chama ICancelMethodCalls::TestCancel. Os objetos que implementam marshaling personalizado devem primeiro chamar CoSwitchCallContext para instalar o objeto de contexto de chamada apropriado.

Essa função não testa o cancelamento para chamadas assíncronas.

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 combaseapi.h (inclua Objbase.h)
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

ICancelMethodCalls