Condividi tramite


Metodo ITAutomatedPhoneControl::SelectCall (tapi3if.h)

Il metodo SelectCall seleziona l'oggetto telefono corrente nell'oggetto Call a cui punta il parametro pCall .

Sintassi

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

Parametri

[in] pCall

Puntatore all'interfaccia ITCallInfo .

[in] fSelectDefaultTerminals

Se VARIANT_TRUE, usare i terminali predefiniti. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. In caso contrario, restituisce un valore di errore.

Commenti

Per restituire l'esito positivo, l'applicazione deve avere il privilegio di proprietario sia per la chiamata che per il telefono. Se il telefono non è già aperto con privilegi di proprietario, questo metodo ha esito negativo.

Se il parametro fSelectDefaultTerminals è impostato su VARIANT_TRUE, questo metodo recupera tutti i terminali predefiniti associati al telefono e tenta di selezionarli alla chiamata. Se la creazione di un'istanza di uno dei terminali ha esito negativo o se la selezione di uno dei terminali nella chiamata ha esito negativo, l'intero metodo SelectCall restituirà un errore e la chiamata non verrà selezionata sul telefono. Se questo non è il comportamento necessario per un'applicazione, l'applicazione deve passare VARIANT_FALSE per il parametro fSelectDefaultTerminals e gestire separatamente la selezione del terminale.

Al termine di questo metodo, l'oggetto telefono mantiene un riferimento all'oggetto chiamata, ovvero chiama il metodo AddRef su ITCallInfo.

Per Windows XP, è possibile selezionare una sola chiamata alla volta su un telefono. Le versioni future di TAPI possono supportare la selezione simultanea di più chiamate da usare con telefoni che supportano più apparenze di chiamata.

Si noti che una chiamata può essere deselezionata in due modi: (1) l'applicazione può richiamare ITAutomatedPhoneControl::UnselectCall o (2) l'oggetto telefono stesso può richiamare ITAutomatedPhoneControl::UnselectCall. Per informazioni su quando si verifica questo problema, vedere l'elenco seguente.

Al termine di questo metodo, la gestione seguente viene eseguita sulla chiamata selezionata:

  • Quando il telefono passa in modalità onhook, l'oggetto telefono chiama ITBasicCallControl::D isconnect su qualsiasi chiamata attualmente gestita che non è già nello stato della chiamata CS_DISCONNECTED.
  • Se una chiamata selezionata raggiunge lo stato di chiamata CS_DISCONNECTED, l'oggetto telefono deseleziona automaticamente la chiamata usando il metodo ITAutomatedPhoneControl::UnselectCall .
  • Se il telefono è chiuso, qualsiasi chiamata selezionata viene deselezionata automaticamente da tale telefono.
  • Quando il telefono passa fuorihook o viene selezionata una chiamata quando il telefono è offhook, l'oggetto telefono chiama ITBasicCallControl::Answer nella chiamata attualmente gestita se si trova nello stato di chiamata CS_OFFERING.
  • L'oggetto telefono chiama ITAutomatedPhoneControl::StartTone( PT_RINGBACK, 0 ) su se stesso quando viene selezionata una chiamata nello stato di chiamata CS_INPROGRESS e il telefono è fuorihook o quando una chiamata selezionata sul telefono entra nello stato di chiamata CS_INPROGRESS e il telefono è fuorihook.
  • L'oggetto telefono chiama ITAutomatedPhoneControl::StopTone su se stesso quando viene selezionata una chiamata nello stato di chiamata CS_CONNECTED o quando una chiamata selezionata sul telefono entra nello stato di chiamata CS_CONNECTED.
  • L'oggetto telefono chiama ITAutomatedPhoneControl::StartRinger( 0, 0 ) su se stesso quando viene selezionata una chiamata nel CS_OFFERING, CS_INPROGRESS o CS_CONNECTED stato di chiamata e il telefono è onhook. Ciò si verifica anche quando una chiamata selezionata sul telefono entra nel CS_OFFERING, CS_INPROGRESS o CS_CONNECTED stato di chiamata e il telefono è inhook.
A seconda delle circostanze, l'oggetto telefono esegue una delle azioni seguenti quando viene selezionata una chiamata nello stato di chiamata CS_DISCONNECTED oppure quando una chiamata selezionata sul telefono entra nello stato di chiamata CS_DISCONNECTED.
  • Se il telefono è onhook, l'oggetto telefono chiama ITAutomatedPhoneControl::StopRinger su se stesso.
  • Se il telefono è offhook e l'evento di stato della chiamata CS_DISCONNECTED ha causato uguale a CEC_DISCONNECT_BUSY, l'oggetto telefono chiama ITAutomatedPhoneControl::StartTone( PT_BUSY, 0 ).
  • Se il telefono è offhook e l'evento di stato della chiamata CS_DISCONNECTED ha causato uguale a CEC_DISCONNECT_NORMAL, l'oggetto telefono chiama ITAutomatedPhoneControl::StopTone.
  • Se il telefono è offhook e l'evento di stato della chiamata CS_DISCONNECTED non ha né causato CEC_DISCONNECT_BUSY né causare CEC_DISCONNECT_NORMAL, l'oggetto telefono chiama ITAutomatedPhoneControl::StartTone( PT_ERROR, 0 ).

Requisiti

   
Piattaforma di destinazione Windows
Intestazione tapi3if.h (include Tapi3.h)
Libreria Uuid.lib
DLL Tapi3.dll

Vedi anche

ITAutomatedPhoneControl

ITBasicCallControl

ITCallInfo