Share via


Função CoSetCancelObject (combaseapi.h)

Define (registra) ou redefine (cancela o registro) de um objeto cancel para uso durante operações de cancelamento subsequentes no thread atual.

Sintaxe

HRESULT CoSetCancelObject(
  [in, optional] IUnknown *pUnk
);

Parâmetros

[in, optional] pUnk

Ponteiro para a interface IUnknown no objeto cancel a ser definido ou redefinido no thread atual. Se esse parâmetro for NULL, o objeto de cancelamento mais alto será redefinido.

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
S_OK
O objeto cancel foi definido ou redefinido com êxito.
E_ACCESSDENIED
O objeto cancel não pode ser definido ou redefinido no momento devido a um bloco em operações de cancelamento.

Comentários

Para objetos que dão suporte ao marshaling padrão, o objeto proxy começa a realizar marshaling de uma chamada de método chamando CoSetCancelObject para registrar um objeto cancel para o thread atual.

CoSetCancelObject chama QueryInterface para ICancelMethodCalls no objeto cancel. Se o objeto cancel não implementar ICancelMethodCalls, CoSetCancelObject falhará com E_NOINTERFACE. Para desabilitar operações de cancelamento em uma interface marshaled personalizada, a implementação de ICancelMethodCalls::Cancel não deve fazer nada além de retornar E_NOTIMPL, E_FAIL ou algum outro valor apropriado.

CoSetCancelObject chama AddRef em objetos que ele registra e Libera em objetos que ele cancela o registro.

CoSetCancelObject não define nem redefine objetos de cancelamento para métodos assíncronos.

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