Метод ITAutomatedPhoneControl::SelectCall (tapi3if.h)
Метод SelectCall выбирает текущий объект phone в объекте Call, на который указывает параметр pCall .
Синтаксис
HRESULT SelectCall(
[in] ITCallInfo *pCall,
[in] VARIANT_BOOL fSelectDefaultTerminals
);
Параметры
[in] pCall
Указатель на интерфейс ITCallInfo .
[in] fSelectDefaultTerminals
Если VARIANT_TRUE, используйте терминалы по умолчанию. Дополнительные сведения см. в разделе "Примечания".
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В противном случае возвращается значение ошибки.
Комментарии
Чтобы этот метод вернул успешное выполнение, приложение должно иметь права владельца как на вызове, так и на телефоне. Если телефон еще не открыт с правами владельца, этот метод завершается ошибкой.
Если параметру fSelectDefaultTerminals присвоено значение VARIANT_TRUE, этот метод извлекает все терминалы по умолчанию, связанные с телефоном, и пытается выбрать их при вызове. Если создание экземпляра одного из терминалов завершается сбоем или выбор одного из терминалов в вызове завершается сбоем, то весь метод SelectCall вернет ошибку, и вызов не будет выбран на телефоне. Если это не является обязательным для приложения поведением, приложение должно передать VARIANT_FALSE для параметра fSelectDefaultTerminals и обрабатывать выбор терминала отдельно.
При успешном завершении этого метода объект phone сохраняет ссылку на объект вызова (то есть вызывает метод AddRef в ITCallInfo).
Для Windows XP на телефоне можно выбрать только один звонок за раз. Будущие версии TAPI могут поддерживать одновременный выбор нескольких вызовов для использования с телефонами, поддерживающими несколько вызовов.
Обратите внимание, что вызов можно отменить двумя способами: (1) приложение может вызвать ITAutomatedPhoneControl::UnselectCall или (2) сам объект телефона может вызвать ITAutomatedPhoneControl::UnselectCall. Сведения о том, когда это происходит, см. в следующем списке.
После успешного завершения этого метода в выбранном вызове выполняется следующая обработка:
- Когда телефон переходит в перехватчик, объект телефона вызывает ITBasicCallControl::D isconnect при любом обработанном вызове, который еще не находится в состоянии CS_DISCONNECTED вызова.
- Если выбранный вызов достигает состояния CS_DISCONNECTED вызова, объект телефона автоматически отменяет выбор вызова с помощью метода ITAutomatedPhoneControl::UnselectCall .
- Если телефон закрыт, любой выбранный вызов автоматически отменяется с этого телефона.
- Когда телефон отключается или выбирается звонок, когда телефон находится в состоянии offhook, объект телефона вызывает ITBasicCallControl::Answer в текущем обработанном вызове, если он находится в состоянии вызова CS_OFFERING.
- Телефонный объект вызывает ITAutomatedPhoneControl::StartTone( PT_RINGBACK, 0 ) сам по себе, когда звонок выбирается в CS_INPROGRESS состоянии звонка и телефон находится в состоянии offhook, или когда звонок, выбранный на телефоне, переходит в состояние CS_INPROGRESS звонка, а телефон отключен.
- Телефонный объект вызывает itAutomatedPhoneControl::StopTone сам по себе, когда на нем выбран вызов в состоянии CS_CONNECTED вызова или когда звонок, выбранный на телефоне, переходит в состояние CS_CONNECTED звонка.
- Телефонный объект вызывает ITAutomatedPhoneControl::StartRinger( 0, 0 ) сам по себе, когда для него выбран вызов в состоянии CS_OFFERING, CS_INPROGRESS или CS_CONNECTED, а телефон включен. Это также происходит, когда звонок, выбранный на телефоне, переходит в состояние вызова CS_OFFERING, CS_INPROGRESS или CS_CONNECTED, а телефон включен.
- Если телефон включен, объект телефона сам вызывает ITAutomatedPhoneControl::StopRinger .
- Если телефон отключен и событие состояния вызова CS_DISCONNECTED имеет причину, равную CEC_DISCONNECT_BUSY, то телефонный объект вызывает ITAutomatedPhoneControl::StartTone( PT_BUSY, 0 ).
- Если телефон отключен и событие состояния вызова CS_DISCONNECTED имеет причину, равную CEC_DISCONNECT_NORMAL, то телефонный объект вызывает itAutomatedPhoneControl::StopTone.
- Если телефон отключен и событие состояния вызова CS_DISCONNECTED не вызывает ни CEC_DISCONNECT_BUSY, ни CEC_DISCONNECT_NORMAL, то телефонный объект вызывает ITAutomatedPhoneControl::StartTone( PT_ERROR, 0 ).
Требования
Целевая платформа | Windows |
Header | tapi3if.h (включая Tapi3.h) |
Библиотека | Uuid.lib |
DLL | Tapi3.dll |