ITAutomatedPhoneControl::SelectCall 方法 (tapi3if.h)
SelectCall方法會將目前的電話物件選取至pCall參數所指向的 Call 物件。
語法
HRESULT SelectCall(
[in] ITCallInfo *pCall,
[in] VARIANT_BOOL fSelectDefaultTerminals
);
參數
[in] pCall
ITCallInfo介面的指標。
[in] fSelectDefaultTerminals
如果VARIANT_TRUE,請使用預設終端機。 如需詳細資訊,請參閱接下來的<備註>一節。
傳回值
如果方法成功,它會傳回 S_OK。 否則,它會傳回錯誤值。
備註
應用程式必須具有通話和電話的擁有者許可權,這個方法才能傳回成功。 如果手機尚未以擁有者許可權開啟,這個方法就會失敗。
如果 fSelectDefaultTerminals 參數設定為 VARIANT_TRUE,這個方法會擷取與電話相關聯的所有預設終端機,並嘗試在通話上加以選取。 如果其中一個終端機的具現化失敗,或呼叫上其中一個終端機的選取失敗,則整個 SelectCall 方法將會傳回失敗,而且不會在手機上選取通話。 如果這不是應用程式的必要行為,則應用程式應該傳入 fSelectDefaultTerminals 參數的 VARIANT_FALSE,並個別處理終端機選取。
在此方法成功完成時,電話物件會保留呼叫物件 (的參考,也就是它會在ITCallInfo上呼叫AddRef方法) 。
針對 Windows XP,一次只能選取一次通話。 未來的 TAPI 版本可能會支援同時選取多個通話,以便與支援多個通話外觀的電話搭配使用。
請注意,呼叫可以透過兩種方式取消選取: (1) 應用程式可以叫用 ITAutomatedPhoneControl::UnselectCall,或 (2) 手機物件本身可以叫用 ITAutomatedPhoneControl::UnselectCall。 如需發生這種情況的相關資訊,請參閱下列清單。
此方法成功完成之後,會在選取的呼叫上執行下列處理:
- 當電話開啟hook 時,電話物件會呼叫 ITBasicCallControl::D isconnect ,該通話目前未處於CS_DISCONNECTED通話狀態。
- 如果選取的通話達到CS_DISCONNECTED通話狀態,則電話物件會自動使用 ITAutomatedPhoneControl::UnselectCall 方法取消選取通話。
- 如果電話已關閉,則從該電話自動取消選取任何選取的通話。
- 當電話關閉hook 或電話關閉時選取通話時,電話物件會在目前已處理的通話上呼叫 ITBasicCallControl::Answer ,如果通話處於CS_OFFERING通話狀態。
- 電話物件會在通話狀態為CS_INPROGRESS且電話已 CS_INPROGRESS關閉時,呼叫 ITAutomatedPhoneControl::StartTone ( PT_RINGBACK、0 ) 本身。
- 電話物件會在呼叫處於CS_CONNECTED通話狀態的上選取電話時呼叫 ITAutomatedPhoneControl::StopTone ,或在手機上選取的通話進入CS_CONNECTED通話狀態時。
- 電話物件會在CS_OFFERING、CS_INPROGRESS或CS_CONNECTED通話狀態中選取通話時,呼叫 ITAutomatedPhoneControl::StartRinger ( 0,0 ) 本身。 這也會發生在手機上選取的通話進入CS_OFFERING、CS_INPROGRESS或CS_CONNECTED通話狀態,且電話處於hook 狀態時。
- 如果電話是 onhook,則電話物件會自行呼叫 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 |
標頭 | tapi3if.h (包括 Tapi3.h) |
程式庫 | Uuid.lib |
Dll | Tapi3.dll |