Compartilhar via


Método ITAutomatedPhoneControl::SelectCall (tapi3if.h)

O método SelectCall seleciona o objeto de telefone atual no objeto Call apontado pelo parâmetro pCall .

Sintaxe

HRESULT SelectCall(
  [in] ITCallInfo   *pCall,
  [in] VARIANT_BOOL fSelectDefaultTerminals
);

Parâmetros

[in] pCall

Ponteiro para a interface ITCallInfo .

[in] fSelectDefaultTerminals

Se VARIANT_TRUE, use terminais padrão. Para obter mais informações, consulte a seção Comentários a seguir.

Valor retornado

Se o método for bem-sucedido, retornará S_OK. Caso contrário, ele retornará um valor de erro.

Comentários

O aplicativo deve ter privilégio de proprietário na chamada e no telefone para que esse método retorne êxito. Se o telefone ainda não estiver aberto com privilégio de proprietário, esse método falhará.

Se o parâmetro fSelectDefaultTerminals estiver definido como VARIANT_TRUE, esse método recuperará todos os terminais padrão associados ao telefone e tentará selecioná-los na chamada. Se a instanciação de um dos terminais falhar ou se a seleção de um dos terminais na chamada falhar, todo o método SelectCall retornará uma falha e a chamada não será selecionada no telefone. Se esse não for o comportamento necessário para um aplicativo, o aplicativo deverá passar VARIANT_FALSE para o parâmetro fSelectDefaultTerminals e manipular a seleção de terminal separadamente.

Após a conclusão bem-sucedida desse método, o objeto de telefone mantém uma referência ao objeto de chamada (ou seja, ele chama o método AddRef em ITCallInfo).

Para o Windows XP, apenas uma chamada por vez pode ser selecionada em um telefone. Versões futuras do TAPI podem dar suporte à seleção simultânea de várias chamadas para uso com telefones que dão suporte a várias aparências de chamada.

Observe que uma chamada pode ser desmarcada de duas maneiras: (1) o aplicativo pode invocar ITAutomatedPhoneControl::UnselectCall ou (2) o próprio objeto de telefone pode invocar ITAutomatedPhoneControl::UnselectCall. Consulte a lista a seguir para obter informações sobre quando isso acontece.

Depois que esse método for concluído com êxito, a seguinte manipulação será executada na chamada selecionada:

  • Quando o telefone é ativado, o objeto de telefone chama ITBasicCallControl::D isconnect em qualquer chamada tratada no momento que ainda não esteja no estado de chamada CS_DISCONNECTED.
  • Se uma chamada selecionada atingir o estado de chamada CS_DISCONNECTED, o objeto de telefone desmarcará automaticamente a chamada usando o método ITAutomatedPhoneControl::UnselectCall .
  • Se o telefone estiver fechado, qualquer chamada selecionada será desmarcada automaticamente desse telefone.
  • Quando o telefone fica desligado ou uma chamada é selecionada quando o telefone está offhook, o objeto de telefone chama ITBasicCallControl::Answer na chamada tratada no momento se estiver no estado de chamada CS_OFFERING.
  • O objeto de telefone chama ITAutomatedPhoneControl::StartTone( PT_RINGBACK, 0 ) em si mesmo quando uma chamada é selecionada nele no estado de chamada CS_INPROGRESS e o telefone está desligado ou quando uma chamada que foi selecionada no telefone entra no estado de chamada CS_INPROGRESS e o telefone está desligado.
  • O objeto de telefone chama ITAutomatedPhoneControl::StopTone em si mesmo quando uma chamada é selecionada no estado de chamada CS_CONNECTED ou quando uma chamada que foi selecionada no telefone entra no estado de chamada CS_CONNECTED.
  • O objeto de telefone chama ITAutomatedPhoneControl::StartRinger( 0, 0 ) em si mesmo quando uma chamada é selecionada nele no estado de chamada CS_OFFERING, CS_INPROGRESS ou CS_CONNECTED e o telefone está ativado. Isso também ocorre quando uma chamada que foi selecionada no telefone entra no estado de chamada CS_OFFERING, CS_INPROGRESS ou CS_CONNECTED e o telefone está ativado.
Dependendo das circunstâncias, o objeto de telefone executa uma das seguintes ações quando uma chamada é selecionada no estado de chamada CS_DISCONNECTED ou quando uma chamada que foi selecionada no telefone entra no estado de chamada CS_DISCONNECTED.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho tapi3if.h (inclua Tapi3.h)
Biblioteca Uuid.lib
DLL Tapi3.dll

Confira também

ITAutomatedPhoneControl

ITBasicCallControl

ITCallInfo