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 狀態時。
視情況而定,當在通話狀態中 CS_DISCONNECTED選取通話時,電話物件會執行下列其中一個動作,或在電話上選取的通話進入CS_DISCONNECTED通話狀態時。

規格需求

   
目標平台 Windows
標頭 tapi3if.h (包括 Tapi3.h)
程式庫 Uuid.lib
Dll Tapi3.dll

另請參閱

ITAutomatedPhoneControl

ITBasicCallControl

ITCallInfo